Не в первый раз использую Мегу8, но никогда не было необходимости симулировать Timer1 в режиме FastPWM (14). Был крайне удивлен тем, что: 1) регистры OCR1A и OCR1B при предустановке не меняют свое содержимое или прописывается только значение младшего байта; 2) счетчик досчитывает до 0x1FF, происходит реверс и далее до нуля. Потом опять прямой счет... короче это Phase Correct получается.
Что это такое? Так у всех?
В Протеусе как ни странно все правильно выходит.
Текст программы:
Код
#include <avr/io.h>
int main (void)
{
DDRB=0b00000110;
TCCR1A=0b10100010;
TCCR1B=0b00011001;
ICR1=0x1000;
OCR1A=0x0800;
OCR1B=0x00;
while(1)
{
asm("nop");
}//while(1)
}//void
Кому-нибудь удавалось правильно симулировать Timer1 в режиме FastPWM у ATMega8 в Студии? Спасибо!
Живи днем так, чтобы ночью ты спал спокойно.