Написал простенькую прогу, смотрю на выводе выходную частоту, при любых коэф. деления на выходе 1кГц.
Код
static void avr_init(void)
{ TCCR1B=(1<<CS10)|(1<<WGM12);// ctc mode
OCR1A=4000;//время 1 милисекунда
sei();
}
int main(void){
clock_prescale_set(clock_div_2);
avr_init();
DDRB|=_BV(1)|_BV(0);
while(1)
{
PORTB^=_BV(1);
if (TIFR1 & _BV(OCF1A)) // 0.001 sek
{
TIFR1 = _BV(OCF1A);
PORTB^=_BV(0);
}
}
}
Все разобрался, этот код работает. Не работал UART из-за этого затормозил. Да и сейчас почему то получается, если взять значение из таблицы baud rate для 4Meg (4800
51 0.2%), то принимает нормально на
9600. Для меги88.
Сообщение отредактировал horoc - Jan 4 2012, 21:41
Прикрепленные файлы
m48.zip ( 46.64 килобайт )
Кол-во скачиваний: 13