[elektro] PIC C18 probléma
Skandar Graun
sgraun at gmail.com
Wed Feb 11 14:56:13 CET 2015
Nem működött... a kijelzésben a legutolsó számjegy (a jobb szélső) felvette
az egészek értékét , a maradék elfogyott valahol.
Maradtam az eredeti verziónál.
Eddig.
2015. február 9. 9:43 Kiss Gabor írta, <kissg at ssg.ki.iif.hu>:
> On 02/08/2015 11:48 PM, Skandar Graun wrote:
> > Kitaláltam egy módszert, ami már egy tizedessel múködött, de itt kissé
> > lehalt.
> > A program a következő:
> >
> > void decpont(unsigned long bedata, unsigned char pos)
> > {
> > SetDDRamAddr(pos);
> >
> > sprintf(data,"%4lu.",bedata/100);
> > putsXLCD(data);
> > while( BusyXLCD() );
> > SetDDRamAddr(pos+5);
> > sprintf(data,"%02d",(unsigned char)(bedata % (bedata/100)));
> > putsXLCD(data);
> > while( BusyXLCD() );
> > }
>
>
> > Mi nem jó a módszeremben, vagy mit tudnátok ajánlani helyette?
>
> (A már megszellőztetett hibán kívül?)
> Hogy nem optimális.
>
> Feltéve, hogy a printf-ed szabványos, egy lépésben is mennie kellene:
>
> sprintf(data,"%7.2f",bedata/100);
>
> %f formátum híján pedig:
>
> sprintf(data,"%4u.%.2u", bedata/100, bedata%100);
>
> g
>
> -----------------------------------------
> elektro[-flame|-etc]
>
More information about the Elektro
mailing list