打印
[Atmel]

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

[复制链接]
766|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
mbed 的ADC也超方便,只要找对ACD管脚即可,经查我看到板子上的ADC管脚为PA06


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

#include "mbed.h"

AnalogIn light(PA06);

DigitalOut led1(LED1);

float lvf=0;

unsigned short lvu=0;

int main()

{

    while(1)

    {

        lvf=(float)light;

        lvu=light.read_u16();

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

        wait(0.5);

        if (lvf<0.7)

            led1=1;

        else

            led1=0;

    }



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

[size=13.3333330154419px]lvu=light.read_u16();
[size=13.3333330154419px]

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

[size=13.3333330154419px]

类名
方法
用途
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

2398

主题

6955

帖子

67

粉丝