Hallo Forum, hier in der Codesammlung gibt es eine Schaltung mit Layout und Code für den ATtiny13. Der Beitrag ist hier Beitrag "RC-Fernsteuerung 4-fach switch" zu finden. Die Interruptaufrufe, die der compiler als obsolete gekennzeichnet hat, habe ich bereits durch Internetrecherche durch die ISR (TIMER_OVF...) ersetzt. Ich habe sogar eine alte Version der avrlibc in mein Ubuntu gezwängt um mit den alten Aufrufen zurechtzukommen. Nun mein Anliegen: Egal ob ich diese Schaltung und diesen Code auf dem STK-500, den Platinen aus dem Beitrag oder auf dem Steckbrett aufbaue ... Es klappt nicht. Nachdem ich einige Stunden hier im Forum Alles über Interrupt gelesen habe und den Timer1 des ATmega8 habe ich versucht, eine ähnliche Schaltung mit ähnlichem Code und dem TIMER1 im ATmega8 zu bauen / programmieren. Auch das hat nicht geklappt. Nun brauche ich die Hilfe Aller hier, wo ich denn noch nach dem Fehler suchen soll. Den R/C Empfänger habe ich getestet. Der klappt 1a. Es wäre nett, wenn mir da jemand nach Durchsicht des Code aus dem Beispiel mal erkären könnte, warum ich keine Regung an den LED bekome. Johannes
Moment. Wenn ich das richtig, verstehe sollen wir anhand eines funktionierenden Codes mit einer fuktionierenden Schaltung erklären, warum eine (absichtlich oder unabsichtlich) andere Schaltung mit einem (absichtlich und/oder unabsichtlich) verändertem Code nicht funktioniert? Falls ich das richtig verstanden habe: Könntest Du darüber bitte nochmal nachdenken und Deine Anfrage anders formulieren?
Johannes schrieb: > Hallo Forum, > > Nun brauche ich die Hilfe Aller hier, wo ich denn noch nach dem Fehler > suchen soll. Den R/C Empfänger habe ich getestet. Der klappt 1a. Wow, gleich von allen. Das werden sicher viele Posts. Wenn Dein Compiler die Interrupts als obsolet kennzeichnet, liegt es vielleicht an der gcc Version. Wenn Du Ubuntu benutzt hast Du vermutlich eine andere Version als in der ursprünglichen WinAVR benutzt wurde?
Ach so, poste doch mal alle Fehlermeldungen und die verwendeten Versionen
Johannes schrieb: > Die Interruptaufrufe, die der compiler als obsolete gekennzeichnet hat, > habe ich bereits durch Internetrecherche durch die ISR (TIMER_OVF...) > ersetzt. Genaueres findest du in der manpage/Doku zur avr-libc, im Bereich <avr/interrupt.h>: Interrupts. Hast du den Bezeichner korrekt angepasst? Sonst wird da nämlich nix draus... > Ich habe sogar eine alte Version der avrlibc in mein Ubuntu gezwängt um > mit den alten Aufrufen zurechtzukommen. Pfui ;) Installiere gleich wieder die aktuelle avr-libc auf deine Kiste und passe das Programm für deinen MC an. Die switch4ch.c in dem von dir genannten Artikel schaut für mich ziemlich "sauber" aus, da sollte kein "ich brauch ne alte libc"-Murks nötig sein.
Hallo Tom M., in dem Source-Code aus dem zweiten Anhang heißt es: SIGNAL (SIG_OVERFLOW0) Diese Funktion wird von AVR Studio 4.18, WINAVR und der Toolchain auf dem Ubuntu mit der neuesten AVRlibc als obsolete gekennzeichnet. Die Ersatzfunktion dazu ist: ISR (TIMER0_OVF_vect, ISR_NAKED) und am Ende des ISR Aufruf reti(); Mit der alten avrlibc hat der Compiler nicht gemeckert und den Sourcecode so wie der da herunterzuladen ist mit 0 Fehler und 0 Warnings compiliert. Dann habe ich einen neuen ATtiny 13 genommen und da das Hex-File reingeflashed und einen ATtiny13 bei dem ich die Fuses auf 9,6 MHz intern mit CKDIV 8 eingestellt habe. Dann habe ich einen ATmega 8 mit externem Quarz, 1 MHz genommen und den richtig gefused. Danach dann den Sourcecode mit SIGNAL für den ATmega 8 mit 0 Fehler und 0 Warnings compiliert und geflasehed. Dann habe ich einen ATmega8 mit 1 MHz Quarz genommen und den auf extern Quarz, 1 MHz geflased. Danach habe ich den Source-Code auf die neue ISR Function umgeschrieben und mit 0 Fehler und 0 Warnings compiliert. Anschließend die HEX-Files in die ATmega 8 geflased und den Empfänger aus den gleichen 5 Volt versorgt, wie die Schaltungen. Es klappt einfach nicht. Die LED bleiben dunkel. Ich beschäftige mich gerade damit die Variable uint16_t timerValue auf ein LCD am ATmega8 auszugeben. Wenn mir das gelungen ist, dann weiß ich wenigstens ob die Variable beschrieben wird oder nicht. Johannes
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.