Beispiel #1
0
int main(void) {
    int light_level = 0;
    Roach_Init();
    printf("Welcome to the Roach Test\r\n");
    printf("Bump states and light levels will be printed to the terminal every .1 seconds while also controlling the motor speed\r\n");
    InitTimer(0, 2000);
    while (!IsTimerExpired(0));
    
    while (1) {
        light_level = LightLevel() / 100;
        if (ReadFrontLeftBumper()) {
            LeftMtrSpeed(light_level);
        }
        if (ReadFrontRightBumper()) {
            RightMtrSpeed(light_level);
        }
        if (ReadRearLeftBumper()) {
            LeftMtrSpeed(light_level*-1);
        }
        if (ReadRearRightBumper()) {
            RightMtrSpeed(light_level*-1);
        }
        if(IsTimerExpired(0)==TIMER_EXPIRED){
            printf("%d\t%d\t%d\t%d\t%d", ReadFrontLeftBumper(), ReadFrontRightBumper(), ReadRearLeftBumper(), ReadRearRightBumper(), LightLevel());
            InitTimer(0, 100);
        }
    }
    return 0;
}
Beispiel #2
0
int main(void) {
    int i = 0;
    SERIAL_Init();
    TIMERS_Init();
    INTEnableSystemMultiVectoredInt();

    printf("\r\nUno Timers Test Harness\r\n");
    printf("Setting each timer for one second longer than the last and waiting for all to expire.  There are %d available timers\r\n", TIMERS_IN_TEST);
    for (i = 0; i <= TIMERS_IN_TEST; i++) {
        InitTimer(i, (i + 1)*1000); //for second scale
    }
    while (IsTimerActive(TIMERS_IN_TEST - 1) == TIMER_ACTIVE) {
        for (i = 0; i <= TIMERS_IN_TEST; i++) {
            if (IsTimerExpired(i) == TIMER_EXPIRED) {
                printf("Timer %d has expired and the free running counter is at %d\r\n", i, GetTime());
                ClearTimerExpired(i);
            }
        }
    }
    printf("All timers have ended\r\n");
    printf("Setting and starting 1st timer to 2 seconds using alternative method. \r\n");
    SetTimer(0, 2000);
    StartTimer(0);
    while (IsTimerExpired(0) != TIMER_EXPIRED);
    printf("2 seconds should have elapsed\r\n");
    printf("Starting 1st timer for 8 seconds but also starting 2nd timer for 4 second\r\n");
    InitTimer(0, 8000);
    InitTimer(1, 4000);
    while (IsTimerExpired(1) != TIMER_EXPIRED);
    printf("4 seconds have passed and now stopping 1st timer\r\n");
    StopTimer(0);
    printf("Waiting 6 seconds to verifiy that 1st timer has indeed stopped\r\n");
    InitTimer(1, 3000);
    i = 0;
    while (IsTimerActive(1) == TIMER_ACTIVE) {
        if (IsTimerExpired(0) == TIMER_EXPIRED) {
            i++;
            ClearTimerExpired(0);
        }
    }
    if (i == 0) {
        printf("Timer did not expire, module working correctly\r\n");
    } else {
        printf("Timer did expire, module not working correctly\r\n");
    }

    return 0;
}
Beispiel #3
0
void CItemSpawn::OnTick(bool fExec)
{
	ADDTOCALLSTACK("CitemSpawn:OnTick");

	INT64 iMinutes;

	if ( m_itSpawnChar.m_TimeHiMin <= 0 )
		iMinutes = Calc_GetRandLLVal(30) + 1;
	else
		iMinutes = minimum(m_itSpawnChar.m_TimeHiMin, m_itSpawnChar.m_TimeLoMin) + Calc_GetRandLLVal(abs(m_itSpawnChar.m_TimeHiMin - m_itSpawnChar.m_TimeLoMin));

	if ( iMinutes <= 0 )
		iMinutes = 1;

	if ( !fExec || IsTimerExpired() )
		SetTimeout(iMinutes * 60 * TICK_PER_SEC);	// set time to check again.

	if ( !fExec || m_currentSpawned >= GetAmount() )
		return;

	CResourceDef *pDef = FixDef();
	if ( !pDef )
	{
		RESOURCE_ID_BASE rid = IsType(IT_SPAWN_ITEM) ? m_itSpawnItem.m_ItemID : m_itSpawnChar.m_CharID;
		DEBUG_ERR(("Bad Spawn point uid=0%lx, id=%s\n", (DWORD)GetUID(), g_Cfg.ResourceGetName(rid)));
		return;
	}

	if ( IsType(IT_SPAWN_ITEM) )
		GenerateItem(pDef);
	else
		GenerateChar(pDef);
}
Beispiel #4
0
char IR_Update() {
    // Check main sensor
#ifdef USE_SAMPLING
    if (IsTimerExpired(TIMER_IR)) {
        /*
        char result = IsMainTriggered();
        #ifdef USE_LEDS
        if (result)
            LED_OnBank(LED_BANK3, 0x1);
        else
            LED_OffBank(LED_BANK3, 0x1);
        #endif
        irState[IR_MAIN_I] = result;

        // Check angle sensor
        result = IsAngleTriggered();
        #ifdef USE_LEDS
        if (result)
            LED_OnBank(LED_BANK3, 0x8);
        else
            LED_OffBank(LED_BANK3, 0x8);
        #endif
         irState[IR_ANGLE_I] = result;
         */
        UpdateCounters();
        InitTimer(TIMER_IR, UPDATE_DELAY);
     }
#endif

     return TRUE;
}
MainEvent_t RunEventHandler (void)
{
	MainEvent_t returnEvent = NO_EVENT;
	uint8_t currentButtonStatus = 0;


	//BT Receive Message EVENT

	//MPU-9250 Event Handler
	if (GetMPU_9250FlagStatus() == NEW_DATA) {
		ClearMPU_9250InterruptFlag();
		intrruptCount++;
		if (AddEventToQueue(MPU_9250_DATA_READY) != ADDED_TO_QUEUE)
			returnEvent = QUEUE_FULL;

	}
	//Joystick Event Handler
	if (IsTimerExpired(JOYSTICK_SAMPLE_TIMER)) {
		ClearTimerExpiredFlag(JOYSTICK_SAMPLE_TIMER);
		InitTimer(JOYSTICK_SAMPLE_TIMER, TIME_JOYSTICK_SAMPLE);
		if(AddEventToQueue(SAMPLE_TIMER) != ADDED_TO_QUEUE)
			returnEvent =  QUEUE_FULL;

	}
	//Button Event Handler
	currentButtonStatus = ReadAllButtons();
	if (currentButtonStatus != lastButtonStatus) {
		if(AddEventToQueue(BUTTON_PRESSED) != ADDED_TO_QUEUE)
			returnEvent = QUEUE_FULL;
		lastButtonStatus = currentButtonStatus;
	}
	//Send BT Data Event Handler
	if (IsTimerExpired(SEND_BT_TIMER)) {
		ClearTimerExpiredFlag(SEND_BT_TIMER);
		InitTimer(SEND_BT_TIMER, TIME_BT_SEND);
		if(AddEventToQueue(SEND_TIMER) != ADDED_TO_QUEUE)
			returnEvent = QUEUE_FULL;

	}

	returnEvent = GetEventFromQueue();

	return returnEvent;
}
void main(void) {

    (void)puts("\r\nIn test harness for timer.c \r\n");
    InitTimer();
    EnableInterrupts;

    StartTimer(1, 2000);
    while(1) {
        if(IsTimerExpired(1)) {
            (void)printf("Egg is Cooked!\r\n");
        }
    }
}
Beispiel #7
0
void CItem::Spawn_OnTick( bool fExec )
{
	int iMinutes;
	if ( m_itSpawnChar.m_TimeHiMin <= 0 )
	{
		iMinutes = Calc_GetRandVal(30) + 1;
	}
	else
	{
		iMinutes = min( m_itSpawnChar.m_TimeHiMin, m_itSpawnChar.m_TimeLoMin ) + Calc_GetRandVal( abs( m_itSpawnChar.m_TimeHiMin - m_itSpawnChar.m_TimeLoMin ));
	}

	if ( iMinutes <= 0 )
		iMinutes = 1;

	if ( !fExec || IsTimerExpired() )
	{
		SetTimeout( iMinutes * 60 * TICK_PER_SEC );	// set time to check again.
	}

	if ( ! fExec )
		return;

	CResourceDef * pDef = Spawn_FixDef();
	if ( pDef == NULL )
	{
		RESOURCE_ID_BASE rid;
		if ( IsType(IT_SPAWN_ITEM))
		{
			rid = m_itSpawnItem.m_ItemID;
		}
		else
		{
			rid = m_itSpawnChar.m_CharID;
		}
		DEBUG_ERR(( "Bad Spawn point uid=0%lx, id=%s\n", (DWORD) GetUID(), g_Cfg.ResourceGetName(rid) ));
		return;
	}

	if ( IsType(IT_SPAWN_ITEM))
	{
		Spawn_GenerateItem(pDef);
	}
	else
	{
		Spawn_GenerateChar(pDef);
	}
}
Beispiel #8
0
/**
 * @Function RunTimerService(ES_Event ThisEvent)
 * @param ES_Event - the event to process
 * @return ES_NO_EVENT or ES_ERROR 
 * @brief  accepts the timer events and updates the state arrays
 * @author Max Dunne   2013.01.04 */
