Gast
#113322
Hallo zusammen, ich hätte da, an diesem wundeschönen Sonntag, mal wieder ein Problem: Mit einem Mega8 würde ich gerne eine Drehzahl und eine analoge Spannung messen. Ich arbeite mit Bascom. Ist dieses Grundprinzip soweit richtig (???): Timer0 läuft los und zählt munter vor sich hin. Bei jedem Überlauf wird in der Interruptroutine die Variable A um 1 hochgezählt. Erfährt nun der externe Interrupt Int0 eine steigende Flanke (kommt zu Testzwecken erstmal aus einem Rechteckgenerator), so wird die Routine ausgelöst und A ist das vorläufige Ergebnis (Dreh_temp = A). Dreh_temp wird zur Beobachtung erstmal auf dem LCD ausgegeben. A wird gleich 0 gesetzt und es geht wieder von vorne los. Klappt soweit :-))) Nun möchte ich jedoch etwa alle 200ms ADC1 auslesen und den Wert zusammen mit Dreh_temp auf dem LCD ausgeben. Setzte ich diesen Vorgang mit in die Int0-Routine klappt alles einwandfrei, jedoch ist dann die "Refresh-Rate" des LCD und auch das Lesen des ADC0 abhängig von der Drehzahl. Das wollen wir ja nun nicht. Also habe ich Timer1 eingerichtet. Nun das Problem: Irgendwie kollidieren die beiden. Ich lasse erstmal nur eine LED durch Timer1 ca. alle 500ms blinken. In dem Moment, wo die LED blinkt, stimmt der Wert von Dreh_temp im LCD nicht mehr. Dort wird z.B. immer 1909 angezeit und wenn durch Timer1 die LED blickt steht da kurz z.B. 1766 Was mache ich falsch ??? Vielen Dank !!! Nadja