Esempio n. 1
0
void printserialhex(uint16_t innum) {
  uint16_t j1,in;
  uint8_t p1,p2;
  in = innum;
   
  j1 = (in & 0x0f);
  if (j1 > 9) p1 = (uint8_t)(j1 + 0x41 - 10);
  else p1 = (uint8_t)(j1 +0x30);
  j1 = (in & 0xf0) >> 4;
  if (j1 > 9) p2 = (uint8_t)(j1 +0x41 - 10);
  else p2 = (uint8_t)(j1 +0x30);
  TransmitCharacter(p2);
  TransmitCharacter(p1);  
}
Esempio n. 2
0
void printserialsingned(uint16_t innum) {
  uint16_t j1,k1,l1,m1,in;
  uint8_t p1,p2,p3,p4,p5;
 
  if(innum < 0x8000) {
    in = innum;
  	TransmitCharacter('+');    
  } 
  else {
    in = (uint16_t)(~innum);
    //in = 0x7fff - in;
    TransmitCharacter('-');     
  }
  
  j1 = (in / 10);
  p1 = (uint8_t)(in - j1*10 +0x30);
  k1 = (j1 / 10);
  p2 = (uint8_t)(j1 - k1*10 +0x30);
  l1 = (k1 / 10);
  p3 = (uint8_t)(k1 - l1*10 +0x30);
  m1 = (l1 / 10);
  p4 = (uint8_t)(l1 - m1*10 +0x30);
  p5 = (uint8_t)m1 +0x30;
  TransmitCharacter(p5);
  TransmitCharacter(p4);
  TransmitCharacter(p3);
  TransmitCharacter(p2);
  TransmitCharacter(p1);  
  TransmitCharacter(0x09);
}
Esempio n. 3
0
void printlistall(void) {
   TransmitCharacter(0x0a);   
   TransmitCharacter(0x0d);  
   for(pt=0;pt<120;pt++){
      //pt++;
      //pt++;
      printserialhex(Result[pt]);
	TransmitData(" ");

      
      //printserial(list[pt]);
   }
   TransmitCharacter(0x0a);   
   TransmitCharacter(0x0d);   
}
Esempio n. 4
0
void TransmitData (char TransData[]) 
{
	uint8_t	j=0;                                /* Dummy variable */	
	while(TransData[j]){
		TransmitCharacter(TransData[j]);  		/* Transmit a byte */	
		j++;
	}
}
Esempio n. 5
0
void TransmitData (char TransData[]) 
{
	uint8_t	j,k;                                 /* Dummy variable */
	k = strlen (TransData);
	for (j=0; j< k; j++) 
	{  /* Loop for character string */
		TransmitCharacter(TransData[j]);  		/* Transmit a byte */		
	}
}
Esempio n. 6
0
void printlistall(void) {
   //TransmitCharacter(0x0a);   
   //TransmitCharacter(0x0d);  
   for(pt=0;pt<128;pt++){
      //pt++;
      //pt++;
      printserialsingned(Result[pt]);
      //printserial(list[pt]);
   }
   TransmitCharacter(0x0a);   	// LIne feed
   //TransmitCharacter(0x0d);   // carrige return
}
Esempio n. 7
0
void acquisitionLineSensors(void)
{
	
	uint32_t Counter_value_start = EMIOS_0.CH[16].CCNTR.B.CCNTR;
	uint32_t Counter_value_tmp = 0;
	uint8_t i = 0;
	uint8_t capteur_resultat[7];
	uint8_t seuil_capteur[7];
	uint8_t k;
	
	while(i<7) // Boucle de test pour chaque Capteur
	{	
		seuil_capteur[i] = potent_entre(400,1600); // On lit sur le potent le seuil du capteur i
		// Affichage textuel en xbee
		TransmitData("\n\nOn teste le capteur :");
		TransmitCharacter(i);
		TransmitData("\nLe temps est : ");
		TransmitCharacter(seuil_capteur[i]);
		TransmitData("\nLe capteur detecte :");
		PIT_Enable_Channel(1);
		do
		{
			SIU.PGPDO[1].B.PPD0 = 0xfe000000; //3f810000;   // Pins level HIGH
		}while(PIT.CH[6].CVAL.R < 9 );
		PIT_Disable_Channel(1); // Charging the sensor for 10 us
	
		SIU.PCR[32].R = 0x0100;        // Pin set as an  INPUT
		SIU.PCR[33].R = 0x0100;        // Pin set as an  INPUT
		SIU.PCR[34].R = 0x0100;        // Pin set as an  INPUT
		SIU.PCR[35].R = 0x0100;        // Pin set as an  INPUT
		SIU.PCR[36].R = 0x0100;        // Pin set as an  INPUT
		SIU.PCR[37].R = 0x0100;        // Pin set as an  INPUT
		SIU.PCR[38].R = 0x0100;        // Pin set as an  INPUT
		
		// Réinitialisation des valeurs lues sur les capteurs
		for(k = 0; k < 7; k++)
		{
			capteur_resultat[k] = 1;
		}
		Counter_value_start = EMIOS_0.CH[16].CCNTR.B.CCNTR;
		
		while(((Counter_value_tmp - Counter_value_start) % EMIOS_0.CH[16].CADR.R) < 2000)// Temps total d'acquisition // On fait l'aquisition <1600 et on fait varier le potentiometre entre 400 et 1600
		{
			if(SIU.GPDI[32].B.PDI != 1 && EMIOS_0.CH[16].CCNTR.B.CCNTR< seuil_capteur[0])//798
			{
				capteur_resultat[0] = 0;
			}
			if(SIU.GPDI[33].B.PDI != 1 && EMIOS_0.CH[16].CCNTR.B.CCNTR< seuil_capteur[1])
			{
				capteur_resultat[1] = 0;

			}
			if(SIU.GPDI[34].B.PDI != 1 && EMIOS_0.CH[16].CCNTR.B.CCNTR< seuil_capteur[2])
			{
				capteur_resultat[2] = 0;
			}
			if(SIU.GPDI[35].B.PDI != 1 && EMIOS_0.CH[16].CCNTR.B.CCNTR< seuil_capteur[3])
			{
				capteur_resultat[3] = 0;
			}
			if(SIU.GPDI[35].B.PDI != 1 && EMIOS_0.CH[16].CCNTR.B.CCNTR< seuil_capteur[4])
			{
				capteur_resultat[4] = 0;
			}
			if(SIU.GPDI[36].B.PDI != 1 && EMIOS_0.CH[16].CCNTR.B.CCNTR< seuil_capteur[5])
			{
				capteur_resultat[5] = 0;
			}
		
			if(SIU.GPDI[37].B.PDI != 1 && EMIOS_0.CH[16].CCNTR.B.CCNTR< seuil_capteur[6])//686
			{
				capteur_resultat[6] = 0;
			}
			
			Counter_value_tmp = EMIOS_0.CH[16].CCNTR.B.CCNTR;
					
		}
	
		// Affichage du résultat du capteur courant i
		if(capteur_resultat[i])
		{
			TransmitData(" Blanc");
		}
		else
	    	TransmitData(" Noir");
	
		SIU.PCR[32].R = 0x0200;        // Pin set as an  OUTPUT  // PC[0]
		SIU.PCR[33].R = 0x0200;        // Pin set as an  OUTPUT  // PC[1]
		SIU.PCR[34].R = 0x0200;        // Pin set as an  OUTPUT  // PC[2]
		SIU.PCR[35].R = 0x0200;        // Pin set as an  OUTPUT  // PC[3]
		SIU.PCR[36].R = 0x0200;        // Pin set as an  OUTPUT  // PC[4]
		SIU.PCR[37].R = 0x0200;        // Pin set as an  OUTPUT  // PC[5]
		SIU.PCR[38].R = 0x0200;        // Pin set as an  OUTPUT  // PC[6]
	
		if(SIU.PGPDI[2].R & 0x40000000) // SI le bouton 2 est appuyé on passe au capteur suivant
		{
			i++;
			delay(1000000);
		}
	
	}
	
}