📄 interrupt.c
字号:
//2007.5.9
//14:31
//ifq
//
//interrupt module
/////////////////////////////////////////////////////////////////
#include "oaks_sfr.h"
/*intterrupt register*/
void interrupt0();
void interrupt1();
#pragma INTERRUPT interrupt0
#pragma INTERRUPT interrupt1
/*timer0 */
void timer0();
#pragma INTERRUPT timer0
#define TIMER0SET(x) ta0=x
#define T0SIZE 5000-1
/*globle define*/
static unsigned char g_Button0;
unsigned char g_Button1;
unsigned int g_TimerCount;
/*中断0的处理函数*/
void interrupt0()
{
int i=50000;
while(i)
i--;
g_Button0=1;
}
void Int0Init()
{
int0ic=0x07;
}
void Int0Close()
{
int0ic=0x00;
}
int WaitButton0()
{
g_Button0=0;
while(!g_Button0)
;
return g_Button0;
}
/*interrupt1 function*/
void interrupt1()
{
int i=50000;
while(i)
i--;
g_Button1=1;
p7=0x00;
}
void Int1Init()
{
int1ic=0x07;
}
void Int1Close()
{
int1ic=0x00;
}
int WaitButton1()
{
g_Button1=0;
while(!g_Button1)
;
return g_Button1;
}
/*Timer0 function*/
void timer0()
{
g_TimerCount++;
TIMER0SET(T0SIZE);
}
void Timer0Init()
{
g_TimerCount=0;
udf = 0x01; /* Setup down counter */
ta0mr = 0x80; /* Set Timer mode clock丗1/32 */
TIMER0SET(T0SIZE); /* Initialize Timer value */
ta0ic = 0x06; /* Set Interruption level */
tabsr = 0x01; /* Set counter to start */
}
void Timer0Close()
{
tabsr = 0x00;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -