"wait wait wait" war nur ein ausruf, keine Frage XD
das Flag für den Interrupt ist Teil eines Registers, beschrieben in der IO.h du musst interrupt.h nicht zwingend laden für das Flag ... Wenn du keine ISR angelegt hast, springt er an die Vektroadresse, bekommt eine schöne 0xf slide serviert und landet irgendwo, nur nicht da wo er hingehört!
Daher als Grundregel, niemals einen Interrupt zu aktiviern bevor man nicht doppel/dreifach gecheckt hat dass man den (RICHTIGEN) Vektor auch implementiert hat ... udn wenn nur ein gammeliges NOP() drin steht
Was die Timer angeht .. ich hab zu viele Controllerdatenblätter gelesen als dass ich 100% sicher sein könnte welcher Timer wie tickt ohne gezielt nachzuschlagen XD
Zum Thema: dein programmierter Modus ist Phase Correct mit OCRA2 als TOP Register (WGM22|20) und compare up active (COM1|0) bei Output A ... das wiederspricht sich ... wenn du dein OCR2A in der Schleife updatest, veränderst du die Frequenz, denn dein TOP WErt entspricht immer OCR2A! Du müsstest schon OCR2B und den entsprechenden Pin benutzen damit das klappen kann XD
ist mir aber auch erst klar geworden als ich die WGM Tabelle vor mir hatte
und dennoch wäre ich dafür ein normales Fast PWM mit festem TOP von 0xFF zu benutzen, weil man dann eben nicht diese Problem hat
Lesezeichen