Gast
#174981
Moin! habe mir kuerzlich sampels des Microcontroller MSP430F437 zukommen lassen. habe soweit auch alles aufgebaut und auf dem controller auch ein einfaches programm laufen lassen. nun wollte ich einen interrupt des port 1 nutzen. solbald dort eine rising edge festgestellt wird sollen 2 pins des port 2 (die zu leucht dioden fuehren) mittels interrupt handler auf high gesetzt werden. mein code sieht wie folgt aus: /*********************************************************************** ****** * * * T E S T * * * ************************************************************************ *****/ #include <msp430x43x.h> #include <stdio.h> void delay(void) { int i; for(i=0; i<3000; i++); } int main(void) { P2DIR |= 0xA2; //Pin 7 + 5 + 1 of Port 2 = outputs; P2IE |= 0x08; //Interrupt for Pin 3 = enabled P2IES &= ~0x01; //rising edge P2IFG &= 0x00; //reset interrupt P2OUT &= 0x02; while (1) { delay(); } } //main-loop // Port2 interrupt service routine #pragma vector=PORT2_VECTOR __interrupt void key_pressed (void) { P2OUT |= 0xA0; P2IFG &= 0x00; //reset interrupt } Es passiert aber rein gar nichts! ist die initialisierung vielleicht falsch? fuer hilfe am besten mit code beispielen waere ich sehr dankbar! johannes