Jetzt programmiere ich schon mehr als ein halbes Jahr für diese Controller und merke erst jetzt, dass mein Code die im Wiki beschriebenen Fehler drin hat.
Ich habe es jetzt bei einer sehr Interrupt-freudigen Applikation gemerkt.
Nun zum beheben. Am einfachsten ist es einfach all diese Stellen mit cli und sei vor IRQ zu schützen, oder?
Ich habe nun einen Algorithmus, welcher ca. 50 Zeilen lang ist und nur mit 16-Bit und 32-Bit Variabeln rechnet. Jetzt wie mache ich das am Besten? Daneben messe ich noch eine Frequenz am Analog-Comparator (bis ca. 6kHz) und generiere über den Timer noch ein Servo-Siganl etc. Ich sollte die Interrupts also nicht lange aufhalten. Jetzt wenn ich am Anfang vom Algorithmus cli mache und dann immer wieder einmal sei und gleich wieder cli (ohne etwas dazwischen) werden dann im Takt nachdem cli ausgeführt wurde die IRQ abgearbeitet, bevor schonwieder sei kommt?