Forum: Mikrocontroller und Digitale Elektronik String übergeben in C18


von Chipsammler (Gast)


Lesenswert?

schommn jeamdn wach? :)

ich habe für mein LCD Display die Funktion GLCD_putchar() die jeweils 
ein Zeichen am Bildschirm ausgibt und dann eine Stelle nach rechts 
rückt. Das funktioniert auch ohne Probleme.
Nun wollte ich mit einer weiteren FUnkition GLCD_putmsg() einen String 
ausgeben.

1
void GLCD_putmsg(unsigned char *Message)
2
{
3
  while(*Message!=0)
4
  {
5
    GLCD_putchar(*Message++);
6
  }
7
}


ich hatte versucht, die Funktion mit:
GLCD_putmsg("Hello world");
oder
GLCD_putmsg('Hello world');
aufzurufen.Leider blieb der Erfolg dabei bisher aus. Kann mir jemand 
weiterhelfen?

mfg
Chipsammler

von erd (Gast)


Lesenswert?

void GLCD_putmsg(const char *Message)
{
    register char x;

    while ( (x = *Message++) )
        lcd_putc(x);
}

so musses gehen

von Chipsammler (Gast)


Lesenswert?

ne geht leider auch nicht. macht es eigentlich einen Unterschied, ob die 
Funktion in einer anderen Datei liegt? also:
main.c
glcd.c

von christian (Gast)


Lesenswert?

Wenn du sie über die Header datei in den anderen C Dateien einbindest 
dann nicht.

christian

von christian (Gast)


Lesenswert?

Kleiner Nachtrag:

Manchmal hilft auch ein Blick in den C18 Users Guide!
1
void putsUSART_rom( static const rom char *data )
2
{
3
/* Send characters up to the null */
4
  do
5
  {
6
    while (BusyUSART());
7
    /* Write a byte to the USART */
8
    putcUSART (*data);
9
  } 
10
   while (*data++);
11
}

von (prx) A. K. (prx)


Lesenswert?

Wobei das "rom" hier entscheidend ist, nicht das "static".

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.