主题中讨论的其他器件:C2000WARE、、、 DRV8323
工具与软件:
您好!
我将 TMS320F280049C 与 CCS v12结合使用。 我的项目基于 C2000_SDK_5_02_00_00的 is07项目 Ware_Motor。
硬件是基于 TMS320F280049C 的评估板和 DRV8323板的内部开发。 而是控制 BLDC 电机。 现在经常发生以下情况:电机以指定的速度运行、然后突然停止并且电流消耗快速增加。 如果你现在在 mainISR 中设置了一个断点、你会意识到代码不再被执行。 但是、for (;;)循环会继续运行、Timer_ISR、I2C_ISR 和模拟测量值也会更新、只有 mainISR ()不再执行。 软件序列从实验 is07中获取(PWM 触发 ADC、当 ADC SOC 就绪后、触发 mainISR)。 你是否知道如何调试这个错误(是否有 CCS 工具)、或者什么是原因?
已进行以下更改
- RX 数据的 SCI 中断例程
- I2C 中断例程
-在中断例程结束时确认 mainISR()
mainISR()
{
motorVars.pwmISRCount++;
//
//切换状态 LED
//
counterLED++;
#ifdef EVALBOARD
if (counterLED >(uint32_t)(USER_ISR_FREQ_Hz / LED_BLINK FREQ_Hz))
{
HAL_toggleLED (halHandle、HAL_GPIO_LED2);
counterLED = 0;
}
#endif
//
//确认 ADC 中断
//
// HAL_ackADCInt ( halHandle, ADC_INT_number1 );
//
//读取偏移量的 ADC 数据
//
HAL_readADCDataWithOffsets( halHandle,&adcData );
:
:
//
//强制触发 DMA 通道以保存数据
//
HAL_TRIGDlogWithDMA( halHandle, 0 );
HAL_TRIGDlogWithDMA( halHandle, 1 );
HAL_TRIGDlogWithDMA( halHandle, 2 );
HAL_TRIGDlogWithDMA( halHandle, 3 );
#endif // DATALOG_ENABLE
#ifdef _STEP_RESPONSE_EN_
//将预定义数据收集到数组中
Graph_data (&gGraphVars、&gStepVars);
#endif //_STEP_RESPONSE_EN__
//
//确认 ADC 中断
//
HAL_ackADCInt (halHandle、ADC_INT_number1);
返回;
}// mainISR()函数结束
此致
Thomas