日志档案

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

9

标签: ARM  ADuC7027  ADuC7026  中断  

ADuC7027的第八个实验——中断

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

系统分类: ARM   |   用户分类: 初学ARM   |   来源: 原创   |   【推荐给朋友】

    阅读(1227)    回复(2)  

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

  • 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...会不会是外部触发信号的问题?例如边沿,电平等。