Hallo, also ich wollte eigentlich für den Anfang was ganz einfaches machen und naja - klappt ned ... hab einen ATtiny2313 der so an sich läuft, aber der Interrupt für den Timer0 wird nie ausgelöst (interner Oszilator, an den Fuses hab ich nix gedreht) mein Code: #include <avr/io.h> // ohne wirds nicht gehen #include <avr/interrupt.h> // besser ist das #include <avr/eeprom.h> // merk es Dir #include "control.h" void main (void) { DDRB = 0b11100100; TCCR0A = 0; TCCR0B = 0b00000101; // ck/1024 TIMSK = 0b00000010; // TIMER0 aktiv mit Interrupt sei(); while(1) {} INTERRUPT (TIMER0_OVF_vect) // ISR Timer0 { PORTB = PORTB | 0b01100000; } aber die LED an PORTB gehen nie an, weil wohl kein Interrupt, aber wieso ... beim AT90s2313 hats doch "so ähnlich" funktioniert. Hab ich was vergessen oder übersehen? Wahrscheinlich schon, WEIL ... mein Testprogramm vom AT90s2313 funktioniert auf meinem anderen Board auf dem Attiny2313 super ... wenn ich meinen alten Code in das Programm stecke und als At90s compailiere tuts allerdings auch nicht obwohl der Controller in den anderen Programmen machen was er soll???
Der Code kann so nicht funktionieren. Kommt da keine Fehlermeldung? Probier mal INTERRUPT (TIMER0_OVF_vect) // ISR Timer0 { PORTB = PORTB | 0b01100000; } void main (void) { DDRB = 0b11100100; TCCR0A = 0; TCCR0B = 0b00000101; // ck/1024 TIMSK = 0b00000010; // TIMER0 aktiv mit Interrupt sei(); while(1) {} }
meinst Du die vergessene Klammer? Die fehlt nur hier hab ich beim formatieren verschluckt meine Fehlermeldungen: ../ComingHome.c:32: warning: return type of 'main' is not 'int' ../ComingHome.c: In function 'main': ../ComingHome.c:33: warning: unused variable 'tempA' ../ComingHome.c: At top level: ../ComingHome.c:103: warning: return type defaults to 'int' ../ComingHome.c: In function 'INTERRUPT': ../ComingHome.c:103: warning: type of '__vector_6' defaults to 'int' ../ComingHome.c:106: warning: control reaches end of non-void function und wenn ich den Interrupt nach oben verschiebe passiert au nix :(
Das ist einer der Fehler, an denen man sich 'nen Wolf sucht :-)
1 | INTERRUPT (TIMER0_OVF_vect) |
kennt der Compiler nicht. (sieht man aber eigentlich an den Warnungen) Probiers mal mit
1 | ISR (TIMER0_OVF_vect) |
Oliver
Daaaaaaaaaaaanke ... seit wann heißt das so oder offenbart sich da meinerseits eine Bildungslücke?
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.