Hi, versuche gerade das RC5 Decoder Beispiel für Code Vision Compiler (siehe Download) auf einen Mega16 8Mhz zur Funktion zu bringen. Habe die "GIMSK" Anweisungen durch "GICR" ersetzt und das Header File auf den Prozessor angepasst. Ext. Interrupt wird bei Signal ausgelöst, der Timer läuft. Als Auswertung kommt jedoch nur unsinn heraus. Muß man auch noch was am Timing ändern ??? Help ! bin am verzweifeln. :(
Mit Sicherheit. Wenn das Ganze timergesteuert ist (wovon ich ausgehe), müssen die Timerwerte angepaßt werden. Habe sowas mal selbst in Codevision programmiert und mußte da auch Rücksicht drauf nehmen. Welchen Download soll ich denn sehen?!? Gruß KMT
@Uwe könntest du eventuell den ganzen Code mal posten. Ich habe auch schon versucht einen RC5 Decoder zu programmieren, hat aber nicht so ganz geklappt. danke max
Hm, kann so direkt nichts sehen. Da die gleiche Taktfrequenz benutzt wird, müßte es laufen. Höchstens Interrupt-Freigabe-Problem?!? Ich habe mal meinen RC5-Code von einem Mega32 bei 7,3728 MHz drangehängt. Der läuft sehr gut, überprüft auf Biphasenfehler und übergibt die Tastennummer in die globale Variable tastencode. Angeschlossen wird der Infrarotempfänger (idle=High!) am externen Interrupt0 (beim Mega32 PORTD.2) Da der Code aus einem größeren Programm stammt, bitte ich um Nachsicht, falls ich beim Zusammenstreichen eine Variable vergessen haben sollte... Gruß KMT
Super Kai ! Funktioniert klasse dein Programm. Kannst mir noch ein paar Tips geben zur änderung auf 8 bzw. 16 Mhz ?? MfG Uwe
Hat sich erledigt, Formel ist ganz easy : Timerwert = 0xFFFF- (445 us * MHz) bzw. Timerwert = 0xFFFF- (889 us * MHz) Vielen Dank nochmals : ) MfG Uwe
@Kai, Deine Routine hat allerdings den Nachteil, daß keine Bitsynchronistaion erfolgt, Dadurch muß die Quarzfrequenz sehr genau eingestellt werden, sonst können Abweichungen >3,5% zu Fehlern führen. Da der RC5-Code ja eine Bitsynchronisation erlaubt, bin ich mir auch nicht so sicher, ob die Fernbedienhersteller auch wirklich ihre Schwinger so genau justieren oder manchmal darauf vertrauen, daß der Empfänger sich bei jedem Bit neu synchronisiert und dadurch größere Toleranzen (bis 10%) automatisch ausgleicht. In der Codesammlung findest Du meinen Code, der sehr einfach ist und die Bitsynchronisation durchführt: http://www.mikrocontroller.net/forum/read-4-74473.html Peter
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.