380|11

987

帖子

0

资源

纯净的硅(中级)

【AB32VG1开发板测评】PWM调节及呼吸灯 [复制链接]

 
本帖最后由 jinglixixi 于 2021-9-13 17:09 编辑

AB32VG1内部配有6个PWM输出通道,若以PWM来控制RGB_LED就可产生呼吸灯效果,该RGB_LED的引脚连接如图1所示。

image-20210912112816-1.png  

图1 RGB_LED连接端口

 

实现呼吸灯效果的步骤如下:

1. 创建一个基于AB32VG1开发板的RT-Thread新项目;

2. 在左侧资源管理器中点击“RT-Thread Setting”,然后选取“更多配置”;

3. 选取“硬件”选项卡,按图2所示进行设置,由此可知PWM2所控制的是LED_R;

image-20210912112817-2.png  

图2 功能配置

 

4. 按“Ctrl + S”进行保存,以使RT Thread的配置生效;

5. 在左侧资源管理器的application下,新建一个文件pwm.c,其内容为:

#include <rtthread.h>
#include "board.h"
#define PWM_DEV_NAME "t5pwm" /* PWM设备名称 */
#define PWM_DEV_CHANNEL 1 /* PWM通道 */
struct rt_device_pwm *pwm_dev; /* PWM设备句柄 */
ALIGN(RT_ALIGN_SIZE)
static uint8_t PWM_Thread_Stack[1024];
static void PWM_Thread_Entry(void *para);
static struct rt_thread pwm_thread;
rt_uint32_t period, pulse;
void Pwm_Init(void){
period = 1000000; /* 周期 = 1M/period kHz */
pulse = 0; /* PWM脉冲宽度值(0 - period) */
pwm_dev = (struct rt_device_pwm *)rt_device_find(PWM_DEV_NAME);
RT_ASSERT(pwm_dev != RT_NULL);
/* 设置PWM周期和脉冲宽度 */
rt_pwm_set(pwm_dev, PWM_DEV_CHANNEL, period, pulse);
/* 使能设备 */
rt_pwm_enable(pwm_dev, PWM_DEV_CHANNEL);
}

static void PWM_Thread_Entry(void *para){
Pwm_Init();
while(1){
/*使RGB灯红灯闪烁*/
for (int var = 0; var < period; var += 10000) {
rt_pwm_set(pwm_dev, PWM_DEV_CHANNEL, period, var);
rt_thread_mdelay(1000);
}
}
}

int Pwm_Thread_Init(void){
rt_thread_init(&pwm_thread, "pwm_thread", PWM_Thread_Entry, RT_NULL,
&PWM_Thread_Stack[0], sizeof(PWM_Thread_Stack), 10, 10);
rt_thread_startup(&pwm_thread);
return 0;
}

INIT_APP_EXPORT(Pwm_Thread_Init);

static void PWM_Thread_Entry(void *para){
Pwm_Init();
while(1){
/*使RGB灯红灯闪烁*/
for (int var = 0; var < period; var += 10000) {
rt_pwm_set(pwm_dev, PWM_DEV_CHANNEL, period, var);
rt_thread_mdelay(10);
}
for (int var = period; var >0; var -= 10000) {
rt_pwm_set(pwm_dev, PWM_DEV_CHANNEL, period, var);
rt_thread_mdelay(10);
}
}
}

 

6. 对程序进行编译和下载,其测试结果如图3所示。该呼吸灯的特点是延时时间适中,呈现的调节效果为三角波,即渐变增强亮度再渐变减弱亮度。

image-20210912112817-3.png  

image-20210912112817-4.png  

图3显示效果

 

呼吸灯AB32VG1.gif

赞赏

1

查看全部赞赏


回复

6112

帖子

0

资源

五彩晶圆(初级)

可以加个示波器看一下PWM点灯过程更好

点评

没错,只是手头没有呀!  详情 回复 发表于 2021-9-12 23:51

回复

987

帖子

0

资源

纯净的硅(中级)

Jacktang 发表于 2021-9-12 19:33 可以加个示波器看一下PWM点灯过程更好

没错,只是手头没有呀!


回复

10

帖子

0

资源

一粒金砂(中级)

while(1) 尽量少用为好

点评

有啥说法?  详情 回复 发表于 7 天前

回复

987

帖子

0

资源

纯净的硅(中级)

MrShangPING 发表于 2021-9-13 06:41 while(1) 尽量少用为好

有啥说法?


回复

796

帖子

3

资源

版主

感谢分享,继续加油测试

回复

987

帖子

0

资源

纯净的硅(中级)

annysky2012 发表于 2021-9-13 11:53 感谢分享,继续加油测试


回复

4481

帖子

1

资源

五彩晶圆(初级)

thread 应该用while(1)呀

个人签名

默认摸鱼


回复

1824

帖子

3

资源

版主

板载wifi还是蓝牙来着?

点评

从资料看蓝牙通讯还是用HC-05蓝牙模块,而WIFI通讯是用的ESP8266模块。  详情 回复 发表于 6 天前

回复

987

帖子

0

资源

纯净的硅(中级)

w494143467 发表于 2021-9-14 16:31 板载wifi还是蓝牙来着?

从资料看蓝牙通讯还是用HC-05蓝牙模块,而WIFI通讯是用的ESP8266模块。

点评

那板载的那个天线是用于什么的?  详情 回复 发表于 5 天前

回复

1824

帖子

3

资源

版主

jinglixixi 发表于 2021-9-14 23:52 从资料看蓝牙通讯还是用HC-05蓝牙模块,而WIFI通讯是用的ESP8266模块。

那板载的那个天线是用于什么的?

点评

[attachimg]563085[/attachimg] 看原理图像是为蓝牙服务的,但没找到具体的东西。   详情 回复 发表于 5 天前

回复

987

帖子

0

资源

纯净的硅(中级)

w494143467 发表于 2021-9-15 08:59 那板载的那个天线是用于什么的?

image.png

看原理图像是为蓝牙服务的,但没找到具体的东西。 


回复
您需要登录后才可以回帖 登录 | 注册

最新文章 更多>>
    关闭
    站长推荐上一条 1/10 下一条

    About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

    站点相关: 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

    北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

    电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2021 EEWORLD.com.cn, Inc. All rights reserved
    快速回复 返回顶部 返回列表