Ich habe hier z AVR Infrarotempfänger, einen mit Atmega8 und einen mit AT90S2313, darauf sitzt mark Hämmerlings RC5 Software (www.markh.de). Im Prinzip funktioniert diese, allerdings nur, wenn ich sie ohne Compiler Optimierung übersetzte. der benutzte Compiler ist bei mir der avr-gcc Version 4.3.1 unter FreeBSD. Sobald Ich O0, O1 oder Os einschalte tut sich nix mehr. ICh habe daran bist gestern Abend spät herumgedocktert und möchte hier nur mal anfragen ob Jemand die Ursache dafür kennt, ich habe wieder mal Stunden zugebracht ehe ich in meine Makefiles geschaut hatte und mir auffiel, daß der 2313 ohne Optimizier übersetzt und funktioniert und ich auf dem Atmega -Os drin hatte... Den Autor habe ich auch noch nicht gefragt. Gruß, Holm
Salve, vorweg: dieses Verhalten ist mir nicht bekannt. Ich verwende eine etwas modernisierte Version der rc5dec-Routine in meinem Dimmer (ATmega32) seit einer ganzen Weile problemlos. Habe meinen Code auch seit eh und je mit -O2 übersetzt, inzwischen mit -Os - am RC5-Empfang hat sich nichts geändert. Funktioniert tadellos. Hast Du mal die Listfiles verglichen? Außerdem: In der alten Version werden die Rückgabewerte bei der Abfrage nicht sauber vor Interrupts geschützt. Aber das ist sicherlich nicht die Ursache für Dein Problem. Meld Dich wenn Du etwas herausgefunden hast. Viel Erfolg! Mark
Ok, ich werde das Zewug nochmal vergleichen, evtl. habe ich ja beim Ersetzten der cbi und sbi Geschichten einen Fehler gemacht. Der Gcc ist übrigens 3.4.1 nicht 4.3.1, scheiß Fipptehler. Wo findet man Deine Mailadresse? Ich bin jetzt 2 Tage nicht dazu gekommen überhaupt was daran zu machen, hätte den komischen Effekt aber gerne los. Gruß, Holm
Was ist an deiner modernisierten Version anders? Ich habe bei mir die cbi/sbi ersetzt, aber er scheint nix zu detektieren und landet immer in der rc5_cancel Routine. :/
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.