[elektro] PIC C18 probléma

Skandar Graun sgraun at gmail.com
Sun Feb 8 23:48:07 CET 2015


Sziasztok!

Van egy számom (pozíció), ami 200 000 -ig mehet fel.
Ezt a számot nekem LCD.re 100-al osztva kellene megjelenítenem, két
tizedessel.

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() );
}

A problémám, hogy az így számolt és megjelenített tizedesek elég furcsa
viszonyban vannak a valósággal. Egy másik kijelzőn is meg van jelenítve az
érték, az jól számol, az LCD-n látható érték viszont hibás, a tizedesek
eltérnek a valóságtól.
Mi nem jó a módszeremben, vagy mit tudnátok ajánlani helyette?


More information about the Elektro mailing list