打印
[资料分享与下载]

四色板K64小实验 ——电位器控制LED明暗程度

[复制链接]
935|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
跟屁虫|  楼主 | 2015-7-19 20:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一、实验原理:ADC改变输出PWM波的占空比,应用PWM波来控制LED的明暗程度。
二、K64的AD模块简介
1、最高16位AD转换精度,逐次逼近型;
2、输出精度可选,例如差分的话可编程16位,13位,11位和9位模式,单端的话可编程为16位,12位,10位和8位;
3、输入时钟可选四种时钟,即bus_clock,bus_clock/2,ALTCK,异步时钟。
4、带自校准模式;
5、硬件平均功能;
Kinetis的ADC内部结构框图

三、实验过程:
ADC模块编程要点:
1)初始化
ADC模块初始化的顺序如下:
(1)配置SIM_SCGC6,使能ADC的时钟。使能AD通道的引脚复用功能为ADC功能。
(2)配置ADC配置寄存器(CFG),选择用于产生内部时钟输入时钟源和分频因子。同时可以配置ADC的选择采样时间和低功耗功能。
(3)配置ADC状态和控制寄存器(SC1n),选择转换是否是单端或差分模式,使能或禁止转换完成中断,选择转换的输入通道。
2)开始转换操作
在初始化结束后,当向SC1n的域ADCH写入通道值时,一个AD转换便开始了。
3)完成转换
当转换结果送到数据结构寄存器中转换就完成了。可以通过查看SC1n寄存器中的COCO位来检验转换是否完成。
4)获取AD值
当转换结束后,结果寄存器中的值即为转换结果。最后需要清除标志寄存器的COCO完成转换位
具体寄存器设置:

SC1A寄存器可以用作软件和硬件激活操作模式,
31-8——保留这些位为只读保留位,各位值为0.
7——  COCO   转化完成标志:0转换没有完成;1转换完成。
6——  AIEN   中断使能:0转换完成中断取消;1转换完成时中断有效
5——  DIFF  差分模式使能:0选择单端转换和输入通道;1选择差分转换和输入通道
4-0 ——ADCH  输入通道选择
ADC模块的设置:
   adc_calibration_param_t MyAdcCalibraitionParam;
//使能内部中断;硬件触发;转换结束后使能DMA请求
  adc_user_config_t MyAdcUserConfig;
  adc_state_t MyAdcState;
设置自动校验:
   ADC_DRV_GetAutoCalibrationParam(HW_ADC0, &MyAdcCalibraitionParam);
  ADC_DRV_SetCalibrationParam(HW_ADC0, &MyAdcCalibraitionParam);
中断模式初始化:
  ADC_DRV_StructInitUserConfigForOneTimeTriggerMode(&MyAdcUserConfig);
  MyAdcUserConfig.resolutionMode = kAdcResolutionBitOf12or13;
  ADC_DRV_Init(HW_ADC0, &MyAdcUserConfig, &MyAdcState);
PWM波
      弹性定时器模块(FTM)是一个支持输入捕捉,输出比较,产生PWM波的2-8通道定时器。
      FTM时钟源可选:系统时钟、固定时钟、外部时钟
     FTM预分频因子:1,2,4,8,16,32,64或者128
FTM相关寄存器:
计数器初始值寄存器(FTMx_CNTIN):

状态和控制寄存器(FTMx_SC):SC包含溢出状态标志和控制位,用来配置中断使能、FTM配置、时钟源和预分频因子。这些控制和这个模块的所                                                            有通道相关


PWM设置:


提取AD采集到的数据,转化成PWM的占空比:

四、实验现象
随着电位器的旋转,右边的LED的亮度会逐渐变化
                            


相关帖子

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

本版积分规则

28

主题

245

帖子

2

粉丝