1
2
3
4
5
6
7
8
9
10 #ifndef _CONTROLW_H_
11 #define _CONTROLW_H_
12
13 #ifdef __ASSEMBLER__
14 #define _Const_(x) $##x
15 #else
16 #define _Const_(x) x
17 #endif
18
19 #define CW_RC _Const_(0x0C00)
20 #define CW_PC _Const_(0x0300)
21 #define CW_PM _Const_(0x0020)
22 #define CW_UM _Const_(0x0010)
23 #define CW_OM _Const_(0x0008)
24 #define CW_ZM _Const_(0x0004)
25 #define CW_DM _Const_(0x0002)
26 #define CW_IM _Const_(0x0001)
27 #define CW_EXM _Const_(0x007f)
28
29 #define RC_RND _Const_(0x0000)
30 #define RC_DOWN _Const_(0x0400)
31 #define RC_UP _Const_(0x0800)
32 #define RC_CHOP _Const_(0x0C00)
33
34
35
36 #define PRECISION_ADJUST_CONTROL (control_word & 0x300)
37 #define PR_24_BITS 0x000
38 #define PR_53_BITS 0x200
39
40 #define PRECISION_ADJUST(x) \
41 switch (PRECISION_ADJUST_CONTROL) \
42 { \
43 case PR_24_BITS: \
44 round_to_24_bits(x); \
45 break; \
46 case PR_53_BITS: \
47 round_to_53_bits(x); \
48 break; \
49 }
50
51
52 #endif _CONTROLW_H_