[elektro] Megint C kérdés

Lajos Rancz lajos.rancz at gmail.com
Wed Apr 20 11:35:25 CEST 2011


Hello!

int, aminek a szelessege pedig fordito/architektura fuggo. Hasznalj
uint64-et makroban.

Udv

2011/4/20 hg12345 <hg12345 at freemail.hu>

> Hi!
>
> Mi a szabvány, szokvány a C-ben (nem ++!!!), a számkonstans vagy
> helyettesítési érték meghatározásakor.
> - 32 bit vagy 64 bit a számábrázolás?
> - a shiftelés max 31 vagy max 63?
>
> ilyet szeretnék
> #define   PortTypeOut   0x03
> #define   PortO(Type,Pin)  ((PortTypeOut<<Pin)<<2)   /*egy meghatározás 4
> bit*/
> #define   Port32Out     (PortO(PortTypeOut,8))       /*16 bites port van)
>
> egy port meghatározása nem fér el 32 biten tudom, és a meghatározó
> regiszter is csak 32bites és csak 8 bitet tud meghatározni....
>
> 64 bites helyettesítési értékekkel egyszerűbb a kezelése!
> ((( igy helyettesítési érték meghatározásánál nem kell tudni, hogy a port
> melyik részén helyezkedik el a felhasznált láb, több láb kezeléséhez
> kell...)))
>
> PortX->TypeLo = Port32Out & 0xFFFFFFFF;
> PortX->TypeHi = Port32Out >> 32;
>
> A sajnos az alkalmazott C-t még rálehet szedni, hogy a helyettesítési
> értékeket uLL vagy LL ként tárolja, de shiftelést nem hajlandó 31 felett
> kezelni....
>
> A GNU C ezt hogy kezeli, a problémás egy KEIL...
>
>  üdv
>
>
> -----------------------------------------
>          elektro[-flame|-etc]
>


More information about the Elektro mailing list