⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 射频芯片RC500的程序
💻 C
📖 第 1 页 / 共 2 页
字号:

*                                                                           *

****************************************************************************/



void 	delay_1ms (uchar _1ms)

{



  RCAP2LH = RCAP2_1ms;

  T2LH    = RCAP2_1ms;

  ET2 = 0; 	// Disable timer2 interrupt

  T2CON = 0x04;	// 16-bit auto-reload, clear TF2, start timer

  

  while (_1ms--)

  {

	while (!TF2);

	TF2 = FALSE;

  }

  TR2 = FALSE;



}





/****************************************************************************

*                                                                           *

* Function:     delay_10ms                                                  *

*                                                                           *

* Input:        _10ms                                                       *

* Output:       -           
                                                *

*                                                                           *

* Description:                                                              *

*                                   
                                        *

* Time delay with a resolution of 10 ms.                                    *

*                                                                           *

****************************************************************************/



void 	delay_10ms (uint _10ms)

{



  RCAP2LH = RCAP2_10ms;

  T2LH    = RCAP2_10ms;

  ET2 = 0; 	// Disable timer2 interrupt

  T2CON = 0x04;	// 16-bit auto-reload, clear TF2, start timer

  

  while (_10ms--)

  {

	while (!TF2)

	{

	  if (CmdValid || CmdReceived)

	  {

		TR2 = FALSE;

		TF2 = FALSE;

		return;

	  }

	}

	TF2 = FALSE;

  }

  TR2 = FALSE;



}





#ifdef NOP_DELAY



/****************************************************************************

*                                                                           *

* Function:     delay_50us_NOP                                              *

*                                                                           *

* Input:        -                                                           *

* Output:       -                                                           *

*                                                                           *

* Description:                                                              *

*                                                                           *

* Zeitverz攇erung von 50 鎠.                                                *

*                                                                           *

****************************************************************************/



void 	delay_50us_NOP (void)

{

  uchar i;

  

  for(i=0; i<81; i++) _nop_();	

}



#endif





/****************************************************************************

*                                                                           *

* Function:     delay_8us_NOP                                               *

*                                                                           *

* Input:        -                                                           *

* Output:       -                                                           *

*                                                                           *

* Description:                                                              *

*                                                                           *

*                                                                           *

****************************************************************************/



void 	delay_8us_NOP (void)

{

  uchar i;

  

  for(i=0; i<14; i++) _nop_();	

}



#pragma aregs





/****************************************************************************

*                                                                           *

* Function:     xtoa_h                                                      *

*                                                                           *

* Input:        _byte                                                       *

* Output:       ASCII High-Nibble                                           *

*                                                                           *

* Description:                                                              *

*                                                                           *

* Wandelt das High-Nibble des 乥ergebenen Bytes in ein ASCII-Zeichen um.    *

*                                                                           *

****************************************************************************/



uchar 	xtoa_h (uchar _byte)

{

  uchar nibble = _byte >> 4;



  return ((nibble > 9)? nibble + 'A' - 10 : nibble + '0');

}





/****************************************************************************

*                                                                           *

* Function:     xtoa_l                                   
                   *

*                                                                           *

* Input:        _byte                                                       *

* Output:       ASCII Low-Nibble                                            *

*                                                                           *

* Description:                                                              *

*                                                                           *

* Wandelt das Low-Nibble des 乥ergebenen Bytes in ein ASCII-Zeichen um.     *

*                                                                           *

****************************************************************************/



uchar 	xtoa_l (uchar _byte)

{

  uchar nibble = _byte & 0x0F;



  return ((nibble > 9)? nibble + 'A' - 10 : nibble + '0');

}





/****************************************************************************

*                                                                           *

* Function:     isr_timer0                                                  *

*                                                                           *

* Input:        -                                                           *

* Output:       -                                                           *

*                                                                           *

* Description:                                                              *


*                                                                           *

*                                                                           *

****************************************************************************/



void 	isr_timer0 (void) interrupt 1 using 2

{

  if (Timer0Cnt)

  {

	--Timer0Cnt;

  }

  else

  {

	STOP_T0();



#ifdef AUTODELAY

	if (DelayRate < MAXDELAYRATE && CmdCnt > 0)

	{

	  DelayRate++;

	  DelayRateLocked = FALSE;

	}

#endif



	RecvState = RECV_STX;



	if (!SendReady && LLfReady)

	{

	  if (RepCnt < MAXREPCNT)

	  {

		RepCnt++;

		CALL_isr_UART();

	  }

	  else

	  {

		RepCnt = 0;

		Quit = FALSE;

		SendReady = TRUE;

	  }

	}

  }

}





/***************************************************************************/


⌨️ 快捷键说明

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