[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