реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> LCD, AVR и CodeVisionAVR C, помогите изменить подключение
Barni
сообщение Mar 29 2008, 12:24
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 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
 
Go to the top of the page
 
+Quote Post
oll
сообщение Mar 29 2008, 16:34
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 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, использовав стороннюю библиотеку (в приложении) все нормально работает. Если непонятно с русскими символами - расскажу как.
Прикрепленные файлы
Прикрепленный файл  LCD_lib.zip ( 3.9 килобайт ) Кол-во скачиваний: 51
 
Go to the top of the page
 
+Quote Post
Barni
сообщение Mar 29 2008, 16:53
Сообщение #3


Участник
*

Группа: Новичок
Сообщений: 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
Go to the top of the page
 
+Quote Post
oll
сообщение Mar 29 2008, 17:38
Сообщение #4


Частый гость
**

Группа: Участник
Сообщений: 163
Регистрация: 10-10-05
Пользователь №: 9 463



Трудновато будет - библиотека использует 4 смежных старших бита DATA. Придется сильно лопатить библиотеку - лучше перенести на другой порт или поставить доп. микросхему типа CD4094 типа
http://www.caxapa.ru/sch/lcd3v.html. Наверное библиотеку придется написать самому. А может найдете универсальную (где любые пины).
Go to the top of the page
 
+Quote Post
Barni
сообщение Mar 29 2008, 18:20
Сообщение #5


Участник
*

Группа: Новичок
Сообщений: 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
Go to the top of the page
 
+Quote Post
WHALE
сообщение Mar 29 2008, 18:42
Сообщение #6


Знающий
****

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



Если вы все-таки твердо намерены использовать библиотеку CV,вам надо перенести 4 разряда данных в младшую тетраду,а разряды управления переназначить на свободные разряды порта в старшей,поменять в нужных вам библиотечных функциях направления сдвига нибла и маску.
А вообще библиотечные фукции в CV,ммм,неадекватные.Ресурсы жрут безбожно,т.к сделаны универсальными без привязки к конкретным кристалам.Т.е нигде не используются прерывания,вся времянка формируется только аппаратно,в математике умножение софтовое,куча асмовских кусков
в общем-то даром не нужных и т.д.
ИМХО,все-таки лучше взять готовую адекватную либу и портировать.


--------------------
"Hello, word!" - 17 errors 56 warnings
Go to the top of the page
 
+Quote Post
oll
сообщение Mar 29 2008, 18:42
Сообщение #7


Частый гость
**

Группа: Участник
Сообщений: 163
Регистрация: 10-10-05
Пользователь №: 9 463



Да так можно сделать, но лопатить все равно придется (придется завести вторую переменную __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
учесть что дата у вас младшие разряды
Go to the top of the page
 
+Quote Post
Serj78
сообщение Mar 29 2008, 19:15
Сообщение #8


Знающий
****

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



Да, там (в штатной библиотеке CV) еще есть место где повиснуть может- программа ждет в бесконечном цикле ready от индикатора. это место я дорабатывал...
Go to the top of the page
 
+Quote Post
WHALE
сообщение Mar 29 2008, 19:25
Сообщение #9


Знающий
****

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



ну это один из милых приветов библиотек CV- завис контроллер LCD и повесил вусмерть контроллер,а на длинном шлейфе это бывает.не говоря о том,что это нафик не нужно и только безбожно тормозит программу. Организую вывод по таймеру и горя не знаю.
И зачем это надо,когда полно нормально написанных и выложенных в сеть исходников?


--------------------
"Hello, word!" - 17 errors 56 warnings
Go to the top of the page
 
+Quote Post
Barni
сообщение Mar 29 2008, 20:21
Сообщение #10


Участник
*

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



to oll
Спасибо, попробую разобраться.
to WHALE
А можно конкретные ссылки, а то я программист начинающий, и сразу понять что из ху трудно.
Go to the top of the page
 
+Quote Post
WHALE
сообщение Mar 29 2008, 21:13
Сообщение #11


Знающий
****

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



вверху этого форума есть топик-архив исходников для AVR.Посмотрите-там для LCD HD47780 несколько
штук есть,выберите на свой вкус.Кажется,есть и непосредственно под CV.


--------------------
"Hello, word!" - 17 errors 56 warnings
Go to the top of the page
 
+Quote Post
Barni
сообщение Mar 29 2008, 21:27
Сообщение #12


Участник
*

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



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

Завтра(сегодня) буду изучать, а то уже пятый час wacko.gif
Спасибо за помощь.
Go to the top of the page
 
+Quote Post
dENIM
сообщение Mar 29 2008, 21:55
Сообщение #13


Местный
***

Группа: Свой
Сообщений: 226
Регистрация: 13-03-07
Из: Севастополь
Пользователь №: 26 137



CV либы - отстой полный
свои руками написать быстрее, чем заставить их работать sad.gif
Go to the top of the page
 
+Quote Post
Serj78
сообщение Mar 30 2008, 09:07
Сообщение #14


Знающий
****

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



Цитата(dENIM @ Mar 30 2008, 00:55) *
CV либы - отстой полный
свои руками написать быстрее, чем заставить их работать sad.gif


Кстати, кто-нибудь разбирался с математическими функциями CV с точки зрения быстродействия?
Альтернативные функции работают быстрее?
Интересует тригонометрия:sin, cos, atan2 ...
Go to the top of the page
 
+Quote Post
oll
сообщение Mar 30 2008, 14:08
Сообщение #15


Частый гость
**

Группа: Участник
Сообщений: 163
Регистрация: 10-10-05
Пользователь №: 9 463



Цитата(Serj78 @ Mar 30 2008, 15:07) *
Кстати, кто-нибудь разбирался с математическими функциями CV с точки зрения быстродействия?
Альтернативные функции работают быстрее?
Интересует тригонометрия:sin, cos, atan2 ...

sin cos - не знаю
делал давненько терморегулятор с термопарой на М48 - код+2 полинома в IAR (не помню версию) не влез по объему в M48, тот же код CV легко разместил. Делал по тупому - возведение в степень заменил умножением. Это конечно не показатель - может сейчас IAR лучше.
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 9th July 2025 - 18:35
Рейтинг@Mail.ru


Страница сгенерированна за 0.01478 секунд с 7
ELECTRONIX ©2004-2016