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

 
 
 
Reply to this topicStart new topic
> SC1001, Как управлять данным индикатором
slash9
сообщение Jul 16 2006, 17:03
Сообщение #1





Группа: Новичок
Сообщений: 6
Регистрация: 16-07-06
Пользователь №: 18 845



Подскажите пожалуйста, может кто сталкивался с данным ЖКИ. Подключаю его к attinny 2313, пытаюсь написать программку для МК в CVAVR, в нем есть встроенная библиотека LCD.h, но с ней что-то индикатор не хочет фунциклировать. т.е. при включении устройства. просто квадратики на индикаторе. Во время типа вывода какой-то инфы на него, квадратики просто кратковременно меняют свою контрастность почти исчезая ,и потом опять появляются.
В чем может быть проблема? что я могу не так делать. Может ли быть проблема с адресами, как ее править?
Go to the top of the page
 
+Quote Post
Nanobyte
сообщение Jul 17 2006, 09:25
Сообщение #2


За битами по регистрам гоняюсь
***

Группа: Свой
Сообщений: 457
Регистрация: 24-04-06
Из: Таганрог
Пользователь №: 16 446



Может быть, у Вас неправильно отрегулирована контрастность? Судя по миганию знакомест, с доступом к индикатору всё в порядке.


--------------------
Курсор влево, курсор вправо - считается хакерством. FORMAT C: производится без предупреждения
Go to the top of the page
 
+Quote Post
slash9
сообщение Jul 18 2006, 12:33
Сообщение #3





Группа: Новичок
Сообщений: 6
Регистрация: 16-07-06
Пользователь №: 18 845



Цитата(Nanobyte @ Jul 17 2006, 13:25) *
Может быть, у Вас неправильно отрегулирована контрастность? Судя по миганию знакомест, с доступом к индикатору всё в порядке.


Да контрастность регулировал и так и так пробовал, всеравно не получается, ничего не видно. только квадратики
Go to the top of the page
 
+Quote Post
SergSit
сообщение Jul 18 2006, 15:06
Сообщение #4


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

Группа: Свой
Сообщений: 173
Регистрация: 9-12-05
Пользователь №: 12 031



В каком шрифте выводиш сообщения в русском или англицком? Если в русском, то делал ли перекодировку. Может очень часто выводиш сообщения на индикатор, поэтому и моргание. А лучше скинь программу посмотреть и что то определенное сказать.
Go to the top of the page
 
+Quote Post
slash9
сообщение Jul 18 2006, 15:19
Сообщение #5





Группа: Новичок
Сообщений: 6
Регистрация: 16-07-06
Пользователь №: 18 845



Цитата(SergSit @ Jul 18 2006, 19:06) *
В каком шрифте выводиш сообщения в русском или англицком? Если в русском, то делал ли перекодировку. Может очень часто выводиш сообщения на индикатор, поэтому и моргание. А лучше скинь программу посмотреть и что то определенное сказать.

Вот типа программка, правда я не знаю правильная она или нет, я еще новичок в этом деле, делал по уроку. Но не знаю правильно или нет.
#include <tiny2313.h>

// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0x18 ;PORTB
#endasm
#include <lcd.h>

// Declare your global variables here

void main(void)
{
// Declare your local variables here

// Crystal Oscillator division factor: 1
#pragma optsize-
CLKPR=0x80;
CLKPR=0x00;
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif

// Input/Output Ports initialization
// Port A initialization
// Func2=In Func1=In Func0=In
// State2=T State1=T State0=T
PORTA=0x00;
DDRA=0x00;

// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTB=0x00;
DDRB=0x00;

// Port D initialization
// Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTD=0x00;
DDRD=0x00;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=FFh
// OC0A output: Disconnected
// OC0B output: Disconnected
TCCR0A=0x00;
TCCR0B=0x00;
TCNT0=0x00;
OCR0A=0x00;
OCR0B=0x00;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer 1 Stopped
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// Interrupt on any change on pins PCINT0-7: Off
GIMSK=0x00;
MCUCR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;

// Universal Serial Interface initialization
// Mode: Disabled
// Clock source: Register & Counter=no clk.
// USI Counter Overflow Interrupt: Off
USICR=0x00;

// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;

// LCD module initialization
lcd_init(10);

while (1)
{

lcd_putchar('F');

};
}
Go to the top of the page
 
+Quote Post
SergSit
сообщение Jul 18 2006, 16:24
Сообщение #6


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

Группа: Свой
Сообщений: 173
Регистрация: 9-12-05
Пользователь №: 12 031



В принципе правильно. Только убери lcd_putchar('F') из цикла или поставь в цикле задержку delay_ms(20)( 20ms это условно, если моргание продолжиться увелить) Если убереш из цикла у тебя выведиться один символ F. Если у тебя в проге ничего не менять то LCD не справляеться по скорость с информацией поступающей на вход
Go to the top of the page
 
+Quote Post
slash9
сообщение Jul 18 2006, 16:35
Сообщение #7





