BASCOM AVR в вопросах и ответах

Обсуждаем контроллеры компании Atmel.
vanyap1
Электрический кот
Сообщения: 1048
Зарегистрирован: Пт июл 30, 2010 11:49:03
Откуда: Украина
Контактная информация:

Re: BASCOM AVR в вопросах и ответах

Сообщение vanyap1 »

В Баскоме есть команда initlcd, она заставляет контроллер инициализировать дисплей.
Где, или как баском хранит эти строки инициализации для дисплея, или как их редактировать.

Суть вопроса такова - к МК был подключен дисплей на контроллере hd44780, потом заменен на winstar oled в которого немного другая инициализация и дополнительные функции. Он то работает, но хочется задействовать как надо и штатными средствами баскома.
Реклама
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

Re: BASCOM AVR в вопросах и ответах

Сообщение edm2007 »

Вообще все библиотеки в папке LIB программы.
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Реклама
vanyap1
Электрический кот
Сообщения: 1048
Зарегистрирован: Пт июл 30, 2010 11:49:03
Откуда: Украина
Контактная информация:

Re: BASCOM AVR в вопросах и ответах

Сообщение vanyap1 »

Обьясните мне пожалуйста, что происходит при вызове команды initlcd
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

Re: BASCOM AVR в вопросах и ответах

Сообщение edm2007 »

Очевидно, что инициализация дисплея. Например, в файле lcd4.lib:

Код: Выделить всё

_Init_LCD:
 *BASIC: waitms 10
 Ldi R24, &B11111111               ; all outputs
 Out LCDDDR,R24                     ; write to Data direction
 Ldi R24, &B00110000               ; set logic level
 Out LCDPORT,R24                    ; write to output pins

 Ldi r16,3                          ; repeat 3 times
_Init_LCD1:
 SBi LCDPORT, 2                     ; E high
 Cbi LCDPORT, 2                     ; E low
 *BASIC: waitms 1
 Dec R16
 Brne _Init_LCD1                    ; until we are ready
 Cbi LCDPORT, 4                     ; DB4 must be set low now
 SBi LCDPORT, 2                     ; E high
 Cbi LCDPORT, 2                     ; E low
 *BASIC: waitms 1
 Ldi R24, 40                        ; 4 bit mode
 Rcall _Lcd_control
 Ldi _temp1,14                      ; Display on, Cursor on, Noblink
 Rcall _Lcd_control
 Ldi _temp1,6                       ; Cursor moves right, text doesn't move
 RJmp _Lcd_control                   ; return will come from _lcd_control
[END]
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Реклама
Эиком - электронные компоненты и радиодетали
dimon-ru-80
Встал на лапы
Сообщения: 86
Зарегистрирован: Ср ноя 19, 2014 17:13:21
Откуда: Украина, Никополь

Re: BASCOM AVR в вопросах и ответах

Сообщение dimon-ru-80 »

Добрый день, уважаемые коты. Смастерил себе часы на ИВ-18 и мега 32. (Переделал немного схему польских часов под мегу 32). Код перелопатил под себя. Добавил, работу трех кнопок "+" "-" "setup"; индикацию при обрыве датчиков температуры; индикацию дня недели; корректировку на +1сек в сутки (без нее отстают), регулировку яркости. Прошу вашей помощи впилить в программу будильник простой и надежный :). Не могу понять как на всяких там ice tube clock реализована одновременная работа будильника и обновление даты времени для динамической индикации во время проигрывания мелодии например(если поставить ее в основном цикле). Код и проект в протеусе во вложении, помогите впилить будильник или поделитесь куском кода в котором реализован будильник с индикацией времени при проигрывании мелодии например командой sound.
Вложения
222.ZIP
(27.27 КБ) 208 скачиваний
Реклама
Аватара пользователя
Адвансед
Встал на лапы
Сообщения: 98
Зарегистрирован: Вс мар 11, 2012 23:06:08
Откуда: Казань

Re: BASCOM AVR в вопросах и ответах

Сообщение Адвансед »

Помогите с вопросом,

Есть код, который обрабатывает нажатие кнопки. при нажатии кнопки начинает работать программа, точнее сказать, нажал кнопку и пока ее держишь в цикле работает программа, отпускаешь кнопку погромамма работать перестает.

Так вопрос, мне нужно чтобы пока кнопка нажата, программа сработала лишь один раз, а она работает до тех пор пока кнопка нажата.... Тоесть бегает в цикле.

Если ее убрать из цикла то программа не работает.

Как при нажатии кнопки заставить программу работать лишь один раз,



Мне нужно: нажал держишь кнопку, программа проработала и встала. Чтобы перезапустить программу, отпускаем кнопку и нажимаем снова.
Реклама
Аватара пользователя
Адвансед
Встал на лапы
Сообщения: 98
Зарегистрирован: Вс мар 11, 2012 23:06:08
Откуда: Казань

Re: BASCOM AVR в вопросах и ответах

Сообщение Адвансед »

