Gast
#2115564
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