Компилятор изменяется, а регистры - остаются ))
BASCOM AVR в вопросах и ответах
- Сообщения: 1278
- Зарегистрирован: Пн июн 18, 2007 21:51:20
правиль и сделали! это - самый надежный способ
Компилятор изменяется, а регистры - остаются ))
Компилятор изменяется, а регистры - остаются ))
- Реклама
С праздником всех!
Подскажите по следующему коду, почему не работает индикатор если пин R/W не подключен на массу, а управляется с порта МК. При этом порт установлен в лог. 0.
Это не прихоть. Дело в том, что приобрел китайскую отладочную плату, а на ней индикатор подключается именно к портам мк. Причем мк пришел прошитый, типа с китайским приветствием, и жк 100% работал и отображал нечто с иероглифами и даже сердечком
Протеус в данном случае тоже ничего не отображает, пока вывод R/W принудительно не посадить на массу.
В чем моя ошибка?
Подскажите по следующему коду, почему не работает индикатор если пин R/W не подключен на массу, а управляется с порта МК. При этом порт установлен в лог. 0.
Это не прихоть. Дело в том, что приобрел китайскую отладочную плату, а на ней индикатор подключается именно к портам мк. Причем мк пришел прошитый, типа с китайским приветствием, и жк 100% работал и отображал нечто с иероглифами и даже сердечком
Код: Выделить всё
$regfile = "m16def.dat"
$crystal = 8000000
Config Porta.6 = Output
Reset Porta.6 ' R/W
' ЖК Board
' ------------------------
' 1 Vss
' 2 Vdd
' 3 V0
' 4 RS PA5
' 5 R/W PA6
' 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 = 16 * 2
Cls
Lcd "Hello World!"
Do
Loop
EndВ чем моя ошибка?
"Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
- Сообщения: 1278
- Зарегистрирован: Пн июн 18, 2007 21:51:20
попробуйте не Reset, а просто PortX.Y=0
вот еще, давал когда-то:
вот еще, давал когда-то:
Код: Выделить всё
$regfile = "m48DEF.dat" ' >>> BASCOM <<<
$crystal = 8000000
Config Lcd = 16 * 2 'configure lcd screen
Config Lcdpin = Pin , Db4 = Portb.5 , Db5 = Portb.4 , Db6 = Portb.3 , Db7 = Portb.2 , E = Portb.1 , Rs = Portb.0
Config Portd = Output : Portd = 0 ' _____________ Инициализация всей периферии ____________
Config Portb = Output : Portb = 0
Config Portc = Input : Portc = 0
Cls 'clear the LCD display
Rem Всем привет!
Rem Я - живой :)
Lcd "Bceј ѕpёіeї!"
Lowerline
Wait 1
Lcd "± - ¶ёіo№ :)"
Это не влияет.aleksandr-zh писал(а):попробуйте не Reset, а просто PortX.Y=0
Нашел баг. Правда не понимаю в чем дело.
Код: Выделить всё
$regfile = "m16def.dat"
$crystal = 8000000
Config Porta.6 = Output
Reset Porta.6 ' R/W
' ЖК Board
' ------------------------
' 1 Vss
' 2 Vdd
' 3 V0
' 4 RS PA5
' 5 R/W PA6
' 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 = 16 * 2
Home Upper
Cursor Off Noblink
Cls
Lcd "0123456789ABCDEF"
Wait 1
Lowerline
Lcd "0123456789ABCDE"
EndПричем ни командs CLS, ни LOCAE почему-то не помогают. Нужна именно Home Upper.
Подскажите! Я заблуждаюсь или это фича?
"Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
- Сообщения: 1278
- Зарегистрирован: Пн июн 18, 2007 21:51:20
- Реклама
подключал 3 разных ЖК.aleksandr-zh писал(а):я без Home Upper обхожусь
думаю, проблема конкретного ЖКИ
1) Родной китайский, шел с платой
2) TM162AD двухстрочник с русским языком
3) Индикатор 16х1 Ampire
Везде тоже самое. Пока могу предполагать, что это не проблема дисплея, а, наверное, именно проблема подключения полностью на порты мк, а ен так как боычно подключают R/W сразу на массу. Иного объяснения не нахожу.
"Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
- Сообщения: 1278
- Зарегистрирован: Пн июн 18, 2007 21:51:20
Вечер добрый.
Я, правда, недавно начал осваивать Bascom AVR , но с подключением ЖК дисплея WH1602-NYG-CT проблем не возникло. Вот код программы:
Я подключил библиотеку cd4.lbx и данная конфигурация выводов прописана в ней. Изменить её можно, но я не пробовал.
Я, правда, недавно начал осваивать Bascom AVR , но с подключением ЖК дисплея WH1602-NYG-CT проблем не возникло. Вот код программы:
Код: Выделить всё
$regfile = "m8def.dat"
$crystal = 1000000
$lib "lcd4.lbx"
Config Lcdpin = Pin , Rs = Portb.0 , E = Portb.2 , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7
Config Lcd = 16 * 2
Эта библиотека рассчитана на бодключение индикатора на PORTB. Вот и все. Штатных средств баскома вполне хватает на подключение индикатора к любым портам. Просто мне странно, чтоб всего 1 команда так влияла на работу индикатора и при этом пока с такой проблемой столкнулся только я. у остальных все рааботает и такValery__ писал(а): Я подключил библиотеку cd4.lbx и данная конфигурация выводов прописана в ней. Изменить её можно, но я не пробовал.
"Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
- Сообщения: 1278
- Зарегистрирован: Пн июн 18, 2007 21:51:20
МК и индикатор запитаны от одного источника?
Попробуйте подключить к этой ноге МК (WR) светодиодик через резистор 470-1000 Ом и "помигайте в программе (1,пауза 100 ms, 0, пауза 100 ms, ... )
мигает?
Попробуйте подключить к этой ноге МК (WR) светодиодик через резистор 470-1000 Ом и "помигайте в программе (1,пауза 100 ms, 0, пауза 100 ms, ... )
мигает?
А можно по подробнее?serg_svd писал(а): Эта библиотека рассчитана на бодключение индикатора на PORTB. Вот и все. Штатных средств баскома вполне хватает на подключение индикатора к любым портам.
Я попробовал убрать строку с подключением библиотеки и программа перестала работать.
Код: Выделить всё
$regfile = "m8def.dat"
$crystal = 1000000
'$lib "lcd4.lbx"
'конфигурация подключения ЖК дисплея WH1602B-NYG-CT
Config Lcdpin = Pin , Rs = Portb.0 , E = Portb.2 , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7
Config Lcd = 16 * 2
Проблемы встречаются. К примеру у меня, на МЕГЕ8, на макетке, заметил, что если отключить программатор( он висит на портеВ), индикация пропадает. Хотя RW через порт на земле. Так и не разбирался в чём проблемма.serg_svd писал(а): и при этом пока с такой проблемой столкнулся только я. у остальных все рааботает и так
Все делают ошибки, только мудрецы - новые, а дураки - старые.
Код: Выделить всё
'*******************************************************
'* Автор: Megavolt *
'* Дата: 4/02/2011 г. *
'* Версия: 1.0 *
'* Имя файла: LCD.bas *
'* Имя проекта: LCD *
'* Для AVR: ATtiny2313 *
'* Тактовая частота: 8 000 кГц (встроенный генератор) *
'*******************************************************
'
' Выполняемые функции: Управление LCD
'
$regfile = "ATtiny2313.DAT"
$crystal = 8000000
$lib "lcd4busy.lbx"
Const _lcdport = Portb
Const _lcdddr = Ddrb
Const _lcdin = Pinb
Const _lcd_e = 2
Const _lcd_rw = 1
Const _lcd_rs = 0
Config Lcd = 16 * 2 'используем дисплей на 2 строчки по 16 знакомест в каждой
Cursor Off
Cls
Lcd "Hello word"
End 'end program
- Сообщения: 1278
- Зарегистрирован: Пн июн 18, 2007 21:51:20
вы не правы - он самостоятельно управляет этим сигналом, так как он подключен к МК и имеется соответственная команда загрузки в регистр вывода нуля
- Сообщения: 1278
- Зарегистрирован: Пн июн 18, 2007 21:51:20
А смысл тогда подключения R/W к МК. Найти себе лишних проблем и стойко их решать?
Вы не читали выше. Дело в том, что я приобрел отладочную плату китайскую. и там так индикатор разведен. Нельзя подключить вывод R/W напрямую на землю, так как он жестко сидит на PA.6 мк. Поэтому я и управляю режимом индикатора с порта микроконтроллера.Alex_Megavolt_79 писал(а):А смысл тогда подключения R/W к МК. Найти себе лишних проблем и стойко их решать?
А насчет Вашего примера конечно попробую. Просто я сознательно не стал использовать различные дополнительные библиотеки.
И еще, поясните пожалуйста данные константы
Код: Выделить всё
Const _lcdport = Portb
Const _lcdddr = Ddrb
Const _lcdin = PinbКод: Выделить всё
' ЖК Board
' ------------------------
' 1 Vss
' 2 Vdd
' 3 V0
' 4 RS PA5
' 5 R/W PA6
' 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
Последний раз редактировалось serg_svd Пн май 02, 2011 11:32:30, всего редактировалось 1 раз.
"Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
Я попробовал Ваш код, только изменил все пины на порт B. Он заработал.