ES_Event RunTimerService(ES_Event ThisEvent) {
    ES_Event ReturnEvent;
    
    ReturnEvent.EventType = ES_NO_EVENT; // assume no errors

    switch (ThisEvent.EventType) {
        case ES_INIT:
            break;
        case ES_TIMEOUT:
        case ES_TIMERACTIVE:
        case ES_TIMERSTOPPED:
            UserTimerStates[ThisEvent.EventParam] = ThisEvent.EventType;
            break;
        default:
            //ReturnEvent.EventType = ES_ERROR;
            break;
    }

#ifdef TIMER_SERVICE_TEST
    {
        uint8_t i;
        switch (timerServiceTestingState) {
            case init:
                if (ThisEvent.EventType == ES_INIT) {
                    printf("Timer Module INITED succesfully\r\n");
                    break;
                }
                printf("Timer %d had event %d at time %d\r\n", ThisEvent.EventParam, ThisEvent.EventType, ES_Timer_GetTime());
                if ((ThisEvent.EventParam == (TIMERS_USED - 1)) && (ThisEvent.EventType == ES_TIMERACTIVE)) {
                    timerServiceTestingState = expired;
                    printf("Testing timer user functions [expired][stopped][active]{state}\r\n");
                }
                break;

            case expired:
                for (i = 0; i < TIMERS_USED; i++) {
                    printf("(%d):[%d,%d,%d]{%d} ", i, IsTimerExpired(i), IsTimerStopped(i), IsTimerActive(i), GetUserTimerState(i));
                }
                printf("\r\n");
                if ((ThisEvent.EventParam == (TIMERS_USED - 1)) && (ThisEvent.EventType == ES_TIMEOUT)) {
                    timerServiceTestingState = runstop;
                    ES_Timer_InitTimer(0, 500);
                    for (i = 1; i < TIMERS_USED; i++) {
                        ES_Timer_SetTimer(i, 1000);
                        ES_Timer_StartTimer(i);
                    }
                }
                break;

            case runstop:
                printf("Timer %d had event %d at time %d\r\n", ThisEvent.EventParam, ThisEvent.EventType, ES_Timer_GetTime());
                if ((ThisEvent.EventParam == (0)) && (ThisEvent.EventType == ES_TIMEOUT)) {
                    for (i = 1; i < TIMERS_USED; i++) {
                        ES_Timer_StopTimer(i);
                    }
                }
                if ((ThisEvent.EventParam == (TIMERS_USED - 1)) && (ThisEvent.EventType == ES_TIMERSTOPPED)) {
                    printf("Testing of User Timer Functions is complete.\r\n");
                }

                break;
            default:
                ReturnEvent.EventType = ES_ERROR;
                break;
        }

    }
#endif
    //ES_Tail();
    return ReturnEvent;
}