www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik OCA1 Toggle


Autor: Steffen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.