查看: 1085|回复: 0

Freescale MAPS四色板K64使用01——旋转电位器控制LED亮度

[复制链接]

该用户从未签到

发表于 2015-5-4 20:19:12 | 显示全部楼层 |阅读模式
分享到:
接触Freescale MAPS四色板已经有几天了,经过一天的努力也实现了一些小功能,今天简要分享一下怎样用旋转电位器控制LED的亮度。


目的:实现由旋转电位器控制LED的亮度



基本原理
将旋转电位器的电压值做AD转换在根据AD转换的值控制PWM的输出从而控制LED的亮度。


1.MAPS 四色板AD的实现方法
K64的ADC模块具有多路查分输入和单端输入,每对差分输入需要两个输入引脚
在使用ADC时需要一般要使用到以下几个寄存器

  • ADC状态和控制寄存器1 ADC0_SC1A
  • ADC 状态和控制寄存器2 ADC0_SC1B
  • 配置寄存器1 ADC0_CFG1
  • 配置寄存器2 ADC0_CFG2
  • ADC数据结果寄存器ADC0_RA
  • ADC数据结果寄存器ADC0_RB
  • 比较值寄存器ADC0_CV1
  • 比较值寄存器ADC0_CV2
配置AD的模式,这里使用的是单通道使用模式
Freescale的官方库函数中提供了获得AD值得函数GetVoltage(),在函数内配置AD的模式,通道,使能AD,就可以读到AD的值,使用起来很方便,很适合初学者使用。
2.MAPS 四色板PWM的实现方法
MAPS的PWM是通过FTM来实现的,FTM模块具有两个8通道的定时器,支持输入输出捕捉,输出比较工功能,并且可是生成PWM信号。
与FTM相关的寄存器有

  • 状态控制寄存器 FTMx_SC
  • 计数器寄存器FTMx_CNT
  • 模寄存器 FTM_MOD
  • 通道状态和控制寄存器FTMx_CnSC
  • 通道值寄存器FTMx_CV


FTM功能

  • (1)计数器操作
  • (2).输入捕获模式
  • (3).输出比较模式
  • (4)边缘对齐PWM模式
在这里我们使用的是边缘对齐PWM模式
Freescale的官方库函数中提供了如下的函数
FTM的初始化函数FTM_DEV_Init(),在使用这个函数可以配置PWM的模式,接口等基本信息。
PWM的启动和停止函数FTM_DRV_PwmStart() 和FTM_DRV_PwmStop()


在本例程中将ADC配置成12位,这样AD转出的数值就在0-4095之间,接下来的工作就是将AD值对应到PWM的值,这样就对应到了LED的亮度。PWM的控制参数为占空比取值范围为0-100%。两个值得上下限对比,就得到了AD的0值对应PWM的0值,AD的最大值4095对应PWM的100%,这样就得到了
公式advalve*100/4095,这样就将两个值对应起来了。(在调试的过程中公式中的100 是很容易被忽略的,需要引起大家的注意)
这样就完成了由旋转电位器控制LED的亮度的实验。
MAPS四色板专业评测
ECBC实战营Freescale四色板初体验

本文为ECBC实战营独家授权爱板网经验频道发布,未经允许,谢绝转载。
ECBC实战营:以实际产品为切入点,通过实际产品解耦信号链各个节点中的重点技术、产品、设计思路,同时会在整个实战过程中锻炼每个学员的项目分割能力、团队协调能力、表达演讲能力等综合素养。借助三个月的高强度、快节奏的系统性实战训练,让真正热爱电子技术的学生、工程师、创客迅速积累真正优秀工程师和技术管理者应该具备的专业技能、全局思维、职业素养,不仅让学员走向实际工作岗位后迅速适应、迅速成为职场的中坚力量,更为学员未来成为技术型管理人才和技术型创业人才奠定必要、坚实的综合基础
ECBC实战营二期详情

回复

使用道具 举报

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

本版积分规则

关闭

站长推荐上一条 /4 下一条

手机版|小黑屋|与非网

GMT+8, 2024-12-19 08:01 , Processed in 0.120497 second(s), 17 queries , MemCache On.

ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

苏公网安备 32059002001037号

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.