Exemple #1
0
/*
 * ----------------------------------------------------------------------------
 * Function Name: DELAY_Init
 * Purpose: Get system clock and program wait state to decide delay loop count.
 * Params:
 * Returns:
 * Note:
 * ----------------------------------------------------------------------------
 */
void DELAY_Init(void)
{
	delay_MsLoop = 1;
	delay_SysClk = 25;
	delay_ProgWst = 1;

	/* get system clock */
	switch (AX11000_GetSysClk())
	{
		case SCS_100M :
			delay_SysClk = CLK_100M;
			break;
		case SCS_50M :
			delay_SysClk = CLK_50M;
			break;
		case SCS_25M :
			delay_SysClk = CLK_25M;
		default:
			break;
	}

	/* get program wait state */
	delay_ProgWst = AX11000_GetProgWst() + 1;

	/* calculate driver loop count for per ms */
	delay_MsLoop = ((U32_T)delay_SysClk * 1000) / ((U32_T)delay_ProgWst * 11);

} /* End of DELAY_Init */
Exemple #2
0
// note: 
void Initial_PWM(void)
{
	U8_T loop;
	U8_T sysclk = 0;
	U32_T Sysclk; 
	sysclk = AX11000_GetSysClk();
	switch (sysclk)
	{
		case SYS_CLK_100M :
			Sysclk = 100000000;
			break;
		case SYS_CLK_50M :
			Sysclk = 50000000;
			break;
		case SYS_CLK_25M :
			Sysclk = 25000000;
			break;
	}
	for(loop = 0;loop < 24;loop++)		outputs[loop].switch_status = 0;

//	_2003_ENALBE = 0;   // enable 2003, otherwise cant drive relays
	CHSEL3 = 0;
	  
	PCA_ModeSetup(0x07,0x40);   //  mode 011, con 0x40  ,so  tick is 6
	tick = 6;
	Sysclk = Sysclk / 6;
	ccap_low = 0x50;
	P3 &= 0xf0;	
	P3 |= 0x07; // dont select any channel
}