Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

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: