瑞萨RA0单片机连载——PWM实现呼吸灯

瑞萨RA0单片机连载——PWM实现呼吸灯
2025年05月23日 09:33 电子产品世界

本文引用地址:

RA0E1拥有16bit的定时器。定时器支持PWM输出功能。这一节我将展示如何配置并实现呼吸灯的效果。

在前面工程基础之上打开RASC配置工具,新建一个r_tau_pwm的stack, 并激活pwm

开发板板载的LED1为P103,所以在Pwm的属性中配置通道数为5,并设置TIO5,其详细配置属性如下图:开发板板载的LED1为P103,所以在Pwm的属性中配置通道数为5,并设置TIO5,其详细配置属性如下图:

然后重新生成工程代码,打开工程,添加修改占空比与初始化代码如下:

view plaincopy to clipboardprint?

1./**自定义函数:设置PWM占空比

2.@param duty占空比范围:0~100 %

3.*/

4.void TAU_PWM_SetDuty(uint8_t duty)

5. {

6.timer_info_t info;

7.uint32_t current_period_counts;

8.uint32_t duty_cycle_counts;

9.

10.if (duty > 100)

11.duty=100; //限制占空比范围:0~100

12.

13 /*获得TAU的信息*/

14.R_TAU_PWM_InfoGet(&g_timer0_ctrl, &info);

15.

16./*获得计时器一个周期需要的计数次数*/

17.current_period_counts = info.period_counts;

18.

19./*根据占空比和一个周期的计数次数计算*/

20.duty_cycle_counts=(uint32_t)(((uint64_t)current_period_counts * duty)/100);

21.

22./*设置占空比(设置从通道输出占空比)*/

23.R_TAU_PWM_DutyCycleSet(&g_timer0_ctrl, duty_cycle_counts, TAU_PWM_IO_PIN_CHANNEL_5);

24.

25.}

26.

27.void TAU_PWM_Init(void)

28.{

29./*初始化TAU模块*/

30.R_TAU_PWM_Open(&g_timer0_ctrl, &g_timer0_cfg);

31.

32./*启动TAU_GPT定时器*/

33.R_TAU_PWM_Start(&g_timer0_ctrl);

34.

35. /* 重新设置占空比为 80% */

36. TAU_PWM_SetDuty(80);

37. }

【测试】

在主循环中添加测试代码如下:

view plaincopy to clipboardprint?

1.for(dutys=0;dutys<95;++dutys)

2.{

3.

4. R_BSP_SoftwareDelay(100, BSP_DELAY_UNITS_MILLISECONDS);

5.TAU_PWM_SetDuty(dutys);

6.

7.dutys++;

8.

9.}

下载程序后就可以看到LED1程现在的呼吸灯效果。

瑞萨PWM
新浪科技公众号
新浪科技公众号

“掌”握科技鲜闻 (微信搜索techsina或扫描左侧二维码关注)

创事记

科学探索

科学大家

苹果汇

众测

专题

官方微博

新浪科技 新浪数码 新浪手机 科学探索 苹果汇 新浪众测

公众号

新浪科技

新浪科技为你带来最新鲜的科技资讯

苹果汇

苹果汇为你带来最新鲜的苹果产品新闻

新浪众测

新酷产品第一时间免费试玩

新浪探索

提供最新的科学家新闻,精彩的震撼图片