point de depart de la programmation

Dependencies:   mbed

Revision:
10:32b5218ff304
Parent:
9:695e8840ec64
Child:
11:fa0f1787ea13
--- a/main.cpp	Tue Dec 03 18:30:47 2019 +0000
+++ b/main.cpp	Sun Jan 26 15:20:30 2020 +0000
@@ -24,9 +24,41 @@
 //**********************************************************************
 uint16_t chi[5];  // déclaratiion d'un tableau  d'entiers 16bits sans signe
 float chf[5];     // déclaration d'un tableau de float 
-int recpt = 0; // pour y stocker l'arrivé d'un octet de la liaison série  XBEE
+int recpt = 0;    //  on y pose l'arrivé d'un octet de la liaison série  
+
+int XX = 0;
+int YY = 64000;
+int P1 ; int P2 ; int P3 ; int P4; // int vers hexa msb > lsb en ascii
 
 //******** sous programmes ( situés en bas  de cette page )
+int hexa( int in)
+    { // sous programme de traduction de 4 bits d'un int en  ascii 
+    int out = '0';   
+    if ( in == 0) out='0'; if( in ==1 ) out ='1'; if ( in == 2 ) out = '2'; 
+    if ( in == 3) out='3'; if( in ==4 ) out ='4'; if ( in == 5 ) out = '5'; 
+    if ( in == 6) out='6'; if( in ==7 ) out ='7'; if ( in == 8 ) out = '8'; 
+    if ( in == 9) out='9'; if( in ==10) out ='A'; if ( in == 11) out = 'B'; 
+    if ( in == 12)out='C'; if( in ==13) out ='D'; if ( in == 14) out = 'E';
+    if ( in == 15)out='F';    
+    return  (out);   
+    }
+
+void trad( int in )
+    {  // sous programme de traduction d'un int en hexa
+    int din = in / 4096; 
+    P1 = hexa(din);
+    int ddin = din * 4096 ;
+    din = in - ddin;
+    int dddin = din/256 ;
+    P2 = hexa(dddin);
+    int ddddin = dddin * 256 ;
+    din = din - ddddin;
+    int dddddin = din/16;
+    P3 = hexa(dddddin);
+    int ddddddin = dddddin*16 ;
+    din = din - ddddddin;
+    P4 = hexa (din) ;
+    }
 void interrupt();  // lié à la liaison série 
 
 void init(void)  // initialisation 
@@ -48,30 +80,31 @@
         {
         LL = !LL  ;       //inverse led carte  mbed
         wait(0.5);      // delai 0.5s
+        XX = XX + 1 ; YY = YY - 1;
         
-//  exemple 1 de transfert d'une trame de  4 entiers  au protocole duj2 ( toto) 
-      // pc.putc('i');     // pointeur 1 = 0
-      // pc.putc('e'); pc.putc('0'); pc.putc('1'); pc.putc('0'); pc.putc('0');//Pt++
-      // pc.putc('e'); pc.putc('0'); pc.putc('1'); pc.putc('0'); pc.putc('1');
-      // pc.putc('e'); pc.putc('0'); pc.putc('1'); pc.putc('0'); pc.putc('2');
-      // pc.putc('e'); pc.putc('0'); pc.putc('1'); pc.putc('0'); pc.putc('3');
-      // pc.putc('q');   // mise en mémoire 
+//exemple 1 ) Tranfert de deux int : XX et XX  en ascii ( base hexa)en DUJ2
+      pc.putc('i');          // pointeur 1 = 0
+      trad(XX);  // traduit un int XX en 4 ascii en hexa 
+      pc.putc('e');  pc.putc(P1); pc.putc(P2); pc.putc(P3);   pc.putc(P4); 
+      trad(YY);
+      pc.putc('e');  pc.putc(P1); pc.putc(P2); pc.putc(P3);   pc.putc(P4); 
+      pc.putc('q');   // top de fin traduction des data recues et utilisation 
          // on verra le résultat sur Tera Term  en 19200 bauds
-         // comme ceci " ie0100e0101e0102e0103q  "
-         // cette partie sera celle qui vous servira a valider votre processing
+         // comme ceci " ie0001e6400q" à la 1ere seconde 
+         // cette exemple vous servira à  valider votre processing
         
-//  exemple  2 pour mesurer et transferer ch1  en hex  et ch2 en float 
-        chi[1] =  Ch1.read_u16();  // mesure ch1 mise en int en memoire 16bits
-        chf[1] =  Ch2.read();      // mesure ch2 mise en float en mémoire
-        printf(" chi =0x%04x "  ,  chi[1] );   // affiche chi  en hexadecima ( 4 char)
-        printf("     chf =%.6f \n", 3.3*( chf[1])); // affiche chf en float (6char ) 
-       // on lira ceci "   chi =0x80b8      chf =0.710769   "
+//exemple  2) mesurer et transferer sur usb serie ch1 en hex et ch2 en float ( non duj2)
+//       chi[1] =  Ch1.read_u16();  // mesure ch1 mise en int en memoire 16bits
+//       chf[1] =  Ch2.read();      // mesure ch2 mise en float en mémoire
+//       printf(" chi =0x%04x "  ,  chi[1] ); //affiche chi  en hexadecima ( 4 char)
+//       printf("     chf =%.6f \n", 3.3*( chf[1])); // affiche chf en float (6char ) 
+// on lira ceci "   chi =0x80b8      chf =0.710769   "  NON DUJ2
 
         }   
     }
     
-void interrupt()  // "recepteur"  à chaque carractère reçut ce programme est activé
-    {  // à vous de jouer !! a partir de l'exemple fournit page 11
+void interrupt()//"recepteur"  à chaque carractère reçut ce programme est activé
+    {  // à vous de jouer !! 
     recpt =  pc.getc();  
     if ( recpt == 'i') IO = !IO; // si 'i' inverse led carte MES
     return;