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.

[参考译文] CCS/TMS570LS0432:RTI 中断

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/616190/ccs-tms570ls0432-rti-interrupt

器件型号:TMS570LS0432

工具/软件:Code Composer Studio

大家好,我对 tms570ls0432 launchpad 非常陌生。 我尝试使用 compare0实现 RTI 中断,下面是我的代码。 但是当我想使用 RTI 为每10、5、2mSec 生成0、1、2中断时。 我无法生成该代码,实际上我无法为其编写代码,因为 RTI 模块 helcogen 只生成一个 void rtiNotification (UINT32 notification)。 如果我想为中断编写自己的代码,如何执行它。 请帮助。

#include "sys_common.h"

/*用户代码开始(1)*/
#include "rti.h"
#include "het.h"
#include "Gio.h"
/*用户代码结束*/

/**@fn void main (void)
*  @应用程序主函数简介
*  @请注意、默认情况下、此函数为空。
*
*  此函数在启动后调用。
*  用户可以使用此函数来实现应用程序。
*

/*用户代码开始(2)*/
UINT16 ISR=0;
/*用户代码结束*/

int main (空)

/*用户代码开始(3)*/

   /*初始化 RTI 驱动程序*/
   rtiInit();
   gioInit();

   /*将高端计时器 GIO 端口 hetPort 引脚方向设置为所有输出*/
   gioSetDirection (hetPORT1、0xFFFFFFFF);

   /*启用 RTI 比较0中断通知*/
   rtiEnableNotification (rtiNOTIFICATION_COMPARE1);

   /*启用 IRQ -清除 CPS 寄存器中的 I 标志*/
   /*注意:这通常由操作系统或 SVC 调度程序来完成*/
   _enable_IRQ ();

   /*启动 RTI 计数器块0 */
   rtiStartCounter (rtiCOUNTER_BLOCK0);

   /*永久运行*/
   while (1);

/*用户代码结束*/

  //返回0;



/*用户代码开始(4)*/
/*注-您需要从 notification.c 中删除 rtiNotification 以避免重新定义*/
void rtiNotification (uint32通知)

/* 在用户代码开始和用户代码结束之间输入用户代码。 *
  
   ISR++;

   gioToggleBit (gioPORTA、4);

/*用户代码结束*/

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

    您好!

    我建议您使用3个比较块。 每个 RTI 比较块可以使用相同的计数器(计数器0或计数器1)并生成其自己的中断。

    1. RTI 比较0以了解2ms 事件

    2、RTI 比较1针对5ms 事件

    3. RTI 比较2针对10ms 事件

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