[Atmel] mbed环境下SAMR21开发板4:ADC转换

[复制链接]
 楼主| ddllxxrr 发表于 2016-2-11 13:50 | 显示全部楼层 |阅读模式
mbed 的ADC也超方便,只要找对ACD管脚即可,经查我看到板子上的ADC管脚为PA06


整个程序的思路也好理解读管脚的ADC的值然后打印出来,分浮点和速型输出。输出完了闪一下灯。

  1. #include "mbed.h"

  2. AnalogIn light(PA06);

  3. DigitalOut led1(LED1);

  4. float lvf=0;

  5. unsigned short lvu=0;

  6. int main()

  7. {

  8.     while(1)

  9.     {

  10.         lvf=(float)light;

  11.         lvu=light.read_u16();

  12.         printf("light adc count is %f , %d  \n",lvf,lvu);

  13.         wait(0.5);

  14.         if (lvf<0.7)

  15.             led1=1;

  16.         else

  17.             led1=0;

  18.     }



所难理解的我想就是这个地方:

lvu=light.read_u16();


这个是C++的味道,得小心点,看了下函数介绍,我晕,还真是一个类。




类名
方法
用途
AnalogIn
AnalogIn(PinName pin)
构造函数,把pin设定成模拟输入
float read()
读取ADC采样值,返回的是0-1之间的小数,即0代表0V,1代表3.3V
unsigned short read_u16()
读取ADC采样值,返回的是整数,,范围在0到65535之间
operator float()
操作符重载,相当于float read()
Ana**ut
Ana**ut(PinName pin)
构造函数,把pin设定成模拟输出
void write(float value)
设定DAC的输出值,范围为0-1之间的小数,即0代表0V,1代表3.3V
void write_u16(unsigned short value)
设定DAC的输出值,范围为0到65535之间
float read()
返回刚才DAC的0到1的输出值
Ana**ut& operator= (float percent)
操作符重载,相当于float read()
Ana**ut& operator= (Ana**ut& rhs)
操作符重载,相当于float read()





以下是下载的载图:


以下是运行的载图:明显看出下边的我把管脚短地了,运行成功哈!!!!



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

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

本版积分规则

个人签名:http://shop34182318.taobao.com/ http://shop562064536.taobao.com

2403

主题

6994

帖子

68

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