www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 4Bytes per Infrarot übertragen (36Khz)


Autor: Sascha Dürkes (plutoonline)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, ich möchte 4Bytes per Infrarot (36Khz) übertragen.
Ich möchte 2 Atmega8 für die Übertragung verwenden.
Also einer sendet der andere empfängt.
Das senden und empfangen mit RC5-Code funktioniert auch wunderbar.
Mein Problem liegt jetzt auf der Empfangsseite, ich benutze den Source
von Peter Dannegger zum empfange, aber irgendwie steige ich nicht so
recht durch wie ich das ganze jetzt von 14Bit auf 32Bit aufbohren
kann.
Ich bräuchte die 4 Bytes nach dem Empfang in 4 Variablen zum
weiterverarbeiten.
Wenn mir jemand einen Denkanstoß geben könnte wäre das echt SUPER!!
Ich hab schon rumprogrammiert wie ein Irrer aber igendwo hakt es dann
immer, Ich habe leider auch kein Oszi sonst könnte ich das ganze besser
Analysieren.
Ach ja das ganze soll in C umgesetzt werden.

Vielen Dank schonmal für euer Hilfe.

Gruß Sascha

Autor: Sascha Dürkes (plutoonline)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hat keiner eine IDEE ? :-(

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast du zu Peters Code einen Link? (Hab gerade keine Lust danach zu
suchen...)

Autor: Sascha Dürkes (plutoonline)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Sascha Dürkes (plutoonline)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hat denn wirklich keiner einen Rat für mich :-(

Autor: Sebastian Heyn (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mmhh bascom hätte ich dir helfen können

Autor: peter dannegger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es gibt 2 Möglichkeiten:

1.
Du erweiterst den Code auf die gewünschte Bitzahl.

2.
Du nimmst den Code, so wie er ist (13 Datenbits) und überträgst 4
Pakete, wobei einige Bits die Bytenummer und andere das Byte sind.


Peter

Autor: Sascha Dürkes (plutoonline)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für das schnelle Feedback.
@Peter
zu. 1.
Ich würde den Code ja gerne erweitern aber mir fehlt ehrlichgestagt der
nötige Durchblick. Mein Problem ist das dein Code ja so aufgebaut ist
das er nur 2 Bytes (Word) fassen kann. Muss ich jetzt nach 16
bitschiebe aktionen ein neues Byte (Word) einfügen? Und wie erkenne ich
dann ob 32Bits empfangen wurden?? Sorry das ich so blöd frage aber so
100%ig hab ich deinen Source noch nicht gerafft..

zu. 2.
Es wäre mir schon lieber wenn ich alle 4Bytes in einem Packet versenden
könnte.

Vielen Dank schonmal.....

Autor: Sascha Dürkes (plutoonline)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Peter
Kann ich in deinem Code statt
if( !(tmp & 0x4000) && tmp & 0x2000 )

if( !(tmp & 0x10000) && tmp & 0x4000 )
schreiben um den Code auf 16Bits zu erhöhen?
Hier werden ja die Startbits abgefragt oder?

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.