interrupt_routine.c
来自「基于MB95F168气体检漏仪软件代码」· C语言 代码 · 共 75 行
C
75 行
/** THIS SAMPLE CODE IS PROVIDED AS IS. FUJITSU MICROELECTRONICS **/
/** ACCEPTS NO RESPONSIBILITY OR LIABILITY FOR ANY ERRORS OR OMMISSIONS **/
/*****************************************************************************
* Date : 2004/09/9
* PROJECT: MB95110
* [16-bit PPG 0/1/2]
* I change PPG frequency and duty just one time.
*****************************************************************************/
//#include "_f2mc8fx.h"
//#include "extern.h"
#include "mb95100.h"
unsigned int count1 = 0,count2=0,lightcount0=0,lightcount1=0,lightcount2=0;
unsigned char lighttime,light;
/* 16bit_PPG0 Int routine */
__interrupt void PPG0_2int(void)
{
if(PCNTL0_IRQF == 1)
{
PCNTL0_IRQF = 0; /* PPG0 INT clear */
// IO_PCSR0.word = PPGF+40;
// IO_PDUT0.word = PPGD+20;
}
else if(PCNTL2_IRQF == 1)
{
PCNTL2_IRQF = 0; /* PPG2 INT clear */
// IO_PCSR2.word = PPGF+40;
// IO_PDUT2.word = PPGD+20;
}
else
{
PCNTL0_IRQF = 0;
PCNTL2_IRQF = 0;
}
PDR6_P63=~PDR6_P63;
if(count1 ==10150)
{
count1 = 0;
count2++;
}
else count1++;
if((light==0x02&&lighttime==1)||(light==0x02&&lighttime==0)||(light==0x00&&lighttime==1))
lighttime=1;
else lighttime=0;
if(lighttime==0x01)
{
if(lightcount0==10150)
{
lightcount0=0;
lightcount1++;
lightcount2++;
}
else lightcount0=lightcount0;
lightcount0++;
if(lightcount2>=0x03)
{
lightcount2=0;
}
else lightcount2=lightcount2;
}
else
{
//lightcount0=0;
//lightcount1=0;
}
}
__interrupt void PPG1int(void)
{
PCNTL1_IRQF = 0; /* PPG1 INT clear */
// IO_PCSR1.word = PPGF+40;
// IO_PDUT1.word = PPGD+20;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?