Forum: Compiler & IDEs Zeiger - Char Ausgabe - LCD


von Oliver R. (roliver)


Lesenswert?

Hallo,

ich habe in einer Routine folgendes gefunden:
1
void rs485_puts (unsigned char address, const char *s)
2
.
3
.
4
while (*s != '\0')
5
{
6
 loop_until_bit_is_set(UCSRA,UDRE);
7
 UDR=*s;
8
 s++;
9
}

da dache ich mir folgendes:
1
void lcds(const char *f)
2
{
3
 char a;
4
 while (*f != '\0')
5
 {
6
   a = *f;
7
   TX(a); //TX(char) ausgabe an LCDPort!
8
   f++;                    
9
 }
10
}
11
12
int main(void)
13
{
14
 ....
15
 lcds('Ich bin: b\0');
16
 ....
17
};

und die endloss Anzeige mit **irgeneimenspeicher* läuft, warum?

Gruß

Oliver

von M. K. (avr-frickler) Benutzerseite


Lesenswert?

Oliver R. schrieb:
> lcds('Ich bin: b\0');
1
 lcds("Ich bin: b\0");
Müsste es heißen, aber das sollte dir auch der Compiler ankreiden.

Den Terminator '\0' kannst du dir auch sparen.

von troll (Gast)


Lesenswert?


von Oliver R. (roliver)


Lesenswert?

Hallo,

oh, Danke, jetzt gehts ;-)

DANKE

Gruß

Oliver

von Oliver R. (roliver)


Lesenswert?

Sorry, war das falsche Forum ;-)

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.