Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C Quellcode formatieren: <code>Quellcode</code> BASIC Quellcode formatieren: <basic>Quellcode</basic> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! -> I > > > 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 > > > > > Oops, hatte in der späten Stunde vergessen, das ja die Taster invertiert sind (daher müssen ja auch die > Pullups gesetzt werden). Ok, dann hier nocmal korrekt: > > 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); > > }