АTMega16A+LCM1602K не стартует

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
docentoff
Родился
Сообщения: 11
Зарегистрирован: Пт июн 24, 2011 20:41:25

АTMega16A+LCM1602K не стартует

Сообщение docentoff »

Здарвствуйте только начал заниматься АВР контроллерами, с миганием светодиодами и роботом машинкой закончил решил перейти на LCD дисплейчики

были приобретены LCM1602K-NSW-BBW х3
на макетке через кусок шлейфа от FDD, он был само собой прикручен к порту С по 4х битной шине, подсветка работает(не с контроллера) контрастность регулируется, данные с проца по осцилографу идут.

100 раз проверил правильность подключения по даташиту контроллера и дисплея, проверил фузы и указанную частоту проца в мастере проверил порты контроллера (на случай вдруг чего то таки не так подпаял),

дисплей запускается, загораются 2 строчки 1а поярче 2я по тусклее, дальше тишина.

Использую CVAVR+STK200\300, даташит на дисплей, и исходник программы для CV вроде прикрепил.

Занимаюсь камасутрой уже дня 3, результатов так и не добился, подскажите, в чем мой косяк?
Вложения
ADM1602K-NSW-FBS-3.3v (1).rar
даташит на дисплей
(865.66 КБ) 291 скачивание
lcd.rar
прошивка
(1.35 КБ) 188 скачиваний
Аватара пользователя
jordan
Грызет канифоль
Сообщения: 271
Зарегистрирован: Чт апр 01, 2010 14:14:55

Re: АTMega16A+LCM1602K не стартует

Сообщение jordan »

Во первых настой порт С на вывод, ты же данные передаешь а не получаешь!

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

DDRC=0xff;  

а во вторых, я честно говоря не знаком с этой библиотекой, но думаю что ножки контроллера должны быть определены перед использованием этой библиотеки
docentoff
Родился
Сообщения: 11
Зарегистрирован: Пт июн 24, 2011 20:41:25

Re: АTMega16A+LCM1602K не стартует

Сообщение docentoff »

выставил порт на вывод, та же песня,и ладно бы не работал 1 дисплей щас перепаял все 3 с указанием портов, заменил контроллер,перепрошил та же муть, попробывал подключать #include <lcd.h>

выдает ошибку

Error: C:\cvavreval\LCD\List\lcd.asm(1423): Undefined symbol: __lcd_port

с набором из 30 строк

из асма скомпиленного

__lcd_delay_G100:
ldi r31,15
__lcd_delay0:
dec r31
brne __lcd_delay0
RET
__lcd_ready:
in r26,__lcd_direction
andi r26,0xf ;set as input
out __lcd_direction,r26
sbi __lcd_port,__lcd_rd ;RD=1
cbi __lcd_port,__lcd_rs ;RS=0
__lcd_busy:
RCALL __lcd_delay_G100
sbi __lcd_port,__lcd_enable ;EN=1
RCALL __lcd_delay_G100
in r26,__lcd_pin
cbi __lcd_port,__lcd_enable ;EN=0
RCALL __lcd_delay_G100
sbi __lcd_port,__lcd_enable ;EN=1
RCALL __lcd_delay_G100
cbi __lcd_port,__lcd_enable ;EN=0
sbrc r26,__lcd_busy_flag
rjmp __lcd_busy
RET
__lcd_write_nibble_G100:
andi r26,0xf0
or r26,r27
out __lcd_port,r26 ;write
sbi __lcd_port,__lcd_enable ;EN=1
CALL __lcd_delay_G100
cbi __lcd_port,__lcd_enable ;EN=0
CALL __lcd_delay_G100
RET
__lcd_write_data:
cbi __lcd_port,__lcd_rd ;RD=0
in r26,__lcd_direction
ori r26,0xf0 | (1<<__lcd_rs) | (1<<__lcd_rd) | (1<<__lcd_enable) ;set as output
out __lcd_direction,r26
in r27,__lcd_port
andi r27,0xf
ld r26,y
RCALL __lcd_write_nibble_G100
ld r26,y
swap r26
RCALL __lcd_write_nibble_G100
sbi __lcd_port,__lcd_rd ;RD=1
JMP _0x2020001
__lcd_read_nibble_G100:
sbi __lcd_port,__lcd_enable ;EN=1
CALL __lcd_delay_G100
in r30,__lcd_pin ;read
cbi __lcd_port,__lcd_enable ;EN=0
CALL __lcd_delay_G100
andi r30,0xf0
RET
_lcd_read_byte0_G100:
CALL __lcd_delay_G100
RCALL __lcd_read_nibble_G100
mov r26,r30
RCALL __lcd_read_nibble_G100
cbi __lcd_port,__lcd_rd ;RD=0
swap r30
or r30,r26
RET


