-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 19

Thema: Externer Interrupt funktioniert nicht

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    08.11.2004
    Ort
    nähe Darmstadt
    Alter
    36
    Beiträge
    15

    Externer Interrupt funktioniert nicht

    Anzeige

    Hi,

    ich benutze das Board RN-Control 1.4 mit MEGA32 und habe mir folgenden Code zum testen des externen Interrupts überlegt:
    Code:
    #include <avr/io.h>
    #include <avr/interrupt.h>
    
    
    int main(){
    	//Initialisierung der LED's	
    	DDRC  = 0xff;
    	PORTC = 0x0f;
    	
    	// Initialisierung PORTD (INT0)
    	DDRD &= ~(1<<PIN2);
    	PORTD |= (1<<PIN2);
    	
    	//INT0 aktivieren, auf fallende Flanke reagieren 
    	GIMSK |= (1 << INT0); 
    	MCUCR |= (1 << ISC01);
    	MCUCR &= ~(1<<ISC00);
    	
    	//Interrupts global aktivieren	
    	sei();
    	
    	for(;;){
    	}
    
    return 0;
    }
    
    //ISR Routine
    ISR(INT0_vect){
        
    	PORTC ^= 0xf0;
    }
    Jetzt zu meinem Problem: Eigentlich sollte sich beim drücken des Tasters an PD2 der Status der oberen 4 LED's ändern, jedoch passiert bei mir nichts. Sie leuchten dauerhaft.

    Hoffe ihr könnt mir helfen

    Jens

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Alter
    48
    Beiträge
    2.731
    Hallo,

    wie hast Du den Schalter verkabelt,
    vielleicht schaut es nur so aus als wenn die immer an sind weil der Kontakt flattert

  3. #3
    Erfahrener Benutzer Roboter Genie Avatar von robocat
    Registriert seit
    18.07.2006
    Beiträge
    935
    mit "for(;return 0;" schickst du das programm doch sofort ins nirwana? und setzt damit die leds erneut auf leuchten? macht das nix?

    kA, ob es daran liegen kann..

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Alter
    48
    Beiträge
    2.731
    @robocat
    nach dem for kommt aber noch ein Block in geschweifter Klammer, so wird das return nicht erreicht.

  5. #5
    Erfahrener Benutzer Roboter Genie Avatar von robocat
    Registriert seit
    18.07.2006
    Beiträge
    935
    ja-.-
    komisch vorhin war das anders?!
    oder war ich nur nicht aufmerksam genug?
    sry jedenfalls, so is ok.

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    08.11.2004
    Ort
    nähe Darmstadt
    Alter
    36
    Beiträge
    15
    Ein Pin des Schalters habe ich an PD2 angeschlossen und den anderen an Masse.
    Habe auch schon mal anstatt PORTC ^= 0xf0;
    PORTC = 0x00 stehen.
    Dann sollte er ja eigentlich nach dem ersten mal drücken die LED's immer an haben.

    Muss man vielleicht ein bestimmtes Fuse Bit gesetzt sein?

  7. #7
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Alter
    48
    Beiträge
    2.731
    Also der Pin ist als Eingang definiert, und der Schalter geht gegen Masse,
    was ist wenn der Schalter nicht gedrückt ist ?
    Es muss doch eigentlich irgendwo ein High-Pegel herkommen, den man auf Masse ziehen kann, der dann als INT erkannt wird.
    Da würde sich ein Pullup gut machen, so wie das auch bei einem Resetschalter gemacht wird.

  8. #8
    Neuer Benutzer Öfters hier
    Registriert seit
    08.11.2004
    Ort
    nähe Darmstadt
    Alter
    36
    Beiträge
    15
    ich habe doch den internen PULLUP aktiviert.

    oder meinst du das so, dass ich einen 100k widerstand mit gegen 5v schalte, so wie beim reset.

  9. #9
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Alter
    48
    Beiträge
    2.731
    Hallo,
    so, jetzt hab ich das selber probiert mit der RN-Control, und das Programm von ganz oben funktioniert bei mir, die LEDs flackern halt ein wenig wenn man den Kontakt betätigt, ohne externen Pullup.

    Evtl. kannst Du mal messen, ob an dem Pin ca. 5V anliegen, wenn der Taster nicht betätigt ist.

  10. #10
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    21.10.2005
    Ort
    Erde
    Alter
    50
    Beiträge
    1.195
    Kenne das RN 1.4 nicht. Aber sind die Taster entprellt?

    Ausserdem sollte das in der ISR wahrscheinlich
    Code:
    PORTC ^= 0x0f;
    heissen, oder?

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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