示例#1
0
int testLowTimerStop(void)
{
	int  status;

	pTimer[0] = task_timer_alloc();

	task_timer_start(pTimer[0], 10, 5, TIMER_SEM);

	task_timer_stop(pTimer[0]);

	status = task_sem_take_wait_timeout(TIMER_SEM, 20);
	if (status != RC_TIME) {
		TC_ERROR("** task_sem_take_wait_timeout() returned %d, not %d\n", status, RC_TIME);
		return TC_FAIL;    /* Return failure, do not "clean up" */
	}

	task_timer_free(pTimer[0]);
	return TC_PASS;
}
示例#2
0
void powerdown_sleep()
{
	_delay_ms(31);
	task_timer_stop();
	do
	{
		//allow rtc irq handler but do not wake up
		time_rtc_irq = false;

		//rtc irq set time_rtc_irq to true if executed
		SystemPowerSave();

		if (time_rtc_irq)
			wdt_reset();


	} while (time_rtc_irq == true);

	//start task timer in low speed mode
	task_timer_setup(false);
}