Можно конечно в конце цикла выполняемой программы написать end но тогда программа встает полностью
pavel1979
Мучитель микросхем
Сообщения: 494
Зарегистрирован: Пн авг 12, 2013 19:07:47
Откуда: башкирия мелеуз

Re: BASCOM AVR в вопросах и ответах

Сообщение pavel1979 »

можно ставить флаг
когда кнопка не нажата-флаг=0
когда нажимаем кнопку флаг=1,потом-если флаг=1 срабатывает программа,в ее конце прописываем флаг=2
кнопка нажата,но программа сработала один раз,так как флаг=2
отпускаем кнопку-флаг=0,ждем нажатия кнопки

а можно в той программе сделать чтоб она сработала и стояла на месте пока не отпустим кнопку
label1:
waitms 10
if button=0 then goto label1 'если кнопка еще нажата идет на метку
Аватара пользователя
Адвансед
Встал на лапы
Сообщения: 98
Зарегистрирован: Вс мар 11, 2012 23:06:08
Откуда: Казань

Re: BASCOM AVR в вопросах и ответах

Сообщение Адвансед »

Спасибо за наводку, попробую
pavel1979
Мучитель микросхем
Сообщения: 494
Зарегистрирован: Пн авг 12, 2013 19:07:47
Откуда: башкирия мелеуз

Re: BASCOM AVR в вопросах и ответах

Сообщение pavel1979 »

можно так

dim flag as bit
flag=0
..........
if button=0 then если кнопка нажата
if flag=0 then gosub prog и флаг=0 то идем на программу
else
flag=0 если кнопка не нажата флаг=0
end if
...........
prog:
наша программа
flag=1
return
gorrec41
Родился
Сообщения: 6
Зарегистрирован: Вс апр 14, 2013 19:25:57

Re: BASCOM AVR в вопросах и ответах

Сообщение gorrec41 »

доброго времени подскажите пожалуйста есть жки wh2004a YGH-CT при подключении к атмеге 16 (внутр генератор 4мгц )тупо показывает 1 и 3 строку прямоугольники. я так понимаю что инициализация дисплея не прошла вот код посмотрите может что подскажете (если нужно могу в протеусе 8 скинутьсхему) в протеусе все работает ,

Спойлер$regfile = "m16def.dat"
$crystal = 4000000
$hwstack = 40
$swstack = 16
$framesize = 32

Open "comd.0:9600,8,n,1" For Output As #1
Open "comd.1:9600,8,n,1" For Input As #2

' ------------------------
' 1 Vss
' 2 Vdd
' 3 V0
' 4 RS PA5
' 5 R/W gnd
' 6 E PA7
' 7 DB0 PD0
' 8 DB1 PD1
' 9 DB2 PD2
' 10 DB3 PD3
' 11 DB4 PD4
' 12 DB5 PD5
' 13 DB6 PD6
' 14 DB7 PD7

Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Porta.7 , Rs = Porta.5
Config Lcd = 20 * 4
INITLCD
Cls
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Config Pina.0 = Input
Start Adc


Config 1wire = Portd.2 ' íà ýòó íîæêó ïîäêëþ÷èì DS18B20 è ïîäòÿãèâàþùèé ðåçèñòîð íà 4,7 êîì ê + ïèòàíèÿ
Config Portb.0 = Output
Config Portb.1 = Output
Config Porta.2 = Output

'****************************?????? ?????????***********************************

Dim Signtemperatura As String * 1 , Celsium As String * 5
Dim Byte0 As Byte , Byte1 As Byte , T As Byte
Dim Dsid1(8) As Byte , Dsid2(8) As Byte
Dim Temp As Byte , X As Byte
Dim W As Word
Dim M As Word


W = 1wirecount()
Dsid1(1) = 1wsearchfirst()
Do
Dsid2(1) = 1wsearchnext()
Loop Until Err = 1

'*******************************************************************************

Do
Set Porta.2

Gosub Convallt
M = Getadc(0) : Gosub Shtory 'ñ÷èòûâàåì ðåçóëüòàò ñ ïèíà 0 ïîðòà À.

Locate 4 , 4 ' ïîçèöèÿ êóðñîðà
Lcd "ADC(0):" ; M ; " " 'âûâîäèì ðåçóëüòàò ïðåîáðàçîâàíèÿ íà ÆÊ


Waitms 100 ' çåäåðæêà 0,1 ñåêóíäû
1wverify Dsid1(1) : X = 1 : Gosub Temperature '1 ds18b20
1wverify Dsid2(1) : X = 2 : Gosub Temperature '2 ds18b20
Loop
End

'*******************************************************************************

Convallt:
1wreset
1wwrite &HCC
1wwrite &H44
Waitms 750
Return

'*******************************************************************************

Temperature:
If Err = 0 Then
1wwrite &HBE
Byte0 = 1wread()
Byte1 = 1wread()
Reset Porta.2
Waitms 750
If Byte1 >= 248 Then
Byte0 = &HFF - Byte0
Byte1 = &HFF - Byte1

