Спаривание mega8 с MT12232B
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Dru4 30 апреля 2005 г. 23:53

Доброго времени суток! Пол дня бьюсь, не могу сделать сабж. Хочется для начала вывести хоть что-то, но нифига не получается. PD0 и PD1 линии E1 и E2 соответственно, PD3-A0. RW на землю,порт B полностью на шину данных завёл. RES на питание. Пытаюсь использовать кривоватый код для инициализации, но ничего не получается -(((. Где косяк я спрятал не могу понять...
Код:
char cando,step;
void port_init(void)
{
PORTB = 0x00;
DDRB = 0xFF;
PORTC = 0x00;
DDRC = 0x00;
PORTD = 0x00;
DDRD = 0xFF;
}

//TIMER0 initialize - prescale:1024
// desired value: 100mSec
// actual value: 99,328mSec (0,7%)
void timer0_init(void)
{
TCCR0 = 0x00; //stop
TCNT0 = 0x9F; //set count
TCCR0 = 0x05; //start timer
}

#pragma interrupt_handler timer0_ovf_isr:10
void timer0_ovf_isr(void)
{
TCNT0 = 0x9F;
cando=1;step++;
}
void init_devices(void)
{
CLI();
port_init();
timer0_init();

MCUCR = 0x00;
GICR = 0x00;
TIMSK = 0x01; //timer interrupt sources
SEI();
}
void main(void)
{
cando=0;step=0;
init_devices();
PORTD=00000011; // E1=E2=1 A0=0
while(step<6){
if (cando=1)
{
CLI();
if (step=1){PORTB=11101110;} // RMW
if (step=2){PORTB=10100100;} // Static Drive 1
if (step=3){PORTB=10101001;} // Duty
if (step=4){PORTB=10101111;} // LCD On
if (step=5){PORTB=11100010;} // Reset
cando=0;
SEI();
}
}
PORTD=00000111; // E1=E2=1 A0=1
PORTB=10101110;
PORTD=00000000;
PORTD=11111111;
}

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru