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 + -
显示快捷键?