打印

2407ad中断进不去,求指点

[复制链接]
1407|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
G21372|  楼主 | 2012-10-21 22:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
AD, ni, AI, tc, TE
#include "regs240x.h"

void SystemInit();
void ADINIT();
void interrupt c_int1();
void KickDog();
int point=0,I=0,a=0,ux[8];

main()
{

SystemInit();                                                                                                                                                   
ADINIT();  
asm(" CLRC INTM ");   //开所有中断   
T2CON=0X144C; //T2使能
while(1)
{if(I==8)
  break;}  
T2CON=0X0FFBF;      
        while(1)
        {
         //KickDog;


        }//end while


}


void SystemInit()
{
asm(" SETC INTM ");
asm(" CLRC SXM ");
asm(" CLRC CNF ");
asm(" CLRC OVM ");
KickDog();
SCSR1=0X81FE; //4倍频20*4=80M
WDCR=0X0E8;   //不使能看门狗,因为SCSR2中的WDOVERRIDE即WD保护
              // 位复位后的缺省值为1,故可用软件禁止看门狗
IMR=0X0001;  //打开INT1中断
IFR=0XFFFF;   //清除全部中断标志,写1清零
}

void ADINIT()
{
   EVAIMRB=EVAIMRB|0X0001;//  定时器2周期中断使能
   EVAIFRB=EVAIFRB&0X0001;//  清除中断标志
   GPTCONA=0x0000;
   GPTCONA=0X0400;       //通用定时器2周期中断启动AD
   T2PR=12499;            //  定时器2周期值
   T2CNT=0;
   T2CON=0X170C;           //增模式, TPS系数80M/128
   ADCTRL1=0X10;
   ADCTRL2=0X0500;
       MAXCONV=0;
       CHSELSEQ1=(4<<12)|(6<<8)|(2<<4)|(2);
       CHSELSEQ2=0;
       CHSELSEQ3=0;
       CHSELSEQ4=0;      


}

  void interrupt c_int1()//A/D 中断低优先级在这里,
    {
       int UA,temp;
      temp=PIVR;
      if(temp==0x04)
      {
       UA=RESULT0>>6;
       ux[point++]=UA;


            if(point>7)
             { point=0;
               I=8;
               }
       ADCTRL2=0X4200; //复位A/D转换序列指针
                       //清除设备中断标志
      asm(" CLRC INTM ");   //打开所有中断
      }


    }
void interrupt PHANTOM()
{
   asm(" CLRC INTM ");
    return;


}
void KickDog()  //喂狗
{
WDKEY=0X5555;
WDKEY=0XAAAA;
}

相关帖子

沙发
G21372|  楼主 | 2012-10-21 22:05 | 只看该作者
求指点!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

197

主题

1658

帖子

5

粉丝