Datum: 16.05.2008 23:20
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
Datum: 17.05.2008 09:58
Hallo, ich würde einfach nach dem Betätigen des Tasters an P2.0 ein Bit
setzen, welches Du in Deiner Abfrage mit abfragst. In der Routine für's
Schlafenlegen wird dann dieses Bit wieder zurückgesetzt.
Quasi so (kein Quelltext!):
taster2_gedrueckt = 0;
wenn taster2 gedrueckt UND taster2_gedrueckt == 0
{
mache was...
taster2_gedrueckt = 1;
...
}
wenn taster1 gedrueckt
{
mache was...
taster2_gedrueckt = 0;
...
}
Damit dürfte es gehen. Ob es ganz besonders schick ist, weiß ich nicht.
Das müssen die Profis beurteilen...
Datum: 17.05.2008 18:14
danke, Idee ist gut--funktioniert MfG Wolfgang
Antwort schreiben
Die Angabe einer Email-Adresse ist freiwillig. Wenn Sie automatisch per Email über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.
Wichtige Regeln - erst lesen, dann posten!
- Suchfunktion und Betreffsuche benutzen - vielleicht gibt es schon einen ähnlichen Beitrag
- Aussagekräftigen Betreff wählen
- Im Betreff angeben um welchen Controllertyp es geht (AVR, PIC, ...)
- Groß- und Kleinschreibung verwenden
- Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang
- JPEG-Dateien (.jpg) nur für Fotos und Scans verwenden
- Schaltpläne, Screenshots usw. als PNG oder GIF anhängen
Formatierung (mehr Informationen...)
- [c]C-Code[/c]
- [avrasm]AVR-Assembler-Code[/avrasm]
- [pre]vorformatierter Text (z.B. Code in anderen Sprachen)[/pre]
- [math]Formel in LaTeX-Syntax[/math]
- [[Titel]] - Link zu Artikel


