ADC-Wert am HD44780U-LCD anzeigen

Gast #2379314
Lesenswert?
• ▲
▼
Hallöchen,

folgendes Problem. Ich stelle eine am ADC-Eingang gemessene Spannung 
(0-5V) auf einem HD44780-LC Display dar. Dies mache ich folgendermaßen:


int main( void )
{
  char buf[5];
  uint32_t adc;

  ADC_Init();

  while( 1 )
  {
    lcd_init(LCD_DISP_ON);
    adc = ADC_Read(0);
    adc *= 500;
    adc /= 1022;
    sprintf(buf,"%ld,%0ld",adc/100,adc%100);
    lcd_puts(buf);
  }
}

Alles wunderbar, bisauf, dass bei einem tatsächlich gemessenen Wert, der 
größer x,00 und kleiner x,10 ist, mir eine "0" fehlt. Statt z.B. 3,09V 
kriege ich 3,9V angezeigt.
Klar, irgendwie logisch. Die Funktion gibt's ja auch nicht her. Aber mir 
fehlt der Ansatz zur Umsetzung, um die 0 für diesen kleinen Messbereich 
einzuschieben.
Mir eine Funktion zu bauen, die mir aus dem ADC-Wert einen in diesem 
Fall korrekten String mit der Spannung zurückgibt, ist hoffnungslos 
daneben gegangen. Jeder Versuch führte zur Ausgabe von tollen 
ASCII-Zeichen, jenseits des Alphabets.

Ich weiß, dieses Thema ist hier 1000mal durchgekaut worden und im Wiki 
gibt's einen tollen Beitrag zur Festkommaarithmetik, aber dennoch hab' 
ich mir bisher dazu keine Lösung vorstellen können.

Bin dankbar für einen kleinen Tipp.

Gruß,
Hans
Gast #2379399
Lesenswert?
• ▲
▼
holger schrieb:
> sprintf(buf,"%ld,%02ld",adc/100,adc%100);

Mensch, das war's. Besten Dank! Wofür steht denn die zusätzliche 2? Hast 
Du für mich einen Verweis auf eine richtig gute Dokumentation, die nicht 
so mühsam zu lesen ist, wie die der avr-lib auf nongnu.org?

Jedenfalls war's das! Vielen Dank nochmal!

Gruß,
Hans

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.