www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik C-Programmierung LCD PIC16F84A


Autor: Stefan S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Nobody (Gast)
Datum:

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

   while(__ps>0)       //Solange kein Stringende
   {
     __putstr++;       //Adresse hochzählen
     if (__ps== 0) break; //Wenn stringende, break
    LCDWriteChar(__ps);   //Ansonsten char ausgeben
    __ps = *__putstr;  //Dereferenzieren des Pointers (Inhalt holen)
   }
 }

Autor: Volker Zabe (vza)
Datum:

Bewertung
0 lesenswert
nicht 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.
void LCDString(const char *str)   //Pointer auf String
{
   while(*str)       // Solange kein Stringende (0)
   {
      LCDWriteChar(*str++);   // Ausgabe eines Zeichens und Adresse erhöhen
   }
}

Autor: Stefan S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dankesehr!

Ich versuch mal da was zu verstehen!

Autor: Stefan S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Weiß einer was das * bei *__putstr bedeutet?

Autor: Nobody (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich empfehle dringend deine C-Kenntnisse aufzufrischen.
z.B.:
http://openbook.galileocomputing.de/c_von_a_bis_z/

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stefan S. schrieb:
> Weiß einer was das * bei *__putstr bedeutet?

Dereferenzieren.
Das entbindet dich aber nicht von der Anschaffung und dem Durcharbeiten 
eines C-Buches.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.