Код: Выделить всё
#include <mega8.h>
const unsigned char SineWave1[16] = {1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0};
const unsigned char SineWave2[16] ={0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0};
unsigned char Index=0;
interrupt [TIM1_COMPA] void timer1_compa_isr(void)
{
Index = (Index+1)&0x0F;
PORTB.1=SineWave1[Index];
PORTB.0=SineWave2[Index];
// PORTB.1=~ PORTB.1;
TCNT1=0;
}
void main(void)
{
PORTB=0x00;
DDRB=0x03;
TCCR1B=0x01;
OCR1AH=0x00;
OCR1AL=0x08;
TIMSK=0x10;
#asm("sei")
while (1);
}
Фьюзы выставил от внешнего кварца. Но вот незадача. Максимальная частота модуляции при кварце 10МГц- 18кГц. Что маловато для импульсного транформатора. Есть ли возможность повысить частоту модуляции на етом микроконтроллере? На STMe я просто использовал 2 таймера+ таймер синхтонизации. Можна ли тут так сделать?