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.

[参考译文] 编译器/LAUNCHXL-F28069M:强制/手动触发 C28x 中的 CPU 定时器中断

Guru**** 2044430 points
Other Parts Discussed in Thread: LAUNCHXL-F28069M, C2000WARE
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/892510/compiler-launchxl-f28069m-forcing-manually-trigger-cpu-timer-interrupt-in-the-c28x

器件型号:LAUNCHXL-F28069M
主题中讨论的其他器件: C2000WARE

工具/软件:TI C/C++编译器

您好、社区

我正在使用 LAUNCHXL-F28069M、需要使用以下代码通过软件触发 CPU 计时器:

CpuTimer2Regs.TCR.bit.TRB=1;
EALLOW;
enable_global_INT();
IFR |= 0x2000;
//_asm ("或IFR、#0x2000"); 

如您所见、我在 CPU 定时器 启用全局中断时重新加载计数、然后在 IFR 寄存器中重新加载相应的中断标志。  
但是、中断不会将其置为有效。  

有什么想法吗?

此致、

弗朗西斯科  

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

    您好、Francisco、

    我不确定您是否已配置 PIE 矢量表并正确设置了中断启用。

     

    C2000ware 中有一个 CPU 计时器示例。 请导入并尝试该示例。

    C:\ti\c2000Ware_3_01_00_00\device_support\f28066\examples\c28\cpu_timer

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

    您好、Santosh、

    让我让您更广泛地了解我的代码。 CPU 定时器和 PIE 矢量表配置正确、CPU 定时器设置其中断标志、PIC 矢量表定期将 ISR_handler 函 数置为有效、但我想手动置位或触发 CPU 定时器中断标志、我不在乎 CPU 定时器的计数寄存器是否达到0计数。

    在我在第一个帖子中共享的代码中、我要尝试使用以下操作来设置 CPU IFR 寄存器中的 INT14标志:(IFR 或0x2000)
    该操作会设置标志 、但 CPU 不会将 ISR 函数置为有效。

    此致、

    弗朗西斯科

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

    弗朗西斯科

    确实没有太多的问题。  如果 INTM 和 IER 配置正确、PC 将进入中断矢量。

    请在线路上设置断点:

    IFR |= 0x2000;

    运行、并检查 INTM = 0 (在寄存器窗口中检查 ST1中的该位)和 IER = 1中的该位14。

    此致、

    Richard  

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

    校正:IER 位13 = 1。

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

    您好 Richard、

    我同意您的观点、将 INTM 和 IER 设置为启用 INT14 (CPUT-timer2)、然后将 IFR 寄存器中的位13设置为触发中断、就是这样;
    但是、它没有触发中断...  

    因此、我在53岁时读取 SPRU430F (CPU 和指令集)、它说:  

    在 C28x 上、中断可由软件(INTR、IFR 或 TRAP 指令)触发 

    我决定去做他的第一个指导文件,”INTR 说,它是可行的。

    这里是有效的代码

    CpuTimer2Regs.TCR.bit.TRB=1;//重新加载 CPU 定时器2计数
    器 EALLOW;
    __asm (" INTRINT14");//软件触发
    //_asm ("或IFR、#0x2000"); 

    此致