关于ADCSequenceStepConfigure(ADC0_BASE, 3, 0, ADC_CTL_CH3 | ADC_CTL_IE | ADC_CTL_END)中的这几个参数ADC_CTL_CH3 | ADC_CTL_IE | ADC_CTL_END的意思
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
关于ADCSequenceStepConfigure(ADC0_BASE, 3, 0, ADC_CTL_CH3 | ADC_CTL_IE | ADC_CTL_END)中的这几个参数ADC_CTL_CH3 | ADC_CTL_IE | ADC_CTL_END的意思
楼主可以看看下面的代码:
ADCSequenceStepConfigure(ADC0_BASE, 0, 0, ADC_CTL_CH1);
ADCSequenceStepConfigure(ADC0_BASE, 0, 1, ADC_CTL_CH2);
ADCSequenceStepConfigure(ADC0_BASE, 0, 2, ADC_CTL_CH3);
ADCSequenceStepConfigure(ADC0_BASE, 0, 3, ADC_CTL_CH4 | ADC_CTL_IE);
ADCSequenceStepConfigure(ADC0_BASE, 0, 4, ADC_CTL_CH5);
ADCSequenceStepConfigure(ADC0_BASE, 0, 5, ADC_CTL_CH6);
ADCSequenceStepConfigure(ADC0_BASE, 0, 6, ADC_CTL_CH7);
ADCSequenceStepConfigure(ADC0_BASE, 0, 7, ADC_CTL_CH8 | ADC_CTL_IE | ADC_CTL_END);
ADC_CTL_CHx表示从哪个通道采样,ADC_CTL_IE表示该次采样后会产生中断;ADC_CTL_END表示到此该次采样序列结束。所以上面的序列表示从通道1一直采样到通道8,并且在通道4和通道8采样的时候分别产生一次ADC中断,并且通道8采样完成后本次采样序列结束。因为序列0有8次采样,所以序列里面有8个语句,而楼主的程序里面选的是序列3,只有一个采样,。所以这个采样从通道3采样,并且产生ADC中断,而且是这个序列的最后一个采样。
楼主,
两次中断是跟应用需要相关的,这只是一个例子,根据你的具体需要也可以只有一次或多次中断。关于函数的具体使用方法,可以参考stellarisware中docs文件夹下面的SW-DRL-UG-xxxx.pdf文件。
这个是使用灵活的表现,可以设置在某次采样结束后是否产生中断。是可以自己选择使用的。
这时候ADCSequenceDataGet可以传一个指针进去,会自动把结果顺序放在指针所指的位置。
unsigned int result[BUF_SIZE];
这时候可以直接传result进去,但注意BUF_SIZE大小要合适
楼主给的型号不对,把LaunchPad和芯片的型号揉一起了-_-
LaunchPad上的主芯片TM4C123GH6PM的话,PD0对应的是AIN7.
Datasheet上有详细的分配信息。
Tiva C 系列MCU有很多分装,例如TM4C123x系列,有64脚(PM)100脚(PZ)144脚(PGE)以及BGA封装。
例如:
64脚封装的有12个通道,分别是0~11
100脚封装的有22个通道,分别是0~21
144脚的有24个通道,分别是0~23
看Datasheet吧!