搜索
bottom↓
回复: 3

avr adc部分求助 芯片使用的是atmega128a 得不到正确的结果

[复制链接]

出0入0汤圆

发表于 2013-7-19 17:21:44 | 显示全部楼层 |阅读模式
本帖最后由 424778940 于 2013-7-19 17:42 编辑

如题,目前使用芯片是mega128a
adc部分第一次用,很多不了解,于是来请教
板子原理图见附件

不清楚的地方有一下几点
adc使用时候ddr和port要怎么配置?? ddr设为输入,port呢?
内部参考电压是否准确,受什么影响?
单通道和差分输入都要怎么接线??? 手册上有些部分说的太绕了,初次接触实在是看不明白


单片机工作在5v电压,万用表实测在4.9x,vref也是这个值,代码如下,使用为porta,单通道,adc0输入
串口hex输出三个char,格式为第一位0c是用来确定开头的,第二位是ADCL,第三位是ADCH
现在问题在于无论我怎么调试得到的都是 0C,00,00或者0C,01,00第二位有时候会小幅变化,无论我接gnd还是接3.3都是基本没变化
不提换算后的值,3.3v的电压差竟然没变化这肯定是不正确的,求解我到底哪里有问题?

  1. volatile unsigned char adc_cache_h = 0x00,adc_cache_l = 0x00;
  2. volatile unsigned int adc_vin = 0x0000;

  3. ISR(ADC_vect,ISR_BLOCK)
  4. {
  5.         adc_cache_l = ADCL;
  6.         adc_cache_h = ADCH;
  7.         adc_vin |= ( (adc_cache_l<<2) | (adc_cache_h<<0) );
  8.         usart_0_send_char(0x0c);//固定字节,用于确定开头位置
  9.         usart_0_send_char(adc_cache_l);
  10.         usart_0_send_char(adc_cache_h);
  11. }

  12. int main(void)
  13. {
  14.         usart_0_init();
  15.        
  16.         usart_0_send_char(0x0c);//清屏
  17.        
  18.         sei();//使能全局中断
  19.        
  20.         //adc port init
  21.         DDRA = 0x00;
  22.         PORTA = 0x00;
  23.        
  24.         //adc reg init
  25.         ADMUX |= (1<<REFS0);//avcc,aref电源,其余默认
  26.         ADCSRA |= ( (1<<ADIE) | (1<<ADFR)) ;//adc中断使能,自动转换模式
  27.         ADCSRA |= ( (1<<ADPS0) | (1<<ADPS1) | (1<<ADPS2) );//128分频
  28.         ADCSRA |= ( (1<<ADEN) | (1<<ADSC) );//adc使能且开始转换

  29.         while(1);
  30. }
复制代码

本帖子中包含更多资源

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

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

 楼主| 发表于 2013-7-19 17:48:29 | 显示全部楼层
自顶,字数补丁

出0入0汤圆

发表于 2013-7-19 18:39:23 | 显示全部楼层
AVR的书籍很多,随便翻一本都有了啊

出0入0汤圆

 楼主| 发表于 2013-7-19 21:14:21 | 显示全部楼层
longfeix86 发表于 2013-7-19 18:39
AVR的书籍很多,随便翻一本都有了啊

= =...翻完了就有我也就不来问了...
我按照手册正确配置了所有寄存器,外部电路也符合规范,但就是得不到正确的结果
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-24 01:26

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表