Страница 158 из 304
Re: BASCOM AVR в вопросах и ответах
Добавлено: Вс дек 23, 2012 08:52:47
aleksandr-zh
radio-kot писал(а):Похоже BASCOM AVR очень популярная программа если судить по результатам поиска который гугл выдает
да вы чо? ммм.. не знали...
УРА! зато у нас нет от вас очередного мега-курса bacom123 типа avr123 и stm32 123
если загрузите лицензионку, то там русский есть - я переводил и Марку отправлял. И часть справки перевёл на русский.
http://narod.ru/disk/39944303001.17a4c6 ... R.chm.html
Но всё времени нет завершить, да и Марк не верит, что русские (CCCP) покупать будет, и не особо порится по поводу продвижения продукта у нас
Re: BASCOM AVR в вопросах и ответах
Добавлено: Вс дек 23, 2012 19:28:38
lordswars
Доброго времени суток!
сидел колупал AT90USB162 на предмет HARDWARE USB на Bascom. нашел сайтик
http://www.weigu.lu с него качнул проект Kleine USB-Bibliothek mit dem Teensy 2.0 и начал разбирать... при небольшой модификации вроде заработало....
Код: Выделить всё
Usb_init_device:
Usbcon.usbe = 1 'включаем УСБ
Usbcon.frzclk = 0 'FRZCLK=0 внутренняя синхро выкл
Usbcon.frzclk = 1 'FRZCLK=1 внутренняя синхро вкл
Pllcsr.pllp0 = 0 '0- давайс, 1- хост
Pllcsr.plle = 1 'установка внутреннего умножителя частоты PLL (Enable-Bit = 1)
Do
Loop Until Pllcsr.plock = 1 'ждём активации PLL (около 100ms)
Usbcon.frzclk = 0 'FRZCLK=0 внутренняя синхро выкл
Udcon = &H00 'Attach: verbinde Device
Udien = &H08 'erlaube End of Reset Interrupt (EORSTE=1)
Enable Interrupts
Return
Usb_init_device: заменить на приведённый выше код
Usb_ep2_readadc: полностью заремить