Signtemperatura = "-"
Reset Porta.2
Waitms 750
Else

Reset Porta.2
Waitms 750
Set Porta.2
Waitms 750
Reset Porta.2
Signtemperatura = "+"
End If
Temp = Byte0 / 16
T = Byte1 * 16
Temp = Temp + T
Celsium = Signtemperatura + Str(temp) +

Locate X , 1

Lcd Celsium

Locate 1 , 5


Lcd "C Dom"
Locate 2 , 5
Lcd "C Ulica"

Print #1 , Celsium ; " " ; M


End If
Return
Shtory:
If M < 300 Then
Portb.0 = 1
Portb.1 = 0
Else
Portb.1 = 1
Portb.0 = 0
End If
Return

'***************************************************************************
Аватара пользователя
Адвансед
Встал на лапы
Сообщения: 98
Зарегистрирован: Вс мар 11, 2012 23:06:08
Откуда: Казань

Re: BASCOM AVR в вопросах и ответах

Сообщение Адвансед »

Скорее всего не правильно подключил дисплей, или не подтянул некоторые ноги дисплея к земле.
pavel1979
Мучитель микросхем
Сообщения: 494
Зарегистрирован: Пн авг 12, 2013 19:07:47
Откуда: башкирия мелеуз

Re: BASCOM AVR в вопросах и ответах

Сообщение pavel1979 »

у меня в протеусе работает,выв RW(жки,выв 5) к минусу подключили?
gorrec41
Родился
Сообщения: 6
Зарегистрирован: Вс апр 14, 2013 19:25:57

Re: BASCOM AVR в вопросах и ответах

Сообщение gorrec41 »

да все подключено в протеусе у меня у самого все работает а в железе ступор
мне кажется с инициализацией косяк потому что счас добавил initlcd 2 раза с по подряд и появилась верхняя часть 3 и 4 строчки
pavel1979
Мучитель микросхем
Сообщения: 494
Зарегистрирован: Пн авг 12, 2013 19:07:47
Откуда: башкирия мелеуз

Re: BASCOM AVR в вопросах и ответах

Сообщение pavel1979 »

не знаю,гдето косяк скорее всего,может попробовать временно впаять 1602 и проверить-работает ли программа?ее придется подправить...
вопрос на засыпку-можно ли к одной меге16 подключить два индикатора нокиа1110 и как это примерно будет выглядеть?показывать будут разную информацию(не одно и то же на обоих жк)
Аватара пользователя
Адвансед
Встал на лапы
Сообщения: 98
Зарегистрирован: Вс мар 11, 2012 23:06:08
Откуда: Казань

Re: BASCOM AVR в вопросах и ответах

Сообщение Адвансед »

Мне кажется что не получится, будут дублированные настройки выводов для дисплея (rs,cls)

Хотя, если настроить каждый дисплей отлично друг от друга то должно работать , если такое возможно...
pavel1979
Мучитель микросхем
Сообщения: 494
Зарегистрирован: Пн авг 12, 2013 19:07:47
Откуда: башкирия мелеуз

Re: BASCOM AVR в вопросах и ответах

Сообщение pavel1979 »

А если в программе переназначать порты?например так
Config Graphlcd = 128 * 64eadogm , Cs1 = Portd.0 , A0 = Portd.7 , Si = Portd.6 , Sclk = Portd.5 , Rst = Portd.1 -работает один жк,выводим то что надо,перекл порты
Config Graphlcd = 128 * 64eadogm , Cs1 = Portc.0 , A0 = Portc.7 , Si = Portc.6 , Sclk = Portc.5 , Rst = Portc.1 -теперь другой жк,выводим то что надо-будет работать?
вообще-в теле программы можно переназначать порты?
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

Re: BASCOM AVR в вопросах и ответах

Сообщение edm2007 »

Дисплеи, имеющие вывод CS (Chip Select) можно подключить параллельно. Управляя этими выводами мы и выбираем, для кого предназначена та или иная информация. А инициализировать их можно разом, выбрав сразу оба дисплея.
pavel1979 писал(а):вообще-в теле программы можно переназначать порты?
Разумеется. Но в Вашем случае нужно просто настроить выводы CS для двух дисплеев, и дергать ими когда нужно.
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
rojnov
Встал на лапы
Сообщения: 127
Зарегистрирован: Вс мар 27, 2011 07:48:48
Откуда: г. Екатеринбург

Re: BASCOM AVR в вопросах и ответах

Сообщение rojnov »

Для pavel1979.
Отправил письмо с вопросами в личку.
Аватара пользователя
Bear2011
Друг Кота
Сообщения: 13253
Зарегистрирован: Ср апр 06, 2011 09:58:13
Откуда: Кузбасс

Re: BASCOM AVR в вопросах и ответах

Сообщение Bear2011 »

Подскажите а для BASCOM есть готовые библиотеки для работы с USB? Есть задача - принять с USB байт и выдать его на один из портов. Может кто подскажет примеры?
Ответить

Вернуться в «AVR»