在driverlib中的adc.c里,ADCProcessorTrigger函数通过写寄存器ADC_PSSI来触发采样:
HWREG(ui32Base + ADC_O_PSSI) |= ((ui32SequenceNum & 0xffff0000) |
(1 << (ui32SequenceNum & 0xf)));
可是为什么这个操作执行之后我的ADC_PSSI中的各个值都还是0,
然后我觉得写成这样似乎是等效的:
HWREG(ui32Base + ADC_O_PSSI) |= 1 << ui32SequenceNum;
//因为SequenceNum要小于4,所以ui32SequenceNum & 0xffff0000不就恒等于0么.因此
//1<<(ui32SequenceNum & 0xf)和0进行或运算应该得到的就是1<<(ui32SequenceNum & 0xf)
//也就是1 << ui32SequenceNum喽?
不明白为什么库函数要写成最上方的那种形式