ибо нет в этом проце ADC
определяется как девайс и мигает правда пока не тем что нужно но я грешу не только на программу для контроллера а скорее на ПО которое обслуживает данный девайс под виндой. штатная прога для винды на VB5 написана пока не разбирался ...
в наличии плата MAT90USB162 на ней и пробовал.....вот как то так.....
Re: BASCOM AVR в вопросах и ответах
Добавлено: Вт дек 25, 2012 07:17:54
krasser
С новым годом господа!
Подскажите как соединить этот код с семисегментником.
Заранее благодарен.
Код: Выделить всё
Sub Tahometer
Config Timer1 = Timer , Prescale = 64 , Capture Edge = Rising
Dim Wtime As Byte
Dim Rpm As Single
Dim Rpm2 As Integer
On Capture1 Captmr
Enable Interrupts
Enable Capture1
Wtime = 100
Do
Waitms Wtime
Locate 1 , 1
Rpm = Capture1 * 0.008
Rpm = Rpm / 0.008
Rpm = 60 / Rpm
Rpm2 = Rpm / 0.000008
Lcd "RPM: " ; Rpm2 ; " "
Loop
Captmr:
Timer1 = 0
Return
End Sub
А вот то что я пытался сделать
Код: Выделить всё
$regfile = "m8def.dat"
$crystal = 8000000
Config Portd = Output
Config Portb = Output
'Config Portc = Output
'Config Portb.7 = Input
A Alias Portd.5
B Alias Portd.0
C Alias Portd.3
D Alias Portb.1
E Alias Portd.7
F Alias Portd.6
G Alias Portd.4
Dp Alias Portd.2 'Тут вписываем порты к которым подключены сегменты индикатора
Dig1 Alias Portb.2
Dig2 Alias Portd.1
Dim W As Byte , Z As Byte , Y As Byte , I As Byte , Chislo(8) As Long , Viv_peremennaya As Long , Temp_print As Long ' задаем переменные
Config Timer0 = Timer , Prescale = 8 : On Timer0 Pulse : ' конфигурируем таймер 0 и назначаем подпрограмму которая выполняется при переполнении таймера
Enable Interrupts : Enable Timer0 ' разрешаем прерывания и таймер 0
'Sub Tahometer
Config Timer1 = Timer , Prescale = 64 , Capture Edge = Rising 'Stop Timer1 'задание начальных усло
'Stop Timer1
Timer1 = 0
Compare1a = 2
Dim Wtime As Byte
Dim Rpm As Single
Dim Rpm2 As Integer
On Capture1 Captmr 'Captmr
Enable Interrupts
Enable Capture1
Wtime = 100
Do
Waitms Wtime
'Locate 1 , 1
'If Pinb.7 = 1 Then
'Rpm = Locate 7
Rpm = Capture1 * 0.008
Rpm = Rpm / 0.008
Rpm = 60 / Rpm
Rpm2 = Rpm / 0.000008
Incr Temp_print ' переменная, которая будет отображатся на семисегментнике.
'Waitms 100
'End If
Loop
Captmr:
'Stop Timer1
Timer1 = 0
Return
End 'Sub
Pulse:
Stop Timer0
Temp_print = Rpm2
For I = 1 To 4 ' цикл в котором разбивается переменная на отдельные числа от 0 до 9
Chislo(i) = Temp_print Mod 10 ' заносим в масив последнюю цифру от числа Temp_print(12345678 mod 10 = 8)
Temp_print = Temp_print / 10 ' отсекаем последнюю цифру от числа Temp_print (12345678/10=1234567)
Next ' останавливаем таймер 0
Set Dig1 : Set Dig2
Incr W : If W > 4 Then W = 1 ' выбираем какую цифру сейчас включать
Y = 0
Gosub Look : A = Z ' переходим к подпрограмме Look, которая определяет нужно ли сейчас загорется сегменту А
Gosub Look : B = Z
Gosub Look : C = Z
Gosub Look : D = Z
Gosub Look : E = Z
Gosub Look : F = Z
Gosub Look : G = Z
Select Case W ' включаем цифру которую выбрали (w). Подаем минус на общий провод конкретной цифры
Case 1 : Reset Dig1
Case 2 : Reset Dig2
End Select
Start Timer0 ' запускаем таймер0
Return ' возвращаемся к выполнению основной программы
Look: ' подпрограмма которая определяет нужно ли сейчас гореть сегменту, который вызвал эту подпрограмму
Z = Chislo(w) * 7 : Z = Y + Z ' определяем порядковый номер числа из таблици DATA. W - это цифра которую будем выводить 0..1..2..3.......9, Y это номер сегмента (A=0 B=1 C=2...G=7)
Z = Lookup(z , Cifri) ' выбираем из таблици включить или выключить нужный сегмент
Incr Y 'Y это номер сегмента (A=0 B=1 C=2...)
Return 'возвращаемся на место откуда сюда прислали
Cifri:
Data 1 , 1 , 1 , 1 , 1 , 1 , 0 '0
Data 0 , 1 , 1 , 0 , 0 , 0 , 0 '1
Data 1 , 1 , 0 , 1 , 1 , 0 , 1 '2
Data 1 , 1 , 1 , 1 , 0 , 0 , 1 '3
Data 0 , 1 , 1 , 0 , 0 , 1 , 1 '4
Data 1 , 0 , 1 , 1 , 0 , 1 , 1 '5
Data 1 , 0 , 1 , 1 , 1 , 1 , 1 '6
Data 1 , 1 , 1 , 0 , 0 , 0 , 0 '7
Data 1 , 1 , 1 , 1 , 1 , 1 , 1 '8
Data 1 , 1 , 1 , 1 , 0 , 1 , 1 '9
Re: BASCOM AVR в вопросах и ответах
Добавлено: Вт дек 25, 2012 21:48:25
vanyap1
Подскажите пожалуйста - как сложить три переменные типа байт в одно 24-битное число.
Знаю что два байта можно сложить так - C = Makeint(A, B).
Re: BASCOM AVR в вопросах и ответах
Добавлено: Ср дек 26, 2012 15:31:41
Marchello
Уважаемые Форумчане, очень прошу помощи! Мне нужно реализовать одну задумку, но как то не выходит каменный цветок в силу нехватки знаний и опыта программирования! Обращаюсь к вам так как Bascom мне вроде бы боле менее близок и понятен (в универе изучал Basic). Задумка у меня следующая:
Значит что мы имеем!
1. Все комплектующие для сборки схемы уже закуплены.
Вот страничка с сайта где была подчеркнута идея -
http://www.aquaforum.ua/showthread.php?t=121870&page=10
2. Четыре потребителя. На схеме они указанны как pump (1-4). здесь автор схемы использовал микронасосы Ulka (используются в кофемашинках для дозирования кофе - 220в) и программа соответственно была написана под работу этих насосов! Я же планирую заменить потребителей!
Вместо pump1 будет подключаться шаговый двигатель 12в от принтера с необходимым режимом работы 20 оборотов по часовой, реверс - 20 оборотов в против, до исходного положения. Время включения шагового двигателя один раз в день в 8.00 в течении всей недели (желательно чтобы время включения можно было корректировать: летом в 7.00 зимой в 8.00).
Вместо pump2 будет подключено освещение аквариума - две МГ лампы по 150 Вт (вкл. 11.00 - выкл. 14.00; вкл. 16.00 - выкл. 21.00) ежедневно на протяжении всей недели. (на сегодняшний день у меня с этим справляется электронный недельный таймер). желательно чтобы время включения и отключения освещения тоже можно было регулировать.
Вместо pump3-4 будут раздельно подключаться потребители на 220в (фильтр воды, электроклапан). Фильтр воды вкл. 7.00 выкл. 23.00, электроклапан вкл. за час до включения освещения и за час до выключения.
Как я уже успел разобраться управление настройками времени включения и отключения потребителей можно будет задавать кнопками предусмотренными в схемке, а вот LCD я бы заменил на 16х4, так как в перспективе планируется к схемке добавить функционал термометра и PH контроллера, показания которых должны будут отображаться на LCD! Вот такая у меня не легкая задача! Надеюсь здесь найдутся энтузиасты которые расскажут с чего мне начать писать программу!
Re: BASCOM AVR в вопросах и ответах
Добавлено: Ср дек 26, 2012 18:59:33
vik_211
Рабол ли кто нибудь с дисплеем RDX0154, драйвер - UC1601s ?
Re: BASCOM AVR в вопросах и ответах
Добавлено: Чт дек 27, 2012 22:30:11
selco
Код: Выделить всё
'**********[Псевдокоманды управления]**************
$regfile = "m8def.dat" ' тип МК
$crystal = 1000000 ' выбор кристала
'**********[Инициализация прерываний]**************
Config Timer1 = Timer , Prescale = 64 , Compare A = Toggle , Clear Timer = 1
COMPARE1A = &H3D09
'**********[Начало основной программы]**************
Do ' пустой цикл
Loop
Подскажите пожалуйста,как сделать чтоб на выходах были два противофазных сигнала?
Спасибо.
Re: BASCOM AVR в вопросах и ответах
Добавлено: Пт дек 28, 2012 12:47:35
amv2000
selco писал(а):как сделать чтоб на выходах были два противофазных сигнала?
Это Вы случайно не динамик хотите прикрутить?
Re: BASCOM AVR в вопросах и ответах
Добавлено: Пт дек 28, 2012 18:22:43
selco
amv2000 писал(а):selco писал(а):как сделать чтоб на выходах были два противофазных сигнала?
Это Вы случайно не динамик хотите прикрутить?
Нет, нужно чтоб на двух выводах был противофазный сигнал. он будет раскачивать 2-х тактный усилок.
Re: BASCOM AVR в вопросах и ответах
Добавлено: Сб дек 29, 2012 19:29:44
selco
Неужели незнает никто?
Re: BASCOM AVR в вопросах и ответах
Добавлено: Вс дек 30, 2012 17:02:24
dimon-790
сформулируй нормально вопрос и возможно ктонить поможет ...
Re: BASCOM AVR в вопросах и ответах
Добавлено: Вс дек 30, 2012 17:08:14
selco
Этот код выдаёт частоту на PORTB.1 а мне надо чтобы и на PORTB.2 выдавал ,но в противофазе. Тоесть PORTB.1=1 а PORTB.2=0.
Re: BASCOM AVR в вопросах и ответах
Добавлено: Вс дек 30, 2012 18:34:03
Adagumer
Может ещё нужно добавить задержку между активациями фаз, дабы избежать сквозных токов?
Re: BASCOM AVR в вопросах и ответах
Добавлено: Вс дек 30, 2012 21:07:31
dimon-790
Знал-бы ты , через что мне пришлось пройти

