[资料分享与下载] 【YL-KL26Z开发】+ AD转换的基本调试

[复制链接]
 楼主| 小狗爱吃骨头 发表于 2015-10-11 08:15 | 显示全部楼层 |阅读模式
今天分享给大家的是KL26Z的AD转换模块,如下图所示:



VR1就是板子左边的那个大红旋钮,实际就是一个滑动变阻器,滑变的中间管脚接到PTE20,也就是程序中设置为AD输入口的管脚。

通过调节旋钮改变输入PTE20的电压值,通过AD转换后再用串口显示在PC上。

主程序如下:
  1. #include "includes.h"
  2. #include "stdio.h"


  3. void myDelay (INT32U ulTime)
  4. {
  5.     INT32U i;

  6.     i = 0;
  7.     while (ulTime--) {
  8.         for (i = 0; i < 5000; i++);
  9.     }
  10. }


  11. int  main (void)
  12. {
  13.     INT16U Vout = 0;
  14.         
  15.     SystemCoreClockUpdate();
  16.         
  17.     uart0Init(9600,0,0,8,1);                                            /* 串口0初始化*/
  18.     printf("ADC Test Start\r\n");
  19.         
  20.    adcInit();                                                          /* AD初始化*/

  21.     while (1) {

  22.           Vout = adcGetUint();                                            /* 读取转换结果 */
  23.         printf("Vout=%d\n",Vout);
  24.         myDelay(500);
  25.                           
  26.     }
  27. }



 楼主| 小狗爱吃骨头 发表于 2015-10-11 08:15 | 显示全部楼层
在来看AD初始化函数:
  1. void  adcInit (void)
  2. {
  3.     SIM_SCGC5 |= SIM_SCGC5_PORTE_MASK;                                  /* 开启PTE的GPIO功能*/
  4.     PORTE_PCR20 = PORT_PCR_MUX(0);                                       /* 设置PTE20为模拟输入*/
  5.     SIM_SCGC6 |= SIM_SCGC6_ADC0_MASK;                                   /* 开启ADC时钟 */
  6.     /*
  7.      * 配置ADC功能:长采样时间;16位精度;时钟为总线时钟
  8.      */
  9.     ADC0_CFG1 = ADC_CFG1_ADLSMP_MASK | ADC_CFG1_MODE(3) | ADC_CFG1_ADICLK(0);
  10.     ADC0_SC2 |= ADC_SC2_REFSEL(1);                                      /* 选择电源为参考源*/
  11. }
其实在ADC配置函数里面少了一些没有说明:



默认选择单端输入模式。


这里默认选择ADC通道0。

 楼主| 小狗爱吃骨头 发表于 2015-10-11 08:16 | 显示全部楼层
然后是AD结果读取函数:
  1. INT16U  adcGetUint (void)
  2. {
  3.     ADC0_SC1(0) = ADC_SC1_ADCH(0);                                      /* 选择ADC信道  */
  4.     while ((ADC0_SC1(0) & ADC_SC1_COCO_MASK) != ADC_SC1_COCO_MASK);     /* 等待转换完成*/
  5.     return ADC0_R(0);                                                          /* 返回结果  */
  6. }

这里用的是查询的方式,不再多提。

还有一些和本次程序无关的默认值,就不再提了。
Mancherstun 发表于 2015-10-11 08:37 | 显示全部楼层
楼主这样发最喜欢了,我可以照葫芦画瓢
FSL_TICS_Jeremy 发表于 2015-10-12 08:50 | 显示全部楼层
谢谢楼主分享,还请帮忙及时结贴!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

28

主题

286

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部

28

主题

286

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部