EDN首页   博客首页

日志档案

发表于 2007-3-30 21:38:41

10

标签: ARM  ADuC7027  ADuC7026  中断  

ADuC7027的第八个实验——中断

从此处下载整个程序包:rar

系统分类: ARM   |   用户分类: 初学ARM   |   来源: 原创   |   【推荐给朋友】   |   【添加到收藏夹】

    阅读(1811)    回复(5)  

投一票您将和博主都有获奖机会!

  • FOR ARM

    2008-1-17 23:00:01

    int main (void)  {

     plaInitialize();//PLA边沿触发中断

    IRQEN=PLA_IRQ0_BIT; //打开中断使能

    }

    void  plaInitialize( )
    {

     GP1CON = 0x00000311;

     PLAELM0 = 0x02C9;
     PLAELM1 = 0x005C;
     PLAELM2 = 0x0035;
     PLAELM3 = 0x0258;

    PLACLK = 0x0003;

     PLAIRQ = 0x11;

    }

    void IRQ_Handler() __irq    //边沿触发来后打开定时器0;
    {  
    if((IRQSTA & PLA_IRQ0_BIT)  == 0x00080000)

        PLAELM1 = 0x2C0;
        PLAELM1 = 0x005C;
        T1CLRI =0;
        T0CLRI =0;
     T0CON= T0CON&(~(1<<8));
     T1CON= T1CON&(~(1<<8));
     T0LD = 0x3000;       // Counter Value
     T0CON = 0xC4;
     IRQEN = RTOS_TIMER_BIT;    }

    if ((IRQSTA & RTOS_TIMER_BIT)==RTOS_TIMER_BIT)    // Timer0 IRQ?
     {
     IRQCLR=RTOS_TIMER_BIT;
     GP2SET=0X00010000; //点灯;
     Delay_ms(5);                    //保持5个MS
    GP2CLR=0X00010000;  //

    T0CLRI = 0;
    T0CON= T0CON&(~(1<<8));
     }  
    想在一个外部边沿信号来后打开定时器中断.

    定时器中断完成过后就SET P2.0并保持5个MS

    结果是我用示波器观察输出的波形每来一个外部边沿触发有输出一个5MS的高电平方波. 可是把示波器周期调整大一下.到50MS发现这个信号不连续.有很多次有中断输入没有输出波形.大概每次没有输出波形的周期是200-300MS.不知道是什么原因,是程序问题还是IC 问题请指导.硬件输出应该没有问题.

     

     

  • computer00

    2008-1-18 10:28:37

    抱歉,我还没研究过这个PLA...会不会是外部触发信号的问题?例如边沿,电平等。

  • kingmacth

    2008-6-6 20:28:44

    GP0CON = 0X00000000; IRQEN |= EXTERNAL_IRQ0; //将外部中断0配置成IRQ中断(P0.4) GP3CON = 0X00000000; GP3DAT = 0x00000000; GP3DAT = 0xFF0a0000; GP0DAT |=1<<29; 我如此设置一个中断,为什么P0.4始终时高啊?我给输入时钟信号也还是高。

  • computer00

    2008-6-7 11:37:01

    没弄明白你想做什么。要做为中断用的话,就应该配置为输入状态。然后由外部来控制它的高低电平。高电平触发中断。

  • wangxing

    2008-9-12 17:56:39

    路过你的博客看看!!!