Durch das ein und auskommentieren hat das display wieder richtig
gearbeitet(k.A. warum).
Doch an der Berechnung gibt es einen Fehler. Habe das von Jochen
ausprobiert, hat aber nichts geholfen.
1 | void MESS_BerechnungNI1000()
|
2 | {
|
3 | unsigned char ucKanal;
|
4 | float fRNi[2];
|
5 | // Ni-1000
|
6 | for(ucKanal=0;ucKanal<2;ucKanal++)
|
7 | {
|
8 | fRNi[ucKanal] = R1000*fSpg[ucKanal];
|
9 | fRNi[ucKanal] /= (VREF-fSpg[ucKanal]);
|
10 | fRNi[ucKanal] -= fRNiOffset[ucKanal];
|
11 | fTempNi[ucKanal] = 0.0314*fRNi[ucKanal];
|
12 | fTempNi[ucKanal] -= 1.9151;
|
13 | fTempNi[ucKanal] = sqrt(fTempNi[ucKanal]);
|
14 | fTempNi[ucKanal] -= 5.43;
|
15 | fTempNi[ucKanal] *= 63.694;
|
16 | }
|
wenn die Routine so aussieht gibt es keine LCD Probleme allerdings
passt die Berechnung nicht. Bevor die Wurzel gezogen wird stimmt die
berechnung der beiden Kanäle noch. Danach ist der Kanal 0 total daneben
(ca. 30 statt 5,4) und und Kanal 1 passt auch nicht ganz, aber ist in
der Toleranz.
Wenn ich nur den teil mit der Wurzel rausnehme sind beide Werte wieder
annähernd gleich und richtig.
Habe auch getestet, ob die Wurzelfunktion richtig arbeitet, indem ich
einfach vor der Wurzel fTempNi[ucKanal] gesetzt habe(z.B auf 4.0f)
dadurch kam dann bei beiden nach der Wurzel 2 heraus.
Jetz wirds erst richtig interresant:
1 | void MESS_BerechnungNI1000()
|
2 | {
|
3 | unsigned char ucKanal;
|
4 | float fRNi[2];
|
5 | // Ni-1000
|
6 | for(ucKanal=0;ucKanal<2;ucKanal++)
|
7 | {
|
8 | fRNi[ucKanal] = R1000*fSpg[ucKanal];
|
9 | fRNi[ucKanal] /= (VREF-fSpg[ucKanal]);
|
10 | fRNi[ucKanal] -= fRNiOffset[ucKanal];
|
11 | fTempNi[ucKanal] = 0.0314*fRNi[ucKanal];
|
12 | fTempNi[ucKanal] -= 1.9151;
|
13 |
|
14 | fTempNi[1] = sqrt(fTempNi[1]);//Um zu sqrt zu testen!!
|
15 |
|
16 | fTempNi[ucKanal] -= 5.43;
|
17 | fTempNi[ucKanal] *= 63.694;
|
18 | }
|
Wenn ich die Funktion so verändere, dann sind meine EUROS wieder da.
Die EUROS werden über das ganze Display geschrieben und die Funktion
Messung2LCD überschreibt sie an den entsprechenden Stellen. Wenn ich
die Funktion Messung2LCD auskommentiere, kommen keine EUROS. also
werden in der Messung2LCD die EUROS auf das Display geworfen und
dannach werden sie wieder von den Messergebnissen überschrieben(siehe
Anhang). Ich weiß nicht mehr weiter.