zoukankan      html  css  js  c++  java
  • TQ2440之中断

    在TQ2440的中断这里卡了很久,最后看了一位大神的空间把问题解决了,在这里表示一下感谢。

    下面我把代码贴出来跟刚学习2440的人分享:

    进入ISR后,清除中断的顺序很重要,首先是srcpnd接着是intpnd,如果还需要清除eintpnd的话,要最先清除。

    初始化中断:

    void irq_init(void)    //irq初始化,这个函数其实比较简单,适当看看2440PDF就应该能设定寄存器了
    {
        GPFCON = 0xaaaa;
        SRCPND = 0x17;
        INTMSK &= ~(0x17);
        INTPND = 0x17;
        EINTPEND =(1<<4);
        __asm{nop}
        EINTMASK &=~(1<<4);
        __asm{nop}   
        EXTINT0 = 0x0;
    }

    中断服务函数,点击按键,相应的灯被点亮:

    void  IRQ_Handler(void) __irq //irq中断函数 这个函数是关键
    {
        int j=0;
        __asm{nop};
        __asm{nop};
        j= INTOFFSET;
        SRCPND = SRCPND | 0x17;     //1 0111
        INTPND = INTPND | 0x17;
        switch(j)
        {
            case 0:
            irq_ent0();//为中断0
            break;
            
            case 1:
            irq_ent1();//外中断1
            break;
    case 2: irq_ent2();//外中断2 break;
    case 4: irq_ent3();//外中断4      break; } }

    相应的中断处理函数(点击按键相应的灯点亮):

    void irq_ent0(void)  
    {  
        SRCPND = 1<<0;  
        INTPND = 1<<0;  
      
        GPBDAT |= (0x0f<<5);  
        GPBDAT &= ~(1<<8);  
    }  
      
    void irq_ent1(void)  
    {  
        SRCPND = 1<<1;  
        INTPND = 1<<1;  
      
        GPBDAT |= (0x0f<<5);  
        GPBDAT &= ~(1<<5);  
    }  
      
    void irq_ent2(void)  
    {  
        SRCPND = 1<<2;  
        INTPND = 1<<2;  
      
        GPBDAT |= (0x0f<<5);  
        GPBDAT &= ~(1<<7);  
    }  
      
    void irq_ent3(void)  
    {  
        EINTPEND = (1<<4);  
        SRCPND = 1<<4;  
        INTPND = 1<<4;  
      
        GPBDAT |= (0x0f<<5);  
        GPBDAT &= ~(1<<6);  
    }
  • 相关阅读:
    「luogu2414」[NOI2011]阿狸的打字机
    【模板】KMP算法,AC自动机
    「luogu2336」[SCOI2012]喵星球上的点名
    「luogu2463」[SDOI2008]Sandy的卡片
    【模板】后缀数组
    「luogu1972」 [SDOI2009]HH的项链
    北师大部分题解
    D:Sequence Swapping
    Tinkoff Internship Warmup Round 2018 and Codeforces Round #475 (Div. 2)
    点双连通分量F. Simple Cycles Edges
  • 原文地址:https://www.cnblogs.com/zpehome/p/2841422.html
Copyright © 2011-2022 走看看