示例#1
0
/*----------------------------------------------------------------------------------------
函数名: TimerInit
参数:
		None
返回值:
		None
描述:
		初始化定时器,并创建第一个虚拟定时器:1s为周期
----------------------------------------------------------------------------------------*/
void TimerInit(void)
{
	DrvTIMER_Init();
	DrvTIMER_Open(TMR1, 1000, PERIODIC_MODE);
	DrvTIMER_SetTimerEvent(TMR1,1000, (TIMER_CALLBACK)TMRCBForSysTick,0);
	DrvTIMER_EnableInt(TMR1);
	DrvTIMER_Ioctl(TMR1, TIMER_IOC_START_COUNT, 0);
}
/*---------------------------------------------------------------------------------------------------------*/
int32_t DrvTIMER_Close(TIMER_CHANNEL channel)
{

    if (channel > TMR1)
    {
        return E_DRVTIMER_CMD;
    }

    switch (channel)
    {
    case TMR0:
    {
        bIsTimer0Used       = FALSE;
        bIsSetTime0Event    = FALSE;
        DrvTIMER_Ioctl(TMR0, TIMER_IOC_DISABLE_INT, 0);
        DrvTIMER_Ioctl(TMR0, TIMER_IOC_RESET_TIMER, 0);
        break;

    }
    case TMR1:
    {
        bIsTimer1Used       = FALSE;
        bIsSetTime1Event    = FALSE;
        DrvTIMER_Ioctl(TMR1,TIMER_IOC_DISABLE_INT,  0);
        DrvTIMER_Ioctl(TMR1, TIMER_IOC_RESET_TIMER, 0);
        break;

    }

    default:
    {
        return E_DRVTIMER_CMD ;
    }
    }

    return E_SUCCESS;
}