Mein ADC dauert 3,41 us.
Ich habe einen Timer der jede 30us aktiv ist.
Hallo,
ich habe ein Problem mit dem ADC.
Wenn ich 512 mal Werte mit dem ADC_GetConversionValue(ADC) hole , sind
200 Werte vom ADC3 0 , vom ADC2 sind 139 Werte 0 und beim ADC1 sind 56
Werte 0.
Was ist das Problem ?
Wieso kommen 0 Werte ?
Tobias schrieb:> Mit Zeile 42 meinst du was genau ?
Auf Deutsch:
Mit deinen Angaben kann man nichts anfangen. Das kann alles und jedes
sein.
Dass du einen Aufruf von ADC_GetConversionValue hinkriegst, glaubt dir
auch so jeder. Was immer diese Funktiona auch macht, auf welchem µC Typ
du auch immer benutzt.
Aber da beim Aufruf steckt höchst wahrscheinlich auch nicht das Problem.
Das ist ganz wo anders.
Zum Bespiel finde ich es überaus spannend, dass du hier
1
array1=ADC_GetConversionValue(ADC1);
Variablen hast, die 'array' heissen. Da kommt man als Programmierer ins
Grübeln. Denn wenn da wirklich Arrays dahinter stecken, wieso ist da
dann keine Index-Operation?
Es könnte natürlich auch ein Pointer sein. Aber dann würde man da wohl
einen Pointer-Inkrement erwarten.
Es kann aber auch alles ganz anders sein. Wer weiß das schon? Es ist,
wie wenn du bei einem Verkehrsflugzeug (dessen Typ du nicht verrätst) du
einen Motorausfall diagnostizieren sollst und alles was du präsentierst
ist eine Beilagscheibe. Nicht sehr hilfreich. Denn die Beilagscheibe ist
sehr wahrscheinlich nicht das Problem.
Was dir die beiden mitzuteilen versuchen:
Es gibt nur einen µC und genau ein Typ von ADC im gesamten Universum.
Siehe auch Netiquette bzgl. Problembeschreibung.
Tobias schrieb:> array1 =ADC_GetConversionValue(ADC1);> array2 =ADC_GetConversionValue(ADC2);> array3 =ADC_GetConversionValue(ADC3);
die array sind natürlich mit index :
array1[calibration]
array2[calibration]
array3[calibration]
Karl Heinz schrieb:> Wieso ist das natürlich?>> In dem Code, den du präsentiert hast, sind sie es nicht.
Wenn ich den kompletten Code hier reinklatsche dann
a) list das keiner
b) müsste man immer hoch und runter scrollen
c) 80% davon wären nicht relevant für die Frage
Ich wollte es vereinfacht darstellen und im allgemeinen Fragen ob bei
der AD Wandlung man mit dem ADC_GetConversionValue(ADC) Null Werte
bekommen kann obwohl sich die Analoge Spannung nie 0 ist.
Tobias schrieb:> und im allgemeinen Fragen ob bei> der AD Wandlung man mit dem ADC_GetConversionValue(ADC) Null Werte> bekommen kann obwohl sich die Analoge Spannung nie 0 ist.
Wenn der ADC richtig intialisiert und konfiguriert ist, der richtige
Kanal ausgewählt, die entsprechenden sonstigen Voraussetzungen laut
Datenblatt erfüllt sind, die Hardware korrekt angeschlossen ist und
funktioniert dann
NEIN
Mein Gutster, so wird das nichts. :-)
>Wenn ich den kompletten Code hier reinklatsche dann>a) list das keiner
Deswegen steht in der Netiquette auch, dass Du ggf. das Programm so
reduzieren sollst, dass das Problem gerade noch auftritt. Wenn Du zu dem
gezeigten Code noch eine main-Funktion bastelst, dann sollte das ein
erster guter Ansatz sein. (Immer voraussgesetzt das Problem tritt dann
noch auf).
>b) müsste man immer hoch und runter scrollen
Du kannst den Code auch als Anhang posten.
>c) 80% davon wären nicht relevant für die Frage
Siehe a). Das ist aber an sich unvermeidbar. Das Problem ist eher, das
Du nicht entscheiden kannst, welches 1% von dem 100%, das relevante ist.
Deswegen sollst Du alles posten.
Udo Schmitt schrieb:> [ ] Du hast die Netiquette gelesen (und verstanden)?Tobias schrieb:> c) 80% davon wären nicht relevant für die Frage
Dann lässt du die weg. Änderst den Rest so, dass du's übersetzen kannst.
Spielst das ganze auf den µC und wenn der Fehler dann immer noch da ist,
dann fragst du noch mal.
Edit:
Bitflüsterer schrieb:> Mein Gutster, so wird das nichts. :-)
... das meinte ich.
Udo Schmitt schrieb:> Tobias schrieb:>> und im allgemeinen Fragen ob bei>> der AD Wandlung man mit dem ADC_GetConversionValue(ADC) Null Werte>> bekommen kann obwohl sich die Analoge Spannung nie 0 ist.>> Wenn der ADC richtig intialisiert und konfiguriert ist, der richtige> Kanal ausgewählt, die entsprechenden sonstigen Voraussetzungen laut> Datenblatt erfüllt sind, die Hardware korrekt angeschlossen ist und> funktioniert dann> NEIN
Super das war die Antwort auf die Frage