Ejemplo n.º 1
0
int main () {
  
  
 initialisation();
 
 _delay_ms (2000); //Attendre 2 seconde avant le jeu
 
 PORTD = 0x02;//0000 0001
 _delay_ms (100);
  PORTD = 0x00;//0000 0000
 
 partirMinuterie(7812); // 8M / 1024
 
  do {
  } while (minuterieExpiree == 0 && boutonPoussoir == 0);

  cli ();


  if (boutonPoussoir == 1)
    PORTD = 0x01;//0000 0001
  else
    PORTD = 0x02;//0000 0010

  
}
Ejemplo n.º 2
0
/**
 * The main function. It does the logic.
 */
int main()
{
    initialisation();

    _delay_ms(1000);
    lightOnRed();
    _delay_ms(100);
    lightOff();

    partirMinuterie(7812);
    //minuterieExpiree = 1;

    do {
    // attendre qu'une des deux variables soit modifiée
    // par une ou l'autre des interruptions.
    
    } while ( minuterieExpiree == 0 && boutonPoussoir == 0 );
    
    // Une interruption s'est produite. arreter toute
    // forme d'interruption. Une seule reponse suffit.
    cli ();
    
    // Verifier la reponse
    if ( minuterieExpiree == 1 ) {
        for(;;) {
            lightOnRed();
        }
    } else {
        for(;;) {
            lightOnGreen();
        }
    }

    return 0; 
}
Ejemplo n.º 3
0
int main()
{
  
  initialisation ();                      
 // for(;;)  // boucle sans fin
 // {
  for(int i = 0; i < 100; i++)
    _delay_ms(100);
  
  PORTA = 0x02;
  _delay_ms(100);
  PORTA = 0x00;
  
  partirMinuterie(7812);
  do {

// attendre qu'une des deux variables soit modifiée

// par une ou l'autre des interruptions.
    

  } while ( minuterieExpiree == 0 && boutonPoussoir == 0 );


// Une interruption s'est produite. arreter toute

// forme d'interruption. Une seule reponse suffit.

  cli ();

// Verifier la reponse

  if(minuterieExpiree == 0 && boutonPoussoir == 1)
    PORTA = 0x01;
  else if ( minuterieExpiree == 1 )
    PORTA = 0x02;
  else
        {}
    

return 0; 
}
Ejemplo n.º 4
0
//titre      :main()
//description:boucle principale du programme, systeme ferme de changement d'etat
//entrees    :aucune
//sorties    :code d'erreur possible
int main()
{
  initialisation();
  
  
  //for(;;)
  //ROUGE();
  
 ROUGE();
  _delay_loop_2(65535);
  ETEINT();
  _delay_loop_2(65535);
  ROUGE();
  _delay_loop_2(65535);
  ETEINT();
  

  
  partirMinuterie(1000);
  
  
do 
{


  
// attendre qu'une des deux variables soit modifiée
// par une ou l'autre des interruptions.

} 
while ( minuterieExpiree == 0 && boutonPoussoir == 0 ); //probleme minuterie active par le bouton
  
  
// Une interruption s'est produite. arreter toute
// forme d'interruption. Une seule reponse suffit.

cli();



    if(minuterieExpiree == 1 && boutonPoussoir == 0) // l'utilisateur a perdu
      for(;;)
      ROUGE();
    if(minuterieExpiree == 1 && boutonPoussoir == 1) // fort improbable
      for(;;)
      AMBRE();
    if(minuterieExpiree == 0 && boutonPoussoir == 1) // l'utilisateur a gagne
      for(;;)
      VERT();


//for(;;)
 //ROUGE();
  




  
  
  
  
  
  
  
  
  
  /*for(;;)//boucle infinie
  {  
    switch (etat)
    {	
      case PREPARATION:
		ETEINT();//la Del est eteinte
		for(int delai=0;delai<306;delai++)//boucle pour obtenir 10 secondes
		  _delay_loop_2(65535);
		etat=DEPART;//prochain etat
		break;
	      
      case DEPART:
		ROUGE();
		_delay_loop_2(65535);
		ETEINT();
		_delay_loop_2(65535);
		ROUGE();
		_delay_loop_2(65535);
		etat=JEU;//prochain etat
		break;

      case JEU:
		ETEINT();//la Del est eteinte pour l'attente de l'interaction du joueur
		for(delai=0;delai<31;delai++)//boucle pour obtenir 1 seconde
		{
		  if(PIND & 0x04)//si bouton = 1, on va a l'etat GAGNE
		    etat=GAGNE;
		  _delay_loop_2(65535);
		} 
		if(etat ==GAGNE)
		  break;
		else
		  etat=PERDU;//s'il n'a pas pesee sur le bouton, il va a l'etat PERDU
		break;
		
      case GAGNE:
		VERT(); 
		break;
		
      case PERDU:
		ROUGE();
		break;
		
      default: //en cas de bogue, on retourne à l'etat initial
		etat=PREPARATION;
		break;
  
    
    }   //switch
  }//for*/
}//main