?? 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 + -