打印
[资料分享与下载]

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

[复制链接]
834|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Messi1999|  楼主 | 2015-8-4 20:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
目的:实现由旋转电位器控制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的亮度的实验。

相关帖子

沙发
quray1985| | 2015-8-5 08:08 | 只看该作者
实现由旋转电位器控制LED的亮度
应该是由ad采集不同的电压然后输出不同的电流吧

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

36

主题

363

帖子

1

粉丝