Forum: Mikrocontroller und Digitale Elektronik Pointer + LCD Display Problem


von Stefanie (Gast)


Lesenswert?

Hallo,
ich wollte mein Programm jetzt mit Zeigern realisieren und nun 
funktioniert es nicht mehr.
Wisst ihr, wo ihr der Fehler drin liegt?

...
  char *tempu;
  int *manu;
  int16_t *tu;

  char m1tempu[14];
  int m1manu;
  int16_t m1tu;

  m1tu = 19;
  m1manu='A';

  tempu =  m1tempu;
  manu = &m1manu;
  tu = &m1tu;

  dtostrf(*tu, 2, 0, *tempu ) ;
  lcd_puts(*tempu);
  lcd_puts("    ");
  lcd_putc(*manu);


Das 'A' von m1manu wir ausgegeben, aber die 19 nicht.

von Stefanie (Gast)


Lesenswert?

Ich möchte das machen, damit ich dann einfach noch
  char m2tempu[14];
  int m2manu;
  int16_t m2tu;

Hinzufügen kann und dann die Zuweisung der Zeiger auf die anderen 
Variablen erfolgen kann und der untere Ausgabeteil so nicht verändert 
werden muss.



von Karl H. (kbuchegg)


Lesenswert?

Stefanie wrote:

>   int16_t *tu;
>   int16_t m1tu;
>
>   m1tu = 19;
>   tu = &m1tu;
>
>   dtostrf(*tu, 2, 0, *tempu ) ;


Das d in dtostrf steht für 'double'. Du hast
aber keinen double, du hast einen int16_t.
Also ist dtostrf die falsche Funktion.

Selbst dann:
dtostrf möchte einen Pointer auf ein char Feld
in dem es das Ergebnis ablegen kann.
tempu ist so ein Pointer. Also brauchst du keinen *


Hat der Compiler da gar nichts gemeckert?

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.