mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Manchester: Beste implementierung


Autor: Dave (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich arbeite mit einem IR-Empfänger und möchte ein paar Byte übertragen, 
danach eine Sendepause einlegen, und beim Start wieder synchronisieren. 
Im Prinzip ein RC5, nur dass ich keine Fernbedienung zum senden nehmen 
und auch nicht nur die paar Bits der Fernbedienung übertragen möchte, 
sondern fünf Byte.

Welche Implementierung ist die eleganteste? Die mit dem monostabilen 
3/4-Kippglied?

Ich freue mich auf Anregungen und Code! :)

Achja: µC ist ein ATtiny13.

Autor: Siegfried (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du kannst dir eine aussuchen - entweder die "Manchester United"- oder 
die "Manchester City"-Implementierung. Beide laufen bei mir seit Jahren 
ohne Probleme.

Autor: Dave (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Du kannst dir eine aussuchen - entweder die "Manchester United"- oder
>die "Manchester City"-Implementierung. Beide laufen bei mir seit Jahren
>ohne Probleme.

Cool, danke!

Autor: Dave (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Im Anhang ist meine nicht funktionierende Implementierung.

Zur Info: Zu Beginn der Übertragung wird immer erst eine LH- und eine 
HL-Flanke gesendet.

Erklärung zum Code:

Ich stelle Timer0 auf einen Prescaler von 64.

* ich warte auf die erste Flanke und starte den Timer.
* ich warte auch die zweite Flanke und stoppe den Timer.
* ich lese den Wert von TCNT0 aus und stelle OCR0A auf das 1,5-fache.
* ich stelle OCR0B auf das 2,5-fache von TCNT0.
* ich starte den Timer.
* Bei Compare-Match-A wird das der aktuelle Zustand (eventuell 
invertiert) der Leitung gespeichert.
* Bei Compare-Match-B wird das Invertier-Flag umgeschaltet und der 
aktuelle Zustand der Leitung (eventuell invertiert) gespeichert.
* Bei Timer-Overflow ist die Sync-Pause erreicht. Der Timer wird 
abgeschaltet.
* Neustart von vorne

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.