www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Interrupt 1 und 0 beim T89C51CC01


Autor: josef (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Habe zwei externe Interrupt zu bedienen (INT0 und INT1)
Irgendwie verhaltesn sich diese selbst in der Simulation total 
unterschiedlich. Mit dem INT0 springe ich bei mit P3.2 ohne Probleme in 
die ISR und beim INT1 komm ich einfach nicht hinein.

Hier mein Code...

#include <REG52.H>

unsigned char ex0_isr_counter = 0;
int i;

sbit P1_6 = P1^6;
sbit P1_5 = P1^5;

void ex1_isr (void) interrupt 1
{
 ex0_isr_counter++;   // Increment the count
 P1_6=0;
 for(i=0;i<10000;i++) {}
 P1_6=1;
 for(i=0;i<10000;i++) {}
}

void ex0_isr (void) interrupt 0
{
 ex0_isr_counter++;   // Increment the count
 P1_5=0;
 for(i=0;i<10000;i++) {}
 P1_5=1;
 for(i=0;i<10000;i++) {}
}

void main (void)
{
IT0 = 1;
EX0 = 1;
IT1 = 1;   // Configure interrupt 0 for falling edge on /INT0 (P3.2)
EX1 = 1;   // Enable EX0 Interrupt

EA = 1;    // Enable Global Interrupt Flag

while (1)
  {
  }
}


Bitte um Hilfe
lg josef

Autor: Michael Thom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hey,

ich habe mal eine Frage zu deinem CODE:

Wo greifst du in der main auf die Funktionen zu? Nach meinem 
C-Verständins fehlt das Aufrufen der Funktionen!

MfG

Taz

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
interrupt 1 ist der TIMER 0, du musst Interrupt 2 nehmen

void ex1_isr (void) interrupt 2

siehe hier:
http://www.keil.com/appnotes/files/apnt_103.pdf

@Michael

Die H-L Flanke an den betreffenden Portpin ruft die Routine auf. Da 
braucht in Main kein Aufruf stehen.

Autor: josef (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke Matthias,

hat super funktioniert...
Habe gar nicht daran gedacht, dass die Interrupt Nummer ja mit der 
entsprechenden Funktion übereinstimmen muss.

josef

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.