예제 #1
0
void blinkingLED(int delayMs) {
  int delay;

  while(getCurrentTime() < delayMs/2) {
    turnOnLED3();
    for(delay = 0; delay < 500000; delay++);
    turnOffLED3();
    for(delay = 0; delay < 500000; delay++);
  }
}
void runningLight(State *state, int time){
	static int previousTime = 0 ;

	switch(*state){
		case  INITIAL:	turnOffLED1();
						turnOffLED2();
						turnOffLED3();
						turnOffLED4();
						*state = LED1_ON;
				        break;

		case LED1_ON:	if( waitWithoutDelay( previousTime,time) ){
  	  						previousTime = getCurrentTime();
  	  						turnOnLED1();
  	  						turnOffLED4();
  	  						*state = LED2_ON;
						}
  	  					break;

		case LED2_ON:	if( waitWithoutDelay( previousTime,time) ){
		  	  				previousTime = getCurrentTime();
		  	  				turnOnLED2();
		  	  				turnOffLED1();
		  	  				*state = LED3_ON;
						}
						break;

		case LED3_ON:	if( waitWithoutDelay( previousTime,time) ){
		  	  				previousTime = getCurrentTime();
							turnOnLED3();
							turnOffLED2();
							*state = LED4_ON;
						}
		  	  			break;

		case LED4_ON:	if( waitWithoutDelay( previousTime,time) ){
		  	  				previousTime = getCurrentTime();
		  	  				turnOnLED4();
		  	  				turnOffLED3();
		  	  				*state = LED1_ON;
						}
						break;

		default		:	break;
	}
}
예제 #3
0
void SD3(){
	static State state = INITIAL;
	static uint32_t previousTime = 0;
	static int counter = 0;

	switch(state){
	case INITIAL:
		counter = 0;
		turnOffLED3();
		turnOffLED4();
		if(pushButton() == 1){
			state = LEDON;
			previousTime = currentTime;
		}
		break;

	case LEDON:
		turnOnLED3();
		turnOnLED4();
		if(delay(100, previousTime)){
			state = LEDOFF;
			previousTime = currentTime;
			counter++;
		}

		break;

	case LEDOFF:
		turnOffLED3();
		turnOffLED4();
		if(delay(100, previousTime)){
			state = LEDON;
			previousTime = currentTime;
		}
		if(counter > 5)
			state = INITIAL;
		break;
	}
}
예제 #4
0
void blinkLED3(State *state, int *counter)	{
	switch (*state)
	{
		case START:
			turnOffLED3();
			*state = ON_LED3;
			break;

		case ON_LED3:
			if(oneHundredMiliSecHasNotExpired())	{
				turnOnLED3();
				*state = OFF_LED3;
			}
			break;

		case OFF_LED3:
			if(oneHundredMiliSecHasNotExpired())	{
				turnOffLED3();
				*state = COUNTER;
			}
			break;

		case COUNTER:
			*counter -= 1;
			if(*counter == 0)	{
				*state = HALT;
				break;
			}

			else *state = ON_LED3;
			break;

		default:
			break;
	}
}