Gast
#76499
Hallo zusammen! Obwohl ich vor einiger Zeit gesehen habe, daß es schon diskutiert wurde: Wie krieg ich das hin, daß mein MSP einen Interrupt auslöst und dann ins Programm zurückspringt, wenn ich eine Flanke auf Port 1 habe. Genauer gesagt auf einem PIN auf Port 1? der Plan ist so: * programmschleife unterbricht, * setzt Interruptfunktion setzt variable * programm wird fortgesetzt und reagiert später auf den Interrupt durch eine aufzuckende LED bool bPort1Int; /* Description : wird von Port 1 gesetzt */ wakeup interrupt (PORT1_VECTOR) INT_P1(void) { //acknowledge interrupts (caution! clr is not appropriate when multiple irqs are enabled) bPort1Int = 1; DINT(); } int main(void) { P1DIR=0xFF; //port 1 = output P1OUT=0x00; //set bit 0 in port 1 P1DIR=0; //port 1 = input P1IES = 0xFF; // Interrupt Edge Select (+Slope=1) P1IE = 0xFF; // Interrupt Enable (Yes=1) P2DIR=0xFF; //port 2 = output P2OUT=0x00; bPort1Int=0, EINT(); for(;;) { //infinite loop P2OUT+=1; delay(0x4fff); P2OUT+=1; delay(0x4fff); if (bPort1Int==1){ P2OUT=0; bPort1Int=0; EINT(); } delay(0x4fff); P2OUT+=1; delay(0x4fff); P2OUT+=1; delay(0x4fff); P2OUT+=1; delay(0x4fff); P2OUT+=1; delay(0x4fff); P2OUT+=1; delay(0x4fff); } } Danke Benni