www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Portpin entbrummen


Autor: Michi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen!
Ich habe eine Frage an die Assembler-Spezis:
Einen ATmega48 erhält ein Steuersignal aus einem Optokoppler mit zwei 
antiparallelen Leuchtdioden. Der Optokoppler wird mit 
50Hz-Wechselspannung angesteuert und der Portpin wackelt immer zwischen 
Null und Eins hin- und her. Der Puls (Null) ist dabei länger als die 
Pause (Eins).

Nun kann man dies Signal mit einem Kondensator beruhigen aber ich frage 
mich, wie man das elegant in Assembler ausfiltert.

Den Portpin kann ich in meinem Programm z.B. alle 5ms oder auch alle 
3,3ms abfragen.
Gibt es dafür eine Standard-Lösung?

Danke
Michi

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, den Pin in regelmäßigen Abständen pollen und wenn sich der Pinstatus 
städig ändert, dann z.B. eine "1" ausgeben. Bleibt der Pin eine Zeit 
lang ständig auf 0 oder 1, dann eine "0" ausgeben. Will man genauere 
Angaben, läßt man eine Variable im Pollzyklus die Breiten von 1 und 0 
des Optokopplers zählen. Dazu muß das Pollintervall eventuell 
verkleinert werden, damit die Auflösung größer wird.

Autor: Michi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Travel Rec.
Hmm, ja. Das ist auch eine Idee. Es ging mir aber eher darum eine 
möglicht "quellcodeeffektive" Lösung zu finden.

Michi

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es kommt immer darauf an, was Du damit bezwecken willst. Es kann sogar 
von Vorteil sein, wenn Du einen Interruptpin dafür verwendest und in dem 
Interrupt einen Timer zurücksetzt. Fehlt der Interrupt bei fehlendem 
Signal, läuft der Timer über und löst ein Schaltsignal aus, vielleicht 
auch einen weiteren Interrupt. Dies läuft dann komplett in Hardware und 
braucht minimal Code. Kommt halt drauf an.

Autor: Michi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nicht schlecht! Das laß ich mir jetzt mal durch den Kopf gehen.
Vielen Dank!
Michi

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Keine Ursache ;-)

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.