BASCOM AVR в вопросах и ответах
-
vanyap1
- Электрический кот
- Сообщения: 1048
- Зарегистрирован: Пт июл 30, 2010 11:49:03
- Откуда: Украина
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Я читал даташит, и в курсе, что дисплей имеет два контроллера и работает как два дисплея. Только вот незадача, не видел в баскоме возможности подключить вторую линию Е2 и придумал - поставить два логических элемента "И" на линии Е1 и Е2, и выводить строки по очереди.
- amv2000
- Опытный кот
- Сообщения: 717
- Зарегистрирован: Вт апр 26, 2011 13:58:36
- Откуда: Ростовская область
Re: BASCOM AVR в вопросах и ответах
vanyap1 писал(а):не видел в баскоме возможности подключить вторую линию Е2 и придумал - поставить два логических элемента "И" на линии Е1 и Е2, и выводить строки по очереди.
Встречал у иностранцев
Код: Выделить всё
$regfile = "m1280def.dat"
$lib "lcd4e2.lib"
'$lib "lcd4e2.lbx"
$crystal = 16000000
$hwstack = 32
$swstack = 32
$framesize = 24
'Bascom kennt keine Display mit 27 * 4 Zeichen, daher 40 * 4 verwenden
Config Lcd = 40 * 4
Config Lcdpin = Pin , Db4 = Porta.4 , Db5 = Porta.5 , Db6 = Porta.0 , _
Db7 = Porta.2 , E = Porta.3 , Rs = Porta.1 , E2 = Porta.6
Initlcd
Cls
' Systemvariable der LCD-Bibliothek (wichtig, bloß nicht ändern)
Dim ___lcdno As Byte 'ohne LIB
Dim ___lcde As Byte 'Mit LIB
' wählt die beiden oberen Zeilen aus
___lcde = 0
' löscht die beiden oberen Zeilen
Cls
' wählt die obere Zeile aus
Upperline
' schreibt in die erste Zeile an Position 3
Locate 1 , 2
' den Text in Anführungszeichen
Lcd "Zeile 1"
' wählt die zweite Zeile aus
Lowerline
' schreibt in die zweite Zeile an Position 2
Locate 2 , 2
' in diesem Fall den Inhalt der Variablem mit dem Namen Variable
Lcd "Zeile 2"
' unterdrückt den Cursor
Cursor Off
' wählt die beiden unteren Zeilen aus
___lcde = 1
Waitms 100
Cls
Thirdline
Locate 3 , 1
Lcd "Zeile 3"
Fourthline
Locate 4 , 1
Lcd "Zeile 4"
Cursor OffЗдесь подробнее http://bascom-forum.de/archive/index.ph ... 43014c3ed4
И в справке http://basavrhelp.mcselec.com/index.html?lcd4e2.htm
-
vanyap1
- Электрический кот
- Сообщения: 1048
- Зарегистрирован: Пт июл 30, 2010 11:49:03
- Откуда: Украина
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Спасибо, я уже нашел этот сайт. Завтра попробую подпаять дисплей.
-
осторожно! леоныч!!!
- Сверлит текстолит когтями
- Сообщения: 1156
- Зарегистрирован: Вт дек 09, 2008 20:31:56
Re: BASCOM AVR в вопросах и ответах
Ну уж извините. Сам только учусь. Просто хотел помочь.
-
vanyap1
- Электрический кот
- Сообщения: 1048
- Зарегистрирован: Пт июл 30, 2010 11:49:03
- Откуда: Украина
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Ниче, я тоже учусь. Вам код подошел?
-
осторожно! леоныч!!!
- Сверлит текстолит когтями
- Сообщения: 1156
- Зарегистрирован: Вт дек 09, 2008 20:31:56
Re: BASCOM AVR в вопросах и ответах
Я вчера код проверить не успел. Время - ночь уже было) Сейчас на работу сьезжу , приеду домой и проверю
Спасибо 
- edm2007
- Поставщик валерьянки для Кота
- Сообщения: 2255
- Зарегистрирован: Вт апр 21, 2009 22:24:10
- Откуда: Иркутск
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
осторожно! леоныч!!! писал(а):Я знаю что всё не правильно.
Да это видимо я не совсем корректно выразился. Просто вроде же Вы куда лучше писали. А тут такое... Мне не совсем понятна даже такая мелочь как работа с кнопками. Ну откуда берется такое решение, если на каждой странице есть примеры с Debounce. Ну из раза в раз об одном речь идет. А тут плюем на дребезг, не обращаем внимание на то, что при нажатой кнопке с дикой скоростью будем к подпрограмме обращаться, и все в этом духе... Я говорю, не в коде проблема всегда. Она еще с момента написания алгоритма появляется. Вы возьмите и накидайте на листочке ради интереса свою задачу. И тогда наглядно увидите все ее связи и слабые места. А уж перевести на Бейсик дело совсем не сложное. Главное, отчетливо понимать, чего именно Вы хотите. А учиться "плохо" имея желание, невозможно. Это Вы уж наговариваете на себя. И возраст тут совершенно не при чем.
amv2000 писал(а):Помнится edm2007 как то отвечал, сейчас видно стесняется
Это где про два дисплея на одной шине речь шла, видимо.
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
- amv2000
- Опытный кот
- Сообщения: 717
- Зарегистрирован: Вт апр 26, 2011 13:58:36
- Откуда: Ростовская область
Re: BASCOM AVR в вопросах и ответах
edm2007 писал(а):Это где про два дисплея на одной шине речь шла, видимо.
Если интересно то здесь http://www.radiokot.ru/forum/viewtopic. ... start=1800
-
осторожно! леоныч!!!
- Сверлит текстолит когтями
- Сообщения: 1156
- Зарегистрирован: Вт дек 09, 2008 20:31:56
Re: BASCOM AVR в вопросах и ответах
edm2007 я правда серьезно слажал. Ничего , скоро может быть нормальный код выложу для примера. Я учусь, да. И вообще огромное спасибо что помогаете, с вами обучение идет в разы быстрее.
Re: BASCOM AVR в вопросах и ответах
Подскажите пожалуйста. Вот есть код к терморегулятору для выбора диапазона включения/выключения обогревателя, но выставлять температуру можно только в целых значениях. Как добавить возможность менять температуру с десятыми долями?
Код: Выделить всё
'Установка и сохранение в eeprom мк, выключения Q2
Cls
Ay = 0
X1 = A
Do
If X1 > 10 Then X1 = 7
If X1 < 7 Then X1 = 10
Locate 1 , 1
Lcd "[ BГІop їeјѕ. ]"
Locate 2 , 1
Lcd "Teјѕ. іє».: " ; X1 ; " "
Вверх_вниз
Tem1 = X1
Loop Until Ay = 1
A = Tem1
'*******************************************************************************
'Установка и сохранение в eeprom мк, включения Q2
Cls
Ay = 0
X1 = B
Do
If X1 > 10 Then X1 = 4
If X1 < 4 Then X1 = 10
Locate 1 , 1
Lcd "[ BГІop їeјѕ. ]"
Locate 2 , 1
Lcd "Teјѕ. іГє».: " ; X1 ; " "
Вверх_вниз
Tem2 = X1
Loop Until Ay = 1
B = Tem2
'***
-
осторожно! леоныч!!!
- Сверлит текстолит когтями
- Сообщения: 1156
- Зарегистрирован: Вт дек 09, 2008 20:31:56
Re: BASCOM AVR в вопросах и ответах
eeprom мк это же плохо. Её если использовать то не надолго хватит. Я хочу научиться внешнюю использовать i2c
- edm2007
- Поставщик валерьянки для Кота
- Сообщения: 2255
- Зарегистрирован: Вт апр 21, 2009 22:24:10
- Откуда: Иркутск
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Ну почему же плохо-то, зачем так категорично? Все от задачи зависит, и в большинстве случаев ее хватает вполне.
Касаемо внешней памяти, то это обычная работа с I2C. Например, вот: Работа с внешней EEPROM в Bascom-AVR на примере 24lc08.
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Re: BASCOM AVR в вопросах и ответах
To myx: То что вы написали - это не код, а какой-то огрызок. Где задание переменных? И где вы тут увидели сохранение в EEPROM??? Выкладывайте полный код, тогда и поглядим. Я таких терморегуляторов кучу уже наделал, так что, чем смогу - помогу.
Цапу крутить надо!!! Ку или не ку?
-
осторожно! леоныч!!!
- Сверлит текстолит когтями
- Сообщения: 1156
- Зарегистрирован: Вт дек 09, 2008 20:31:56
Re: BASCOM AVR в вопросах и ответах
Я вот снова с глупым вопросом. Уже голову сломал. Как заставить считать регистр контроллера? На выходе по нажатию кнопок + и - должно увеличиваться или уменьшаться значение в 16-ричном коде. Ну как например у микросхемы 561ие11 или 561ие16...
Вот я задавал вопрос. Мне ответили но ничего не получается.
Уточню задачу все таки. Устройство на базе атмега16, весь порт D задействован под счет как я и говорил в 16-ричной системе, по переполнению порта D надо будет считать дальше двумя пинами pc6 pc7 и при общем переполнении и порта D и пинов pc6 pc7 уже считать заново. Ладно, пока снова сам помаюсь мож что и получится, не так всё тут просто...
Вот я задавал вопрос. Мне ответили но ничего не получается.
Уточню задачу все таки. Устройство на базе атмега16, весь порт D задействован под счет как я и говорил в 16-ричной системе, по переполнению порта D надо будет считать дальше двумя пинами pc6 pc7 и при общем переполнении и порта D и пинов pc6 pc7 уже считать заново. Ладно, пока снова сам помаюсь мож что и получится, не так всё тут просто...
-
осторожно! леоныч!!!
- Сверлит текстолит когтями
- Сообщения: 1156
- Зарегистрирован: Вт дек 09, 2008 20:31:56
Re: BASCOM AVR в вопросах и ответах
Вот так устройство подало признаки жизни
If Plus = 1 Then : Incr W : End If
If Plus = 1 Then Waitms 1
If Minus = 1 Then : Decr W : End If
If Minus = 1 Then Waitms 1
W_h = High(w)
Portd = W_h
Заработало почему то именно так.
Теперь надо прицепить еще 2 пина чтоб они участвовали в счете.
If Plus = 1 Then : Incr W : End If
If Plus = 1 Then Waitms 1
If Minus = 1 Then : Decr W : End If
If Minus = 1 Then Waitms 1
W_h = High(w)
Portd = W_h
Заработало почему то именно так.
Теперь надо прицепить еще 2 пина чтоб они участвовали в счете.
Последний раз редактировалось осторожно! леоныч!!! Ср ноя 07, 2012 18:32:45, всего редактировалось 1 раз.
Re: BASCOM AVR в вопросах и ответах
Igor_67 писал(а):To myx: То что вы написали - это не код, а какой-то огрызок. Где задание переменных? И где вы тут увидели сохранение в EEPROM??? Выкладывайте полный код, тогда и поглядим. Я таких терморегуляторов кучу уже наделал, так что, чем смогу - помогу.
Полный проект с исходником в архиве. Заранее спасибо.
- Вложения
-
- гигрометр 21 47 ГР last.zip
- (159.96 КБ) 170 скачиваний
-
осторожно! леоныч!!!
- Сверлит текстолит когтями
- Сообщения: 1156
- Зарегистрирован: Вт дек 09, 2008 20:31:56
Re: BASCOM AVR в вопросах и ответах
Всё таки пока не пойму как к 8 пинам одного порта прибавить еще 2 для счета. Чего только не пробовал уже. Понимаю что надо их устанавливать по переполнению порта D. Но чтоб включить порт С не могу вьехать как правильно сделать. Может при помощи подпрограммы проще?
-
осторожно! леоныч!!!
- Сверлит текстолит когтями
- Сообщения: 1156
- Зарегистрирован: Вт дек 09, 2008 20:31:56
Re: BASCOM AVR в вопросах и ответах
Ох ребят дико извентиляюсь!!!! Всё заработало да еще как! В следующий раз буду внимательнее 
-
осторожно! леоныч!!!
- Сверлит текстолит когтями
- Сообщения: 1156
- Зарегистрирован: Вт дек 09, 2008 20:31:56
Re: BASCOM AVR в вопросах и ответах
Вот снова столкнулся с задачей которая пока не по зубам. Использую все пины порта С и только 2 пина порта D. Счет у меня идет до 1024 а дальше обнуление и всё по новой. PD2 - - - PD7 у меня свободны (atmega16). Но байт то туда отправлен. И применить эти свободные пины не получается. Не знаю что делать 
-
vanyap1
- Электрический кот
- Сообщения: 1048
- Зарегистрирован: Пт июл 30, 2010 11:49:03
- Откуда: Украина
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Я же вам давал исходник умеющий считать до 65535 (16 бит). Первые 8 бит выводит в один порт а вторую порцию - 8 бит в другой порт.