, чтоб эти пару строк кода тебе написать...ну да ладно , добрый я сегодня чёто...
Код: Выделить всё
$regfile = "m8def.dat" ' тип МК
$crystal = 1000000 ' выбор кристала
'**********[Инициализация прерываний]**************
Config Timer1 = Timer , Prescale = 1 , Clear Timer = 0 , Compare A = Toggle , Compare B = Toggle
Compare1a = Not Compare1b
'**********[Начало основной программы]**************
Do ' пустой цикл
Loop
калибровки делителя пришлось изменить , потому как такие длинные тайминги , осликом тяжко было отслеживать.
Re: BASCOM AVR в вопросах и ответах
Добавлено: Пн дек 31, 2012 17:22:38
selco
dimon-790 писал(а):Знал-бы ты , через что мне пришлось пройти

, чтоб эти пару строк кода тебе написать...ну да ладно , добрый я сегодня чёто...
Код: Выделить всё
$regfile = "m8def.dat" ' тип МК
$crystal = 1000000 ' выбор кристала
'**********[Инициализация прерываний]**************
Config Timer1 = Timer , Prescale = 1 , Clear Timer = 0 , Compare A = Toggle , Compare B = Toggle
Compare1a = Not Compare1b
'**********[Начало основной программы]**************
Do ' пустой цикл
Loop
калибровки делителя пришлось изменить , потому как такие длинные тайминги , осликом тяжко было отслеживать.
СПАСИБО! Всех с наступающим новым годом!
Re: BASCOM AVR в вопросах и ответах
Добавлено: Вс янв 06, 2013 14:52:43
vanyap1
Столкнулся вот с проблемой, при компиляции вылетает ошибка, причем даже при повторной компиляции старых проектов, которые давно работают и имеют ЖК дисплей.
Переустановка баскома ничего не исправила.

