|
楼主 |
发表于 2009-7-9 10:35:17
|
显示全部楼层
很奇怪
当我不加GPIO_RSET(GPEN,0x1c0)这句话时,很长一段时间内,不能进入中断,当我加了之后又好了,再把这句话注释掉以后,还照样能进入中断。
我看到C6000得gpio的资料上不是说当GPEN相应位为1时“ GPn pin is enabled as general-purpose input/output pin.”也就是说GPEN相应位为1时是作用通用输入输出管脚,而没说与中断有关系啊?
IRQ_map(IRQ_EVT_EXTINT6,6);
IRQ_map(IRQ_EVT_EXTINT7,7);
IRQ_reset(IRQ_EVT_EXTINT6);
IRQ_reset(IRQ_EVT_EXTINT7)//再请问程序中这四句话有用吗?
下面是我的程序:
#include <csl.h>
#include <csl_emifa.h>
#include <csl_irq.h>
#include <csl_chip.h>
#include "seeddm642.h"
#include "seeddm642_uart.h"
extern far void vectors();
static unsigned char flag ;
/*此程序可将四个采集口的数据经过Video Port0送出*/
void main()
{
/*Initialise CSL,初始化CSL库*/
CSL_init();
/*中断向量表的初始化*/
//Point to the IRQ vector table
IRQ_setVecs(vectors);
GPIO_RSET(GPEN,0x1c0);//
GPIO_RSET(GPDIR,0x100);/*将GPIO做为输出*/
//GPIO_RSET(GPVAL,0x100);
IRQ_globalDisable();
IRQ_nmiDisable();
IRQ_nmiEnable();
IRQ_globalEnable();
IRQ_map(IRQ_EVT_EXTINT6,6);
IRQ_map(IRQ_EVT_EXTINT7,7);
IRQ_reset(IRQ_EVT_EXTINT6);
IRQ_reset(IRQ_EVT_EXTINT7);
IRQ_RSET(EXTPOL,0x0E);//下降沿中断
IRQ_enable(IRQ_EVT_EXTINT6);
IRQ_enable(IRQ_EVT_EXTINT7);
while(1);
}
interrupt void ext_isr6()
{
flag = 1;
}
interrupt void ext_isr7()
{
flag = 0;
} |
|