[elektro] PIC C18 probléma
hg12345
hg12345 at freemail.hu
Wed Feb 11 16:43:21 CET 2015
használd a div_t , ! #include <stdlib.h> div_t a; //ldiv_t és lldiv_t is létezik a= div(1234,100);a.quot => 12 egész a.rem => 34 maradék a div_t és a div függvény a standard C része mindkét használt osztás egész és maradékos osztás erről a függvény eredményét adja tovább. :-) ugyan ezt használhatod a idő megjelenítésre, ha 60 vagy 24 osztással üdv
Skandar Graun <sgraun at gmail.com> írta:
>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]
>>
>-----------------------------------------
> elektro[-flame|-etc]
More information about the Elektro
mailing list