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.