コード例 #1
0
ファイル: adb_codec.cpp プロジェクト: charliebruce/waxbee
	static void resetDecoder()
	{
		// reset whatever requires reseting at
		// any point in the ADB subsystem

		__BEGIN_CRITICAL_SECTION

		// reset Timer 3 counter
		TCNT3 = 0;

		__END_CRITICAL_SECTION

		// abort/disable input capture interrupt
		cbi(TIMSK3, ICIE3);
		// configure "falling edge" for the next capture
		cbi(TCCR3B, ICES3);

		// abort/disable timeout timer
		stopTimeout();
	}
コード例 #2
0
ファイル: GameControl.cpp プロジェクト: KN2C/RoboJackets
void GameControl::stepTime() 
{
    double tNew = getCurrentTime();
    double dt = tNew - _tLast;
    _tLast = tNew;

    /**  printf("game state %i\n", _gameInfo.game.state); */

    /** save restore file */
    _gameInfo.save(_saveName);

    /** update game time */
    _gameInfo.game.time += dt;
    
    if (_gameInfo.isTimeout()) {
        _gameInfo.game.timeouts[_gameInfo.game.timeoutTeam] -= dt;
        if (_gameInfo.isTimeoutComplete()) {
            stopTimeout();
        }
    } else {
        if ((_gameInfo.game.stage == HALF_TIME) ||
            !_gameInfo.isHalted()) {
            _gameInfo.game.timeTaken += dt;
            for (int x = 0; x < NUM_TEAMS; ++x) {
                if (_gameInfo.game.timePenalty[x] > 0) {
                    _gameInfo.game.timePenalty[x] -= dt;
                } else {
                    _gameInfo.game.timePenalty[x] = 0;
                }
            }
      
        }
        if (_gameInfo.isTimeComplete()) {
            switch (_gameInfo.game.stage) {
            	case PREGAME: 
            	case PRESECONDHALF: 
            	case PREOVERTIME1: 
            	case PREOVERTIME2: 
            		break;
            	case FIRST_HALF:  
            		beginHalfTime(); 
            		break;
            	case HALF_TIME:   
            		beginSecondHalf(); 
            		break;
            	case SECOND_HALF: 
            		if (_gameInfo.isGameTied())
            			beginOvertime1(); 
            		break;
            	case OVER_TIME1:  
            		beginOvertime2(); 
            		break;
            	case OVER_TIME2:
            		if (_gameInfo.isGameTied())
            			beginPenaltyShootout(); 
            		break;
            	case PENALTY_SHOOTOUT:
            		break;
            }
        }
    }

    /** repeat last command (if someone missed it) */
    ethernetSendCommand(_lastCommand, _lastCommandCounter);
}