这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » 2407,ad 2407 ad 问题

共2条 1/1 1 跳转至

2407,ad 2407 ad 问题

院士
2006-09-17 18:14:16     打赏
2407,ad 2407 ad 问题



关键词: 问题    

院士
2006-12-22 22:43:00     打赏
2楼
问 我的ad 7、8通道转换的数值很奇怪,我是软件启动ad转换的
*ADCTRL2 = 0x2000;,
在此处设置一断点,在转换后设置一断点,则adin07、08 转换得到的数值正常,否则只在转换结束后设置一断点则adin07、08 的数值是正常值的一半左右,不正确。
  有谁碰到过此类问题,多多指教 1: re发你的程序看看啊
bill350@126.com
2: 已发请查收。我觉得可能是2407 的7、8通道采样有问题。我的是级联方式 3: re我看了,
程序没有问题啊,不过处理中断后我看你没有重新设置*ADCTRL2
这个寄存器要重新设置的! 4: 是这样子吗 *ADCTRL2 = 0x2000;      
                asm(" nop");
              asm(" nop");    
              asm(" nop");
              asm(" nop");                                   
           while((*ADCTRL2 & 0x1000)==0x1000);            
            *ADCTRL2 = 0x4000; /*是这样吗,是在此处添加吗?*/
还是返回前添加? 5: re问题解决了吗?
应该是这样 6: 没有我设置断点和不设置断点采的数不同,设置断点采得数比较接近真实值,不知道为什么 7: 应该是加ADCTRL2 = ADCTRL2 | 0X4200吧用或要好一点,直接赋值可能将你以前的设置改变了.如果是用OX4000的话,没有清中断,所以设置断点和不设置断点值会不同.另外要在中断中最后要开总中断吧.个人意见,也没看过你的程序,不知道对不对.问题解决了的话通知一声,呵呵 8: 我试了不行!发愁阿

     if(*PIVR==0x0027)             /*time1 overbelow interrupt*/
    {
      
           asm(" clrc SXM");     
              *ADCTRL2 |= 0x4200;                                                   
          *ADCTRL2 = 0x2000;      
                asm(" nop");
              asm(" nop");    
              asm(" nop");
              asm(" nop");                                   
           while((*ADCTRL2 & 0x1000)==0x1000);    
                    j = RESULT0;                                         
           for(i=0;i<=10;i++)
               {                
                  adc_res[i]=*j>>6;                                               
                 j++;
                }
*EVAIFRA &= 0x0080;        
    asm(" clrc INTM");
    return;
}
我的烂程序! 9: 其他通道没问题,只有7.8通道有问题?另外, ADCTRL2 = 0x2000,只需在初始化时设置就可以了

asm(" clrc SXM");     
              
*ADCTRL2 |=0x4200;                                                   
//*ADCTRL2 = 0x2000;      
                
当然,这只是个编程习惯问题,应该与本问题没有什么关系. 10: 其他通道问题不是很大0 通道和1通道的数偏大一些。,2、3、4、5、6通道基本正常。 11: 我设置的是启动/停止模式书上说启动停止模式下,排序器必须复位,以使排序器置于状态conv00。 12: 有可能是ad的这两个通道烧了啊!这两个通道的输入电压差不多是3.7v左右,不知道是不是烧了的缘故,可是单步运行就可以采到正确的数 13: 你接的是同一个信号吗?将信号加强一下试试 14: 不是我用示波器看了一下,ad 的7、8通道采样时时刻,输入ad 的信号有向下的脉冲,可能是信号的问题,不采样则信号不变,我的采样信号是直流。不知道如何消除这种采样对信号的干扰问题,大侠们有啥高招?

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]