<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
		<id>https://projets-ima.plil.fr/mediawiki/index.php?action=history&amp;feed=atom&amp;title=Visualisateur_Temps_Parole%2FCode_Source</id>
		<title>Visualisateur Temps Parole/Code Source - Historique des versions</title>
		<link rel="self" type="application/atom+xml" href="https://projets-ima.plil.fr/mediawiki/index.php?action=history&amp;feed=atom&amp;title=Visualisateur_Temps_Parole%2FCode_Source"/>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Visualisateur_Temps_Parole/Code_Source&amp;action=history"/>
		<updated>2026-05-14T05:46:14Z</updated>
		<subtitle>Historique des versions pour cette page sur le wiki</subtitle>
		<generator>MediaWiki 1.29.2</generator>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Visualisateur_Temps_Parole/Code_Source&amp;diff=751&amp;oldid=prev</id>
		<title>Nlefebvr : Page créée avec « &lt;pre&gt; // Nicolas Lefebvre // Polytech Lille 2011 // Permet d'afficher sur une matrice de 9*9 sous matrice de 8*8 led le pourcentage de paroles de 2 personnes   //a decommente... »</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Visualisateur_Temps_Parole/Code_Source&amp;diff=751&amp;oldid=prev"/>
				<updated>2011-05-04T13:39:18Z</updated>
		
		<summary type="html">&lt;p&gt;Page créée avec « &amp;lt;pre&amp;gt; // Nicolas Lefebvre // Polytech Lille 2011 // Permet d&amp;#039;afficher sur une matrice de 9*9 sous matrice de 8*8 led le pourcentage de paroles de 2 personnes   //a decommente... »&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
// Nicolas Lefebvre&lt;br /&gt;
// Polytech Lille 2011&lt;br /&gt;
// Permet d'afficher sur une matrice de 9*9 sous matrice de 8*8 led le pourcentage de paroles de 2 personnes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//a decommenter pour le code pour 3 matrice inférieur, et commenter pour les 6 supérieures&lt;br /&gt;
//à mettro à 0 pour les 6  matrice et à 2 pour les 3&lt;br /&gt;
//#define __MATRICE3__ 0 //pour les 6&lt;br /&gt;
#define __MATRICE3__ 2 //pour les 3&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//largeur et hauteur des caracteres&lt;br /&gt;
//enlever 1 à la valeur voulue (si 12-6 désiré, mettre 11-5)&lt;br /&gt;
#define HCHAR 11&lt;br /&gt;
#define LCHAR 6&lt;br /&gt;
&lt;br /&gt;
//Define the &amp;quot;Normal&amp;quot; Colors&lt;br /&gt;
#define BLACK  0&lt;br /&gt;
#define RED  0xE0&lt;br /&gt;
#define GREEN  0x1C&lt;br /&gt;
#define BLUE  0x03&lt;br /&gt;
#define ORANGE  RED|GREEN&lt;br /&gt;
#define MAGENTA  RED|BLUE&lt;br /&gt;
#define TEAL  BLUE|GREEN&lt;br /&gt;
#define WHITE (RED|GREEN|BLUE)-0xA0&lt;br /&gt;
&lt;br /&gt;
#define COULEUR_FOND 0x03&lt;br /&gt;
&lt;br /&gt;
//Define the SPI Pin Numbers&lt;br /&gt;
#define DATAOUT 11//MOSI&lt;br /&gt;
#define DATAIN  12//MISO&lt;br /&gt;
#define SPICLOCK  13//sck&lt;br /&gt;
#define SLAVESELECT 10//ss&lt;br /&gt;
&lt;br /&gt;
//Pin des micros&lt;br /&gt;
#define ENTREE01 2&lt;br /&gt;
#define ENTREE02 3&lt;br /&gt;
&lt;br /&gt;
//interrupteur de selection de mode&lt;br /&gt;
#define INT01 4&lt;br /&gt;
#define INT02 5&lt;br /&gt;
#define INT03 6&lt;br /&gt;
&lt;br /&gt;
#define NOMBRE_ENTREES 2&lt;br /&gt;
&lt;br /&gt;
//Matrice globale&lt;br /&gt;
#define MATRIX_WIDTH       24&lt;br /&gt;
#define MATRIX_HEIGHT      24&lt;br /&gt;
&lt;br /&gt;
#define SUBMATRIX_WIDTH    8&lt;br /&gt;
#define SUBMATRIX_HEIGHT   8&lt;br /&gt;
&lt;br /&gt;
//Define the variables we'll need later in the program&lt;br /&gt;
char frame_buffer [MATRIX_WIDTH][MATRIX_HEIGHT];&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
int parole1 = 1,parole1_prec = 1,pourc1=50,pourc1_prec=0;&lt;br /&gt;
int parole2 = 1,parole2_prec = 1,pourc2=50,pourc2_prec=0;&lt;br /&gt;
int parole3 = 1,parole3_prec = 1,pourc3=0,pourc3_prec=0;&lt;br /&gt;
int parole4 = 1,parole4_prec = 1,pourc4=0,pourc4_prec=0;&lt;br /&gt;
int someChar;&lt;br /&gt;
int modeselect=1,modeselect_prec=0;&lt;br /&gt;
int compteur=0;// permet d'eviter que les informations soient transmise en série à chaque boucle&lt;br /&gt;
int modif=0;//permet d'indiquer qu'il faut mettre à jour les données séries&lt;br /&gt;
int rayon1 = 2*MATRIX_WIDTH / NOMBRE_ENTREES;//utilise en temps que nombre de LED de la matrice globale&lt;br /&gt;
int rayon2 = 2*MATRIX_WIDTH / NOMBRE_ENTREES;&lt;br /&gt;
&lt;br /&gt;
void setup()&lt;br /&gt;
{&lt;br /&gt;
Serial.begin(9600);  // used for debug&lt;br /&gt;
//SPI Bus setup&lt;br /&gt;
&lt;br /&gt;
SPCR=(1&amp;lt;&amp;lt;SPE)|(1&amp;lt;&amp;lt;MSTR)|(1&amp;lt;&amp;lt;SPR1)|(1&amp;lt;&amp;lt;SPR0);&lt;br /&gt;
   SPSR = SPSR &amp;amp; B11111110;&lt;br /&gt;
&lt;br /&gt;
   // Set the pin modes for the RGB matrix&lt;br /&gt;
   pinMode(SPICLOCK,OUTPUT);&lt;br /&gt;
   pinMode(DATAOUT,OUTPUT);&lt;br /&gt;
   pinMode(DATAIN,INPUT);&lt;br /&gt;
   pinMode(SLAVESELECT,OUTPUT);&lt;br /&gt;
   pinMode(ENTREE01,INPUT);&lt;br /&gt;
   pinMode(ENTREE02,INPUT);&lt;br /&gt;
   pinMode(INT01,INPUT);&lt;br /&gt;
   pinMode(INT02,INPUT);&lt;br /&gt;
   pinMode(INT03,INPUT);&lt;br /&gt;
&lt;br /&gt;
   // Make sure the RGB matrix is deactivated&lt;br /&gt;
   digitalWrite(SPICLOCK,LOW);&lt;br /&gt;
   digitalWrite(SLAVESELECT,HIGH);&lt;br /&gt;
   delayMicroseconds(500); // delay as the LED Matrix datasheet's recommends&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
initialiseMatrice(frame_buffer,COULEUR_FOND);&lt;br /&gt;
displayMatrix(frame_buffer);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void loop()&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
#if (__MATRICE3__ ==0)&lt;br /&gt;
   // Detection parole des micros&lt;br /&gt;
   if (digitalRead (ENTREE01) == LOW){ //Micro 1&lt;br /&gt;
      parole1=parole1+1;&lt;br /&gt;
      modif=1;&lt;br /&gt;
   }&lt;br /&gt;
   if (digitalRead (ENTREE02) == LOW){ //Micro 2&lt;br /&gt;
      parole2=parole2+1;&lt;br /&gt;
      modif=1;&lt;br /&gt;
   }&lt;br /&gt;
   //bornage des compteurs&lt;br /&gt;
   if ((parole1&amp;gt;200)||(parole2&amp;gt;200)){&lt;br /&gt;
      parole1/=2;&lt;br /&gt;
      parole2/=2;&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
   // Mise à jour des pourcentage pour l'affichage&lt;br /&gt;
   if((modif==1)&amp;amp;&amp;amp;(compteur&amp;gt;10)){&lt;br /&gt;
&lt;br /&gt;
// Calcul du pourcentage&lt;br /&gt;
      pourc1=(100*parole1)/(parole1+parole2);&lt;br /&gt;
      if(pourc1==37) pourc1++;// permet de zapper 37 qui fait '%' en ASCII et deconfigure les matrices&lt;br /&gt;
      pourc2=100-pourc1;&lt;br /&gt;
      if(pourc2==37){&lt;br /&gt;
      pourc2++;&lt;br /&gt;
      pourc1=100-pourc2;&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
//Envoi en série&lt;br /&gt;
      if(pourc1!=pourc1_prec){&lt;br /&gt;
      Serial.print((char)251);&lt;br /&gt;
      //pourc1_prec = pourc1;&lt;br /&gt;
      Serial.print((char)pourc1);&lt;br /&gt;
      }&lt;br /&gt;
      if(pourc2!=pourc2_prec){&lt;br /&gt;
      Serial.print((char)252);&lt;br /&gt;
      //pourc2_prec = pourc2;&lt;br /&gt;
      Serial.print((char)pourc2);&lt;br /&gt;
      }&lt;br /&gt;
      if(pourc3!=pourc3_prec){&lt;br /&gt;
      Serial.print((char)253);&lt;br /&gt;
      //pourc3_prec = pourc3;&lt;br /&gt;
      Serial.print((char)pourc3);&lt;br /&gt;
      }&lt;br /&gt;
      if(pourc4!=pourc4_prec){&lt;br /&gt;
      Serial.print((char)254);&lt;br /&gt;
      //pourc4_prec = pourc4;&lt;br /&gt;
      Serial.print((char)pourc4);&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      compteur=0;&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
#else&lt;br /&gt;
//reception série&lt;br /&gt;
      //if(Serial.available() &amp;gt; 0){&lt;br /&gt;
      char someChar = Serial.read();&lt;br /&gt;
      if (someChar==(char)251){&lt;br /&gt;
	    //affichageNombre(frame_buffer,6,16, RED,1);&lt;br /&gt;
	    pourc1 = (char)Serial.read();&lt;br /&gt;
	    modif=1;&lt;br /&gt;
      } else if (someChar==(char)252){&lt;br /&gt;
	    pourc2 = (char)Serial.read();&lt;br /&gt;
	    modif=1;&lt;br /&gt;
      } else if (someChar==(char)253){&lt;br /&gt;
	    pourc3 = (char)Serial.read();&lt;br /&gt;
	    modif=1;&lt;br /&gt;
      } else if (someChar==(char)254){&lt;br /&gt;
	    pourc4 = (char)Serial.read();&lt;br /&gt;
	    modif=1;&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
// changement de mode&lt;br /&gt;
if ((digitalRead (INT01) == HIGH)&amp;amp;&amp;amp;(modeselect!= 1)){&lt;br /&gt;
   modeselect = 1;&lt;br /&gt;
} else if ((digitalRead (INT02) == HIGH)&amp;amp;&amp;amp;(modeselect!= 2)){&lt;br /&gt;
   modeselect = 2;&lt;br /&gt;
} else if ((digitalRead (INT03) == HIGH)&amp;amp;&amp;amp;(modeselect!= 3)){&lt;br /&gt;
   modeselect = 3;&lt;br /&gt;
}&lt;br /&gt;
if (modeselect!= modeselect_prec){ // si on change de mode on initialise les matrices&lt;br /&gt;
   initialiseMatrice(frame_buffer,COULEUR_FOND);&lt;br /&gt;
   modeselect_prec=modeselect;&lt;br /&gt;
   compteur=11;&lt;br /&gt;
   modif=1;&lt;br /&gt;
}&lt;br /&gt;
//affichage&lt;br /&gt;
if(modif==1){&lt;br /&gt;
   switch (modeselect) {&lt;br /&gt;
      case 1:&lt;br /&gt;
      affichagePourcentage2();&lt;br /&gt;
      break;&lt;br /&gt;
      case 2:&lt;br /&gt;
      cercles2();&lt;br /&gt;
      break;&lt;br /&gt;
      case 3:&lt;br /&gt;
      carreAleatoire2();&lt;br /&gt;
      break;&lt;br /&gt;
      default:&lt;br /&gt;
      affichagePourcentage2();&lt;br /&gt;
      break;&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
   displayMatrix(frame_buffer);&lt;br /&gt;
   pourc1_prec=pourc1;&lt;br /&gt;
   pourc2_prec=pourc2;&lt;br /&gt;
   modif=0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
delay(10); // allow some time for the Serial data to be sent&lt;br /&gt;
compteur++;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//Use this command to send a single color value to the RGB matrix.&lt;br /&gt;
//NOTE: You must send 64 color values to the RGB matrix before it displays an image!&lt;br /&gt;
char spi_transfer(volatile char data)&lt;br /&gt;
{&lt;br /&gt;
   SPDR = data;                    // Start the transmission&lt;br /&gt;
   while (!(SPSR &amp;amp; (1&amp;lt;&amp;lt;SPIF))){};  // Wait for the end of the transmission&lt;br /&gt;
   return SPDR;                    // return the received byte&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void affichageParole1(){ // affichage du 1er compteur de parole sur la premiere ligne&lt;br /&gt;
affichageNombre(frame_buffer,0,0, GREEN,(parole1/100)%10);&lt;br /&gt;
   affichageNombre(frame_buffer,8,0, GREEN,(parole1/10)%10);&lt;br /&gt;
   affichageNombre(frame_buffer,16,0, GREEN,parole1%10);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
   //permet d'afficher une matrice du programme sur la matrice de led&lt;br /&gt;
void displayMatrix(char matrix[MATRIX_WIDTH][MATRIX_HEIGHT])&lt;br /&gt;
{&lt;br /&gt;
   int index=0;&lt;br /&gt;
   #if (__MATRICE3__ ==2)&lt;br /&gt;
   int height = 8 / SUBMATRIX_HEIGHT; // 1&lt;br /&gt;
   int width = 24 / SUBMATRIX_WIDTH;    // 3&lt;br /&gt;
   #else&lt;br /&gt;
   int height = 16 / SUBMATRIX_HEIGHT; // 2&lt;br /&gt;
   int width = 24 / SUBMATRIX_WIDTH;    // 3&lt;br /&gt;
   #endif&lt;br /&gt;
   for(int i=height-1;i&amp;gt;=0;i--)     // 0 a 0&lt;br /&gt;
   for(int j=width-1;j&amp;gt;=0;j--){   // 3 a 0&lt;br /&gt;
      digitalWrite(SLAVESELECT, LOW);&lt;br /&gt;
      delayMicroseconds(500);&lt;br /&gt;
      for(int k=0;k&amp;lt;SUBMATRIX_HEIGHT;k++)&lt;br /&gt;
	 for(int l=SUBMATRIX_WIDTH-1;l&amp;gt;=0;l--){&lt;br /&gt;
	 int y=(i+__MATRICE3__)*SUBMATRIX_HEIGHT+k;&lt;br /&gt;
	 int x=j*SUBMATRIX_WIDTH+l;&lt;br /&gt;
	 char color=matrix[x][y];&lt;br /&gt;
	 spi_transfer(color);&lt;br /&gt;
	 }&lt;br /&gt;
      digitalWrite(SLAVESELECT, HIGH);&lt;br /&gt;
      delayMicroseconds(10);&lt;br /&gt;
      }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//afficha&lt;br /&gt;
void carreAleatoire2(){&lt;br /&gt;
   int i,j;&lt;br /&gt;
   if (pourc1&amp;gt;pourc1_prec){&lt;br /&gt;
   do{&lt;br /&gt;
      i=random(24);&lt;br /&gt;
      j=random(24);&lt;br /&gt;
   } while (frame_buffer[i][j]==RED);&lt;br /&gt;
   frame_buffer[i][j]=RED;&lt;br /&gt;
&lt;br /&gt;
   } else if (pourc1&amp;lt;pourc1_prec){&lt;br /&gt;
   do{&lt;br /&gt;
      i=random(24);&lt;br /&gt;
      j=random(24);&lt;br /&gt;
   } while (frame_buffer[i][j]==GREEN);&lt;br /&gt;
   frame_buffer[i][j]=GREEN;&lt;br /&gt;
&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//mode affichage arc de cercle&lt;br /&gt;
void cercles2(){&lt;br /&gt;
&lt;br /&gt;
   initialiseMatrice(frame_buffer,COULEUR_FOND);&lt;br /&gt;
&lt;br /&gt;
   rayon1=1.4*(MATRIX_WIDTH*pourc1)/100;&lt;br /&gt;
   rayon2=1.4*(MATRIX_WIDTH*pourc2)/100;&lt;br /&gt;
      for (int i=0;i&amp;lt;MATRIX_WIDTH;i++){&lt;br /&gt;
      for (int j=0; j&amp;lt;MATRIX_HEIGHT; j++){&lt;br /&gt;
	 if(((i*i)+(j*j))&amp;lt;=((rayon1)*(rayon1))){&lt;br /&gt;
	    frame_buffer [i][j]=RED;&lt;br /&gt;
	 } else if((((23-i)*(23-i))+((23-j)*(23-j)))&amp;lt;=((rayon2)*(rayon2))){&lt;br /&gt;
	    frame_buffer [i][j]=GREEN;&lt;br /&gt;
	 }&lt;br /&gt;
      }&lt;br /&gt;
      }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//affichage des pourcentages&lt;br /&gt;
void affichagePourcentage2(){&lt;br /&gt;
&lt;br /&gt;
if(pourc1!=pourc1_prec){&lt;br /&gt;
   affichageNombre(frame_buffer,0,0, RED,(pourc1/10)%10);&lt;br /&gt;
   affichageNombre(frame_buffer,8,0, RED,pourc1%10);&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
if(pourc2!=pourc2_prec){&lt;br /&gt;
   affichageNombre(frame_buffer,8,12, GREEN,(pourc2/10)%10);&lt;br /&gt;
   affichageNombre(frame_buffer,16,12, GREEN,pourc2%10);&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void affichagePourcentage4(){&lt;br /&gt;
   pourc1=100*parole1/(parole1+parole2+parole3+parole4);&lt;br /&gt;
pourc2=100*parole2/(parole1+parole2+parole3+parole4);&lt;br /&gt;
pourc3=100*parole3/(parole1+parole2+parole3+parole4);&lt;br /&gt;
pourc4=100*parole4/(parole1+parole2+parole3+parole4);&lt;br /&gt;
&lt;br /&gt;
if(pourc1!=pourc1_prec){&lt;br /&gt;
   affichageNombre(frame_buffer,0,0, RED,pourc1/10);&lt;br /&gt;
   affichageNombre(frame_buffer,6,0, RED,pourc1%10);&lt;br /&gt;
   pourc1_prec=pourc1;&lt;br /&gt;
}&lt;br /&gt;
if(pourc2!=pourc2_prec){&lt;br /&gt;
   affichageNombre(frame_buffer,12,0, GREEN,pourc2/10);&lt;br /&gt;
   affichageNombre(frame_buffer,18,0, GREEN,pourc2%10);&lt;br /&gt;
   pourc2_prec=pourc2;&lt;br /&gt;
}&lt;br /&gt;
if(pourc3!=pourc3_prec){&lt;br /&gt;
   affichageNombre(frame_buffer,0,12, ORANGE,pourc3/10);&lt;br /&gt;
   affichageNombre(frame_buffer,6,12, ORANGE,pourc3%10);&lt;br /&gt;
   pourc3_prec=pourc3;&lt;br /&gt;
}&lt;br /&gt;
if(pourc4!=pourc4_prec){&lt;br /&gt;
   affichageNombre(frame_buffer,12,12, TEAL,pourc4/10);&lt;br /&gt;
   affichageNombre(frame_buffer,18,12, TEAL,pourc4%10);&lt;br /&gt;
   pourc4_prec=pourc4;&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void initialiseMatrice(char matrix[MATRIX_WIDTH][MATRIX_HEIGHT],int couleur){&lt;br /&gt;
for (int i=0;i&amp;lt;MATRIX_WIDTH;i++){&lt;br /&gt;
   for (int j=0; j&amp;lt;MATRIX_HEIGHT; j++){&lt;br /&gt;
      matrix[i][j]=couleur;&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//permet d'ecrire un nombre (pour affichage) à des coordonnées précisées dans une matrice&lt;br /&gt;
void affichageNombre(char matrix[MATRIX_WIDTH][MATRIX_HEIGHT],int x,int y,int couleur,int nombre){&lt;br /&gt;
for (int i=x;i&amp;lt;x+LCHAR+1;i++){&lt;br /&gt;
   for (int j=y; j&amp;lt;y+HCHAR+1; j++){&lt;br /&gt;
      matrix[i][j]=COULEUR_FOND;&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
   switch (nombre) {&lt;br /&gt;
   case 1:&lt;br /&gt;
      un(frame_buffer,x,y,couleur);&lt;br /&gt;
      break;&lt;br /&gt;
   case 2:&lt;br /&gt;
      deux(frame_buffer,x,y,couleur);&lt;br /&gt;
      break;&lt;br /&gt;
   case 3:&lt;br /&gt;
      trois(frame_buffer,x,y,couleur);&lt;br /&gt;
      break;&lt;br /&gt;
   case 4:&lt;br /&gt;
      quatre(frame_buffer,x,y,couleur);&lt;br /&gt;
      break;&lt;br /&gt;
   case 5:&lt;br /&gt;
      cinq(frame_buffer,x,y,couleur);&lt;br /&gt;
      break;&lt;br /&gt;
   case 6:&lt;br /&gt;
      six(frame_buffer,x,y,couleur);&lt;br /&gt;
      break;&lt;br /&gt;
   case 7:&lt;br /&gt;
      sept(frame_buffer,x,y,couleur);&lt;br /&gt;
      break;&lt;br /&gt;
   case 8:&lt;br /&gt;
      huit(frame_buffer,x,y,couleur);&lt;br /&gt;
      break;&lt;br /&gt;
   case 9:&lt;br /&gt;
      neuf(frame_buffer,x,y,couleur);&lt;br /&gt;
      break;&lt;br /&gt;
   case 0:&lt;br /&gt;
      zero(frame_buffer,x,y,couleur);&lt;br /&gt;
      break;&lt;br /&gt;
   default:&lt;br /&gt;
      erreur(frame_buffer,x,y,couleur);&lt;br /&gt;
      break;&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//permet de dessiner une ligne&lt;br /&gt;
void ligne(char matrix[MATRIX_WIDTH][MATRIX_HEIGHT],int x1,int y1, int x2, int y2,int couleur){&lt;br /&gt;
   int i=0;&lt;br /&gt;
   if(x1==x2){&lt;br /&gt;
   for(i=y1;i&amp;lt;y2;i++){&lt;br /&gt;
      matrix[x1][i]=couleur;&lt;br /&gt;
   }&lt;br /&gt;
   } else if (y1==y2){&lt;br /&gt;
   for(i=x1;i&amp;lt;x2;i++){&lt;br /&gt;
      matrix[i][y1]=couleur;&lt;br /&gt;
   }&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void erreur(char matrix[MATRIX_WIDTH][MATRIX_HEIGHT],int x,int y,int couleur){&lt;br /&gt;
   a(frame_buffer,x,y,couleur);&lt;br /&gt;
   d(frame_buffer,x,y,couleur);&lt;br /&gt;
   g(frame_buffer,x,y,couleur);&lt;br /&gt;
}&lt;br /&gt;
void un(char matrix[MATRIX_WIDTH][MATRIX_HEIGHT],int x,int y,int couleur){&lt;br /&gt;
   b(frame_buffer,x,y,couleur);&lt;br /&gt;
   c(frame_buffer,x,y,couleur);&lt;br /&gt;
}&lt;br /&gt;
void deux(char matrix[MATRIX_WIDTH][MATRIX_HEIGHT],int x,int y,int couleur){&lt;br /&gt;
   a(frame_buffer,x,y,couleur);&lt;br /&gt;
   b(frame_buffer,x,y,couleur);&lt;br /&gt;
   d(frame_buffer,x,y,couleur);&lt;br /&gt;
   e(frame_buffer,x,y,couleur);&lt;br /&gt;
   g(frame_buffer,x,y,couleur);&lt;br /&gt;
}&lt;br /&gt;
void trois(char matrix[MATRIX_WIDTH][MATRIX_HEIGHT],int x,int y,int couleur){&lt;br /&gt;
   a(frame_buffer,x,y,couleur);&lt;br /&gt;
   b(frame_buffer,x,y,couleur);&lt;br /&gt;
   c(frame_buffer,x,y,couleur);&lt;br /&gt;
   d(frame_buffer,x,y,couleur);&lt;br /&gt;
   g(frame_buffer,x,y,couleur);&lt;br /&gt;
}&lt;br /&gt;
void quatre(char matrix[MATRIX_WIDTH][MATRIX_HEIGHT],int x,int y,int couleur){&lt;br /&gt;
   b(frame_buffer,x,y,couleur);&lt;br /&gt;
   c(frame_buffer,x,y,couleur);&lt;br /&gt;
   f(frame_buffer,x,y,couleur);&lt;br /&gt;
   g(frame_buffer,x,y,couleur);&lt;br /&gt;
}&lt;br /&gt;
void cinq(char matrix[MATRIX_WIDTH][MATRIX_HEIGHT],int x,int y,int couleur){&lt;br /&gt;
   a(frame_buffer,x,y,couleur);&lt;br /&gt;
   c(frame_buffer,x,y,couleur);&lt;br /&gt;
   d(frame_buffer,x,y,couleur);&lt;br /&gt;
   f(frame_buffer,x,y,couleur);&lt;br /&gt;
   g(frame_buffer,x,y,couleur);&lt;br /&gt;
}&lt;br /&gt;
void six(char matrix[MATRIX_WIDTH][MATRIX_HEIGHT],int x,int y,int couleur){&lt;br /&gt;
   a(frame_buffer,x,y,couleur);&lt;br /&gt;
   c(frame_buffer,x,y,couleur);&lt;br /&gt;
   d(frame_buffer,x,y,couleur);&lt;br /&gt;
   e(frame_buffer,x,y,couleur);&lt;br /&gt;
   f(frame_buffer,x,y,couleur);&lt;br /&gt;
   g(frame_buffer,x,y,couleur);&lt;br /&gt;
}&lt;br /&gt;
void sept(char matrix[MATRIX_WIDTH][MATRIX_HEIGHT],int x,int y,int couleur){&lt;br /&gt;
   a(frame_buffer,x,y,couleur);&lt;br /&gt;
   b(frame_buffer,x,y,couleur);&lt;br /&gt;
   c(frame_buffer,x,y,couleur);&lt;br /&gt;
}&lt;br /&gt;
void huit(char matrix[MATRIX_WIDTH][MATRIX_HEIGHT],int x,int y,int couleur){&lt;br /&gt;
   a(frame_buffer,x,y,couleur);&lt;br /&gt;
   b(frame_buffer,x,y,couleur);&lt;br /&gt;
   c(frame_buffer,x,y,couleur);&lt;br /&gt;
   d(frame_buffer,x,y,couleur);&lt;br /&gt;
   e(frame_buffer,x,y,couleur);&lt;br /&gt;
   f(frame_buffer,x,y,couleur);&lt;br /&gt;
   g(frame_buffer,x,y,couleur);&lt;br /&gt;
}&lt;br /&gt;
void neuf(char matrix[MATRIX_WIDTH][MATRIX_HEIGHT],int x,int y,int couleur){&lt;br /&gt;
   a(frame_buffer,x,y,couleur);&lt;br /&gt;
   b(frame_buffer,x,y,couleur);&lt;br /&gt;
   c(frame_buffer,x,y,couleur);&lt;br /&gt;
   d(frame_buffer,x,y,couleur);&lt;br /&gt;
   f(frame_buffer,x,y,couleur);&lt;br /&gt;
   g(frame_buffer,x,y,couleur);&lt;br /&gt;
}&lt;br /&gt;
void zero(char matrix[MATRIX_WIDTH][MATRIX_HEIGHT],int x,int y,int couleur){&lt;br /&gt;
   a(frame_buffer,x,y,couleur);&lt;br /&gt;
   b(frame_buffer,x,y,couleur);&lt;br /&gt;
   c(frame_buffer,x,y,couleur);&lt;br /&gt;
   d(frame_buffer,x,y,couleur);&lt;br /&gt;
   e(frame_buffer,x,y,couleur);&lt;br /&gt;
   f(frame_buffer,x,y,couleur);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//barres des systèmes d'affichage 7 segments&lt;br /&gt;
void a(char matrix[MATRIX_WIDTH][MATRIX_HEIGHT],int x,int y,int couleur){&lt;br /&gt;
   ligne(matrix,x,y,x+LCHAR+1,y,couleur);//haut&lt;br /&gt;
}&lt;br /&gt;
void b(char matrix[MATRIX_WIDTH][MATRIX_HEIGHT],int x,int y,int couleur){&lt;br /&gt;
   ligne(matrix,x+LCHAR,y,x+LCHAR,y+(HCHAR/2),couleur);//haut&lt;br /&gt;
}&lt;br /&gt;
void c(char matrix[MATRIX_WIDTH][MATRIX_HEIGHT],int x,int y,int couleur){&lt;br /&gt;
   ligne(matrix,x+LCHAR,y+(HCHAR/2),x+LCHAR,y+HCHAR+1,couleur);//haut&lt;br /&gt;
}&lt;br /&gt;
void d(char matrix[MATRIX_WIDTH][MATRIX_HEIGHT],int x,int y,int couleur){&lt;br /&gt;
   ligne(matrix,x,y+HCHAR,x+LCHAR+1,y+HCHAR,couleur);//haut&lt;br /&gt;
}&lt;br /&gt;
void e(char matrix[MATRIX_WIDTH][MATRIX_HEIGHT],int x,int y,int couleur){&lt;br /&gt;
   ligne(matrix,x,y+(HCHAR/2),x,y+HCHAR+1,couleur);//haut&lt;br /&gt;
}&lt;br /&gt;
void f(char matrix[MATRIX_WIDTH][MATRIX_HEIGHT],int x,int y,int couleur){&lt;br /&gt;
   ligne(matrix,x,y,x,y+(HCHAR/2),couleur);//haut&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void g(char matrix[MATRIX_WIDTH][MATRIX_HEIGHT],int x,int y,int couleur){&lt;br /&gt;
   ligne(matrix,x,y+(HCHAR/2),x+LCHAR+1,y+(HCHAR/2),couleur);//haut&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Nlefebvr</name></author>	</entry>

	</feed>