mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Tim0OVF -> Warum funktioniert er nicht?


Autor: Randomize (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

irgendwie bin ich gerad nicht in der lage, einen Timeroverflow in C zu 
generieren und echt überfragt, woran es liegt. Hier in kurzform mein 
"Programm". Hab ich was vergessen, hab ich was verwechselt? Irgendwie 
komm ich gerad nicht weiter...
int main (void)
{

  led_init();
  led_all_off();
  
  TIMSK0= (1<<TOIE0); //overflow Int aktivieren
  TCCR0B= (5<<CS00); // Prescaler 1024
  while (1) ; 
}

ISR(TIMER0_OVF_vect)
{
  toggle_led();
}

Die LED Funktionen funktionieren, der timer läuft, aber die ISR wird nie 
ausgeführt.
Es handelt sich um den ATMEGA1281.

Kann mir jemand weiterhelfen?
Vielen Dank!


P.S.:
ein auszug aus der iomxx0_1.h
/* Timer/Counter0 Overflow */
#define TIMER0_OVF_vect      _VECTOR(23)
#define SIG_OVERFLOW0      _VECTOR(23)
Im Datenblatt findet sich jedoch TIMER0 OVF als Vektor no 24 
beschriftet. wem darf ich denn nun trauen?
leider wurde mein overflow auch nicht bei
#define SPI_STC_vect      _VECTOR(24)
auselöst...

Autor: bascom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja C eine grausame sprache ist.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hast du die Interrupts global aktiviert?
(zB mit sei(); )?

Autor: Randomize (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich mach feierabend.
vielleicht hätt man da auch gerade eben noch drauf kommen können. Alles 
mögliche überprüft, an zig stellen den fehler gesucht und ich bin mir 
einfach nur noch doof vorgekommen.... Ob ich mich jetzt schlauer fühl, 
sei mal dahingestellt...

Vielen Dank!

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
bau vor der while(1) - Endlosschleife ein
sei();
ein!!

Autor: Rahul Der trollige (rahul)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
bascom wrote:
> ja C eine grausame sprache ist.

Nö, man muß nur wissen, was man tut...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.