Gast
#424554
Hallo liebe Forum Gemeinde, ich programmiere gerade eine asynchrones System auf einem AVR Mikrocontroller. In meinem Wissen sind einige offenen Fragen und selber komme ich nicht auf die richtige Lösung. Programmablauf: Timer0 macht einen Interrupt bei 312µs und setzt ein Flagbit für die ADC Messung. Im Main Programm frage ich das Flagbit ab und mache die ADC Messung, danach wird der Kanal erhoeht und das Flagbit geloescht. Nach 8*312µs setzt mir die Interrupt Routine ein anderes Flagbit zur Regelung meiner PWM. Die Regelung wird in einer Funktion ausgeführt, wenn das Flagbit gesetzt ist, danach erhoehe ich den Kanal wieder und loesche das Flagbit. In der ISR setze ich ein weiteres Flagbit, wenn ich die Zeit von 125ms erreicht habe. In dieser Funktion messe ich eine Spannung und erhoehe den Kanalzaehler wieder und loesche das Flagbit. Mein Problem: Ich muesste einige berechnen durchführen und noch die serielle Schnittstelle abfragen bzw. mein FIFO, aber ganz ehrlich gesagt weiss ich nicht wann und wo ich diese Berechnungen machen soll. Soll ich die Berechnungen und FIFO Buffer Abfrage in der Main machen oder sollte ich die Berechnungen in meinen Funktionen machen? Mir kommt es momentan so vor das die Berechnungen zulange dauern und ich einige Flags verliere bzw. zu spaet ab arbeite. Torben