Forum: Mikrocontroller und Digitale Elektronik ATtiny2313 Timer0 wird nie ausgelöst


von Jens (Gast)


Lesenswert?

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???

von Der Dude (Gast)


Lesenswert?

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)
{}

}

von Jens (Gast)


Lesenswert?

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 :(

von Oliver (Gast)


Lesenswert?

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

von Jens (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.