|
#ifndef DSP28_ADC_H
#define DSP28_ADC_H
// ADC Individual Register Bit Definitions:
struct ADCTRL1_BITS {
// bits
description
Uint16
rsvd1:4;
// 3:0
reserved
Uint16
SEQ_CASC:1;
// 4
Cascaded sequencer mode
Uint16
rsvd2:1;
// 5
reserved
Uint16
CONT_RUN:1;
// 6
Continuous run
Uint16
CPS:1;
// 7
ADC core clock prescaler
Uint16
ACQ_PS:4;
// 11:8
Acquisition window size
Uint16
SUSMOD:2;
// 13:12 Emulation suspend mode
Uint16
RESET:1;
// 14
ADC reset
Uint16
rsvd3:1;
// 15
reserved
};
union ADCTRL1_REG {
Uint16
all;
struct ADCTRL1_BITS
bit;
};
简单说明一下,Uint16 查看它的定义是unsigned int 在DSP中 int 是16位。可以认为为了记忆的方便这么宏定义的。
Uint16
SEQ_CASC:1;
// 4
Cascaded sequencer mode
Uint16
RESET:1;
// 14
ADC reset 这是位的定义说明在16位的第十四位是reset ,也就是复位的功能。在dsp2812各个位的功能里面有。
union ADCTRL1_REG {
Uint16
all;
struct ADCTRL1_BITS
bit;
};
是一个共用体,可以把ADCTRL1_REG看做是一个16位的数,亦可以看成是各位的组合。相当于复用。但是存取的东西不一样。比如存的是二进制数10的话可以看成十进制的十,也可以看成1,0.
extern volatile struct ADC_REGS AdcRegs;
值得注意的是volatile 表示不允许优化器优化。C语言没有的。
|
|