|
#ifdef __IAR_SYSTEMS_ICC__
#ifndef _SYSTEM_BUILD
#pragma system_include
#endif
#endif
ASMSFRB2 MACRO
sfrb \1 = \3
sfrb \2 = \3
ENDM
/* Word sized SFRs, needs to be expanded into an assembler macro first. */
#define SFR_W_BITS(_NAME, _ADDR, _A,_B,_C,_D,_E,_F,_G,_H, _I,_J,_K,_L,_M,_N,_O,_P)\
ASMSFRW _NAME, _ADDR
ASMSFRW MACRO
sfrb \1L = (\2+0)
sfrb \1H = (\2+1)
ENDM
ASMSFRWBN MACRO
sfrb \3 = (\2+0)
sfrb \4 = (\2+1)
ENDM
#define SFR_L_BITS(_NAME, _ADDR, \
_B0, _B1, _B2, _B3, _B4, _B5, _B6, _B7, \
_B8, _B9, _B10, _B11, _B12, _B13, _B14, _B15, \
_B16, _B17, _B18, _B19, _B20, _B21, _B22, _B23, \
_B24, _B25, _B26, _B27, _B28, _B29, _B30, _B31) \
ASMSFRL _NAME, _ADDR
ASMSFRL MACRO
sfrb \10 = (\2+0)
sfrb \11 = (\2+1)
sfrb \12 = (\2+2)
sfrb \13 = (\2+3)
ENDM
ASMSFRLBN MACRO
sfrb \3 = (\2+0)
sfrb \4 = (\2+1)
sfrb \5 = (\2+2)
sfrb \6 = (\2+3)
ENDM
#endif /* __IAR_SYSTEMS_ASM__ */
#ifdef __ICCAVR__
#define __BYTEBITS(_NAME,_A,_B,_C,_D,_E,_F,_G,_H) \
unsigned char _NAME ## _ ## _A:1, \
_NAME ## _ ## _B:1, \
_NAME ## _ ## _C:1, \
_NAME ## _ ## _D:1, \
_NAME ## _ ## _E:1, \
_NAME ## _ ## _F:1, \
_NAME ## _ ## _G:1, \
_NAME ## _ ## _H:1;
感激不尽啊 |
阿莫论坛20周年了!感谢大家的支持与爱护!!
如果天空是黑暗的,那就摸黑生存;
如果发出声音是危险的,那就保持沉默;
如果自觉无力发光,那就蜷伏于牆角。
但是,不要习惯了黑暗就为黑暗辩护;
也不要为自己的苟且而得意;
不要嘲讽那些比自己更勇敢的人。
我们可以卑微如尘土,但不可扭曲如蛆虫。
|