示例#1
0
文件: cm_temp.c 项目: bk1472/d2a_prj
void CM_TempInit(void)
{
	memset(&gCmPacket, 0, sizeof(CH_PAC_T));
	suspendTask(500);
	dbgprint("Requesting PSIP Reset Channel");
	PSIP_ResetChannel(0, gTrId);
	suspendTask(500);
	dbgprint("Requesting PSIP Channel Info");
	PSIP_RequestChInfo(CH_PORT, PHYSICAL_CH_NUM, VSB_ANT, ChCh);
}
示例#2
0
文件: nvmdrv.c 项目: bk1472/d2a_prj
/*==============================================================================
Function Name   : WaitNvmStable()
Version         : 0.2
Create Date     : 2003.03.04
Author          : [email protected]
Description     : wait until NVM is stable after write page
Input           : none
Output          : none
Remarks         : internal function
==============================================================================*/
static void WaitNvmStable(int isRead)
{
	static   UINT32	wr_mlbolt = 0;
	volatile SINT32	i, j;
	UINT16			subAddr = 0xffff;	/* Unused address space	*/
	UINT08			readData;


	/* Check last write time and force delay	*/
	if ((readMsTicks() - wr_mlbolt) < 20)
		suspendTask(20);		/* Wait 20 ms		*/

	for (i = 0; i < 10; i++)
	{
		if (i2cmsMasterRead(nvmI2cLine,nvmI2cAddr,(UINT08 *)&subAddr, 2, &readData, 1)==I2C_ERROR)
		{
			NVMDRV_PRINT("NVM Wait for Stable");
			continue;
		}
		else
		{
			for (j = 0; j < 10; j++)
				;
			break;
		}
	}

	/* Update last write time in milli second	*/
	if (!isRead) wr_mlbolt = readMsTicks();

	return;
}
示例#3
0
文件: cm_temp.c 项目: bk1472/d2a_prj
void CM_Status(void)
{
	//TODO

	while(1)
	{
		suspendTask(1000);
	}
}
示例#4
0
文件: yakc.c 项目: fminor/minormoore
void YKDelayTask(int count) { /* Delays a task for specified number of clock ticks*/
	YKEnterMutex();
	runningTask->delay=count;

	suspendTask(runningTask);

	YKExitMutex();
	YKScheduler(0);
}
示例#5
0
文件: gpio_api.c 项目: bk1472/d2a_prj
// INPUT : Main Audio 	    	not 0 -> Mute
//								0 -> Audio On
UINT08 GPIO_MainAudioMute(UINT08 on)
{
	//GPIO를 이용한 하드웨어적 Mute는 Tr과 Power로 두가지의 방법으로 뮤트를 건다.
	//이렇게 해야 완벽하게 소리를 막는다.
	//Power관련해서는 동작시간이 좀 걸리므로 시간 간격이 필요하다.
	if (on)
	{									//Mute On
		GPIO_MainAudioTrMute(TRUE);			//Tr Mute
		suspendTask(100);
		GPIO_MainAudioEnableData(FALSE);	//DATA
	}
	else
	{									//Mute Off
		GPIO_MainAudioEnableData(TRUE);		//DATA
		suspendTask(50);
		GPIO_MainAudioTrMute(FALSE);		//Tr Mute
	}

	return(on);
}
示例#6
0
文件: gpio_api.c 项目: bk1472/d2a_prj
// INPUT : Main Audio 	    	not 0 -> Mute
//								0 -> Audio On
UINT08 GPIO_MainAudioMute(UINT08 on)
{
	//GPIO를 이용한 하드웨어적 Mute는 Tr과 Power로 두가지의 방법으로 뮤트를 건다.
	//이렇게 해야 완벽하게 소리를 막는다.
	//Power관련해서는 동작시간이 좀 걸리므로 시간 간격이 필요하다.
	if(on)
	{
		GPIO_MainAudioTrMute(TRUE);
		suspendTask(500);
		GPIO_MainAudioPower(FALSE);
	}
	else
	{
		GPIO_MainAudioPower(TRUE);
		suspendTask(500);
		GPIO_MainAudioTrMute(FALSE);
	}

	return(on);
}
示例#7
0
文件: acc_main.c 项目: bk1472/d2a_prj
void AccPeriodicTask(void)
{
#ifdef _UCOS_
	int	tickCount=99;
	while(1)
	{
		suspendTask(10); /// 10ms
	//ACC_DEBUG("^G^%s:%d]",__FUNCTION__,__LINE__);

		if ( PeriodicWork & PERIODIC_D1RATING_MASK)
		{
			if(RatingPath == MainSubBoth)
				//if(tickCount%100== 1) /// Once a second
				if( tickCount == 2) /// Once a second
					Check_D1_RatingDataCounter();
		}

		if ( PeriodicWork & PERIODIC_EXTRATING_MASK)
		{
			if(RatingPath != UnknownPath)
				if( tickCount == 3) /// Once a second
					Check_Ext_RatingDataCounter();
		}

		if ( PeriodicWork & PERIODIC_FRAMERATE_MASK)
		{
			//if(tickCount%15 == 1)		CC_CheckFrameRate();
		}

		if ( PeriodicWork & PERIODIC_WATCHDOG_MASK)
		{
			//if(tickCount%3 == 1) /// Once every 30ms
			if (!(tickCount & 0x3)) /// Once every 40ms (0/1/2/3 -> Once out of 4 turns -> 40ms)
				Process_Caption_Watchdog();
		}

		if ( PeriodicWork & PERIODIC_USERDATA_MASK)
		{
			//if(tickCount%3 == 1) /// Once every 30ms
			if ((tickCount & 0x3) == 1) /// Once every 40ms
				Monitor_Caption_UserData();
		}
		if (tickCount)	tickCount--;
		else			tickCount=99;
	}
#else
	UINT64	tickCount = 0;
	int i;

	while(1)
	{
		SC_TaskSleep(10);			//10ms

		for(i=0; i<5; i++)
		{
			if(PeriodicWorkActive[i] == TRUE)
			{
				switch(i)
				{
					case PERIODIC_D1RATING:
						if(RatingPath == MainSubBoth)
							if(tickCount%100== 1)
								Check_D1_RatingDataCounter();
						break;

					case PERIODIC_EXTRATING:
						if(RatingPath != UnknownPath)
							if(tickCount%100 == 1)
								Check_Ext_RatingDataCounter();
						break;

					case PERIODIC_FRAMERATE:
						//if(tickCount%15 == 1)		CC_CheckFrameRate();
						break;

					case PERIODIC_WATCHDOG:
						if(tickCount%3 == 1)		Process_Caption_Watchdog();
						break;

					case PERIODIC_USERDATA:
						if(tickCount%3 == 1)		Monitor_Caption_UserData();
						break;
				}
			}
		}

		tickCount++;
	}
#endif
}