OCA1 Toggle

Gast #106157
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
Gast
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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 22 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.