在线时间776 小时
UID126526
注册时间2008-5-19
NXP金币0
TA的每日心情 | 奋斗 2023-9-17 19:57 |
---|
签到天数: 2310 天 [LV.Master]伴坛终老
金牌会员
- 积分
- 10481
- 最后登录
- 2023-9-17
|
在Mbed中,使用ADC非常简单,定义一个AnalogIn 对象,就可以直接读取模拟输入。
模拟输入有两种读取方式:
- 模拟方式读取,ain.read()。读取的数据是浮点数,范围从0..1。这种方法的好处是,缺点是使用了浮点数,稍微降低了代码效率,同时需要更多的代码空间。
- 整数读取,ain.read_u16(),这种方法读取出来的数字是0..65535。在LPC824上的ADC是12位的,所以需要右移4位才是真实值。
下面的程序演示了模拟输入的使用方法,可以通过定位器改变模拟输入电压,同时用8个LED指示出电压的高低,并通过串口将数据打印出来。
- #include "mbed.h"
- BusOut led(P0_7, P0_13, P0_16, P0_17, P0_19, P0_27, P0_28, P0_18);
- AnalogIn ain(P0_23);
- uint8_t cnt;
- Serial ser(P0_4, P0_0);
- int main() {
- ser.baud(9600);
-
- cnt = 1;
-
- while(1) {
- cnt++;
- if(cnt > 10)
- {
- cnt = 0;
- ser.printf("\r\n%d", ain.read_u16()>>4);
- }
- led = 0xFF^(ain.read_u16()/256);
-
- wait(0.05);
- }
- }
复制代码
完整例程
|
|