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

📄 support.c

📁 mcs51,2051,x86系列MCU
💻 C
📖 第 1 页 / 共 2 页
字号:
   (void) IntrType;	/* Reference to avoid compiler warning */

   ((unsigned long far *)(0))[Vector] = (unsigned long)IntrProc;
}
/* APB_BLOCK_END */



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


/* APB_BLOCK_START = TIMERS */
/*  InitTimer:
	Description:
	
	Parameters:
		Unit 		Unit number of the timer.  EX supports 0, 1 or 2
		Mode		Defines Counter Mode and Count value type						
		Inputs 		Specifies Input sources
		Output		Specifies Which Output to drive
		InitCount	Value to be loaded into count register
		Enable		Enable (1) or disable (0) Timer
	Returns:	Error Codes
		E_INVAILD_DEVICE 	-- Unit number specifies a non-existing device
		E_OK				-- Initialized OK, No error.

	Assumptions:
		REMAPCFG register has Expanded I/O space access enabled (ESE bit set).
	
	Real/Protected Mode
		No changes required.
*/
int InitTimer(int Unit, WORD Mode, BYTE Inputs, BYTE Output,WORD InitCount, int Enable)
{
	BYTE	TmpByte;
	WORD	TmrCntPort;
	
	if(Unit > 2)
		return E_INVALID_DEVICE;

	TmrCntPort = 0xf040 + Unit;			/* Set depending on which timer */

    	/* Set Pin configuration */
    if(Unit < 2)
    {
        TmpByte = _GetEXRegByte(P3CFG) | (Output << Unit);   /* Bit 0 or 1 */
        _SetEXRegByte(P3CFG,TmpByte);
    }
    else
    {
    	TmpByte = _GetEXRegByte(PINCFG) | (Output << 5);		/* Bit 5 */             
        _SetEXRegByte(PINCFG,TmpByte);
    }
    
    	/* Set Timer Config */
    TmpByte = _GetEXRegByte(TMRCFG);		/* All Timers share this register, Keep previous settings */
    if(!Enable)
     	TmpByte |= 0x80;			        /* Set Timer Disable Bit */
    TmpByte |= (Inputs << (Unit*2));		/* Set CK?CON and GT?CON bits */
    _SetEXRegByte(TMRCFG,TmpByte);
    
    	/* Set Timer Control Register */
    TmpByte = Unit << 6;		/* Set counter select */
    TmpByte |= (0x30 | Mode);	/* Set R/W low then high byte and Mode bits */
	_SetEXRegByte(TMRCON,TmpByte);
	
		/* Set Initial Counter Value */
	TmpByte = HIBYTE(InitCount);
	_SetEXRegByte(TmrCntPort, LOBYTE(InitCount));
	_SetEXRegByte(TmrCntPort, TmpByte); 
    
	return E_OK;
}


void interrupt far TimerISR(void)
{
   
}
/* APB_BLOCK_END */


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



/* APB_BLOCK_START = WDT */

/*
 * FUNCTION:      
 *
 * DESCRIPTION:   
 *                
 *
 *
 *
 * PARAMETERS:    
 *
 * RETURN VALUE:  
 *
 * CALL FORMAT:   
 *
 * EXT EFFECTS:   
 *
 *
 */

void SetupWDT(BYTE Status)
{
   _SetEXRegByte(WDSTATUS, Status);
}

/* APB_BLOCK_END */

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

/* APB_BLOCK_START = IO */

/*
 * FUNCTION:      
 *
 * DESCRIPTION:   
 *                
 *
 *
 *
 * PARAMETERS:    
 *
 * RETURN VALUE:  
 *
 * CALL FORMAT:   
 *
 * EXT EFFECTS:   
 *
 *
 */

void InitIO1(BYTE P1_LTC, BYTE P1_DIR, BYTE P1_CFG)
{
   /* port 1 init */
  _EnableExtIOMem();
  _SetEXRegByte(P1LTC, P1_LTC);
  _SetEXRegByte(P1DIR, P1_DIR);
  _SetEXRegByte(P1CFG, P1_CFG);
  _DisableExtIOMem();
}

/*
 * FUNCTION:      
 *
 * DESCRIPTION:   
 *                
 *
 *
 *
 * PARAMETERS:    
 *
 * RETURN VALUE:  
 *
 * CALL FORMAT:   
 *
 * EXT EFFECTS:   
 *
 *
 */

void InitIO2(BYTE P2_LTC, BYTE P2_DIR, BYTE P2_CFG)
{
   /* port 2 init */  
  _EnableExtIOMem();
  _SetEXRegByte(P2LTC, P2_LTC); 
  _SetEXRegByte(P2DIR, P2_DIR); 
  _SetEXRegByte(P2CFG, P2_CFG); 
  _DisableExtIOMem();
}

/*
 * FUNCTION:      
 *
 * DESCRIPTION:   
 *                
 *
 *
 *
 * PARAMETERS:    
 *
 * RETURN VALUE:  
 *
 * CALL FORMAT:   
 *
 * EXT EFFECTS:   
 *
 *
 */

void InitIO3(BYTE P3_LTC, BYTE P3_DIR, BYTE P3_CFG)
{
   /* port 3 init */  
  _EnableExtIOMem();
  _SetEXRegByte(P3LTC, P3_LTC); 
  _SetEXRegByte(P3DIR, P3_DIR); 
  _SetEXRegByte(P3CFG, P3_CFG); 
  _DisableExtIOMem();
}
  

/* APB_BLOCK_END */


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

/* APB_BLOCK_START = RCU */

/*
 * FUNCTION:      
 *
 * DESCRIPTION:   
 *                
 *
 *
 *
 * PARAMETERS:    
 *
 * RETURN VALUE:  
 *
 * CALL FORMAT:   
 *
 * EXT EFFECTS:   
 *
 *
 */

void Init_RCU(BYTE Value1, BYTE Value2, BYTE Value3, BYTE Value4)
{
  _EnableExtIOMem();
  _SetEXRegWord(RFSCIR, Value1);  /* Program refresh interval. */
  _SetEXRegWord(RFSBAD, Value2);  /* Program base address. */
  _SetEXRegWord(RFSADD, Value3);  /* Program address register. */
  _SetEXRegWord(RFSCON, Value4);  /* Program the enable bit. */
  _DisableExtIOMem();
}

/* APB_BLOCK_END */


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


/* APB_BLOCK_START = CLOCK_AND_PM */

/*
 * FUNCTION:      
 *
 * DESCRIPTION:   
 *                
 *
 *
 *
 * PARAMETERS:    
 *
 * RETURN VALUE:  
 *
 * CALL FORMAT:   
 *
 * EXT EFFECTS:   
 *
 *
 */

                                   
void Init_ClockPMU(BYTE PowerCont, BYTE ClockPrescale)
{
  _EnableExtIOMem();
  _SetEXRegByte(PWRCON, PowerCont);
  _SetEXRegWord(CLKPRS, ClockPrescale);
  _DisableExtIOMem();
}

/* APB_BLOCK_END */

⌨️ 快捷键说明

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