Группа: Новичок
Сообщений: 6
Регистрация: 16-07-06
Пользователь №: 18 845



Цитата(SergSit @ Jul 18 2006, 20:24) *
В принципе правильно. Только убери lcd_putchar('F') из цикла или поставь в цикле задержку delay_ms(20)( 20ms это условно, если моргание продолжиться увелить) Если убереш из цикла у тебя выведиться один символ F. Если у тебя в проге ничего не менять то LCD не справляеться по скорость с информацией поступающей на вход

Поставил в цикле delay_ms(20);
Когда прошил пяит квадратиков сначала один раз маргнули, и остались светиться, потом через несколько секунд пять раз моргнули, когда моргают то в процессе исчезания первых пяти квадратиков, вторые пять как бы чуток виднеться начинают потом исчезают. Потом еще через некоторое время два раза моргают квадратики ,потом светятся, а потом опять по кругу пять раз потом два раза и .т.д
Go to the top of the page
 
+Quote Post
SergSit
сообщение Jul 18 2006, 17:13
Сообщение #8


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

Группа: Свой
Сообщений: 173
Регистрация: 9-12-05
Пользователь №: 12 031



Поставь задержку 1000ms. а в место 'F' поставь 0x31( это код цифры , только без кавычек !) Должно быть 1111 и т.д Единица должна появляться один раз в секунду. Если опять квадратики, то или что_то я не знаю или другая кодовая таблица в лсд. Может напиши lcd_init(5)(это уже на авось). Подключаеш индикатор по 4-х проводной шине? Провода проверил?
Go to the top of the page
 
+Quote Post
slash9
сообщение Jul 18 2006, 17:53
Сообщение #9





Группа: Новичок
Сообщений: 6
Регистрация: 16-07-06
Пользователь №: 18 845



Цитата(SergSit @ Jul 18 2006, 21:13) *
Поставь задержку 1000ms. а в место 'F' поставь 0x31( это код цифры , только без кавычек !) Должно быть 1111 и т.д Единица должна появляться один раз в секунду. Если опять квадратики, то или что_то я не знаю или другая кодовая таблица в лсд. Может напиши lcd_init(5)(это уже на авось). Подключаеш индикатор по 4-х проводной шине? Провода проверил?

Сдедал как Вы сказали, один раз моргает после того как прошивка закончиться и все и квадратики светятся.
У данного ЖКИ контроллер KS0066U, слышал что енто типа аналог HD44780, может всетаки проблемка в другом кроется? может встроенная библиотека для LCD в CVAVR не подходит? Да подключаю по 4-х битной, провода вроде целые.

Сообщение отредактировал slash9 - Jul 18 2006, 17:54
Go to the top of the page
 
+Quote Post
SergSit
сообщение Jul 18 2006, 19:54
Сообщение #10


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

Группа: Свой
Сообщений: 173
Регистрация: 9-12-05
Пользователь №: 12 031



Библиотека правильная. Пользуюсь ею. ЖКИ использую DV16001. Все работает. Выполняются все команды из этой библиотеки. Почитай ЖКИ
Может у тебя китайский знакогенератор в ЖКИ, хотя тогда должы отображаться иероглефы. Незнаю. Попробуй записать свой символ в знакогенератор и его отобразить. В верхнем материале там есть это.
Go to the top of the page
 
+Quote Post
slash9
сообщение Jul 20 2006, 18:17
Сообщение #11





Группа: Новичок
Сообщений: 6
Регистрация: 16-07-06
Пользователь №: 18 845



Цитата(SergSit @ Jul 18 2006, 23:54) *
Библиотека правильная. Пользуюсь ею. ЖКИ использую DV16001. Все работает. Выполняются все команды из этой библиотеки. Почитай ЖКИ
Может у тебя китайский знакогенератор в ЖКИ, хотя тогда должы отображаться иероглефы. Незнаю. Попробуй записать свой символ в знакогенератор и его отобразить. В верхнем материале там есть это.

А как делать вот это
Операция записи для 4-х разрядной шины
Установить значение линии RS
Вывести значение старшей тетрады байта данных на линии шины DB4...DB7
Установить линию Е = 1
Установить линию Е = 0
Вывести значение младшей тетрады байта данных на линии шины DB4...DB7
Установить линию Е = 1
Установить линию Е = 0
Установить линии шины DB4...DB7 = HI
Операция чтения для 4-х разрядной шины
Установить значение линии RS
Установить линию R/W = 1
Установить линию Е = 1
Считать значение старшей тетрады байта данных с линий шины DB4...DB7
Установить линию Е = 0
Установить линию Е = 1
Считать значение младшей тетрады байта данных с линий шины DB4...DB7
Установить линию Е = 0
Установить линию R/W = 0

А может быть проблемма в самом контроллере?
может attinny 2313 не правильно работает с ЖКИ?
Go to the top of the page
 
+Quote Post

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

 


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


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