抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

环境:

  • IDE:
    • Renesas CS+ for CC
  • MCU:
    • RL78/F13 R5F10BGG
  • FLASHER:

问题描述:

使用CS+ for CC软件配置TimerTAU0Channel0配置为Interval timer模式,具体配置如下图:

Channel0_Conf

 

Generate Code之后

r_cg_timer_user.c文件里定义并初始化uint16_t Timer_Count = 0;,并在Channel0的中断函数r_tau0_channel0_interrupt里添加如下代码:

R_TAU0_Channel0_Stop();                 //关闭TAU0_Channel0中断

Timer_Count ++;
if(Timer_Count >= Timer_Count_MAX)
{
Timer_Count = 0;
}

R_TAU0_Channel0_Start(); //开启TAU0_Channel0中断

r_cg_userdefine.h文件里定义宏#define Timer_Count_MAX 65000,在r_mian.c中声明extern uint16_t Timer_Count;就可以添加如下Delay_ms函数:

void Delay_ms(uint16_t num)
{
Timer_Count = 0;

while((num - Timer_Count) != 0)
{
NOP( );
}
}

⚠️ Notice:
上面代码中的NOP();非常重要,不可省略,省略之后代码会卡死在while((num - Timer_Count) != 0)里面。

最后我把本次的代码放在下面:
R5F10BGG_Demo