Gast
#406616
Hallo nochmal,
so nun ist der sinus berechnet und wie folgt abgelegt:
unsigned char sinetable[] PROGMEM = {128, 131, 134, 137, 140, ... };
Es soll nun OC2 damit beschickt werden:
ISR(TIMER2_COMP_vect)
{
OCR2 = pgm_read_byte(sinetable + iOCR2Offset);
iOCR2Offset++;
}
iOCR2Offset ist volatile und mit 0 initialisiert.
Der timer ist wie folgt initialisiert:
void initTimer2(void)
{
// Timer2 FastPWM, toglge OCR2 when compare
TCCR2 = _BV(WGM20) | _BV(WGM21) | _BV(COM20);
OCR2 = 0;
}
Compilieren und flashen macht keine Probleme, nur passiert absolut nix
an der LED die am OC2 Pin hängt :(
Wenn ich den Pin manuell auf high setze leuchtet sie allerdings.
Wo habe ich den Fehler gemacht ?
Werte im sintable müssen HEX sein statt uint ?
Oder habe ich was grundsätzliches falsch verstanden/gemacht ?
Danke,
Markus