interrupt_vector.c

来自「基于ST72324设计的汽车防盗器源程序」· C语言 代码 · 共 80 行

C
80
字号
/*	BASIC INTERRUPT VECTORS TABLE FOR ST7 devices
 *	Copyright (c) 2002-2005 STMicroelectronics
 */
#define __DEFINE_REGISTERS_STVD7_INCLUDE__
#include "ST72324BLK2.h"
#undef  __DEFINE_REGISTERS_STVD7_INCLUDE__
extern void _stext();		/* startup routine */ 
extern void Receive(void);
extern unsigned char StandarClock2;
extern unsigned char FlagRX;
extern unsigned char TAOC2LBuff;
extern unsigned char CodeLength;
unsigned char TempBuff0;
extern BIT_CHAR Flag4;
extern BIT_CHAR Flag3;
#define Direct b0
#define FlagLearn b4
@interrupt void Timer4ms (void)
{
  MCCSR&=~BIT0;
	StandarClock2++;
	if(Flag4.b.Direct)
	{
	  if((TAOC1LR+=2)>=116) Flag4.b.Direct=0 ; 
	  TAOC2LR=(TAOC2LBuff+=4);
  }
	else
  {
		if((TAOC1LR-=2)<=42) Flag4.b.Direct=1;   
		TAOC2LR=(TAOC2LBuff-=4);

  }
}
/*##################################################################*/
@interrupt void ReceiverInt (void)
{
	unsigned char Temp;
	TempBuff0=(TBCR>>3);
	if(TBCR>1400){CodeLength=20;FlagRX&=~EncrypCode;goto Next1;}
	if(!(PCDR&BIT2)) goto Next1;
  else if(Flag3.b.FlagLearn && (TempBuff0<25)) {CodeLength=20;FlagRX&=~EncrypCode;goto Next1;}
	else if(TempBuff0<16)  goto Next1;/*if <125us*/ 
  else
	Receive();
Next1:
  Temp=TBCSR;
  TBACLR=0;     //reset TB counter 
	Temp=TBIC1LR;
	Temp=TBIC2LR;
}

/*##################################################################*/

@interrupt void NonHandledInterrupt(void)
{
	return;
}
/*##################################################################*/


/* Interrupt vector table, to be linked at the address
   0xFFE0 (in ROM) */ 
void (* const _vectab[])() = {
	NonHandledInterrupt,  		/* 0xFFE0 */
	NonHandledInterrupt,			/* 0xFFE2 */
	NonHandledInterrupt,			/* 0xFFE4 */
	NonHandledInterrupt,			/* 0xFFE6 */
	ReceiverInt,		        	/* 0xFFE8 */
	NonHandledInterrupt,			/* 0xFFEA */
	NonHandledInterrupt,			/* 0xFFEC */
	NonHandledInterrupt,			/* 0xFFEE */
	NonHandledInterrupt,			/* 0xFFF0 */
	NonHandledInterrupt,			/* 0xFFF2 */
	NonHandledInterrupt,			/* 0xFFF4 */
	NonHandledInterrupt,			/* 0xFFF6 */
	Timer4ms,           			/* 0xFFF8 */
	NonHandledInterrupt,			/* 0xFFFA */
	NonHandledInterrupt,			/* Trap vector */
	_stext,			/* Reset Vector */
};

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?