895|2

17

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

新定义的按键评估套件-用滑块控制灯光亮度 [复制链接]

 

想实现一个用开发板上的滑块控制下边六个灯亮度的小实验。

首先想到的是用MCU上的定时器硬件资源,看了数据手册,板子上有PWM功能的总共有八组独立的PWM和六组复用的PWM,共14组。

关于外设资源的描述,数据手册上写的已经足够理解了,还配备有外设示例代码,大多数情况下可以先跑起来示例代码,再回头看数据手册,以下是官方提供的PWM初始化程序。

虽然周期和它注释描述的完全不一致,还有关闭PWM4 PWM3中断应该是IE1 &= ~0x20,不过还是能跑起来的。

下面是数据手册对于寄存器的描述,可以加深对这段外设驱动代码的理解。

关闭PWM对应的IO口输出,仅把PWM当作一个定时器来使用

PWMCFG = 0x00;

配置独立模式,时钟不分频,使能模块。

PWMCON0 = 0x80

需要允许PWM产生溢出中断

IE1 |= 0x02

对PWM0进行初始化然后设置周期和占空比进行测试,

PWM的时钟频率是固定的32MHz,因此如果像设置周期时间是1us,只需要用1us * 32MHz - 1 = 31

占空比如果想设置成50%,只要把PDT0x设置成周期的一半,

这里PWM0的初始化是31和50%

波形测试结果如下

不过看下来这么多组PWM外设的一大缺陷就是中断资源不够用,14组PWM信号只有一个中断溢出信号,只有计数值超过定时器的溢出值时才会产生中断,因为时钟频率是固定的32MHz并且所有PWM周期都只能设置成同一个值,这是不会冲突的。因此在pcb设计时就考虑到了要用PWM外设,把PWM输出引脚连接到了灯或者电机上。

另外一个实现思路是纯软件的方式,如果指令能运行的足够快的话,效果也是不错的,

以下是SysFunVarDefine.c中的更改,在Slider处理函数中添加软件定时器比较值的更改。

注释掉原先触摸按键TK的灯光显示。

链接:

链接已隐藏,如需查看请登录或者注册

提取码:9f2q
--来自百度网盘超级会员V5的分享

最新回复

nmg
小屋,录一下这个演示会好一些   详情 回复 发表于 2023-8-4 11:23
点赞(1) 关注
 
 

回复
举报

1668

帖子

0

TA的资源

五彩晶圆(初级)

沙发
 

测试官方提供的PWM初始化程序应该没有什么问题

 
 
 

回复

5220

帖子

236

TA的资源

管理员

板凳
 

小屋,录一下这个演示会好一些

加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

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