Re: Warum funktioniert dieses einfache Programm nicht?? Kategorie: Programmierung C (von PeterS - 23.10.2008 1:06) | |
Als Antwort auf Warum funktioniert dieses einfache Programm nicht?? von Markus Wimmer - 22.10.2008 23:56
| |
> Hallo! > Brauche dringend Hilfe!! > > Wiseo funktioniert dieser einfache Syntax nicht?? > > > > // Hauptprogramm > // > void main(void) > { > Port_DataDirBit(PORT_SW1,PORT_IN); > Port_DataDirBit(PORT_LED1,PORT_OUT); > Port_WriteBit(PORT_LED1,PORT_OFF); > > while (1) > { > > while (Port_ReadBit(PORT_SW1));{ > Port_WriteBit(PORT_LED1,PORT_ON);} > AbsDelay(500); > while(Port_ReadBit(PORT_SW1));{ > Port_WriteBit(PORT_LED1,PORT_OFF);} > > > } > } > > Versuche die LED am Applikation Bord mit einem Tastendruck anzumachen (was auch funktioniert) > und mit einem Weiteren Tastendruck wieder auszumachen- das funktioniert aber nicht! > Jumper vom SW1 ist auf GND! > Danke > MFG > Markus Wimmer Hallo, erstmal sind da ein paar geschweifte Klammern überflüssig. Zweitens, nehme ich an Du möchtest mit der while Schleife auf einen Tastendruck warten. Das wäre aber besser so: while (!Port_ReadBit(PORT_SW1)); Du möchtest ja warten, solange das Portbit NICHT gleich 1 ist. Da Du vielleicht in 0.5 Sekunden auch den Schalter nicht sofort loslassen wirst, danach auch eine Schleife, die wartet solange das SW1 Portbit gleich 1 ist. Der Code mu� daher so aussehen: 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); } Gruss Peter | |
Antwort schreiben Antworten: Re: Warum funktioniert dieses einfache Programm nicht?? (von PeterS - 23.10.2008 1:15) Re: Warum funktioniert dieses einfache Programm nicht?? (von Markus Wimmer - 23.10.2008 8:27) Re: Warum funktioniert dieses einfache Programm nicht?? (von PeterS - 23.10.2008 9:19) |
Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum