Text als char array in funktion übergeben.
Dienstag, 22. Mai 2012
 
 

PIC Mikrocontroller Forum  |  PIC Mikrocontroller  |  CCS Compiler  |  Text als char array in funktion übergeben. « vorheriges nächstes »
Seiten: [1] Nach unten Drucken
Autor Thema: Text als char array in funktion übergeben.  (Gelesen 1175 mal)
 
Michael Schumann
Newbie
*
Offline Offline

Beiträge: 11


Profil anzeigen
« am: März 10, 2010, 19:56:02 »

Hi Leute,

hab da ein kleines Problem im Zusammenhang mit Zeichenketten und LCD Anzeige.

Ok, so hab ich bis jetzt eine Ausgabe am Display erfolgreich angezeigt:

Code:
while(BusyXLCD());
SetDDRamAddr(0x05);
sprintf(buffer,"Text zum anzeigen");
while(BusyXLCD());
putrsXLCD(buffer);

da sich der anzuzeigende Text, allerdings mittlerweile verzehnfacht hat wollt ich der Übersicht halber ne Funktion für das ganze drumherum schaffen...
Das sollte dann so aussehen:

Code:
void WriteGeneralText(int8 ADDRESS,char text[27]){
   char temp[27];
   while(BusyXLCD());
   SetDDRamAddr(ADDRESS);
   sprintf(temp,text);
   while(BusyXLCD());
   putrsXLCD(temp);
}

AUFRUF:
WriteGeneralText(0x05,*"Text zum Anzeigen");


Das war meine Idee. Leider funktioniert das nicht.
Wie kann ich den Zeichenketten im "Array-format" als parameter sinnvoll übergeben?

...Micha

Gespeichert
techno
Newbie
*
Offline Offline

Beiträge: 27


Profil anzeigen
« Antworten #1 am: März 10, 2010, 20:23:57 »

Hallo Michael,

übergib doch einfach einen Zeiger auf das Array.

Code:
char Test[];

void WriteGeneralText(int8 ADDRESS,char *text)
{
    while(*test != '\0')
    {
    LcdPort = *test;
    test++;
    }

}

WriteGeneralText(0x05,Test);


Gruß
Mario
Gespeichert
Michael Schumann
Newbie
*
Offline Offline

Beiträge: 11


Profil anzeigen
« Antworten #2 am: März 10, 2010, 20:36:19 »

Ja, das hatte ich ja vor, nur leider zwingt mich mein compiler zu einem " * " vor dem "Text"

die Routine putrsXLD macht dann das selbe, wie du vorgeschlagen hast.
Ich bekomm das nur nicht hin, den Zeiger ordentlich zu "übergeben"

Micha
Gespeichert
Michael Schumann
Newbie
*
Offline Offline

Beiträge: 11


Profil anzeigen
« Antworten #3 am: März 10, 2010, 21:20:36 »

Ok,

mir wurde woander her geholfen :-)

geht bei CSS wohl nur mit vorgezogenem sprintf-Befehl.

Hier nun meine funktionierende Lösung:
Code:
void WriteGeneralText(short controllerSet,int8 ADDRESS,char* text){
   
   while(BusyXLCD(controllerSet));
   SetDDRamAddr(controllerSet,ADDRESS);
   while(BusyXLCD(controllerSet));
   putrsXLCD(controllerSet,text);
}

//Aufruf

sprintf(buffer,"Anzuzeigender Text mit Variablen: %d",var_a);
WriteGeneralText(0,0x05,buffer);

Micha
Gespeichert
Seiten: [1] Nach oben Drucken 
« vorheriges nächstes »
Gehe zu:  

Powered by MySQL Powered by PHP Made for Mozilla (Firefox) Made for Internet Explorer
Seite erstellt in 0.037 Sekunden mit 17 Zugriffen.
 
Top! Top!