www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Programm springt ständig in Interrupt ISR_INT0


Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich habe ein Programm mit AVR Studio4 geschrieben. Mein uC ist ein 
ATMega2561.
Mein Problem ist folgendes:
Bei der Simulation springt mein Programm ständig in die ISR des INT0.
Jedoch sollte das Programm die Routine nur aufrufen, wenn auf wirklich 
ein externes Signal am INT0 anliegt. Also wenn ich manuell INT0 '1' und 
'0' setze.

Hier ein kurzer Auszug aus meinem Code:

/****************************TIMER1-Initialisierung*****************/
void Timer1Init(void) {

  TCCR1B=0x00;  //stop Timer
  TCCR1A= 0x00;  //normal Mode
  TIMSK1=0x07;  //compare

  EIMSK |= 0x01;    //enable INT0
  EICRA |= 0x0C;  //rising; 0x04 anyEdge

  TCNT1=44895;
  OCR1A= 20000;
  OCR1B= 20000;
  ICR1 = 0x4e20;    //20000

  TCCR1B= 0x02;  //Vorteiler 8  //start Timer
}

/******************************EXTERNER Interrupt*****************/
ISR (INT0_vect)
{
  TCNT1= ALFA;
  TCNT0= 0;
  warte++;
}

Also ich habe mit "EIMSK |= 0x01;" INT0 aktiviert. Mit "EICRA |= 0x0C;" 
habe ich festgelegt, wann er triggern soll.
Mit anderen Worten, er soll bei steigender Flanke des am INT0 Ports 
anliegendeden Signals in die INT0_vect Routine reinspringen.
Und nicht fast 5000 mal innerhalb 66ms.

Jemand ne Idee woran es liegen könnte?

Danke und Gruß
Markus

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry, dass ich unnützer Weise noch einen Thread aufgemacht habe.
Bin gerade selbst drauf gekommen. Man sollte auch bei EICRA die richtige 
Einstellung vornehmen...

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.