isr.c
来自「2005年全国大学生电子设计竞赛论文集」· C语言 代码 · 共 84 行
C
84 行
//*******************************************************************//
//Interrupt Service Routine For C language
//*******************************************************************//
#include "SPCE061V004.H"
extern float ADconver(void);
unsigned long int max;
extern unsigned data[500],maxdata[16];
unsigned int ii=0,jj=0,qq=0,isrflag=0,i,j;
void BREAK(void) __attribute__ ((ISR));
void BREAK(void)
{
}
void FIQ(void) __attribute__ ((ISR));
void FIQ(void)
{
}
void IRQ0(void) __attribute__ ((ISR));
void IRQ0(void)
{
}
void IRQ1(void) __attribute__ ((ISR));
void IRQ1(void)
{
}
void IRQ2(void) __attribute__ ((ISR));
void IRQ2(void)
{
}
void IRQ3(void) __attribute__ ((ISR));
void IRQ3(void)
{
}
void IRQ4(void) __attribute__ ((ISR));
void IRQ4(void)
{
if(*P_INT_Ctrl&C_IRQ4_1KHz)
{
data[ii]=ADconver();
ii++;
if(ii==500)
{
maxdata[jj]=data[0];
for(i=1;i<500;i++)
{
if(data[i]>max)
maxdata[jj]=data[i];
}
ii=0;jj++;
}
if(jj==16)
{
isrflag=1;jj=0;
for(qq=0;qq<16;qq++)
{
max+=maxdata[qq];
*P_Watchdog_Clear=1;
}
max>>=4;
}
*P_INT_Clear=C_IRQ4_1KHz;
}
if(*P_INT_Ctrl&C_IRQ4_2KHz)
{
*P_INT_Clear=C_IRQ4_2KHz;
}
if(*P_INT_Ctrl&C_IRQ4_4KHz)
{
*P_INT_Clear=C_IRQ4_4KHz;
}
}
void IRQ5(void) __attribute__ ((ISR));
void IRQ5(void)
{
}
void IRQ6(void) __attribute__ ((ISR));
void IRQ6(void)
{
}
void IRQ7(void) __attribute__ ((ISR));
void IRQ7(void)
{
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?