Forum: Mikrocontroller und Digitale Elektronik LED über UART ein und ausschalten - Problem


von Samuel J. (capstrovor)


Lesenswert?

Hallo

ich versuche gerade eine LED über den UART ein und auszuschalten. Dazu 
sende ich mit putty eine 1 oder eine 0
Code:
#include "Klingler-Lib.h"

int main()
{
  InitPort(PB, OUTPUT);
  InitUART();
  uchar cByteBuffer[2];

  WriteUARTString("UART Ready \n\r");

  while(1)
  {
    while (UARTAvailable ()<1);

    cByteBuffer[0] = ReadUARTByte();

    //if(cByteBuffer[0] == '0')
      WritePortPin(PB, 0, cByteBuffer[0]);

    //if(cByteBuffer[0] == '1')
      WritePortPin(PB, 0, cByteBuffer[0]);

    cByteBuffer[1] = 0;
    WriteUARTString(cByteBuffer);
    WriteUARTString("\n\r");
  }
}

so funktioniert es nicht. Wenn ich aber die kommentarzeichen bei der if 
bedingung weglasse, geht es. Wieso funktioniert es mit kommentarzeichen 
nicht?


mfg

: Bearbeitet durch User
von Roland .. (rowland)


Lesenswert?

Erwartet "WritePortPin" nicht 1 oder 0 als Wert? Du übergibst aber das 
UART-char, also ein ASCII-Zeichnen, das ist sogesehen immer true, also 
1.

von Fabian (Gast)


Lesenswert?

Samuel J. schrieb:
> //if(cByteBuffer[0] == '0')
>       WritePortPin(PB, 0, cByteBuffer[0]);
>
>     //if(cByteBuffer[0] == '1')
>       WritePortPin(PB, 0, cByteBuffer[0]);

Mach daraus:

WritePortPin(PB, 0, cByteBuffer[0] - '0');

von Samuel J. (capstrovor)


Lesenswert?

super danke jetzt passt es!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.