本帖最后由 好蓝一片天 于 2015-5-8 09:15 编辑
本文引用自 爱板网 经验频道,作者:ECBC_LYX
ECBC电子工程师实战训练二期学员招募活动现正如火如荼地进行,我们也为您带来ECBC课堂上的实时报道,欢迎大家踊跃报名。加入ECBC实战训练营,3个月的集中训练,海内外名师的倾心授课,资深工程师的贴身辅导,用三个月换一个美好将来!值!
首家ECBC电子工程师实战训练二期开营:从无到有,全程介入新产品诞生过程:调研论证、竞争分析、方案确定、器件选型、工具使用......在实战中解读理论、提炼经验、培养习惯;全面了解职场生存的必备技能:商业思维、技术型项目立项与管理、团队协作、专业英语、项目答辩技巧与规范;三个月高强度实战训练,锻造工程精英,成就行业领袖——ECBC电子工程师进阶实战训练营(http://www.ecbcamp.com/camp)。
接触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实战营:国内外知名电子技术专家、资深工程师和研发经理贴身指导…… 了解高校电子专业相关教育特点, 熟悉行业产品设计、项目管理的开发流程与技术规范, 对教育有情结,对育人有情怀,借助名师指点,榜样同行, 让你迅速抛弃迷茫,清晰方向,积累技能,默化素养, 积累人脉,做好一切准备——为梦想!详情关注ECBC电子工程师进阶实战训练营(http://www.ecbcamp.com/camp)。本文为ECBC实战营独家授权爱板网经验频道发布,未经允许,谢绝转载。
|