|
WinAVR и LCD-дисплей |
|
|
|
Jan 22 2008, 08:52
|

Частый гость
 
Группа: Новичок
Сообщений: 153
Регистрация: 29-03-07
Из: Саратов
Пользователь №: 26 613

|
Здравствуйте. Такой вопрос. Я использую дисплей PC2002, микросхему ATmega32 и компилятор WinAVR 2006. У меня проблема с отображением символов на дисплее... В общем, если символы быстро меняются, то экран начинает заметно мерцать... А если показываем статичное изображение, но одним из последних символов были цифры 8 или 9, то все изображение на экранчике перекрывается черными квадратами (символами FF)... Само по себе изображение остается, то есть если нажать и удерживать Reset, то можно спокойно прочитать, что же было написано... если после 8 или 9 поставить, скажем, пробел, то изображение опять таки нормальное... И данные, и управляющие сигналы передаются через порт B... Данные передаются в четырехбитном режиме... Может, кто-нибудь знает, в чем может быть проблема...
Да, кстати... чуть не забыл... чтобы не тащить код в студию, скажу, что тестировал это на примере из WinAVR... stdiodemo называется... только, разумеется, свои данные по микросхеме подставил...
--------------------
!!! All you need is LOVE !!!
|
|
|
|
|
 |
Ответов
(1 - 10)
|
Jan 22 2008, 18:14
|
Местный
  
Группа: Свой
Сообщений: 408
Регистрация: 21-10-06
Из: Санкт-Петербург
Пользователь №: 21 527

|
Цитата(Freeze Anti @ Jan 22 2008, 19:04)  Нет. Экран не погиб. Проверить другой экран, к сожалению, нет возможности... Зато установил такой интересный эффект... Если смотреть осциллографом сигнал с выводов микроконтроллера, то при появлении символа напряжение на долю секунды подымается и опять падает (послали единичку и обратно - ноль)... но на восьмерке и девятке - наоборот... сначала напряжение подымается, а потом, на смену символа - обратно опускается... то есть получается, что после отображения этих символов контроллер начинает непрерывно посылать единицы на экран... поэтому он и забивается полностью символами FF... кстати... проблема не в винавре, на который я грешил вначале... проблема в чем-то другом... попробовал написать программу на бейсике и прошить - тот же результат... Чудес не бывает - в драйвере дисплея никаких проверок нет. Так что возможны всего три причины: 1 - неисправный дисплей 2 - некачественная пайка (контакт там, где его быть не должно или наоборот) 3 - ошибки в программе. Все остальное ИМХО очень маловероятно. Поверьте монтаж. Попробуйте заменить дисплей. Если не поможет, покажите программу. Удачи!
|
|
|
|
|
Jan 22 2008, 22:11
|
Местный
  
Группа: Свой
Сообщений: 408
Регистрация: 21-10-06
Из: Санкт-Петербург
Пользователь №: 21 527

|
Цитата(Freeze Anti @ Jan 22 2008, 23:33)  1. замеры осциллографом, о которых я вам говорил, производились при отключенном дисплее Пример из WinAvr при отключенном дисплее зависнет еще на стадии инициализации. Вот из-за этого: Код void hd44780_wait_ready(void) { while (hd44780_incmd() & HD44780_BUSYFLAG); } Эта функция в процессе инициализации вызывается 3 раза. А с "висящих в воздухе" портов обычно читается 1. Т.е. дисплей как бы всегда занят.
|
|
|
|
|
Jan 23 2008, 05:54
|
Профессионал
    
Группа: Свой
Сообщений: 1 266
Регистрация: 22-04-05
Из: Киев
Пользователь №: 4 387

|
Цитата Пример из WinAvr при отключенном дисплее зависнет еще на стадии инициализации. Вот из-за этого: Флаг читается из старшего разряда, т.е. нога проца подключена. Пример не смотрел, но даже если там выключена подтяжка, то большинство дисплеев её всё-равно обеспечит (паразитной?) встроенной подтяжкой.
--------------------
aka Vit
|
|
|
|
|
Jan 23 2008, 07:07
|
Местный
  
Группа: Свой
Сообщений: 357
Регистрация: 6-01-07
Пользователь №: 24 139

|
Цитата(Freeze Anti @ Jan 22 2008, 11:52)  Здравствуйте. Такой вопрос. Я использую дисплей PC2002, микросхему ATmega32 и компилятор WinAVR 2006. У меня проблема с отображением символов на дисплее... В общем, если символы быстро меняются, то экран начинает заметно мерцать... А если показываем статичное изображение, но одним из последних символов были цифры 8 или 9, то все изображение на экранчике перекрывается черными квадратами (символами FF)... Само по себе изображение остается, то есть если нажать и удерживать Reset, то можно спокойно прочитать, что же было написано... если после 8 или 9 поставить, скажем, пробел, то изображение опять таки нормальное... И данные, и управляющие сигналы передаются через порт B... Данные передаются в четырехбитном режиме... Может, кто-нибудь знает, в чем может быть проблема...
Да, кстати... чуть не забыл... чтобы не тащить код в студию, скажу, что тестировал это на примере из WinAVR... stdiodemo называется... только, разумеется, свои данные по микросхеме подставил... Если Вы хотите, чтобы Вам могли помочь - код в студию обязательно, здесь телепатов нет. Из личной практики - давненько, когда только осваивал контроллеры с подобным индикатором получил в свое время чем-то похожий эффект: в программе проверял кнопки, что-то считал, выводил на индикатор и т.д. Пока картинка на индикаторе не менялась - было заметно сильное мерцание. Если данные менялись, то они накладывались друг на друга. Если нажать Reset, то, естественно, картинка останавливалась, т.к. контроллер переставал засылать новые данные в индикатор. При этом тоже думал, что плохой индикатор. Оказалось - кривые руки  Пришлось выпрямлять  ))
|
|
|
|
|
Jan 23 2008, 17:27
|

Частый гость
 
Группа: Новичок
Сообщений: 153
Регистрация: 29-03-07
Из: Саратов
Пользователь №: 26 613

|
Да я понимаю, что телепатов нет... тут дело не в программе... несколько различных программ было использовано... одна из них - программный пример из WinAVR 2006... stdiodemo... еще простенькая программка на бейсике... сейчас не помню уже наизусть весь код, поэтому завтра, как на работу приду - отпишусь... Цитата Пока картинка на индикаторе не менялась - было заметно сильное мерцание. Если данные менялись, то они накладывались друг на друга. Если нажать Reset, то, естественно, картинка останавливалась, т.к. контроллер переставал засылать новые данные в индикатор. у меня не совсем так... пока картинка не меняется - она нормально отображается... мерцания начинаются при смене символов...
--------------------
!!! All you need is LOVE !!!
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|