Re: Warum funktioniert dieses einfache Programm nicht?? Kategorie: Programmierung C (von PeterS - 23.10.2008 9:19) | |
Als Antwort auf Re: Warum funktioniert dieses einfache Programm nicht?? von Markus Wimmer - 23.10.2008 8:27
| |
> Hallo! > Danke, aber bei deinem Beispiel schalte ich die LED nur ein aber nicht wieder aus, so macht es mal mein Board! > Das Ich ein paar geschweifte Klammern zuviel drinnen habe ist mir klar, aber sollte eigentlich keine > Beeinträchtigung auf Funktion haben, oder? > > MFG > Markus Hallo Markus, die Klammern zuviel sind auch keine Beeinträchtigung es fehlten die Warteschleifen. Da waren auch noch eine zuwenig while (1) { while (Port_ReadBit(PORT_SW1)); // warten solange SW1 nicht gedrückt ist Port_WriteBit(PORT_LED1,PORT_ON); while (!Port_ReadBit(PORT_SW1)); // warten bis SW1 losgelassen wird while(Port_ReadBit(PORT_SW1)); // und wieder warten solange SW1 nicht gedrückt ist Port_WriteBit(PORT_LED1,PORT_OFF); while (!Port_ReadBit(PORT_SW1)); // warten bis SW1 losgelassen wird -- die hier fehlte noch!! } Wenn Du beim zweiten mal gedrückt hast, hat er die LED schon ausgeschaltet, nur sofort wieder angeschaltet, da er ja wieder direkt über die erste while Schleife gesprungen ist, solange der Taster noch gedrückt war. Jetzt funktionierts komplett. Gruss Peter | |
Antwort schreiben Antworten: |
Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum