Gast
#825060
Hallo, ich habe Probleme mit dem Compare Mode des 16bit Timers. Mein Programm soll den Ausgang OC1A mit einer langsam schneller werdenden Frequenz ansteuern. Dazu will ich kontinuierlich den Vergleichswert OCR1A Wert in einer Schleife ändern. f=(fquarz/(2*OCR1A) Um dies zeitlich zu koordinieren, warte ich bis der Controller das match bit im TIFR setzt(das er nach Interrupt wieder löscht). Leider springt der Controller nicht in meine for schleife und ändert somit den Wert nicht. In einer Simulation mit Win AVR hängt er in dem Interrupt ähnlich einer Schleife fest und verläßt diese nicht mehr. Frage ist warum. Wenn ich weiter das Programm verändere und z.B noch z.B ein Portb|(1<<1); in der while schleife setze überspringt er auch die for schleife, geht einmal in den compare interrupt und dann verharrt er in der while... Ich verstehe nicht was ich falsch mache. Bedanke mich im voraus für jede Hilfe. Zum Kompilieren verwende ich Programmers Notepad.