mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Problem mit Interrupts GGC


Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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;
}


Autor: Daniel M. (usul27)
Datum:

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

War ein Fehler beim Linken.

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
und was ist, wenn Du void vor ISR weglässt ?

Gruß Sebastian

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das habe ich schon probiert, aber es ändert sich nichts...

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
versuch Nr. 2

aus TIMER0_OVF_VECT
machst Du TIMER0_OVF_vect

Gruß Sebastian

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hatte ich auch schon probiert, da tut sich auch nix...

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Achso, ich benutze den GGC über das AVR Studio.....

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich verwende dem MEGA16

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

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.