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
hat keiner eine IDEE ? :-(
Gast
#316879
Hast du zu Peters Code einen Link? (Hab gerade keine Lust danach zu suchen...)
hier ist der link http://www.mikrocontroller.net/attachment.php/74473/rc5.zip
hat denn wirklich keiner einen Rat für mich :-(
Gast
#316882
mmhh bascom hätte ich dir helfen können
Gast
#316883
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
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.....
@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
Bitte melde dich an, um einen Beitrag zu schreiben.