您好!
我已经为蓝牙通信添加了 LIN ISR 例程、两个 ISR (Motro 或 LIN)都可以作为独立运行、 但是 当启用 Motor1CtrlISR 时、它会停止运行- ADC 采样问题?
sys_main.c 中的 LIN 代码
GPIO_setPinConfig(GPIO_23_LINA_RX); GPIO_setDirectionMode(23, GPIO_DIR_MODE_IN); GPIO_setQualificationMode(23, GPIO_QUAL_ASYNC); GPIO_setPinConfig(GPIO_22_LINA_TX); GPIO_setDirectionMode(22, GPIO_DIR_MODE_OUT); GPIO_setQualificationMode(22, GPIO_QUAL_ASYNC); LIN_initModule(LINA_BASE); LIN_enterSoftwareReset(LINA_BASE); LIN_enableSCIMode(LINA_BASE); LIN_setBaudRatePrescaler(LINA_BASE, 650, 2); LIN_setSCICommMode(LINA_BASE, LIN_COMM_SCI_IDLELINE); LIN_setSCIStopBits(LINA_BASE,LIN_SCI_STOP_ONE); LIN_disableSCIParity(LINA_BASE); LIN_disableMultibufferMode(LINA_BASE); LIN_setDebugSuspendMode(LINA_BASE, LIN_DEBUG_COMPLETE); LIN_setSCICharLength(LINA_BASE, CHAR_LENGTH); LIN_setSCIFrameLength(LINA_BASE, FRAME_LENGTH); LIN_enableSCIInterrupt(LINA_BASE, LIN_SCI_INT_RX); LIN_setSCIInterruptLevel0(LINA_BASE, LIN_SCI_INT_RX); LIN_exitSoftwareReset(LINA_BASE); LIN_enableGlobalInterrupt(LINA_BASE, LIN_INTERRUPT_LINE0); Interrupt_enable(INT_LINA_0); Interrupt_enableInCPU(INTERRUPT_CPU_INT9); Interrupt_register(INT_LINA_0, &linDataRxISR); initBLEHandles(motorHandle_M1); doSendBTInitCmd(motorHandle_M1); motorHandle_M1 = (MOTOR_Handle)(&motorVars_M1); userParams_M1.flag_bypassMotorId = true; initMotor1Handles(motorHandle_M1); initMotor1CtrlParameters(motorHandle_M1);
motor1_drive.c:
#pragma CODE_SECTION(motor1CtrlISR, ".TI.ramfunc"); #pragma INTERRUPT(motor1CtrlISR, {HP}); #pragma CODE_SECTION(linDataRxISR, ".TI.ramfunc"); #pragma INTERRUPT(linDataRxISR, {HP}); . . . __interrupt void linDataRxISR(void) { uint16_t rData; rData = LIN_readSCICharBlocking(LINA_BASE, false); ble_RX_IRQ_Handler(motorHandle_M1, rData); LIN_clearInterruptStatus(LINA_BASE, LIN_INT_RX); LIN_clearGlobalInterruptStatus(LINA_BASE, LIN_INTERRUPT_LINE0); Interrupt_clearACKGroup(INTERRUPT_ACK_GROUP8); return; }
当仅通过注释掉启用 LIN 中断时
// Interrupt_register (MTR1_PIE_INT_NUM、&motor1CtrlISR);
// Interrupt_enable (MTR1_PIE_INT_NUM);
我可以通过 LIN 中断接收数据,没有任何问题!
一些错误消息:
C28xx_CPU1:GEL 输出:
存储器映射初始化完成
C28xx_CPU1:GEL 输出:... DCSM 初始化开始...
C28xx_CPU1:GEL 输出:... DCSM 初始化完成...
C28xx_CPU1:GEL 输出:... DCSM 初始化开始...
C28xx_CPU1:GEL 输出:... DCSM 初始化完成...
C28xx_CPU1:GEL 输出:... DCSM 初始化开始...
C28xx_CPU1:GEL 输出:... DCSM 初始化完成...
C28xx_CPU1:错误:(ERROR -1044 @ 0x0)调试探针报告了错误。 确认调试探针配置和连接、重置调试探针、然后重试此操作。 (仿真软件包9.12.0.00150)
C28xx_CPU1:尝试20次后无法确定目标状态
C28xx_CPU1:在断开连接之前从目标中删除调试状态失败。 程序存储器中仍可能嵌入了断点操作码。 建议您在连接前复位仿真器并在继续调试前重新加载程序
非常感谢你在这个问题上的帮助。
丹尼