Exemple #1
0
int main()
{
	consoleDemoInit();

	uint ticks = 0;
	TimerStates state = timerState_Stop;
	int down = keysDown();

	while(!(down & KEY_START))
	{
		swiWaitForVBlank();
		consoleClear();
		scanKeys();
		down = keysDown();

		if(state == timerState_Running)
		{
			ticks += timerElapsed(0);
		}

		if(down & KEY_A)
		{
			if(state == timerState_Stop)
			{
				timerStart(0, ClockDivider_1024, 0, NULL);
				state = timerState_Running;
			}
			else if(state == timerState_Pause)
			{
				timerUnpause(0);
				state = timerState_Running;
			}
			else if(state == timerState_Running)
			{
				ticks += timerPause(0);
				state = timerState_Pause;
			}
		}
		else if(down & KEY_B)
		{
			timerStop(0);
			ticks = 0;
			state = timerState_Stop;
		}

		iprintf("Press A to start and pause the \ntimer, B to clear the timer \nand start to quit the program.\n\n");
		iprintf("ticks:  %u\n", ticks);
		iprintf("second: %u:%u\n", ticks/TIMER_SPEED, ((ticks%TIMER_SPEED)*1000) /TIMER_SPEED);
	}

	if(state != timerState_Stop)
	{
		timerStop(0);
	}

	return 0;
}
Exemple #2
0
static
portTASK_FUNCTION(Key_Press, pvParameters)
{
    int down = keysDown();
        

    while(!(down & KEY_START))
    {int k=0;
        swiWaitForVBlank();
        consoleClear();
        scanKeys();
        down = keysDown();

        if(state == timerState_Running)
        {
            ticks += timerElapsed(0);
        }

        if(down & KEY_A)
        {
            if(state == timerState_Stop)
            {
                timerStart(0, ClockDivider_1024, 0, NULL);
                state = timerState_Running;
            }
            else if(state == timerState_Pause)
            {
                timerUnpause(0);
                state = timerState_Running;
                
            }
            else if(state == timerState_Running)
            {
                ticks += timerPause(0);
                state = timerState_Pause;
                sc[j] = ticks/TIMER_SPEED;
                scp[j] = ((ticks%TIMER_SPEED)*1000) /TIMER_SPEED;
                j++;
                

            }

        }
        else if(down & KEY_B)
        {
            timerStop(0);
            ticks = 0;
            state = timerState_Stop;
            j = 0;
        }

        iprintf("(A)     : Start & Pause Timer.\n(B)     : Clean Timer.\n(Start) : Exit Timer.\n\n");
        iprintf("Time\n");
        iprintf("ticks:  %u\n", ticks);
        iprintf("second: %u:%u\n", ticks/TIMER_SPEED, ((ticks%TIMER_SPEED)*1000) /TIMER_SPEED);
        iprintf("LIST\n");
        for(i = 0; i < j; i++) {
        iprintf(" [%d] :  %u : %u \n",i+1, sc[i],scp[i]);
        }
   	        
	

    }

    if(state != timerState_Stop)
    {
        timerStop(0);
    }
    vTaskDelay(portMAX_DELAY);
}