-         

Ergebnis 1 bis 7 von 7

Thema: Interrupt löst Reset aus

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    21.10.2009
    Beiträge
    6

    Interrupt löst Reset aus

    Anzeige

    Hallo Forum!
    Habe ein Problem mit dem INT0 Interrupt meines Atmega16. Wenn der Interrupt ausgelöst wird startet der Mikrocontroller von neu. INT1 arbeitet korrekt.

    Code:
    #include <avr/io.h>
    #include <avr/interrupt.h>
    
    ISR(INTO_vect)
    {
    PORTA=0xff;
    }
    ISR(INT1_vect)
    {
    PORTA=0xff;
    }
    
    int main(void)
    {
    DDRA=0xff;
    DDRD=0x00;
    PORTA=0x00;
    
    
    //Interrupt einschalten
      MCUCR = (1<<ISC00)|(1<<ISC01)|(1<<ISC10)|(1<<ISC11);  //Flankenerkennung
      GICR |= (1<<INT0)|(1<<INT1);  //INT1 und INT0 aktiviert
      sei();
    
    
    while(1)
    {}
     
    return 0;
    }
    Hoffe jemand kann helfen.

    Gruß Max

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    20.08.2008
    Ort
    Kandel
    Alter
    29
    Beiträge
    1.220
    Hallo Max,

    du hast statt INT0_vect INTO_vect ("O" statt "Null") geschrieben - that's it.

    mfG
    Markus

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von Jaecko
    Registriert seit
    16.10.2006
    Ort
    Lkr. Rottal/Inn
    Alter
    35
    Beiträge
    1.987
    Bist du sicher, dass da INT0 steht und nicht INTO?
    Ein Reset statt nem Interrupt wird dann ausgeführt, wenns den jeweiligen Vektor nicht gibt. Dann nimmt er den Alternativvektor 0x0000 = Reset.

    Edit: 2 Leute gleichzeitig *g*.

    Nachtrag: Du kannst auch nen eigenen Standard-Vektor definieren:

    SIGNAL (__vector_default)
    {
    ...
    }
    #ifndef MfG
    #define MfG

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    21.10.2009
    Beiträge
    6
    Oh ja, Danke! Jetzt klappts auch.
    Dumm das sowas dem Compiler nicht affällt.

    Grüße
    Max

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von 021aet04
    Registriert seit
    17.01.2005
    Ort
    Niklasdorf
    Alter
    29
    Beiträge
    4.544
    Ich habe das Programm 1:1 ins AVR Studio kopiert. Es wird zwar kein Fehler gemeldet, aber eine Warnung.

    Die Warnung lautet
    ../d.c:4: warning: 'INTO_vect' appears to be a misspelled signal handler
    MfG Hannes

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    21.10.2009
    Beiträge
    6
    Dann sollte ich in Zukunft auch mal die Warnungen durchlesen.

    Gruß Max

  7. #7
    Erfahrener Benutzer Roboter Experte Avatar von BurningWave
    Registriert seit
    22.12.2007
    Ort
    nahe Stuttgart
    Alter
    23
    Beiträge
    656
    Dann sollte ich in Zukunft auch mal die Warnungen durchlesen.
    Warnungen sollte man generell immer ernst nehmen, da sie auf schwer zu findende Fehler hindeuten können.
    meine Homepage: http://www.jbtechnologies.de
    Hauptprojekte: Breakanoid 2 - Sound Maker

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •