Pretypovani promene

Michal Grunt michal.grunt na vynet.cz
Středa Prosinec 29 22:21:19 CET 2010


printf("%d.%d MHz", frekvence/1000, (frekvence % 1000) / 100);
Vyzkouseno, funguje. Dekuji.

Zkousel jsem i
printf("%g Khz",(double)frekvence*0.001);

ale jeste je tam nejaky problem, protoze se nezobrazi zadna hodnota...

Zatim to necham dle prikladu nahore a az nebudu mit co delat, budu si s ti hrat a hledat proc to nejde tak jak bych si predstavoval.

MG

-----Original Message-----
From: hw-list-bounces na list.hw.cz [mailto:hw-list-bounces na list.hw.cz] On Behalf Of Ladislav Vaiz
Sent: Wednesday, December 29, 2010 10:06 PM
To: HW-news
Subject: Re: Pretypovani promene

Pokud se vam nad tim nechce dumat a mate dost vykonu, tak muzete udelat:
printf("%d.%d MHz", frekvence/1000, (frekvence % 1000) / 100);
Lada

Michal Grunt wrote:
> Ještě doplnim (pokud to z prispevku nebylo jasne), ze pokud mam:
>
> unsigned long frekvence;
>
> frekvence = (unsigned long)((float)twPLL*(float)32.768*(float)0.25-225)
> printf("%lu Khz",frekvence);
>
> Je vse OK, akorat je zobrazovana (na LCD) frekvence v Khz. Ale rad bych, aby se mi frekvence zobrazovala v Mhz...
>
> MG
>
> From: hw-list-bounces na list.hw.cz [mailto:hw-list-bounces na list.hw.cz] On Behalf Of Michal Grunt
> Sent: Wednesday, December 29, 2010 9:43 PM
> To: HW-news
> Subject: Pretypovani promene
>
> Zdravim,
> Potreboval bych poradit ohledne pretypovani promene. Zkousel jsem vsechno mozne, ale nedari se (WinAVR, atmega32).
>
> Mam nasledujici vzorec, kde vysledek je ve tvaru unsigned long:
>
> (unsigned long)((float)twPLL*(float)32.768*(float)0.25-225)
>
> To je v poradku, vrati se mi cislo 87500-108000 (radiova FM frekvence v Khz).
>
> Ale potrebuji z toho udelat "Mhz", tedy deleno 1000 a toto koreknte vypsat. Tedy
>
> printf("%.1f Mhz",frekvence); 
>
> Pricemz frekvence je deklarovana:
>
> double frekvence;
>
> Ze zoufalosti uz jsem zkousel jsem ruzne pokusy, ale bud se mi ukaze nesmyslny udaj nebo nic...
>
> frekvence=(double)((unsigned long)((float)twPLL*(float)32.768*(float)0.25-225))/1000);
> frekvence=(double)((unsigned long)((float)twPLL*(float)32.768*(float)0.25-225))/(double)1000);
> frekvence=(double)((unsigned long)((float)twPLL*(float)32.768*(float)0.25-225))/(double)1000.0);
>
> Jak na to?
>
> Diky
> Michal Grunt
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
>   

_______________________________________________
HW-list mailing list  -  sponsored by www.HW.cz
Hw-list na list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list


Další informace o konferenci Hw-list