Test carte

Revision:
0:5d57f03fdcca
Child:
1:c7eef0f145fc
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/LibTest.cpp	Sun Feb 05 18:03:21 2012 +0000
@@ -0,0 +1,106 @@
+#include <LibTest.h>
+
+Serial pc(USBTX, USBRX);
+AnalogIn In15(p15);
+AnalogIn In16(p16);
+AnalogIn In17(p17);
+AnalogOut Out18(p18);
+AnalogIn In19(p19);
+AnalogIn In20(p20);
+
+int i_IntroTest(){
+    int choix;
+    pc.printf("\n\n\r         Programme de test \n\n\r");
+    pc.printf("Selectionner le test a effectuer: \n\r");
+    pc.printf("1. CAN / CNA \n\r");
+    
+    pc.printf("Choix : ");
+    pc.scanf("%d", &choix);
+    pc.printf("%d \n \r", choix);
+    
+    
+    return choix;
+}
+
+void v_TestCAN_CNA(){
+    char char1 = 0;
+    float val=1;
+    int aff = 0;
+    pc.printf("\033[2J");
+    pc.printf("\033[H");
+    
+    while(char1 != 'q'){
+
+        
+        pc.printf("valeur testee = %f : \n\r", val);
+        
+        int result = i_TestPorts(val, aff);
+        aff =0;
+        if((result == 6)&&val<3.3){
+            pc.printf("Il y a %d ports defaillants et V < 3,3V => Probleme sur Port Analog Out ", result);
+       }
+       
+        pc.printf("Continuer? y / q voir valeur des ports : v \r\n");
+        char1 = pc.getc();
+        if(char1 == 'v'){
+            aff = 1;
+        }
+        
+        val = val + 0.2;
+        if(val >= 3.3){
+            val = 0;
+        }
+        
+        pc.printf("\033[2J");
+        pc.printf("\033[H");
+        
+    }
+} 
+
+
+int i_TestPorts(float val, int aff){
+     int ret = 0;
+     val = val/3.3;
+     Out18 = val;
+
+     printf("Compte rendu du test : \r\n");
+     if((In15.read() < (val-0.01))||(In15 > val + 0.01)){
+        printf("Port p15 inexact \n\r");
+        ret ++;
+     }
+     if((In16.read() < (val-0.01))||(In16 > val + 0.01)){
+        printf("Port p16 inexact \n\r");
+        ret ++;
+     }
+     
+     if((In17.read() < (val-0.01))||(In17 > val + 0.01)){
+        printf("Port p17 inexact \n\r");
+        ret ++;
+     }     
+     
+     if((Out18.read() < (val-0.01))||(Out18.read() > val + 0.01)){
+        printf("Port p18 inexact \n\r");
+        ret ++;
+     }
+     
+     if((In19.read() < (val-0.01))||(In19 > val + 0.01)){
+        printf("Port p19 inexact \n\r");     
+        ret ++;
+     }
+     
+     if((In20.read() < (val-0.01))||(In20 > val + 0.01)){
+        printf("Port p20 inexact \n\r");
+        ret ++;
+     }
+     if(aff ==1){
+        printf("p15 = %f, \r\n", In15.read()*3.3);
+        printf("p16 = %f, \r\n", In16.read()*3.3);        
+        printf("p17 = %f, \r\n", In17.read()*3.3); 
+        printf("p18 = %f, \r\n", Out18.read()*3.3);
+        printf("p19 = %f, \r\n", In19.read()*3.3);     
+        printf("p20 = %f, \r\n", In20.read()*3.3);  
+        }                     
+     
+     return ret;
+     
+}