ky625 发表于 2009-12-16 10:51:49

请大家帮我看下AD中断,为什么进不了?

/*Main.c*/
#include "global.c"
void SystemInit();
void KickDog();
void AD_Sample();
unsigned int RESULT_0=0;
main()
{

   SystemInit();                    //系统初始化   
   MCRC=MCRC & 0xFF00;           //IOPE0-7设为IO口模式(设置管脚)
   PEDATDIR=0xFF00;             //所有LED=0,
                                                                 
   AD_Sample();             //AD初始化
   asm(" CLRC INTM ");

   while(1)
   {
   }
}

void SystemInit()
{         asm(" SETC        INTM ");        /* 关闭总中断 */
        asm(" CLRCSXM");        /* 禁止符号位扩展 */
        asm(" CLRCCNF");    /* B0块映射为 on-chip DARAM*/
        asm(" CLRCOVM");    /* 累加器结果正常溢出*/
        SCSR1=0x83FE;                 /* 系统配置:系统时钟CLKOUT=20*2=40M */
                                        /* 打开ADC,EVA,EVB,CAN和SCI的时钟,系统时钟CLKOUT=40M */
        WDCR=0x006F;                        /* 禁止看门狗,看门狗时钟64分频 */
        KickDog();                            /* 初始化看门狗 */
    IFR=0xFFFF;                                /* 清除中断标志 */
    IMR=0x0001;                                /* 打开中断1*/      
   
}


void AD_Sample()
{

    ADCTRL1=0x4000;                        /* ADC模块复位 */
    asm(" NOP        ");
    ADCTRL1=0x0040;         /* 自由运行,连续模式,双排序器工作模式,高优先级 */
   
    MAXCONV=0x0000;
    CHSELSEQ1=0x0000;       //第0通道
    ADCTRL2=0x4000;         //复位使排序器指针指向CONV00
    ADCTRL2=0x2400;                        /* 启动ADC转换,允许中断 */

}


void c_int1()               /*AD中断服务程序*/
{

    if(PIVR!=0x04)
                {        asm(" CLRC INTM ");
                        return;
                }
   
          RESULT_0=RESULT0>>6;
           ADCTRL2=ADCTRL2& 0xFFFF;//清除中断标志位
                asm(" CLRC INTM ");
}
void KickDog()                                /*踢除看门狗 */
{
        WDKEY=0x5555;
        WDKEY=0xAAAA;
}
小弟初学,请各位帮我看下,为什么AD中断进不了,与入口的引用有关联吗?谢谢

ky625 发表于 2009-12-16 12:59:57

好像中断向量表出现问题
请问哪位高手可以提供些2407向量表的说明
谢谢!

ky625 发表于 2009-12-17 13:07:28

没人顶,只有自己顶
页: [1]
查看完整版本: 请大家帮我看下AD中断,为什么进不了?