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.
工具/软件:Code Composer Studio
我正在尝试调试我的代码。
我有几个与主代码相关的源文件。
以下代码是我的主代码。
我想逐行调试源文件、而不是主代码。
上周五、当我在代码中设置断点时、我可以跳转到源文件、但它现在不起作用。
我认为我没有改变任何东西、只是设置一个断点来逐行检查。
如果我使用单步执行进行调试、它会以红色字母在 while 循环处停止。
请就此向我提供建议。
#include "msp.h"
#include "driverlib.h"
#include
#include
#include
#include
#include
#include
#include "globals.h"
#include "initiations.h"
#include "peripheralFunctions.h"
#include "utilityFunctions.h"
void main (void)
{
WDT_A_HOLDTimer(); //停止看门狗计时器
map_fpu_enableModule();
MAP_Interrupt_disableMaster();
init_clocks();
init_pines();
init_uart();
init_spi();
init_adc();
init_capte();
init_timers();
MAP_Interrupt_enableSlepOnIsrExit();
MAP_Interrupt_setPriority (INT_TA3_0、0); // UART 消息传输具有最高优先级
MAP_Interrupt_setPriority (INT_TA0_N、1); //第一个磁性编码器脉冲读数
MAP_Interrupt_setPriority (INT_TA1_N、2); //二次和三次磁性编码器脉冲读数
MAP_Interrupt_setPriority (INT_PORT6、3); // ISR 以启动 Timer A 计数器
MAP_Interrupt_enableMaster();
//启动计数器/ISR (在 P1 ISR 中完成)
//map_Timer_a_startCounter (timer_A0_BASE、timer_A_up_mode);
//map_Timer_a_startCounter (timer_A1_base、timer_A_up_mode);
//map_Timer_a_startCounter (timer_A3_base、timer_A_up_mode);
while (1){
MAP_PCM_gotoLPM0 ();
}
}
//在第一个 MSP 上完成归零后启用外设的 ISR、P1.5 设置为高电平
void PORT6_IRQHandler (void)
{
//printf ("完成归零");
uint32_t status;
STATUS = MAP_GPIO_getEnabledInterruptStatus (GPIO_PORT_P6);
MAP_GPIO_clearInterruptFlag (GPIO_PORT_P6、状态);
//启动计数器/ISR
MAP_Timer_A_startCounter (TIMER_A0_BASE、TIMER_A_UP_MODE);
MAP_Timer_A_startCounter (timer_A1_base、timer_A_up_mode);
MAP_Timer_A_startCounter (TIMER_A3_base、TIMER_A_UP_MODE);
MAP_Interrupt_disableInterrupt (INT_PORT6);
}
//使计时器在第一个磁性编码器的上升沿和下降沿之间获得时钟差
void TA0_N_IRQHandler (void)
{
//printf ("\nTA0_N ISR\n");
if (timer_A0->CCTL[1]& 1 = 1){
MAP_Timer_A_clearCaptureCompareInterrupt (TIMER_A0_BASE、TIMER_A_CAPTURECMPARE 寄存器_1);
RISE_COUNT[0]= MAP_Timer_A_getCaptureCompareCount (TIMER_A0_BASE、TIMER_A_CAPTURECOMPARE 寄存器_1);
}
if (timer_A0->CCTL[2]& 1 = 1){
MAP_Timer_A_clearCaptureCompareInterrupt (TIMER_A0_BASE、TIMER_A_CAPTURECOMPARE 寄存器_2);
FRAME_COUNT[0]= MAP_Timer_A_getCaptureCompareCount (timer_A0_BASE、timer_A_CAPTURECOMPARE 寄存器_2);
}
PULSE_LENGTH[0]= FRAGE_COUNT[0]- RISE_COUNT[0];
if (***[0]< 0){
PULSE_LENGTH[0]+= 4061;
}
}
//使计时器获得第二个两个磁性编码器的上升沿和下降沿之间的时钟差
void TA1_N_IRQHandler (void)
{
//printf ("\nTA1 ISR\n");
if (timer_A1->CCTL[1]& 1 = 1){
MAP_Timer_A_clearCaptureCompareInterrupt (TIMER_A1_base、TIMER_A_CAPTURECOMPARE 寄存器_1);
RISE_COUNT[1]= MAP_Timer_A_getCaptureCompareCount (timer_A1_base、timer_A_CAPTURECMPARE 寄存器_1);
}
if (timer_A1->CCTL[2]& 1 = 1){
MAP_Timer_A_clearCaptureCompareInterrupt (TIMER_A1_base、TIMER_A_CAPTURECOMPARE 寄存器_2);
FRAME_COUNT[1]= MAP_Timer_A_getCaptureCompareCount (timer_A1_base、timer_A_CAPTURECOMPARE 寄存器_2);
}
if (timer_A1->CCTL[3]& 1 = 1){
MAP_Timer_A_clearCaptureCompareInterrupt (TIMER_A1_base、TIMER_A_CAPTUREAPMPARE 寄存器_3);
RISE_COUNT[2]= MAP_Timer_A_getCaptureCompareCount (timer_A1_base、timer_A_CAPTURECMPARE 寄存器_3);
}
if (timer_A1->CCTL[4]& 1 = 1){
MAP_Timer_A_clearCaptureCompareInterrupt (TIMER_A1_base、TIMER_A_CAPTURECOMPARE 寄存器_4);
FRAME_COUNT[2]= MAP_Timer_A_getCaptureCompareCount (timer_A1_base、timer_A_CAPTURECOMPARE 寄存器_4);
}
PULSE_LENGTH[1]= FRAW_COUNT[1]- RISE_COUNT[1];
if (***[1]< 0){
PULSE_LENGTH[1]+= 4061;
}
PULSE_LENGTH[2]= FLOW_COUNT[2]- RISE_COUNT[2];
if (***[2])< 0){
PULSE_LENGTH[2]+= 4061;
}
}
// ISR 获取接合角、速度、电机电流和 FSR 力、然后通过 UART 进行传输
void TA3_0_IRQHandler (void){
//printf ("\nTA3 ISR\n");
MAP_Timer_A_clearCaptureCompareInterrupt (TIMER_A3_base、TIMER_A_CAPTURECOMPARE 寄存器_0);
MAP_ADC14_toggleConversionTrigger (); //触发 ADC 转换
//delay_ms (100); //延迟以允许 ADC 转换的时间
Read_SPI();
read_capture ();
read_adc();
int ii;
对于(ii = 0;ii < 6;i++){
WRITE_UART (q_s[i]);
}
对于(ii = 0;ii < 6;i++){
WRITE_UART (QD_s[i]);
}
对于(ii = 0;ii < 3;i++){
WRITE_UART (I_s[i]);
}
对于(ii = 0;ii < 4;i++){
WRITE_UART (F_s[i]);
}
MAP_UART_transmitData (EUSCI_A0_BASE、CRAY_RETURN);
}