Утро убил, понять не могу.
Собственно хочу запустить таймер с переполнением 1мСек
Код
void init_mk(void)
{
ACSRA=0x80; //запрет компаратора
DDRB =0b01000010; //PB1,PB3,PB6 - выхода
PORTB=0b10110000; //подтягивающие резисторы на входах PB4,PB5
DDRA =0b11111100; //PA2,PA3,PA4,PA5,PA6,PA7
PORTA=0b00000000;
wdt_enable(WDTO_2S); //сторожевой таймер 2 сек
DIDR0=0x00;
DIDR1=0x00;
ADCSRA=(1<<ADEN)|(1<<ADPS2)|(1<<ADPS1); //разрешение АЦП 125кГц
PLLCSR=(1<<PLLE); // Enable the PLL
_delay_us(100);
while ((PLLCSR & 1)==0); // Wait for the PLL to lock
PLLCSR|=0x04;//PLLCSR=(1<<PCKE); // Enable the 64MHz clock
TCCR1A=(1<<COM1A1)|(1<<PWM1A); //настройка режима таймера1
TCCR1B=(1<<CS11)|(1<<CS10); //настройка делителя таймера1
OCR1A=0x01; //начальное значение таймера1
TCCR0B=(1<<CS01)|(1<<CS00); //установка делителя 64 для Timer0
TCNT0H=0x00;
TCNT0L=0x83; //начальное значение период 1 mS
TIMSK=(1<<TOIE0); //разрешение прерывания при переполнении Timer0
}
{
ACSRA=0x80; //запрет компаратора
DDRB =0b01000010; //PB1,PB3,PB6 - выхода
PORTB=0b10110000; //подтягивающие резисторы на входах PB4,PB5
DDRA =0b11111100; //PA2,PA3,PA4,PA5,PA6,PA7
PORTA=0b00000000;
wdt_enable(WDTO_2S); //сторожевой таймер 2 сек
DIDR0=0x00;
DIDR1=0x00;
ADCSRA=(1<<ADEN)|(1<<ADPS2)|(1<<ADPS1); //разрешение АЦП 125кГц
PLLCSR=(1<<PLLE); // Enable the PLL
_delay_us(100);
while ((PLLCSR & 1)==0); // Wait for the PLL to lock
PLLCSR|=0x04;//PLLCSR=(1<<PCKE); // Enable the 64MHz clock
TCCR1A=(1<<COM1A1)|(1<<PWM1A); //настройка режима таймера1
TCCR1B=(1<<CS11)|(1<<CS10); //настройка делителя таймера1
OCR1A=0x01; //начальное значение таймера1
TCCR0B=(1<<CS01)|(1<<CS00); //установка делителя 64 для Timer0
TCNT0H=0x00;
TCNT0L=0x83; //начальное значение период 1 mS
TIMSK=(1<<TOIE0); //разрешение прерывания при переполнении Timer0
}
Заранее спасибо!