char an Funktion übergeben

Gast #4133868
Lesenswert?
• ▲
▼
Hallo, ich möchte einen text und eine Zahl einer FUnktion übergeben. 
Diese funktion soll diese sachen dann auf ein display anzeigen
1
void writeDisplay(unsigned char Tx[16], unsigned int Rx)//Display Data on the LCD
2
{
3
    unsigned int i, n, temp;
4
    send_command_byte(0x02); // first line
5
    for (n=0; n<'\''; n++) send_data_byte(Tx[n]);
6

7

8
    send_command_byte(0xC0); // second line
9
    temp = Rx;
10
    for (i=0; i<16; i++) {
11
        line2[15 - i] = temp % 2 + 48;
12
        temp = temp / 2;
13
    }
14
    for (n=0 ; n<=16 ; ++n) send_data_byte(line2[n]);
15
}

aufgerufen wird das ganze mit
1
"writeDisplay("Hallo",123);

jedoch bekomme ich den Fehler
Main.c:72:11: error: incompatible types when assigning to type 'unsigned 
char[16]' from type 'unsigned char *'

am anfang habe ich schon
1
unsigned char line1[16];
2
unsigned int line2[16];
erstellt.
also eigentlich sollte er alles kennen.

Wenn ich in der FUnktion nur
1
    send_command_byte(0x02); // first line
2
    for (n=0; n<'\''; n++) send_data_byte(line1[n]);
schreibe und in line1 vorher etwas reinschreibe, zeigt er es mir richtig 
auf dem display an. jetzt möchte ich aber gerne den Text variable halten 
und der Funktion mit übergeben.

muss ich da noch etwas ändern?
ich denke schon, sonst käme ja kein Fehler. Jedoch habe ich keinen 
schimmer was ich ändern soll.

Johannes
Gast #4133903
Lesenswert?
• ▲
▼
peter || hatte recht.
das
1
for (n=0; n<'\''; n++)
hatte eigentlich funktioniert. so war es egal, wie viele zeigen 
dargestellt werden sollen, die restlichen waren lehr. jetzt zeigt er mir 
komische symbole an. und mit
1
for (n=0; n<=sizeof(Tx); n++)
werden nicht alle zeichen dargestellt.
aber danke für die Hinweise
Gast #4133907
Lesenswert?
• ▲
▼
Johannes schrieb:
> for (n=0; n<'\''; n++) hatte eigentlich funktioniert. so war es egal,
> wie viele zeigen
> dargestellt werden sollen, die restlichen waren lehr. jetzt zeigt er mir
> komische symbole an. und mitfor (n=0; n<=sizeof(Tx); n++) werden nicht
> alle zeichen dargestellt.
> aber danke für die Hinweise

sizeof(Tx) ist genauso falsch an diese stelle.
Was wolltest du überhaupt mit '\'' erreichen?

eigentlich macht man es so
1
char* tmp = Tx;
2
while( *tmp ) {
3
   send_data_byte(*tmp);
4
   tmp++;
5
}

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.