hallo,
mit diesem code
Code:
#include "asuro.h"
#include "lcd.h"
#include "i2c.h"
int zahl;
unsigned int batt_1, batt_2, batt_3;
float spannung;
/************hunderter**********/
int hunderter( int zahl){
return zahl/100;
}
/*************zehner************/
int zehner( int zahl){
return (zahl - (100 * hunderter(zahl)))/10;
}
/*************einer*************/
int einer( int zahl){
return zahl - (100*hunderter(zahl)) - (10*zehner(zahl));
}
/************************batterieabfrage*************************************/
void batt_abfrage(void)
{
(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=(batt_3 + batt_2 + batt_1)/535.1;
}
int main(void)
{
Init();
zahl=Batterie();
batt_abfrage();
SerWrite("\r\n hunderter: ",14);
PrintInt(hunderter(zahl));
SerWrite(" zehner: ",9);
PrintInt(zehner(zahl));
SerWrite(" einer: ",8);
PrintInt(einer(zahl));
SerWrite(" spg: ",6);
PrintFloat(spannung,1,5);
return 0;
}
habe ich bereits die größe des hexfiles erreicht die in den atmega8 nicht mehr reinpasst, bzw. eine fehlermeldung beim flashen ausgegeben wird...
Kann das sein, oder ist da irgendwo ein fehler? Ich habe mit staunen festgestellt, dass das Printfloat mit dem einbinden von printf.c eine vergrößerung der hexdatei von 18,235k auf 22,237k bewirkt. Eine printzeile! Da muss ich wohl um mein ziel zu erreichen noch was tun...
Lesezeichen