Thread 中讨论的其他器件:controlSUITE
您好!
我知道 ADC 由 C28控制。 我在 C28侧使用 controlSUITE 示例。 但是、当我在 M3侧读取 ADCRESULT 时、结果与我在 C28侧读取的结果完全不同。 我不确定这里有什么问题。 C28端的 ADC1结果0和1为波特率提供大约4021的值、这是合理的。 但在 M3侧读取 ADCRESULT0和 ADCRESULT1时、分别为我提供2170和51976。
任何指针都被赞赏。
谢谢、
Robert
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.
您好!
我知道 ADC 由 C28控制。 我在 C28侧使用 controlSUITE 示例。 但是、当我在 M3侧读取 ADCRESULT 时、结果与我在 C28侧读取的结果完全不同。 我不确定这里有什么问题。 C28端的 ADC1结果0和1为波特率提供大约4021的值、这是合理的。 但在 M3侧读取 ADCRESULT0和 ADCRESULT1时、分别为我提供2170和51976。
任何指针都被赞赏。
谢谢、
Robert
您好、Matthew、
C28端的 controlSUITE 中的代码基本相同、在 M3上、我只需使用 CCS 调试将 ADCRESULT 寄存器读取到变量 voltage1和 voltage2中、即可观察这些值。
这是 M3主循环中的代码:
#Elif defined (_F28M35H52C1_)
M3_TimerHandler();//处理与计时器相关的执行
{
uint16_t voltage1 = HWREG (ADC1_base);
uint16_t voltage2 = HWREG (ADC1_BASE_1);
}
#endif
在 C28侧触发 ADC1_0和 ADC1_1:
_interrupt void ADC1_ISR (void)
{
//Voltage1[ConversionCount]= Adc1Result.ADCRESULT0;
//Voltage2[ConversionCount]= Adc1Result.ADCRESULT1;
//如果记录了20次转换,则重新开始
if (ConversionCount = 9)
{
ConversionCount = 0;
}
else ConversionCount++;
Adc1Regs.ADCINTFLGCLR.bit.ADCINT1 = 1;//清除 ADCINT1标志重新初始化
//用于下一 SOC
PieCtrlRegs.PIEACX.ALL = PIEACK_Group1;//确认 PIE 中断
返回;
}
Matthew、
顺便提一下、我收到了第一个完全加载的原型板。 我将相同的代码编程到原型中、ADC 直接工作。 C28端和 M3端是一致的!!
我返回到 controlCARD、再次对其进行编程;结果与之前相同。 我认为 controlCARD 有故障。 正如我之前提到的、此 controlCARD 还具有一个特性、即 DIP 开关设置与我们在阿德莱德办事处使用的其他 controlCARD 相反。 考虑到这两个修订都是不同的、我们以前就驳回了它。
更换此部件的过程是什么?
谢谢、
Robert