Hallo! Ich lasse den OCA1 Pin mit 125 kHz mittels eines Compare Ereignises des Timer1 toggeln. Dieses Toggeln schalte ich nun an und aus (über das Bit, das den Pin OCA1 zuschaltet). Das ganze funktioniert soweit auch recht gut. Nun möchte ich aber, dass immer nur ganze Impulse heraus kommen. Also beim Abschalten darf der Impuls nicht abgeschnitten werden. Er soll mit dem Abschalten warten, bis der Pin auf Low liegt - dann kann er abschalten. Ich habe es mit forlgendem Code probiert: do {} while ((PORTD & (1 << PD5) != 0); oder do {} while ((PIND & (1 << PD5) != 0); Es funktioniert allerdings beides nicht. Beim Anschalten sollte es meiner Meinung nach immer ganze Impulse geben, da der Pin ja immer bei einem Compare Ereignis getoggelt wird. Ich lasse den Timer ja weiter laufen also müsste der erste Impus immer vollständig sein - ist er aber meinem Oszi nach zu urteilen nicht immer ... Woran kann das liegen und wie kann ich obiges Problem lösen? Grüße Steffen
lass einen output-compare-Interrupt auslösen, das ist besser als den MC die ganze Zeit mit einer PIN-Abfragen zu beschäftigen. PortD geht aber nicht, da die Portlogik mit Freigabe an den Timer überschrieben wird. Pin-Abfrage sollte aber gehen, weiss ich jetzt aber auch nicht genau. Falls nicht, kannst du den OC-Pin zur Not auch an einen Eingang legen. Ist es ein Int-Eingang, kannst du dir den OC-Int sparen, direkt auf fallende Flanke triggern.
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.