Hallöchen erstmal. Folgendes hatte ich vor: Eine PWM mit maximal 4ms Pulsbreite mit dem ICP an einem ATMegaXX einlesen. Wenn ich nun einen Vorteiler von CLK/256 einstelle, habe ich eine "Abtastfrequenz" von 62,5 khz bei 16Mhz CLK Eine Pulsbreite von 0,016ms entspräche einem Timer-wert von 1 (wenn dieser bei 0 anfängt zu zählen) Eine Pulsbreite von 4,08ms entspräche einem Timer-wert von 255 (wenn der wieder bei 0 anfängt zu zählen) Der Timer1 (der das ICP kann) ist zwar ein 16bit Timer, aber ich will im Endeffekt nur einen 8 Bit wert haben. So. nun folgendes: Der Timer läuft ja sofort durch, nach dem einstellen eines Prescalers. Wenn jetzt eine steigende Flanke auftritt, und der Zählerstand bei 65532 steht und ich nach 10 "Schritten" wieder auslese, müsste im Register nun 65532+10 = 14 stehen. Und diese Differenz benötige ich schlussendlich für meine Pulsweitenmessung (2. Flanke = falling edge). Allerdings ist bei dieser Situation schon das Register übergelaufen, sodass mir eine sinnvolle Subtraktion nich mehr möglich scheint ! Ist es vielleicht möglich, den Timer bei der ersten (=rising) Edge zu resetten und zu starten und bei zweiter (=falling) edge einfach nur das Ergebnis (von 0 an gemessen) auszulesen? Das würde doch so einiges erleichtern. Vielen Dank im Vorraus
Ach so ein Mist. Hab schon die Lösung (denke ich) Ich lasse den Timer einfach bei der Rising Edge löschen und gucke bei der Falling Edge ihren Zählerstand nach :-) richtig?
Richtig... Nur kannst du den Timer dann nicht mehr (gleichzeitig) für andere Zwecke (PWM, Output-Compare...) nutzen. Aber warum soll das mit der Differenz nicht klappen? Dann bekommst du zwar einen Überlauf (Carry), aber das sollte doch nicht stören, oder? ...
@ Simon Du kannst doch auch mit übergelaufenenm Timer die Differenz bilden: 10 - 65532 = 14 der Überlauf in der Subtraktion kompensiert den Überlauf beim Überlaufen (super Wortspiel ;-)) Timer Löschen ist immer Sch...
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.