📄 gpio.c
字号:
#include "44b.h"
#include "arm.h"
#include "ic.h"
#define DELAY 300
void delay(unsigned int i)
{
unsigned int j,k;
for(j=0;j<i;j++)
for(k=0;k<i;k++)
;
}
void __irq HandlerINT4567 (void) //中断服务函数
{
rPDATC = 0x000E;
//此处加入你要的程序比如点灯的
rEXTINTPND=0xf; //将外部4567位标志清除
rI_ISPC=BIT_EINT4567;//再清除intpnd中的请求位
}
void Init_Eint(void)
{
rINTCON=1;//irq interrupt
pISR_EINT4567=(unsigned)HandlerINT4567;// 此句是定义外中断4567
rSPUCR=4;
rPCONG=0xff00; //EINT7~4
rPUPG=0x0; //pull up enable
//rEXTINT=0x0; //low level interrupt
rEXTINT=0xffff; //low level interrupt
rINTMOD&=~(BIT_EINT4567|BIT_GLOBAL); //中断方式为IRQ向量式
rINTMSK=~(BIT_EINT4567|BIT_GLOBAL); //中断屏蔽位清零
}
int main()
{
// rPCONC = 0x55555555;
// rPCONG = 0x00000000;
Init_Eint();//初始化向量表和工作方式
while(1)
{
while (1)
{
rPDATE = 0x0020;
rPDATC = 0x0000;
delay(DELAY);
rPDATC = 0x0002;
delay(DELAY);
rPDATC = 0x0004;
delay(DELAY);
rPDATC = 0x0008;
delay(DELAY);
rPDATC = 0x0004;
delay(DELAY);
rPDATC = 0x0002;
delay(DELAY);
rPDATC = 0x0000;
delay(DELAY);
rPDATE = 0x0000;
delay(DELAY);
rPDATE = 0x0020;
delay(DELAY);
rPDATE = 0x0000;
delay(DELAY);
rPDATE = 0x0020;
delay(DELAY);
rPDATC = 0x000E;
delay(DELAY);
rPDATC = 0x0000;
delay(DELAY);
rPDATC = 0x000E;
delay(DELAY);
rPDATC = 0x0000;
delay(DELAY);
rPDATC = 0x000E;
delay(DELAY);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -