Hi @ all ich versuche seit Tagen mit Hilfe des avr-gcc eine Kleine ISR für den Timer zu Schreiben.Ziel ist es eine At90s2313 dazu zu bringen das er auf Port B einfach bis zum Overflow die Bit hochzahlt. Problem ist das es einfch nicht zu den Ersehnten Interrrupt kommt. Den Code für des beispeil sende ich als Anhang. Nach den Compiliern mit den aufruf avr-gcc -mmcu=at90s2313 -o demo -demo.c habe ich mir mal die mühe gemacht eine objdump mit den aufruf : avr-objdump -S demo > demo.s zu machen um mir das Assambly anzusehen und bin mir nicht sicher ob die Werte für die Interrupt Vectoren stimmen, die dort eingetragen sind jedenfalls funktioniert das ganze nicht was mache ich falsch Angaben zu den benutzten Versionen : binutils-2.16.1 gcc-core-3.4.6 avr-libx-1.4.4 zum laden avrdude5-1.tar.gz mfg Olvier -- auszug demo.s --- 00000000 <__vectors>: 0: 0a c0 rjmp .+20 ; 0x16 <__ctors_end> 2: 22 c0 rjmp .+68 ; 0x48 <__bad_interrupt> 4: 21 c0 rjmp .+66 ; 0x48 <__bad_interrupt> 6: 20 c0 rjmp .+64 ; 0x48 <__bad_interrupt> 8: 1f c0 rjmp .+62 ; 0x48 <__bad_interrupt> a: 37 c0 rjmp .+110 ; 0x7a <__vector_5> c: 1d c0 rjmp .+58 ; 0x48 <__bad_interrupt> e: 1c c0 rjmp .+56 ; 0x48 <__bad_interrupt> 10: 1b c0 rjmp .+54 ; 0x48 <__bad_interrupt> 12: 1a c0 rjmp .+52 ; 0x48 <__bad_interrupt> 14: 19 c0 rjmp .+50 ; 0x48 <__bad_interrupt>
Hallo Ein solches Problem hatte ich unter linux auch schon. KOmischerweise hat es geklappt, als ich statt dem "ISR(TIMER1_OVF1_vect)" die ältere (und ja angeblich schon veraltete) SIGNAL(SIG_OVERFLOW0) benutzt habe.Anders hat es bei mir einfach nicht geklappt.
Bringt leider auch nichts ich bemerke keine änderung am Programm wenn ich das einsetzte Ciao Oliver
"DDRB = 0x00;" Alle Pins auf Input und hoffen dass sie was ausgeben?
Wo ist jetzt das Problem mit den Vektoren ?
1 | * Timer/Counter1 Overflow */ |
2 | #define TIMER1_OVF1_vect _VECTOR(5)
|
3 | #define SIG_OVERFLOW1 _VECTOR(5)
|
Passt doch... Gruß Sebastian
Funktioniert denn überhaupt irgend etwas etwas? Was liegt als Takt an?
mit einer sog busy_Wait Schleife scheind es zu gehen. aber der Idee mit den Takt werde ich woll noch nachgehen. Ciao Oliver
OK Danke an Alle, Asche auf mein Haupt ich habe vergessen das Produkt des Avr-gcc mit hilfe von avr-objcopy -O binary -demo demo.bin zu wandeln um es mit avrdude den at90s2313 gerecht zu servieren ! trotzdem Danke an alle. Oliver
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.