Jens K. schrieb:
> Also das mit dem 5.0 und 1024.0 bringt zumindest schonmal andere Werte
> als 0V auf den Schirm. Am Anfang wird für die erste Variabel 0.31V and
> für die zweite 0.32V ausgegeben. Der erste Wert geht dann auf 0.33V hoch
> und bleibt da, egal welche Spannung ich am Eingang anlege.
>
> AmpSig1 und AmpSig2 sind float Variablen, der Buffer für dstrof() ist
> groß genug.
Hast du schon versucht dir mal stumpf den ADC-Wert ausgeben zu lassen,
also statt deinen Code mal
1 | uint16_t AmpSig1;
|
2 | uint16_t AmpSig2;
|
3 | AmpSig1 = internal_ADC(0);
|
4 | AmpSig2 = internal_ADC(1);
|
5 |
|
6 | itoa(AmpSig1, value_as_string, 10);
|
7 | sprintf(output,"%s V\n\r", value_as_string);
|
8 | debug_message(output);
|
9 | itoa(AmpSig2, value_as_string, 10);
|
10 | sprintf(output,"%s V\n\n\r", value_as_string);
|
11 | debug_message(output);
|
zu probieren? Und bist du dir sicher, dass die Spannung, die du angelegt
hast, auch am Pin anliegt? (direkt mal auf dem Pin messen)
Die Änderungen von oben hast du schon umgesetzt (u.a. das "Problem" mit
ADLAR und ADSP2)?
Matthias S. schrieb:
> Float Variablen gibst du ohne Umschnurzel-Trara direkt mit sprintf aus:
Und dann bekommt er, je nach Compiler-Version (wie das Makefile
aufgebaut ist usw.), ein ? raus. Ich nehme dabei auch immer dtostrf();