C-Programmierung LCD PIC16F84A

Gast #1910762
Lesenswert?

Moin Moin!

Könnte mir einer den Text erklären und - oder Kommentieren?


void LCDString(const char *__putstr)
{
 char __ps;

 __ps = *__putstr;

  while(__ps>0)
   {
    __putstr++;
    if (__ps== 0) break;
   LCDWriteChar(__ps);
    __ps = *__putstr;
   }
}

Hab echt kein Plan was da passiert. Im Hauptprogramm steht nur:

LCDString("Beispieltext");

Das Zeigt er ja auf dem Display an, aber was macht der obere Teil?

MfG Stefan
Gast #1910773
Lesenswert?

Stefan S. schrieb:
> Moin Moin!
>
> Könnte mir einer den Text erklären und - oder Kommentieren?
>
>
1
 void LCDString(const char *__putstr)//Pointer auf String
2
 {
3
 char __ps;            //Erzeugen eines neuen chars als Puffer
4
  __ps = *__putstr;    //Dereferenzieren des Pointers (Inhalt holen)
5

6
   while(__ps>0)       //Solange kein Stringende
7
   {
8
     __putstr++;       //Adresse hochzählen
9
     if (__ps== 0) break; //Wenn stringende, break
10
    LCDWriteChar(__ps);   //Ansonsten char ausgeben
11
    __ps = *__putstr;  //Dereferenzieren des Pointers (Inhalt holen)
12
   }
13
 }
#1910800
Lesenswert?

Geht auch kompackter bei gleicher Funktion.
Ist dann auch leichter zu verstehen. (Wenn man mit Pointern nicht auf 
Kriegsfuß steht.)
Führende Unterstriche sollte man nicht verwenden.
1
void LCDString(const char *str)   //Pointer auf String
2
{
3
   while(*str)       // Solange kein Stringende (0)
4
   {
5
      LCDWriteChar(*str++);   // Ausgabe eines Zeichens und Adresse erhöhen
6
   }
7
}

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren