Barni 0 29 марта, 2008 Опубликовано 29 марта, 2008 · Жалоба Господа, кто может переделать файл 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 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
oll 0 29 марта, 2008 Опубликовано 29 марта, 2008 · Жалоба Не понятно - опишите подробнее задачу (где какие пины). я менял в секции 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, использовав стороннюю библиотеку (в приложении) все нормально работает. Если непонятно с русскими символами - расскажу как. LCD_lib.zip Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Barni 0 29 марта, 2008 Опубликовано 29 марта, 2008 · Жалоба Не понятно - опишите подробнее задачу (где какие пины). я менял в секции 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 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
oll 0 29 марта, 2008 Опубликовано 29 марта, 2008 · Жалоба Трудновато будет - библиотека использует 4 смежных старших бита DATA. Придется сильно лопатить библиотеку - лучше перенести на другой порт или поставить доп. микросхему типа CD4094 типа http://www.caxapa.ru/sch/lcd3v.html. Наверное библиотеку придется написать самому. А может найдете универсальную (где любые пины). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Barni 0 29 марта, 2008 Опубликовано 29 марта, 2008 (изменено) · Жалоба Трудновато будет - библиотека использует 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 свободны. Изменено 29 марта, 2008 пользователем Barni Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
WHILE 0 29 марта, 2008 Опубликовано 29 марта, 2008 · Жалоба Если вы все-таки твердо намерены использовать библиотеку CV,вам надо перенести 4 разряда данных в младшую тетраду,а разряды управления переназначить на свободные разряды порта в старшей,поменять в нужных вам библиотечных функциях направления сдвига нибла и маску. А вообще библиотечные фукции в CV,ммм,неадекватные.Ресурсы жрут безбожно,т.к сделаны универсальными без привязки к конкретным кристалам.Т.е нигде не используются прерывания,вся времянка формируется только аппаратно,в математике умножение софтовое,куча асмовских кусков в общем-то даром не нужных и т.д. ИМХО,все-таки лучше взять готовую адекватную либу и портировать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
oll 0 29 марта, 2008 Опубликовано 29 марта, 2008 · Жалоба Да так можно сделать, но лопатить все равно придется (придется завести вторую переменную __lcd_port типа __lcd_port2) и в основном файле Си написать что-то типа: // Alphanumeric LCD Module functions #asm .equ __lcd_port=0x1B ;PORTA .equ __lcd_port2=0x18;PORTB #endasm #include "lcd.h" дальше в lcd.lib править - если упр. сигналы - __lcd_port, дата - __lcd_port2 учесть что дата у вас младшие разряды Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Serj78 0 29 марта, 2008 Опубликовано 29 марта, 2008 · Жалоба Да, там (в штатной библиотеке CV) еще есть место где повиснуть может- программа ждет в бесконечном цикле ready от индикатора. это место я дорабатывал... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
WHILE 0 29 марта, 2008 Опубликовано 29 марта, 2008 · Жалоба ну это один из милых приветов библиотек CV- завис контроллер LCD и повесил вусмерть контроллер,а на длинном шлейфе это бывает.не говоря о том,что это нафик не нужно и только безбожно тормозит программу. Организую вывод по таймеру и горя не знаю. И зачем это надо,когда полно нормально написанных и выложенных в сеть исходников? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Barni 0 29 марта, 2008 Опубликовано 29 марта, 2008 · Жалоба to oll Спасибо, попробую разобраться. to WHALE А можно конкретные ссылки, а то я программист начинающий, и сразу понять что из ху трудно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
WHILE 0 29 марта, 2008 Опубликовано 29 марта, 2008 · Жалоба вверху этого форума есть топик-архив исходников для AVR.Посмотрите-там для LCD HD47780 несколько штук есть,выберите на свой вкус.Кажется,есть и непосредственно под CV. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Barni 0 29 марта, 2008 Опубликовано 29 марта, 2008 · Жалоба вверху этого форума есть топик-архив исходников для AVR.Посмотрите-там для LCD HD47780 несколько штук есть,выберите на свой вкус.Кажется,есть и непосредственно под CV. Завтра(сегодня) буду изучать, а то уже пятый час Спасибо за помощь. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
denim 0 29 марта, 2008 Опубликовано 29 марта, 2008 · Жалоба CV либы - отстой полный свои руками написать быстрее, чем заставить их работать :( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Serj78 0 30 марта, 2008 Опубликовано 30 марта, 2008 · Жалоба CV либы - отстой полный свои руками написать быстрее, чем заставить их работать :( Кстати, кто-нибудь разбирался с математическими функциями CV с точки зрения быстродействия? Альтернативные функции работают быстрее? Интересует тригонометрия:sin, cos, atan2 ... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
oll 0 30 марта, 2008 Опубликовано 30 марта, 2008 · Жалоба Кстати, кто-нибудь разбирался с математическими функциями CV с точки зрения быстродействия? Альтернативные функции работают быстрее? Интересует тригонометрия:sin, cos, atan2 ... sin cos - не знаю делал давненько терморегулятор с термопарой на М48 - код+2 полинома в IAR (не помню версию) не влез по объему в M48, тот же код CV легко разместил. Делал по тупому - возведение в степень заменил умножением. Это конечно не показатель - может сейчас IAR лучше. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться