友善之臂mini2440的ad输入电压可以为负的吗

 我来答
晰美酒窝
2015-05-12 · TA获得超过6732个赞
知道大有可为答主
回答量:4544
采纳率:27%
帮助的人:1543万
展开全部
为驱动液晶屏做准备,我们需要先研究下ad转换功能。本实验通过调整滑动变阻器改变输出电压,通过ad实现模数转换,实验比较简单,主要配置ad寄存器,具体实现注释中详细给出。
实验代码如下:
#define GLOBAL_CLK 1
#include <stdlib.h>
#include <string.h>
#include "def.h"
#include "option.h"
#include "2440addr.h"
#include "2440lib.h"
#include "2440slib.h"
#include "mmu.h"
#include "profile.h"
#include "memtest.h"

int Readadc(int ch)
{
rADCCON= (1<<14) | (49<<6) | ((ch)<<3);//adc使能,设置频率为1MHZ

rADCTSC &=~(0x1<<2);//adc设置为普通转换模式

rADCCON |=0x1;//启动ad

while(rADCCON & 0x1);//等待ad转换开始

while(!(rADCCON & (0x1<<15)));//等待ad转换结束

return (rADCDAT0 & 0x3ff); //读取A/D转换的数据
}

void Main()
{
float v0,v1;

int t0,t1;

Uart_Printf("请调整滑动电阻并输入1选择显示电压值!\r");

while(Uart_GetIntNum()==1)
{

v0=((float)Readadc(0)*3.3)/1024.0;//计算电压值

v1=((float)Readadc(1)*3.3)/1024.0;//计算电压值

t0=(v0-(int)v0)*1000;//计算小数部分,Uart_Printf函数无法打印浮点数

t1=(v1-(int)v1)*1000;//计算小数部分,Uart_Printf函数无法打印浮点数

Uart_Printf("电压值为AIN0:%d.%-3dV AIN1:%d.%-3dV\r",(int)v0,t0,(int)v1,t1);

Uart_Printf("\n");
}
}
晓网科技
2024-10-17 广告
电源: 2V-3.6V 典型值:3.3V。模块总功耗:A无线模块不工作时平均功耗 22-25mW  B无线模块工作时平均功耗 130-135mW  C无线模块工作时峰值功耗 140-150mW。发射功率:100mW  天线功率:1dBm  ... 点击进入详情页
本回答由晓网科技提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式