Other Parts Discussed in Thread: MOTORWARE, CCSTUDIO
主题中讨论的其他器件:MOTORWARE、 CCStudio
工具/软件:TI C/C++编译器
在此 过程之后 ,我创建了一个独立的 Instaspin 项目,该项目在构建时没有错误。 但是、我无法运行 lab01。
我有 LaunchXL-28069M 套件、而 lab01无需进行修改即可正常运行、无需修改即可创建独立项目。 因此、这肯定是一个软件问题。
对于独立项目,程序会卡在 HAL_CA()内的 HAL_AdcOffsetSelfCal()函数中。
//Select VREFLO internal connection on B5 ADC_enableVoltRefLoConv (obj->adcHandle); //为所有 SOC HAL_AdcCalChanSelect (handle、ADC_SockChanNumber_B5)选择通道 B5; //应用人工偏移(+80)以考虑可能驻留在 ADC 内核中的负偏移 ;ADC_AdcHandle Conversion (ADC_AdcHandle)= ADC=AdcHandle Conversion (ADC=ADC=ADC=ADC=ADC=ADC=ENABLE_B5);//调整处理
在 HAL_AdcCalConversion()中,程序尝试对所有 ADC 进行几次采样以计算平均偏移。
ADC_setSockFrcWord (obj->adcHandle、0x00FF); while (index < SampleSize) { //等待 ADCINT1触发,然后将 ADCRESULT0-7寄存器相加 if (adc_getIntFlag (obj->adcHandle、adc_IntNumber_1)==0){} //必须清除 ADCINT1标志,因为 INT1CONT = 0 adc_clearIntFlag (obj->adcHandle、adc_IntNumber_1); sum += adc_readResult (obj->adcHandle、adc_ResultNumber_0); sum += adc_readResult (obj->adcHandle、adc_ResultNumber_1); sum += adc_readResult (obj->adcHandle、adc_ResultNumber_2);
这将启用 ADC 的软件触发、完成后将计算平均值。
ADC_setSockFrcWord 似乎实际上不会触发转换、程序会卡在 ADCINTFLG 检查处。 我尝试将其注释掉、但立即得到错误的 ISR 中断。 任何绕过或注释掉此校准的尝试都会导致错误的 ISR 中断。 由于这个准确的代码在正常项目中运行、我不确定在哪里检查错误。
有什么关于为什么会发生这种情况的想法?