Re: BASCOM AVR в вопросах и ответах
Добавлено: Вс янв 06, 2013 15:27:27
Moto_v3x
vanyap1
У меня тоже были проблемы с новым баскомом только компилировалось без проблем, но на дисплей выводило все кроме текста и курсор управлялся. Поскольку проекты были простые переделал в кодевижене, на него с баскома легко переходить.
Re: BASCOM AVR в вопросах и ответах
Добавлено: Вс янв 06, 2013 17:12:48
vanyap1
Поставил баском 2.0.7 (был - 2.0.5), теперь все компилируется без проблем, но экран не работает. МК зависает.
Проверил с этим кодом (светодиод с этим кодом не мигает, если убрать все что касается ЖКИ то мигает)-
Спойлер
$regfile = "m64def.dat"
$crystal = 11059200
$hwstack = 64
$swstack = 64
$framesize = 32
Config Portd.7 = Output
Led1 Alias Portd.7
Toggle Led1
Waitms 500
Toggle Led1
Waitms 500
Toggle Led1
Waitms 500
Toggle Led1
waitms 500
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Porta.6 , Db5 = Porta.5 , Db6 = Porta.4 , Db7 = Porta.3 , Rs = Porta.2 , E = Porta.0 ' , E2 = Porta.1
Cursor Off
Cls
Locate 1 , 2
Lcd "qwerty123"
Re: BASCOM AVR в вопросах и ответах
Добавлено: Вс янв 06, 2013 18:13:55
vanyap1
Поставил снова баском 2.0.5 и все скомпилировалось.
А мк не желал работать из за запрограмированого фуза совместимости - m103c.
Re: BASCOM AVR в вопросах и ответах
Добавлено: Вс янв 06, 2013 18:35:31
htscooter
А мк не желал работать из за запрограмированого фуза совместимости - m103c
То есть с 2.0.7 версией тоже все работает?
Я у себя тоже нашел причину некорректной работы прошивки (загоралась лишняя точка на семисегментниках, код на предыдущей странице)
Было:
Исправил на: