мне кажеться можно быстее, попробую свою сделать.ВитГо писал(а):это чуть больше 1000 тактов...shurikss123 писал(а):1 миллисекунду, мне кажеться что это много или???
думаю при 4х битном подключении дисплея это не много...
да и математика какая-никакая там тоже есть (рассчитать цену деления, количество делений)
Работа с ЖКИ на контроллере HD44780 и его аналогах
- Реклама
строка printf("1:%.4u,2:%.4u,3:%.4u",ADOUT[0], ADOUT[1], ADOUT[2]);
где adout - флоаты - занимает 4 миллисекунды при оптимизации - скорость и 9 миллисекунд при оптимизации размер
естественно режим библиотеки - полный
а вот такой вариант функции
задерживается на 20 миллисекунд....
конечно же ещё есть в фоне прерывания ацп и таймера - каждую миллисекунду
с экраном работаю через ожтдание флага занятости - ниодной тупой задержки нет
с каждой ногой работаю по отдельности...побитово
а если в протеусе вместо 250 килогерц тактовую экрана поднять в 10 раз то время сокращается до 13 миллисекунд - вывод - половину времени контролер тупит в ожидании экранчика
где adout - флоаты - занимает 4 миллисекунды при оптимизации - скорость и 9 миллисекунд при оптимизации размер
естественно режим библиотеки - полный
а вот такой вариант функции
Код: Выделить всё
lcd_gotoxy(0,0);
printf("1:%.4u,2:%.4u,3:%.4u",ADOUT[0], ADOUT[1], ADOUT[2]);
// рисуем полоску первого канала
lcd_gotoxy(0,1);
lcd_putsf("1");
dr_bar(1, 1, 1, ADOUT[7], 0, 100, 9);
lcd_gotoxy(10,1);
lcd_putsf("2");
dr_bar(11, 1, 2, ADOUT[6], 0, 100, 8);
lcd_gotoxy(0,2);
lcd_putsf("3");
dr_bar(1, 2, 3, ADOUT[5], 0, 100, 1);
dr_bar(3, 2, 4, ADOUT[5], 0, 100, 2);
dr_bar(6, 2, 5, ADOUT[5], 0, 100, 7);
dr_bar(10, 2, 6, ADOUT[5], 0, 100, 4);
//printf("7:%.4u,8:%.4u ", ADOUT[6], ADOUT[7]);
//lcd_puts(a);
lcd_gotoxy(0,3);
printf("DS:%05.2f Time:%.4lu",ds_temps[0], RealSec);
конечно же ещё есть в фоне прерывания ацп и таймера - каждую миллисекунду
с экраном работаю через ожтдание флага занятости - ниодной тупой задержки нет
с каждой ногой работаю по отдельности...побитово
а если в протеусе вместо 250 килогерц тактовую экрана поднять в 10 раз то время сокращается до 13 миллисекунд - вывод - половину времени контролер тупит в ожидании экранчика
Что нас не убило сделало нас осторожней
Не доверяйте русским лужам - это может быть вход в метро.
Не доверяйте русским лужам - это может быть вход в метро.
Не printf вообше не использую из за его размеров и времени исполнения,clawham писал(а):строка printf("1:%.4u,2:%.4u,3:%.4u",ADOUT[0], ADOUT[1], ADOUT[2]);
где adout - флоаты - занимает 4 миллисекунды при оптимизации - скорость и 9 миллисекунд при оптимизации размер
естественно режим библиотеки - полный
а вот такой вариант функции
вот стока процедуры рисования прогресс бара у меня
Код: Выделить всё
PORTD|=(1<<PD3);
LCDprogressBar(LedR,120,16);
PORTD&=(0<<PD3);
Зеленое начало красное конец,
PC0..PC7 тут у меня подключен диспл.
PD0..PD3 тут 3 шим для RGB
PD3 HI Начало рисования прогреса LO окончание процеса
могу видео кинуть
немного непонятно - картинка ужосного качества
полторы миллисекунды?
а у вас можно рисовать прогресбары любой длины?
а у вас они с обрамлением по внешнему пикселю?
а у вас вход может быть например 40...60 а для прогрессбара это будет 0...100% заполнения?
просто интересен выигрыш реализации на асме(я не считаю время затраченное на разработку проги)
интерфейс да...4 битный...
контролер мега 103 отличается полным отсутствием фарша НО....128 килов флеша дают полную свободу действий...на данный моментс оцифровкой усреднением своей библиотекой для 44780 , кучей прерываний и собственно принтфами ++ буферизированный уарт + оптимизация на скорость = 10 килобайт флеша...а у мну ещё 118....при этом библиотеки для работы со всем и вся уже есть и дальнейшее наращивание функционала не приведет к росту прошивки....
даа...времена меги 8-й это класс...даже вывод с пробелами незначащими сам писал ибо принтф сильно много занимает
полторы миллисекунды?
а у вас можно рисовать прогресбары любой длины?
а у вас они с обрамлением по внешнему пикселю?
а у вас вход может быть например 40...60 а для прогрессбара это будет 0...100% заполнения?
просто интересен выигрыш реализации на асме(я не считаю время затраченное на разработку проги)
интерфейс да...4 битный...
контролер мега 103 отличается полным отсутствием фарша НО....128 килов флеша дают полную свободу действий...на данный моментс оцифровкой усреднением своей библиотекой для 44780 , кучей прерываний и собственно принтфами ++ буферизированный уарт + оптимизация на скорость = 10 килобайт флеша...а у мну ещё 118....при этом библиотеки для работы со всем и вся уже есть и дальнейшее наращивание функционала не приведет к росту прошивки....
даа...времена меги 8-й это класс...даже вывод с пробелами незначащими сам писал ибо принтф сильно много занимает
Что нас не убило сделало нас осторожней
Не доверяйте русским лужам - это может быть вход в метро.
Не доверяйте русским лужам - это может быть вход в метро.
кстати....гдето слышал что у того же 44780 можно не только рам использовать для своих символов а и какой-то еепром - например для 3-х символов неизменяемых и общих для всех прогрессбьаров(тогда их можно 8-мь штук использовать) ???
Ни кто не занимался подобным извратом?
Ни кто не занимался подобным извратом?
Что нас не убило сделало нас осторожней
Не доверяйте русским лужам - это может быть вход в метро.
Не доверяйте русским лужам - это может быть вход в метро.
- Реклама
рисует по символам. 4 бита значения могут быть макс 256 если поменять переменную в процедуре то можно хоть 1024.clawham писал(а):немного непонятно - картинка ужосного качества
полторы миллисекунды?
а у вас можно рисовать прогресбары любой длины?
а у вас они с обрамлением по внешнему пикселю?
а у вас вход может быть например 40...60 а для прогрессбара это будет 0...100% заполнения?
просто интересен выигрыш реализации на асме(я не считаю время затраченное на разработку проги)
интерфейс да...4 битный...
контролер мега 103 отличается полным отсутствием фарша НО....128 килов флеша дают полную свободу действий...на данный моментс оцифровкой усреднением своей библиотекой для 44780 , кучей прерываний и собственно принтфами ++ буферизированный уарт + оптимизация на скорость = 10 килобайт флеша...а у мну ещё 118....при этом библиотеки для работы со всем и вся уже есть и дальнейшее наращивание функционала не приведет к росту прошивки....
даа...времена меги 8-й это класс...даже вывод с пробелами незначащими сам писал ибо принтф сильно много занимает
видео там все ясно будет
http://youtu.be/Ec0E0StFQ-U
http://youtu.be/tMbLnxDYCvY
По поводу изврата он тут же в видео.используеться.
Код: Выделить всё
const uint8_t LcdCustomChar[] PROGMEM= //define 8 custom LCD chars
{
0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, // 0. 0/5 full progress block
0x1F, 0x00, 0x10, 0x18, 0x18, 0x10, 0x00, 0x1f, // 1. 1/5 full progress block
0x1F, 0x00, 0x18, 0x1c, 0x1c, 0x18, 0x00, 0x1f, // 2. 2/5 full progress block
0x1F, 0x00, 0x1C, 0x1e, 0x1e, 0x1C, 0x00, 0x1f, // 3. 3/5 full progress block
0x1F, 0x00, 0x1E, 0x1f, 0x1f, 0x1E, 0x00, 0x1f, // 4. 4/5 full progress block
0x1F, 0x00, 0x1F, 0x1F, 0x1F, 0x1F, 0x00, 0x1f, // 5. 5/5 full progress block
0x03, 0x04, 0x09, 0x13, 0x13, 0x09, 0x04, 0x03, // 6. rewind arrow
0x18, 0x04, 0x12, 0x19, 0x19, 0x12, 0x04, 0x18 // 7. fast-forward arrow
};ненене
про 8 знакомест в оперативке экрана я знаю...говорят можно саму таблицу изменить кодировочную...
например мне б те же 7 знакомест зашить один раз в каких-то иероглифических буквах и вызывать их...тогда было бы проще...не приходилось бы рисовать на каждый прогресбар свой переменный квадратик...
а так то у меня toe в конце используется другой спрайтик и три спрайтика фиксированные..их бы куданить в константы...
про 8 знакомест в оперативке экрана я знаю...говорят можно саму таблицу изменить кодировочную...
например мне б те же 7 знакомест зашить один раз в каких-то иероглифических буквах и вызывать их...тогда было бы проще...не приходилось бы рисовать на каждый прогресбар свой переменный квадратик...
а так то у меня toe в конце используется другой спрайтик и три спрайтика фиксированные..их бы куданить в константы...
Что нас не убило сделало нас осторожней
Не доверяйте русским лужам - это может быть вход в метро.
Не доверяйте русским лужам - это может быть вход в метро.
Внезапно перестал работать ЖКИ AC-162D-YJLY57H. Выдрал из таксофона...
Работал нормально месяца 2, потом вдруг засветились все пиксели одновременно, перезапустил схему и уже засветился только верхний ряд знакомест - так словно ни к чему не подключен.
Управляющий контроллер работает нормально, проверено на втором ЖКИ.
Ума не приложу что могло случится... Работала схема в тот момент от аккумулятора 4,2В...
Кто сталкивался?
Работал нормально месяца 2, потом вдруг засветились все пиксели одновременно, перезапустил схему и уже засветился только верхний ряд знакомест - так словно ни к чему не подключен.
Управляющий контроллер работает нормально, проверено на втором ЖКИ.
Ума не приложу что могло случится... Работала схема в тот момент от аккумулятора 4,2В...
Кто сталкивался?
вот тебе либа, непомню где брал но раз 30 я ее преписывал для себя, оптимизировалclawham писал(а):ненене
про 8 знакомест в оперативке экрана я знаю...говорят можно саму таблицу изменить кодировочную...
например мне б те же 7 знакомест зашить один раз в каких-то иероглифических буквах и вызывать их...тогда было бы проще...не приходилось бы рисовать на каждый прогресбар свой переменный квадратик...
а так то у меня toe в конце используется другой спрайтик и три спрайтика фиксированные..их бы куданить в константы...
там все найдеш, там и прогресбар и все насвете.
- Вложения
-
- lcd_lib.tar.gz
- (3.71 КБ) 440 скачиваний
глупые вопросы )))
№1 в даташите(стр24) где временные задержки на инициализацию указаны для частоты 270kHz?
№2 в каком месте в даташите прописаны эти команды, например:
lcd_com(0xc0); сдвиг в начало вторй строки
lcd_com(0x06); сдвиг в начало первой строки
lcd_com(0x0c);покозат изо курсор не пок.
и т.д.
http://avrlab.com/upload_files/HD44780.pdf
Зарание примного благодарен)
№1 в даташите(стр24) где временные задержки на инициализацию указаны для частоты 270kHz?
№2 в каком месте в даташите прописаны эти команды, например:
lcd_com(0xc0); сдвиг в начало вторй строки
lcd_com(0x06); сдвиг в начало первой строки
lcd_com(0x0c);покозат изо курсор не пок.
и т.д.
http://avrlab.com/upload_files/HD44780.pdf
Зарание примного благодарен)
СТР 24 - задержки для частоты собственного генератора контроллера. Вы должны либо постоянно опрашивая флаг BUSY - таблица 4 стр 24 последняя строка (необходимо использовать 3 -ю ногу управления W/R),mastech писал(а):глупые вопросы )))
№1 в даташите(стр24) где временные задержки на инициализацию указаны для частоты 270kHz?
№2 в каком месте в даташите прописаны эти команды, например:
lcd_com(0xc0); сдвиг в начало вторй строки
lcd_com(0x06); сдвиг в начало первой строки
lcd_com(0x0c);покозат изо курсор не пок.
и т.д.
http://avrlab.com/upload_files/HD44780.pdf
Зарание примного благодарен)
lcd_com(0xc0); сдвиг в начало вторй строки - не совсем верно. Память второй строки начинается с адреса b '01000000' (0x40) устанавливая разряд d7 в слове управления (RS=0) Вы получаете 0хС0 (не сдвиг, а адрес по которому будете писать (RS=1) код символа)
cd_com(0x06); сдвиг в начало первой строки b '00000110' - неверно. Либо установка 0 адреса b '10000000' (0х80) Либо команда 2 b '000000010'
lcd_com(0x0c);покозат изо курсор не пок. l);команда 8 b'00001<disp ON/OFF><cur ON/OFF><blink ON/OFF>'
Все прописано стр 24,стр25!!!!
А погуглить и на русском найдете описание
а сам контроллер - km066u http://www.icbank.com/data/ICBShop/boar ... SMLYH6.pdf
«Просите, и дано будет вам; ищите, и найдете; стучите, и отворят вам; ибо всякий просящий получает, и ищущий находит, и стучащему отворят». Матф.гл. 7, ст. 7—8
Вопрос!
Играюсь с пачкой PVC200403PYL05 2101
кто использовал сий экран при разных температурах?
один из них уже пол года трудится при комнатной температуре - и всё гут...
ещё пара в переносных устройствах работает но тож...карманных....всегда в "тепле"
недавно один тут поставил в мороз -5
то что сама стекляшка мееедлеееннно латентно перетекает это понятно...но...он дико долго держит BUSY после каждой операции....в протеусе подобный эффект при уменьшении частоты до 50 килогерц....но разве такое может быть?
на нем используется ЛЕД подсветка родная...через 4 омма в +5 вольт....со временем она его прогрела(да и кренка постаралась) и хоп...стал веселым и бодрым и стекляшка нормально стала обносляться...
просто кроме него у меня ещё один сомнительный элемент - АтМега103...и 9.6 кварц...но чтото сомневаюсь что кварц могет тормозить...он могет просто не запуститься....но не притормаживать же...
у меня есть в аналогичных условиях мега 8 .... с другим экраном...вроде подобных глюков замечено небыло
Играюсь с пачкой PVC200403PYL05 2101
кто использовал сий экран при разных температурах?
один из них уже пол года трудится при комнатной температуре - и всё гут...
ещё пара в переносных устройствах работает но тож...карманных....всегда в "тепле"
недавно один тут поставил в мороз -5
то что сама стекляшка мееедлеееннно латентно перетекает это понятно...но...он дико долго держит BUSY после каждой операции....в протеусе подобный эффект при уменьшении частоты до 50 килогерц....но разве такое может быть?
на нем используется ЛЕД подсветка родная...через 4 омма в +5 вольт....со временем она его прогрела(да и кренка постаралась) и хоп...стал веселым и бодрым и стекляшка нормально стала обносляться...
просто кроме него у меня ещё один сомнительный элемент - АтМега103...и 9.6 кварц...но чтото сомневаюсь что кварц могет тормозить...он могет просто не запуститься....но не притормаживать же...
у меня есть в аналогичных условиях мега 8 .... с другим экраном...вроде подобных глюков замечено небыло
Что нас не убило сделало нас осторожней
Не доверяйте русским лужам - это может быть вход в метро.
Не доверяйте русским лужам - это может быть вход в метро.
24 нога KS066 или HD44780 контроллера допускает подачу ВНЕШНЕЙ тактовой частоты.clawham писал(а):Вопрос!
Играюсь с пачкой PVC200403PYL05 2101
кто использовал сий экран при разных температурах?
один из них уже пол года трудится при комнатной температуре - и всё гут...
ещё пара в переносных устройствах работает но тож...карманных....всегда в "тепле"
недавно один тут поставил в мороз -5
то что сама стекляшка мееедлеееннно латентно перетекает это понятно...но...он дико долго держит BUSY после каждой операции....в протеусе подобный эффект при уменьшении частоты до 50 килогерц....но разве такое может быть?
Вообще можно потыкаться по проводам и посмотреть - снижается ли частота, или наоборот - из холода при прогреве увеличиватся?.
«Просите, и дано будет вам; ищите, и найдете; стучите, и отворят вам; ибо всякий просящий получает, и ищущий находит, и стучащему отворят». Матф.гл. 7, ст. 7—8
ага...эххх...знать бы ещё где эта нога....
http://clawham.hopto.org/DriveD/PubD/74/IMG_9877.JPG
http://clawham.hopto.org/DriveD/PubD/74/IMG_9878.JPG
clawham, не у всех мониторы 48"..
Картинки или ужимай, или вставляй сЦылками..
МитяРа..
http://clawham.hopto.org/DriveD/PubD/74/IMG_9877.JPG
http://clawham.hopto.org/DriveD/PubD/74/IMG_9878.JPG
clawham, не у всех мониторы 48"..
Картинки или ужимай, или вставляй сЦылками..
МитяРа..
Что нас не убило сделало нас осторожней
Не доверяйте русским лужам - это может быть вход в метро.
Не доверяйте русским лужам - это может быть вход в метро.
http://avrlab.com/upload_files/HD44780.pdf СТР4 ИЛИ 5clawham писал(а):ага...эххх...знать бы ещё где эта нога....
«Просите, и дано будет вам; ищите, и найдете; стучите, и отворят вам; ибо всякий просящий получает, и ищущий находит, и стучащему отворят». Матф.гл. 7, ст. 7—8
всем спасибо...потыкался осцилом - и правда... r6 причем на вообще разных диспахъ он называется R6 
попробую туда подать внешнее тактование с меги
килов 400
попробую туда подать внешнее тактование с меги
Что нас не убило сделало нас осторожней
Не доверяйте русским лужам - это может быть вход в метро.
Не доверяйте русским лужам - это может быть вход в метро.
разогнал....до мегагерца....
работает стабильно....от температуры 5 градусов в покрытом инеем состоянии - работает...но частота немного падает...до 800 килогерц....
работает стабильно....от температуры 5 градусов в покрытом инеем состоянии - работает...но частота немного падает...до 800 килогерц....
Что нас не убило сделало нас осторожней
Не доверяйте русским лужам - это может быть вход в метро.
Не доверяйте русским лужам - это может быть вход в метро.
у кого падает?......Дисп у тебя от внешнего тактирования.... значит у атмела?clawham писал(а):...но частота немного падает...до 800 килогерц....
а busy не мерял в режиме внешнего тактирования?
«Просите, и дано будет вам; ищите, и найдете; стучите, и отворят вам; ибо всякий просящий получает, и ищущий находит, и стучащему отворят». Матф.гл. 7, ст. 7—8
ненене я не заводил на 44780 внешний такт 
просто резюк 10 килоом паралельно припаял
тот другой экран который "тормозил" когда на холоде постоит...то в платке его было дело...после морозилки выяснилось что у вывода RS бОльшее сопротивление при неправильной полярности прозвонки(упор в защитные диоды) чем у соседов...пропаял контактную площадку волосинкой к середине дорожки - всё встало на свои места...видать в месте перехода с дорожки на площадку была микротрещина и от температуры переставала нормально контачить...
ну и поставил ему 3 ома на +5 для подсветки - пусть греется...до 23 градусов накочегаривает корпус при -5 наруже
П.С.А про "не мерял buzy" немного не понял...у мну в конце каждой операции чтения-записи контроллер тупит в цикле ожидая бизика.....и вачдог взведен..так что если б бизик задерживался больше чем на секунду - был бы резет и это было бы заметно....
просто резюк 10 килоом паралельно припаял
тот другой экран который "тормозил" когда на холоде постоит...то в платке его было дело...после морозилки выяснилось что у вывода RS бОльшее сопротивление при неправильной полярности прозвонки(упор в защитные диоды) чем у соседов...пропаял контактную площадку волосинкой к середине дорожки - всё встало на свои места...видать в месте перехода с дорожки на площадку была микротрещина и от температуры переставала нормально контачить...
ну и поставил ему 3 ома на +5 для подсветки - пусть греется...до 23 градусов накочегаривает корпус при -5 наруже
П.С.А про "не мерял buzy" немного не понял...у мну в конце каждой операции чтения-записи контроллер тупит в цикле ожидая бизика.....и вачдог взведен..так что если б бизик задерживался больше чем на секунду - был бы резет и это было бы заметно....
Что нас не убило сделало нас осторожней
Не доверяйте русским лужам - это может быть вход в метро.
Не доверяйте русским лужам - это может быть вход в метро.
Возможно вопрос поднимался... Есть Atmega8, LCD WH1602 и CodeVision. Суть заключается в том, чтобы LCD подключить к порту С (используя 4 бита). CodeVision предлагает только порты D и B, но там мне нужны выходы под USART и внешний кварц. Оно то понятно что нет в настройках CodeWizard подключение к порту С, потому что С.6 - это RESET.
Но зато не используется порт С.3. Так вот вопрос: как программно заменить порт С.6 на порт С.3, чтобы при этом LCD работал, как будто просто подключили ко всем портам С.?
Но зато не используется порт С.3. Так вот вопрос: как программно заменить порт С.6 на порт С.3, чтобы при этом LCD работал, как будто просто подключили ко всем портам С.?
Самое гениальное - всегда самое простое



