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.

[参考译文] TMS320F28.0025万C:CPU计时器中断确认问题

Guru**** 2459080 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1089518/tms320f280025c-problem-to-acknowledge-cpu-timer-interrupt

部件号:TMS320F28.0025万C

各位专家,您好!

我有一个问题,我在代码中配置了三个计时器。 TIMER0和TIMER2 => INTERRUPT和Timer1 (仅限经典模式)进行计数。

为此,我使用TIMER0,Timer1和TIMER2,TIMER0连接到ePIE模块,工作正常(我使用它来传输TX CAN帧),我想使用TIMER2进行调节中断。  

它不适用于TIMER2。  

我从不摆脱这个中断:那么如何确认这个中断? 我不能使用“Interrupt_clearACKGroup(x)”,因为TIMER2不是PIE映射的一部分,否?

您可以看到我的代码:

/**Initialization timer for ISR TX_CAN*/
timer_cpu_init(CPUTIMER0_BASE);
/**Timer for CAN communication Interrupt all of (us) 10ms*/
timer_cpu_config(CPUTIMER0_BASE, DEVICE_SYSCLK_FREQ, 10000);
Interrupt_register(INT_TIMER0, &isr_timer);
CPUTimer_enableInterrupt(CPUTIMER0_BASE);
Interrupt_enable(INT_TIMER0);

/**Initialization timer for STEP_START_TIMER precharge and monitoring utilization*/
timer_cpu_init(CPUTIMER1_BASE);
/**Timer for STEP_START_TIMER precharge all of (us) PARAM_T_PL_US and monitoring utilization*/
config_cpu_timer(CPUTIMER1_BASE);

/**Initialization timer for regulation interrupt*/
timer_cpu_init(CPUTIMER2_BASE);
/**Timer for regulation interrupt all of (us) 25us*/
timer_cpu_config(CPUTIMER2_BASE, DEVICE_SYSCLK_FREQ, 25);
Interrupt_register(INT_TIMER2, &isr_regulation);
CPUTimer_enableInterrupt(CPUTIMER2_BASE);
Interrupt_enable(INT_TIMER2);

/**Start timer for interrupt CAN (to send frames)*/
CPUTimer_startTimer(CPUTIMER0_BASE);
/**Start timer for precharge step (to measure precharge voltage when timer is reached)*/
CPUTimer_startTimer(CPUTIMER1_BASE);
/**Start timer for regulation interrupt*/
CPUTimer_startTimer(CPUTIMER2_BASE);

谢谢!

Damien

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Damien,

    </s>108.9518万 28.0025万

    它不适用于TIMER2。  

    我从不摆脱这个中断:那么如何确认这个中断? 我不能使用“Interrupt_clearACKGroup(x)”,因为TIMER2不是PIE映射的一部分,否?

    [/引述]

    如果您更改定时器2的频率,它是否工作? 我认为部分问题可能是计时器2 ISR每25美元就会出现。  

    由于此中断不是ePIE模块的一部分,因此不需要任何其他代码来确认此中断。  

    此致,

    Marlyn

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Marlyn:

    如果我更改TIMER2的频率,它仍然不起作用。 如果我配置了所有中断(TIMER0表示TX CAN,TIMER2表示调节), 由于我一直处于计时器2中断状态,我在监视器上看不到任何CAN帧,这似乎是合乎逻辑的。 如果我只配置中断TIMER2,它不起作用,我认为问题似乎来自TIMER2,而不管频率如何。  

    我一直在看,但我暂时看不出来,你有什么想法吗?

    谢谢

    Damien

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你(们)好  

    我发现问题来自我中断的内容。

    谢谢

    Damien

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    显然,我的问题与我用来通过sci链接进行调试的printf指令有关,删除这些指令就不用再担心了。