[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