Предистория: до попыток связать дисплей с атмегой проводилось проверочное включение с не очень надежным питанием(нечто китайское + MC7805(аналог ЕН5) + керамическй конденсатор на 15 нанофарад). Признаки жизни дисплей подавал 2 раза - сначала засветилась узкая полоска, при втором включении был короткий перелив. При дальнейших включениях признаков жизни не было.
На данный момент питание надежное. При включении, опять же, никаких признаков жизни - как при попытке управления с контроллера так и без оного.
Вопрос: какова вероятность смерти дисплея в результате проверочного включения? Есть ли способ проверить его работоспособность отдельно от контроллера?
Или дело все-же в коде?
Пробовал использовать код отсюда:
http://homepage.hispeed.ch/peterfleury/avr...tware.html#libsА так же нечто самописное:
( собиралось с avr-gcc -Os -DF_CPU 8000000UL -fno-builtin -mmcu=atmega32 -c main.c )
Код
#include <util/delay.h>
#include <avr/io.h>
#define EN _BV(PC4)
#define RW _BV(PC5)
#define RS _BV(PC6)
#define DB7 _BV(PC0)
#define DB6 _BV(PC1)
#define DB5 _BV(PC2)
#define DB4 _BV(PC3)
#define T_EN PORTC |= EN; _delay_us(5); PORTC ^= EN
void d_init(void){
DDRC = _BV(PC0) | _BV(PC1) | _BV(PC2) | _BV(PC3) | _BV(PC4) | _BV(PC5) | _BV(PC6);
_delay_ms(16);
PORTC = DB5 | DB4;
T_EN;
_delay_ms(5);
T_EN;
_delay_us(150);
PORTC ^= DB4;
T_EN;
_delay_ms(1);
PORTC |= DB7 | DB6;
T_EN;
_delay_us(40);
PORTC ^= DB6 | DB5 | DB4;
T_EN;
_delay_us(40);
PORTC ^= DB7 | DB4;
T_EN;
_delay_us(40);
PORTC ^= DB4 | DB5;
T_EN;
_delay_us(50);
PORTC ^= DB5;
}
void putc(char c){
PORTC = RS;
PORTC |= c << 4;
T_EN;
PORTC ^= (c >> 4) << 4;
T_EN;
PORTC |= DB7 | DB6 | DB5 | DB4;
PORTC ^= RS;
_delay_ms(1);
}
int main(void){
d_init();
putc('w');
}