Gast
#869531
Es werden zwei Taster an P2.0 bzw. P2.1 verwendet, welche mit der
H/L-Flanke jeweils ein Unterprogramm auslösen. Taster 2.0 startet das
eigentliche Programm und P2.1 legt den µC schlafen, nachdem ein
bestimmter Wert( hier Sektor) im Info-Speicher abgespeichert wurde.
Der Startvorgang (mit 2.0)darf nicht zweimal hintereinander ausgeführt
werden, sondern es soll erst der Taster 2.1 bedient werden.
Hat jemand eine Idee, wie das Problem gelöst werden kann?
Hier ein Ausschnitt aus meinem Programm:
int main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer
P2IE = 0x83; // an P2.0, P2.1+ P2.7 Interruptfreigabe
P2IES = 0x83; // auf H/L Flanke an P2.0, P2.1 , P2.7
_BIS_SR (LPM4_bits + GIE); // wartet auf Tasteneingabe
for(;;);
}
interrupt (PORT2_VECTOR)Taste (void) //nicht vergessen:
//#include <signal.h>
{
if ((P2IFG&BIT0) == BIT0) // neuen Start auslösen
{
P2IFG&=~BIT0;
EKGstart();
}
if ((P2IFG&BIT1) == BIT1)
{
P5OUT &=~BIT6; // LED EIN als Kontrolle
Sektorzahl_speichern();
P2IFG&=~BIT1;
_BIS_SR (LPM4_bits + GIE); // schaltet µC ab RAM bleibt erhalten
}
}
MfG
Wolfgang