Guten Morgen zusammen,
Ich hab mal eine Frage zu den Interrupts.
und zwar bekomme ich ein Signal auf P1.2, welches aus unterschiedlich
langen low bzw high Pegeln besteht. Diese "Perioden" möchte ich über
eine ISR auswerten. Ich muss dabei jedoch egal ob low oder high Signal
alles auswerten. Also beispielsweise, kurzes low, kurzes high, langes
low und kurzes high wäre dementsprechend 0010. Jetzt habe ich das
Problem, das ich es nicht richig hinbekomme, dass er bei jedem
Flankenwechsel das Signal auswertet. Ich habe mir zur Hilfe eine LED
eingebunden, die eigentlich nur das Signal was anliegt noch einmal
ausgibt, um zu sehen, ob er korrekt in die ISR springt. Und da kann ich
über ein Oszilloskop sehen, das diese nur bei den fallenden Flanken
beschaltet wird.
So habe ich es verstanden:
1 | P1DIR |= BIT0; //Ausgang fuer BIT0
|
2 | P1SEL = 0x00; //I/O Funktion
|
3 | P1IES ^= BIT2; //Interrupt bei Flankenwechsel an BIT2
|
4 | P1IFG &= ~BIT2; //Interruptflag an BIT2 loeschen
|
5 | P1IE |= BIT2; //Interrupt an BIT2 erlauben
|
6 | P1REN |= BIT2; //Widerstand an BIT2
|
Habe ich da etwas falsch gemacht?
Vielen Dank schonmal und LG
*vergessen: uC: MSP430 und Software ist CCS 5