hi damaltor,
ich habe jetzt die ausgabe in der funktion geändert, schlau werde ich daraus nicht...
Code:
void batt_abfrage(void)
{
int batt_1,batt_2, batt_3, spannung;
float spannung_1;
batt_1=Batterie();
batt_2=Batterie();
batt_3=Batterie();
if (batt_1<(batt_2-batt_2/100)) batt_1=Batterie();
if (batt_2<(batt_3-batt_3/100)) batt_2=Batterie();
if (batt_3<(batt_1-batt_1/100)) batt_3=Batterie();
spannung_1=(batt_3 + batt_2 + batt_1)/535.1;
spannung=(batt_3 + batt_2 + batt_1)*100/535;
SerWrite("\r\n batt_1: ",11);
PrintInt(batt_1);
SerWrite(" batt_2: ",9);
PrintInt(batt_2);
SerWrite(" batt_3: ",9);
PrintInt(batt_3);
SerWrite(" spannung: ",11);
PrintInt(spannung);
SerWrite(" spannung_1: ",13);
PrintFloat(spannung_1, 1, 5);
}
die ausgabe:
Code:
batt_1: 941 batt_2: 940 batt_3: 940 spannung: 37 spannung_1: 5.27191
batt_1: 941 batt_2: 941 batt_3: 941 spannung: 37 spannung_1: 5.27564
batt_1: 940 batt_2: 940 batt_3: 941 spannung: 37 spannung_1: 5.27191
batt_1: 941 batt_2: 941 batt_3: 941 spannung: 37 spannung_1: 5.27564
batt_1: 941 batt_2: 941 batt_3: 941 spannung: 37 spannung_1: 5.27564
batt_1: 941 batt_2: 940 batt_3: 941 spannung: 37 spannung_1: 5.27378
batt_1: 940 batt_2: 941 batt_3: 940 spannung: 37 spannung_1: 5.27191
batt_1: 941 batt_2: 941 batt_3: 940 spannung: 37 spannung_1: 5.27378
batt_1: 940 batt_2: 939 batt_3: 940 spannung: 36 spannung_1: 5.26817
batt_1: 940 batt_2: 940 batt_3: 940 spannung: 37 spannung_1: 5.27004
batt_1: 939 batt_2: 940 batt_3: 940 spannung: 36 spannung_1: 5.26817
wie erkenne ich woher bei der spannung die 37, bzw. 36 kommen? ich dachte es werden dann (auch wenn evtl. di falschen) aber immerhin ein paar stellen von dem float spannung_1 ausgegeben?
Lesezeichen