[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