[elektro] Megint C kérdés
hg12345
hg12345 at freemail.hu
Wed Apr 20 11:32:48 CEST 2011
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
More information about the Elektro
mailing list