Hallo,
man liest ja das man die Aufgabe innerhalb einer Interruptfunktion möglichst kurz halten soll. Das habe ich jetzt probiert indem ich den Inhalt der Interruptfunktion in die main/while Schleife kopiert habe und nur noch die benötigten Zählvariablen in der Timer C Interruptfunktion hochzählen lasse. Eigentlich sollte sich das Programm wie vorher verhalten. Tut es aber nicht ganz zu 100%.
Meine Vermutung ist folgende. Ein Interrupt unterbricht doch die laufende Programmabarbeitung. Kann es jetzt sein, dass der Interrupt das auslesen der Temp.sensoren und/oder die LCD Ausgabe mittendrin stört?
Oder ist vielleicht der Compiler oder Interrupt so schlau und macht die gerade begonne Funktion noch zu Ende? Nur dann wäre es kein echter Interrupt mehr.
Was mich zu dem Schluss bringt, dass man zeitkritsche Aufgaben unbedingt in die Interruptfunktion schreiben muß, egal wie groß diese sind.
Nur muß diese wie in meinen Fall innerhalb von 100ms abgearbeitet sein. Sonst stolpert der Interrupt über seine eigenen Füsse. Bei mir kein Problem, aber bei großen Projekten sehe ich da schon ein Problem. Was macht man dann?
Tschau
Mr. Teflon
