Schirmo
03.06.2013, 18:28
Hallo zusammen,
ich stehe momentan vor folgendem Problem: Ich möchte mein konvertiertes 10-Bit Analogsignal (uint16_t) einem Wert von 0V ... 15V (Char oder String) zuweisen und an einem LC-Display ausgeben (am liebsten "XX.XX V"). Das LC-Display kann nur Strings bzw. Chars ausgeben. Jetzt habe ich folgendes versucht:
void adcw_to_lcd (void)
{
char adc_ergebnis [4];
double m;
m = (15/1024)*ADCW;
dtostrf (m,3,2,adc_ergebnis);
lcd_string (adc_ergebnis);
lcd_string (" V");
}
Ich habe schon versucht "m = 2.14" und Dies dann einfach auszugeben und es hat funktioniert. Mein zweiter verrsuch war dann 2*ADCW auszugeben und es hat auch geklappt, aber sobald ich einen Bruch einfüge klappt es nicht mehr.
Frage1: Wo genau liegt mein Fehler :D
Frage2: Wie löst man so was am elgantetsten? Sollte ich andere Variablen verwenden, gibt es befehle für lineare funktionen oder sollte ich ie Methode anders aufbauen??? Wenn möglich anfängerfreundliche Tipps bzw. Beispiele geben.
Danke im Vorraus.
ich stehe momentan vor folgendem Problem: Ich möchte mein konvertiertes 10-Bit Analogsignal (uint16_t) einem Wert von 0V ... 15V (Char oder String) zuweisen und an einem LC-Display ausgeben (am liebsten "XX.XX V"). Das LC-Display kann nur Strings bzw. Chars ausgeben. Jetzt habe ich folgendes versucht:
void adcw_to_lcd (void)
{
char adc_ergebnis [4];
double m;
m = (15/1024)*ADCW;
dtostrf (m,3,2,adc_ergebnis);
lcd_string (adc_ergebnis);
lcd_string (" V");
}
Ich habe schon versucht "m = 2.14" und Dies dann einfach auszugeben und es hat funktioniert. Mein zweiter verrsuch war dann 2*ADCW auszugeben und es hat auch geklappt, aber sobald ich einen Bruch einfüge klappt es nicht mehr.
Frage1: Wo genau liegt mein Fehler :D
Frage2: Wie löst man so was am elgantetsten? Sollte ich andere Variablen verwenden, gibt es befehle für lineare funktionen oder sollte ich ie Methode anders aufbauen??? Wenn möglich anfängerfreundliche Tipps bzw. Beispiele geben.
Danke im Vorraus.