Pokud chceš použít atmega8 jen jako voltmetr, tak se vůbec nemusíš obávat používat float a to i kdybys použil všechny ADC vstupy a na 6(v DIP) resp. 8 voltmetrů.
Dále nerozumím proč by nemělo fungovat použití modula - běžně to tak dělám a žádné problémy s tím nemám.
Schválně jsem si napsal prográmek pro zobrazení napětí na ADC vstupu na LCD ve voltech jak spoužitím float, tak bez něj.
Rozdíl ve velikosti kódu byl 56 Bytů - konkrétně 1810 a 1866 B.
Pro int je vzorec: V = ADCW * 5000/ 1024 hodnotu pak dostaneš v mV
int U;
while (1)
{
U=(ADCW*5000)/1024;
sprintf(lcd_buffer,"%i,%03u",U/1000,U%1000);
lcd_puts(lcd_buffer);
}
pro float je ten původní: V = ADC * 5/ 1024
float U;
while (1)
{
U=(ADCW*5)/1024;
sprintf(lcd_buffer,"%.3f",U );
lcd_puts(lcd_buffer);
}
Jinak inspiraci můžeš čerpat i tady http://forum.mcontrollers.com/t/ako-zobrazit-desatinne-cislo-na-displeji-s-hd44780-v-c/962/1