Forum: Mikrocontroller und Digitale Elektronik Problem mit Interrupts GGC


von Alex (Gast)


Lesenswert?

Hallo,

Ich habe folgenden Quelltext. Der Timer arbeitet korrekt(Im Simulator 
ausprobiert).Jedoch wird nicht in die ISR gesprunge, sondern an den 
Anfang des Programms. Wenn ich mir den erzeugten Maschinencode im 
Disassembler ansehe, stelle ich fest, dass keine Adresse in die 
Vektortabelle eingetragen wurde.

Wo liegt der fehler??


#include <avr/io.h>
#include <stdio.h>
#include <avr/interrupt.h>



void ISR(TIMER0_OVF_VECT){// Interrupt Funktion
    /* Interrupt Code */
}


int main(void){

    init_ports();
    init_timer0();

    sei();

  while(1){


  }

return 0;
}


von Daniel M. (usul27)


Lesenswert?

Erinnert mich etwas an das Problem, was ich vor kruzem hatte:
 Beitrag "ATMega16 & INT2 mit avrgcc"

War ein Fehler beim Linken.

von Sebastian (Gast)


Lesenswert?

und was ist, wenn Du void vor ISR weglässt ?

Gruß Sebastian

von Alex (Gast)


Lesenswert?

Das habe ich schon probiert, aber es ändert sich nichts...

von Sebastian (Gast)


Lesenswert?

versuch Nr. 2

aus TIMER0_OVF_VECT
machst Du TIMER0_OVF_vect

Gruß Sebastian

von Alex (Gast)


Lesenswert?

hatte ich auch schon probiert, da tut sich auch nix...

von Alex (Gast)


Lesenswert?

Achso, ich benutze den GGC über das AVR Studio.....

von johnny.m (Gast)


Lesenswert?

Du musst das void weglassen und TIMER0_OVF_vect benutzen! C ist 
Case-sensitiv, Groß- und Kleinschreibung müssen unbedingt beachtet 
werden! Abgesehen davon: Hast Du mal einen Blick in die 
Device-spezifische Header-Datei geworfen? Da stehen (ziemlich weit 
unten) die korrekten Namen der Interrupt-Vektoren drin. Da Du leider 
nicht sagst, was für einen Controller Du verwendest, kann man da so 
nicht mehr zu sagen.

Gruß

Johnny

von Alex (Gast)


Lesenswert?

Ich verwende dem MEGA16

von johnny.m (Gast)


Lesenswert?

> Ich verwende dem MEGA16

Weiß der Compiler das auch?

Gibt es beim Compilieren Warnmeldungen? Hast Du es mal so ausprobiert, 
wie ich es beschrieben habe?

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.