|
LCD, AVR и CodeVisionAVR C, помогите изменить подключение |
|
|
|
Mar 29 2008, 12:24
|
Участник

Группа: Новичок
Сообщений: 19
Регистрация: 2-01-07
Пользователь №: 24 037

|
Господа, кто может переделать файл LCD.LIB из CodeVision AVR C v1.25.8? Дело в том, что по умолчанию используются пины 0,1,2,4,5,6 и 7(3 свободный). А мне в Меге8 нужен кварц - PINB6 и 7, и вход Таймера0 - PIND4. Можно ли поменять в LCD.LIB пины 3 и 4. А то я в ассемблере не силен. В архиве LCD.LIB
Прикрепленные файлы
LCD.zip ( 1.42 килобайт )
Кол-во скачиваний: 73
|
|
|
|
|
Mar 29 2008, 16:34
|
Частый гость
 
Группа: Участник
Сообщений: 163
Регистрация: 10-10-05
Пользователь №: 9 463

|
Не понятно - опишите подробнее задачу (где какие пины). я менял в секции lcd.lib: #asm .equ __lcd_direction=__lcd_port-1 .equ __lcd_pin=__lcd_port-2 .equ __lcd_rs=3 .equ __lcd_rd=2 .equ __lcd_enable=1 .equ __lcd_busy_flag=7 #endasm но с LCD Bolymin 2х20 не заработала эта библиотека (там задержки наверное больше) - сделал задачу в WinAVR, использовав стороннюю библиотеку (в приложении) все нормально работает. Если непонятно с русскими символами - расскажу как.
|
|
|
|
|
Mar 29 2008, 16:53
|
Участник

Группа: Новичок
Сообщений: 19
Регистрация: 2-01-07
Пользователь №: 24 037

|
Цитата(oll @ Mar 29 2008, 19:34)  Не понятно - опишите подробнее задачу (где какие пины). я менял в секции lcd.lib: #asm .equ __lcd_direction=__lcd_port-1 .equ __lcd_pin=__lcd_port-2 .equ __lcd_rs=3 .equ __lcd_rd=2 .equ __lcd_enable=1 .equ __lcd_busy_flag=7 #endasm но с LCD Bolymin 2х20 не заработала эта библиотека (там задержки наверное больше) - сделал задачу в WinAVR, использовав стороннюю библиотеку (в приложении) все нормально работает. Если непонятно с русскими символами - расскажу как. CodeVision предлагает такое подключение: Port Bit 0 - RS Port Bit 1 - RD Port Bit 2 - EN Port Bit 3 - Free Port Bit 4 - Data4 Port Bit 5 - Data5 Port Bit 6 - Data6 Port Bit 7 - Data7 А хотелось бы: Port Bit 3 - Data4; Port Bit 4 - Free, чтобы задействовать вход Таймера0 - PIND4
|
|
|
|
|
Mar 29 2008, 17:38
|
Частый гость
 
Группа: Участник
Сообщений: 163
Регистрация: 10-10-05
Пользователь №: 9 463

|
Трудновато будет - библиотека использует 4 смежных старших бита DATA. Придется сильно лопатить библиотеку - лучше перенести на другой порт или поставить доп. микросхему типа CD4094 типа http://www.caxapa.ru/sch/lcd3v.html. Наверное библиотеку придется написать самому. А может найдете универсальную (где любые пины).
|
|
|
|
|
Mar 29 2008, 18:20
|
Участник

Группа: Новичок
Сообщений: 19
Регистрация: 2-01-07
Пользователь №: 24 037

