5105|9

70

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

实在找不出问题了,2407_ADC... [复制链接]

#include \"LF2407REGS.h\"
#define uint unsigned int
#define uchar unsigned char



uint ADRESULT[16],ad_result;
volatile uint *j;       


delay(uint time)
{
        uint i;
        for(i=0;i<time;i++){i=i;}
}      

/* ------------------------------------------------------------ */

/void ad_init()         
{
*T4CNT        =        0x0000;               
*T4CON        =        0x170c;               
*T4PER        =        0x75;
*GPTCONB=         0x0400;               
*EVBIFRB=        0xffff;                 *ADCTRL1=  0x4000;     /*ADC reset*/
delay(1);
*ADCTRL1=        0x0010;   
*ADCTRL2=        0x8404;
*ADCTRL2|=        0x2020;
*MAXCONV=        0x000f;        
*CHSELSEQ1=0x3210;
*CHSELSEQ2=0x7654;
*CHSELSEQ3=0x0BA98;
*CHSELSEQ4=0x0fedc;

}
        
        
void ad_star()
{
*T4CON        =        *T4CON|0x0040;
}   


/* -----------------------open int-----------------------------*/

void enable_int()
{
  asm(\" clrc INTM\";
}
/* ---------------------- close int ---------------------------*/

void disable_int()
{
  asm(\" setc INTM\";
}

/* ---------------------- nothing -----------------------------*/

void interrupt nothing()
{
  return;
}   

/* ----------------------- adc int ----------------------------*/

void interrupt adint()
{
ad_result++;  
ad_result = *RESULT15>>6;
*ADCTRL2        |= 0x4200;  
}


init()
{
        asm(\" setc SXM \";
        asm(\" setc OVM \");
        asm(\" setc CNF \");
         
        *SCSR1        = 0x81fe;         
        *WDCR         = 0x6f;   
        *IMR        = 0x0001;
        *IFR        = 0xffff;       
       
               
        *MCRA        = 0x0000;
        *MCRB        = 0x0000;
        *MCRC        = 0x0000;
        *PFDATDIR=0xffff;
       
     
}



main()
{   
        uint i=0;
        ad_result=0;
       
        init();
        disable_int();
        ad_init();
        enable_int();
        ad_star();
       
        for(;;){               
                //show(ad_result);
                show(ad_result);delay(10000);
                }                
}

我的程序如上,照着教科书编的,没有AD结果输出,但有中断反映,请高手指教问题所在........

最新回复

在中断服务程序中观测*EVBIFRB=13正确吗?  详情 回复 发表于 2008-4-4 01:32
 
点赞 关注

回复
举报

59

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
转换的结果是放在RESULT0---15中,在RAM中可以看到的
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
那就是说我的程序没有问题了,但是观测不到输出啊!我在15通道外接信号,但只有1023输出 ,当电压低于1.6V时变为0,不知哪里出现问题了
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

4
 
我没有有过AD程序,只是看书上是这样写的呀!你在RAM中观察相应地址,是正确的吗?
 
 
 

回复

89

帖子

0

TA的资源

一粒金砂(初级)

5
 
0x70a8~0x70B7数据无变化
 
 
 

回复

85

帖子

0

TA的资源

一粒金砂(初级)

6
 
这是我的程序

附件

ADC.C (6.27 KB)

2007-4-4 02:36, 下载次数: 67

附件

ADC.C (6.27 KB)

2007-4-4 02:36, 下载次数: 67

 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

7
 
*ADCTRL2=        0x8404;
*ADCTRL2|=        0x2020;
你把后面的一句去掉试下呀!
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

8
 
我原来的程序是没有这句的,试验加上的,去掉也还是不行。
但是在ADC_int()中断程序中的变量能够自+1(ad_result++并在显示中可以观测到,是不是说明中断开始循环了,但是就是结果只有0xFFC0和0x0000两个数值,问题到底出在哪了。。。

原来的程序是这样的

附件

ADC.C (6.32 KB)

2007-4-4 06:13, 下载次数: 42

附件

ADC.C (6.32 KB)

2007-4-4 06:13, 下载次数: 42

 
 
 

回复

87

帖子

0

TA的资源

一粒金砂(初级)

9
 
中断子程序adcint()证明在执行,但ADC转换结果不对...
 
 
 

回复

85

帖子

0

TA的资源

一粒金砂(初级)

10
 
在中断服务程序中观测*EVBIFRB=13正确吗?
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表