вот что наваял CV, цитата кода с ошибкой

на сколько я понял не определена что то типо переменной обозванной __lcd_port, методом научного поиска с начала программы объявления __lcd_port не нашел

с библиотекой alcd.h таких глюков нету по умолчанию cv подцепляет именно ее
eufs
Опытный кот
Сообщения: 772
Зарегистрирован: Вс апр 10, 2011 02:24:06
Откуда: г.Северодонецк

Re: АTMega16A+LCM1602K не стартует

Сообщение eufs »

Подключи процедуру на 50мкс, объяви порты и проверь. Модуль на асме.
Вложения
0802.asm
(1.1 КБ) 152 скачивания
C0FFEE=‭12648430‬
docentoff
Родился
Сообщения: 11
Зарегистрирован: Пт июн 24, 2011 20:41:25

Re: АTMega16A+LCM1602K не стартует

Сообщение docentoff »

объявил порт С как вывод

выставил задержки delay_ms(5000) реакции 0

пытаюсь заинклудить твой код через

#asm

#endasm

матерится на переменные

цеплял вместо инициализации
Вложения
lcd.rar
исходник на С
(1.4 КБ) 157 скачиваний
Аватара пользователя
jordan
Грызет канифоль
Сообщения: 271
Зарегистрирован: Чт апр 01, 2010 14:14:55

Re: АTMega16A+LCM1602K не стартует

Сообщение jordan »

изучи нормально библиотеку для работы с дисплеем, там точно должен быть определен порт, и ножки к которым ты подключил дисплей!!! От куда компилятор знает куда ты повесил дисплей!!! А если не получится работать с библиотекой, посмотри в инете точно можно обойтись и без библиотеки, найди набор команд для инициализации и работай без библиотеки
Аватара пользователя
zhu4er
Вымогатель припоя
Сообщения: 544
Зарегистрирован: Пт июн 04, 2010 17:40:13
Откуда: Непокорный город-герой Севастополь

Re: АTMega16A+LCM1602K не стартует

Сообщение zhu4er »

для docentoff

А вот эту книжку ты читал: http://depositfiles.com/files/jg2dbcptj
Даже у стен есть уши...
docentoff
Родился
Сообщения: 11
Зарегистрирован: Пт июн 24, 2011 20:41:25

Re: АTMega16A+LCM1602K не стартует

Сообщение docentoff »

само собой читал

кстати разобрался в чем дикий, тупой косяк был

в следств моей невнимательности, и забывчивости, а так же особенности изображенной Лутом печатки и кривой разводки платы пришлось повесить дисплейчик на порт С по 4х битной шине, все нормально, контроллерЫ прошивались дисплеИ не запускались, найден косяк:

В настройках фузов был включен JTAG, и эта ЗаРаЗа не давала работать LCDхе, после перепрошивки фуз битов, с отключением JTAGa все заработало

Спасибо всем откликнувшимся!!
Аватара пользователя
Volly
Опытный кот
Сообщения: 702
Зарегистрирован: Пт мар 06, 2009 18:22:23

Re: АTMega16A+LCM1602K не стартует

Сообщение Volly »

jordan писал(а):там точно должен быть определен порт, и ножки к которым ты подключил дисплей!!!

В этом странннном компиляторе порт и ножки LCD задаются не в тексте программы, а в свойствах компилятора. :shock:
Прогнал один и тот-же текст через CAVR версий 2.03.9 и 2.05.0. В последнем ресурсов сожрало на 15% больше. И старый компактностью не отличался, а новый вообще монстр по прожорливости. :hunger:
docentoff
Родился
Сообщения: 11
Зарегистрирован: Пт июн 24, 2011 20:41:25

Re: АTMega16A+LCM1602K не стартует

Сообщение docentoff »

на счет прожерливости согласен, но даже в 8 КБ что бы не вместиться,
это надо очень постараться)) поэтому и учу АВР а не пик
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»