Hallo,
Ich hab ein kleine Demo Funktion geschreiben und ich finde den Fehler nicht denn ich bekomme imer nur 000 als Akku Spannung raus.
ich habe ihn in C geschreiben, bitten nicht lachen denn ich hab vorher nur
c++ borland builder, und in c# gecodet.
Der Code ist für den RP6.
Code:
uint16_t SpannungsMessungen[11], Anzahl = 10; // Angabe wie oft gemessen wird ( Pro Funktion aufruf ).
uint16_t Spannung = 0, Temp = 0;
int AkkuC0 = 0;
void AkkuCheck(void)
{
AkkuC0++;
if(AkkuC0 >= 500) // Alle 500 Aufrufe wird die Funktion ausgeführt.
{
AkkuC0 = 0;
for(int Messung = 0; Messung < Anzahl; Messung++)
{
SpannungsMessungen[Messung] = adcBat; // 10 mal wird die AkkuSpannung gemessen.
if(Messung == Anzahl)
{
for(int Zaehlen = 0; Zaehlen < Anzahl; Zaehlen++)
{
Temp = Temp + SpannungsMessungen[Zaehlen]; // Die 10 Messwerte werden Addiert.
if(Zaehlen == Anzahl) Spannung = Temp / Anzahl; // Die 10 Messwerte werden und 10 geteilt.
}
}
}
}
// Test ausgabe
writeString_P(" || Akku Spannung: ");
writeIntegerLength(Spannung, DEC, 3);
writeChar('\n');
}
Ich brauch nur einen Denkanstoss wo der fehler sein kann.
MFG Oliver G
Lesezeichen