|
Цитата(oll @ Mar 29 2008, 20:38)  Трудновато будет - библиотека использует 4 смежных старших бита DATA. Придется сильно лопатить библиотеку - лучше перенести на другой порт или поставить доп. микросхему типа CD4094 типа http://www.caxapa.ru/sch/lcd3v.html. Наверное библиотеку придется написать самому. А может найдете универсальную (где любые пины). Спасибо. Буду искать. А перенести на другой порт не получится. Можно только PortB и PortD, и на обоих нужные пины заняты. А можно ли раскидать по разным портам? Вот так: PortB Bit 0 - RS PortB Bit 1 - RD PortB Bit 2 - EN PortB Bit 3 - Free PortC Bit 0 - Data4 PortC Bit 1 - Data5 PortC Bit 2 - Data6 PortC Bit 3 - Data7 Или так: PortB Bit 0 - RS PortB Bit 1 - RD PortB Bit 2 - EN PortB Bit 3 - Free PortD Bit 0 - Data4 PortD Bit 1 - Data5 PortD Bit 2 - Data6 PortD Bit 3 - Data7 Использовать младшие биты, но смежные. PortB и PortD можно поменять. Главное, что PortB6,7 и PortD4 свободны.
Сообщение отредактировал Barni - Mar 29 2008, 18:20
|
|
|
|
|
Mar 29 2008, 18:42
|

Знающий
   
Группа: Свой
Сообщений: 902
Регистрация: 2-01-06
Из: Краснодар
Пользователь №: 12 768

|
Если вы все-таки твердо намерены использовать библиотеку CV,вам надо перенести 4 разряда данных в младшую тетраду,а разряды управления переназначить на свободные разряды порта в старшей,поменять в нужных вам библиотечных функциях направления сдвига нибла и маску. А вообще библиотечные фукции в CV,ммм,неадекватные.Ресурсы жрут безбожно,т.к сделаны универсальными без привязки к конкретным кристалам.Т.е нигде не используются прерывания,вся времянка формируется только аппаратно,в математике умножение софтовое,куча асмовских кусков в общем-то даром не нужных и т.д. ИМХО,все-таки лучше взять готовую адекватную либу и портировать.
--------------------
"Hello, word!" - 17 errors 56 warnings
|
|
|
|
|
Mar 29 2008, 20:21
|
Участник

Группа: Новичок
Сообщений: 19
Регистрация: 2-01-07
Пользователь №: 24 037

|
to oll Спасибо, попробую разобраться. to WHALE А можно конкретные ссылки, а то я программист начинающий, и сразу понять что из ху трудно.
|
|
|
|
|
Mar 29 2008, 21:27
|
Участник

Группа: Новичок
Сообщений: 19
Регистрация: 2-01-07
Пользователь №: 24 037

|
Цитата(WHALE @ Mar 30 2008, 00:13)  вверху этого форума есть топик-архив исходников для AVR.Посмотрите-там для LCD HD47780 несколько штук есть,выберите на свой вкус.Кажется,есть и непосредственно под CV. Завтра(сегодня) буду изучать, а то уже пятый час Спасибо за помощь.
|
|
|
|
|
Mar 30 2008, 09:07
|

Знающий
   
Группа: Свой
Сообщений: 966
Регистрация: 27-05-06
Из: СПб
Пользователь №: 17 499

|
Цитата(dENIM @ Mar 30 2008, 00:55)  CV либы - отстой полный свои руками написать быстрее, чем заставить их работать  Кстати, кто-нибудь разбирался с математическими функциями CV с точки зрения быстродействия? Альтернативные функции работают быстрее? Интересует тригонометрия:sin, cos, atan2 ...
|
|
|
|
|
Mar 30 2008, 14:08
|
Частый гость
 
Группа: Участник
Сообщений: 163
Регистрация: 10-10-05
Пользователь №: 9 463

|
Цитата(Serj78 @ Mar 30 2008, 15:07)  Кстати, кто-нибудь разбирался с математическими функциями CV с точки зрения быстродействия? Альтернативные функции работают быстрее? Интересует тригонометрия:sin, cos, atan2 ... sin cos - не знаю делал давненько терморегулятор с термопарой на М48 - код+2 полинома в IAR (не помню версию) не влез по объему в M48, тот же код CV легко разместил. Делал по тупому - возведение в степень заменил умножением. Это конечно не показатель - может сейчас IAR лучше.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|