-
-
Erfahrener Benutzer
Roboter-Spezialist
Grundsatzfrage 2 Timer benutzen
Hallo,
ich habe mal wieder eine saublöde frage:
Ich will in einem programm gleichzeitig 2 timer laufen lassen. der eine tickt alle 560µsec um ein pwm signal auszuwerten, der zweite jede sekunde als timeout. Das programm läuft nur mit timer0 super, nun stelle ich mit die frage, was passiert, wenn beide timer gleichzeitig auslösen würden. wartet dann der zweite, bis der erste fertig ist? (es wird ja wärend eines interrupts normal kein zweiter interrupt ausgelöst)
-
Erfahrener Benutzer
Robotik Einstein
Ich würd sagen mal ausprobieren. Du kannst ja mal überschlagen nach wieviel Sekunden es das erste mal der Fall wäre.
Ich bin der Meinung, das solange eine ISR läuft die nächste ISR erst ausgeführt wird wenn die erste fertig ist.
Die Timer laufen selbstständig, deshalb müsste es theoretisch möglich sein das sie mal gleichzeitig auslösen. Im Gegensatz zum Programm was ja immer nur einen Schritt ausführt. Da wäre es nicht möglich das solche Aktionen gleichzeitig anstehen.
Soll der erste Timer eine Frequenz messen oder ein PWM erzeugen. Wenn erzeugen würde es keine Probleme geben.
-
Erfahrener Benutzer
Robotik Einstein
Hallo,
Wenn sowas passiert hat der zweite Timer pechgehabt, und geht leer aus.
Er wartet auch nicht, Das ist auch der Grund, warum man die Interruptroutinen kurz halten soll.
Gruß Sebastian
-
Erfahrener Benutzer
Roboter-Spezialist
Das programm macht nix anderes, als pwm entschlüsseln. (timer0 tau ist ca 560ms der timer läuft mit minimal weniger, glaub ich) timer1 soll einmal die sekunde auslösen und gucken, wenn ein signal innerhalb einer sekunde öfters gefunden wird, soll das einmal die sekunde gecheckt werden. habe jetzt nen counter dazugebaut, der bei 1800 (ca 1 sekunde) nachschaut (nur timer0)
-
Erfahrener Benutzer
Robotik Einstein
Hab ich nicht verstanden, sorry.
Du willst also eine Frequenz messen? Und wenn diese größer als 1Hz ist soll sie erst gemessen werden?
-
Erfahrener Benutzer
Roboter-Spezialist
ich lese pwm ein,
jeder high pegel hat andere längen, so werden daten übertragen.
ich lese diese aus (langer high=1, kurzer high=0)
werden zwei bytes öfters als 5 mal in einer sekunde übertragen werden, muss was gemacht werden. also schau ich einmal die sekunde nach. so wie ichs gemacht habe, sollte es gehen.
-
Erfahrener Benutzer
Robotik Einstein
Jetzt kann ich dir folgen. Den Begriff PWM finde ich an dieser Stelle nur etwas unpassend dafür. Aber ichhätte auch kein anderes Wort dafür
Wie auch immer, mein Segen hast du.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen