Forum: Mikrocontroller und Digitale Elektronik Auf einem Gra-LCD TM24064B ADC-Wert ausgeben


von Peter H. (the_ride)


Angehängte Dateien:

Lesenswert?

Hi!

Mein Problem (siehe Bild) wie kann ich das am besten lösen ???


cya The_Ride
Peter

von Arne M. (Gast)


Lesenswert?

Hallo,

ich hatte mir mal für das Problem diese Funktion gebastelt.

void Byte2CharArray(uint8_t number, char* str)
{
  str[0] = number/100 + 48;
  str[1] = number/10%10 + 48;
  str[2] = number%10 + 48;
}

Die dürftest du leicht auf uint16_t erweitern können.

Viele Grüße,

Arne

von Felix i. (felixix)


Lesenswert?

Hast du eine printf bzw. sprintf Bibliothek?

Das würde das ganze sehr einfach machen:

char str[16] = "";
sprintf(str, "ADC: %d", adc_wert);

Und dann den str auf das LCD schreiben, wie auch immer du das machst.

von Bernd N. (Gast)


Lesenswert?

Jede Stelle berechnen und gut ist:
1
void AdcValOut (uint16_t AdcValue)
2
{
3
    uint8_t AdcValArray [5];
4
    uint8_t m = 4;
5
6
    do {
7
        AdcValArray [m] = '0' + AdcValue %10;                     // Berechnung der einzelnen Stellen sowie
8
        AdcValue /= 10;                                           // Wandlung nach ASCII und abspeichern im
9
    } while (m--);                                                // Array
10
    putChar ('\r');
11
    while (m != 3) {                                              // Anzahl der auszugebenden Stellen = 4
12
        putChar (AdcValArray [++m]);                              // Integer Wert ausgeben
13
        if (m == 0) putChar ('.');                                // Dezimalpunkt setzen
14
    }
15
}

putChar dann nur noch gegen deine Displayausgabe ersetzen.

von Peter H. (the_ride)


Lesenswert?

Hi!

Danke für eure Antworten werd ich mal ausprobieren


cya The_Ride
Peter

von Krapao (Gast)


Lesenswert?

> Mein Problem (siehe Bild) wie kann ich das am besten lösen ???

Die "Fraßspuren" rechts oben... Das LCD ist defekt und eine DIY-Lösung 
ist IMHO nicht möglich.

von The_Ride (Gast)


Lesenswert?

Hi!

Also die Fraßpuren stören mich weniger als das andere Problem.

cya The_Ride
Peter

von Krapao (Gast)


Lesenswert?

Dachte das wäre mit den anderen Antworten längst gelöst.

z.B. in main.c
statt T6963cPutStringXY_P(0, 0, PSTR("Hi!"));
1
{
2
  char Buffer[20];
3
  int i = 25;
4
5
  itoa( i, Buffer, 10 ); // http://www.mikrocontroller.net/articles/FAQ
6
  T6963cPutStringXY(0, 0, Buffer); // ohne _P !
7
}

Zu Beginn von main.c muss dann noch ein #include <stdlib.h> stehen

von Krapao (Gast)


Lesenswert?

Was es mit dem _P auf sich hat, kannst du im AVR-GCC Tuturial unter den 
Stichworten PSTR und PROGMEM nachlesen.

von Krapao (Gast)


Lesenswert?

s/Tuturial/Tutorial/

von Peter H. (the_ride)


Angehängte Dateien:

Lesenswert?

Hi!

Danke an alle :)

cya The_Ride
Peter

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.