funcionando

Dependencies:   EPD_GDE021A1 mbed reScale

Fork of DISCO-L053C8_ePD_demo by ST

Revision:
5:03c1a5788923
Parent:
4:38ce0cfb14e2
Child:
6:f36e6f7b67a1
--- a/main.cpp	Wed Sep 05 19:51:12 2018 +0000
+++ b/main.cpp	Tue Oct 23 17:53:54 2018 +0000
@@ -56,8 +56,6 @@
 DigitalOut led1(LED1);
 DigitalIn button(PA_0);
 Ticker flipper;
-PwmOut myservo(D10);
-AnalogIn CONTROL(PA_1);
 reScale _scale(0,1,0.05,0.1); 
 Serial pc(USBTX, USBRX); // tx, rx
 
@@ -98,21 +96,13 @@
     led1=!led1;  
 }
 
-float p=0.05, k;
-uint8_t x=0, y=0, i=0;
-uint16_t l = 0;
-char c;
+uint16_t x=0, y=0, i=0;
+char c, c1, c2;
 char s[100];
-bool flag_init = 0;
+
+
 int main()
 {
-//-----As linhas abaixo configuram e ligam o ESC--------
-    myservo.period(0.02f); //configura o periodo para o padrão PPM
-    myservo = 0.1;      //pulso mais longo 2mS
-    wait(1);
-    myservo = OFF; //pulso mais curto 1mS
-    wait(1);
-//fim das configs do ESC
 
     flipper.attach(&flip, 0.1);//interrupção para piscar o led, debug para saber se o uC travou
     
@@ -130,121 +120,52 @@
     epd.RefreshDisplay();
     epd.Clear(EPD_COLOR_WHITE); 
     
-    flag_init = 1;
     
-    myservo = OFF;
+    epd.SetFont(&Font16);
     while(1)
     {
-//---------------------MENU PRINCIPAL---------------------------------------        
-        if(flag_init == 1)
-        {
-            pc.printf("\nOla, escolha uma opcao abaixo:");
-            pc.printf("\nA. Selecionar fonte");
-            pc.printf("\nB. Limpar o Epaper");
-            pc.printf("\nC. Escreve texto no Epaper");  
-            pc.printf("\nD. Para usar o brushless"); 
-            pc.printf("\nE. Para reiniciar\n\n"); 
-            flag_init = 0;  
-        }//FIM DO MENU PRINCIPAL
-        
-        c = pc.getc(); 
-        
-//--------------------MENU DE FONTES-----------------------------------------        
-        if(c == 'A')
-        {
-            pc.printf("\n1. para a fonte pequena");
-            pc.printf("\n2. para a fonte media");
-            pc.printf("\n3. para a fonte grande");
-            c = pc.getc(); 
-            
-            //FONTE PEQUENA
-            if(c == '1')
-            {
-                epd.SetFont(&Font8);
-                pc.printf("\nFonte pequena selecionada");  
-                c = 0x00;
-            }    
-            
-            //FONTE MEDIA
-            if(c == '2')
-            {
-                epd.SetFont(&Font12);
-                pc.printf("\nFonte media selecionada"); 
-                c = 0x00; 
-            }  
-            
-            //FONTE GRANDE
-            if(c == '3')
-            {
-                epd.SetFont(&Font16);
-                pc.printf("\nFonte grande selecionada"); 
-                c = 0x00; 
-            }
+       
+//----------ROTINA PARA ESCREVER NO EPAPER------------------------   
 
-        }//FIM DO MENU DE FONTES   
+        pc.printf("\nEscolha a linha Y, de 0 a 3:");  
+        c = pc.getc();
+        switch (c)
+                {
+                    case '3': y = 0;break;
+                    case '2': y = 4;break;
+                    case '1': y = 8;break;
+                    case '0': y = 12;break;
+                }
+        pc.printf("\n%u",y);
         
-//--------------LIMPAR EPAPER------------------------------------        
-        if(c == 'B')
-        {
-            epd.Clear(EPD_COLOR_WHITE);  
-            epd.RefreshDisplay();;
-            pc.printf("\nEpaper limpo\n"); 
-            c = 0x00;
-        }//FIM DA ROTINA DE LIMPEZA DO EPAPER
-       
-//----------ROTINA PARA ESCREVER NO EPAPER------------------------        
-        if(c == 'C') 
-        {   
-            if(epd.GetFont() == &Font8)          // Fonte numero 8 podemos ter 9 linhas no display!!!!!!!!!!!!!!
-            {
-                pc.printf("\nEscolha a linha, de 0 a 8:"); 
-                c = pc.getc();
-                switch (c)
+        pc.printf("\nEscolha a coluna X, de 00 a 19:");  
+        c1 = pc.getc(); 
+        c2 = pc.getc();   
+        switch (c2)
                 {
-                    case '0': l = 0;break;
-                    case '1': l = 1;break;
-                    case '2': l = 2;break;
-                    case '3': l = 3;break;
-                    case '4': l = 4;break;
-                    case '5': l = 5;break;
-                    case '6': l = 6;break;
-                    case '7': l = 7;break; 
-                    case '8': l = 8;break;
-                }
-            }            
-            c = 0x00;
+                    case '0': x = 0;break;
+                    case '1': x = 1;break;
+                    case '2': x = 2;break;
+                    case '3': x = 3;break;
+                    case '4': x = 4;break;
+                    case '5': x = 5;break;
+                    case '6': x = 6;break;
+                    case '7': x = 7;break;
+                    case '8': x = 8;break;
+                    case '9': x = 9;break;
+                } 
+           
+        switch (c1)
+                {
+                    case '0': x = x + 0;break;
+                    case '1': x = x + 10;break;
+                    
+                }    
+                
+                x = x * 10;
+        pc.printf("\n%u",x);
             
-            if(epd.GetFont() == &Font12)         // Fonte numero 12 podemos ter 6 linhas no display!!!!!!!!!!!!!!
-            {
-                pc.printf("\nEscolha a linha, de 0 a 5:"); 
-                c = pc.getc();
-                switch (c)
-                {
-                    case '0': l = 0;break;
-                    case '1': l = 1;break;
-                    case '2': l = 2;break;
-                    case '3': l = 3;break;
-                    case '4': l = 4;break;
-                    case '5': l = 5;break;
-                }
-            }            
-            c = 0x00;
-            
-            if(epd.GetFont() == &Font16)        // Fonte numero 16 podemos ter 4 linhas no display!!!!!!!!!!!!!!
-            {
-                pc.printf("\nEscolha a linha, de 0 a 3:"); 
-                c = pc.getc();
-                switch (c)
-                {
-                    case '0': l = 0;break;
-                    case '1': l = 1;break;
-                    case '2': l = 2;break;
-                    case '3': l = 3;break;
-                }
-            }            
-            c = 0x00;
-            
-            pc.printf("\nEntre com seu texto (com line feed - LF):");
+            pc.printf("\nEntre com seu texto (com # no final):");
             
            do
            {
@@ -252,51 +173,20 @@
                s[i] = c;
                ++i;
             }
-            while(c!='\n'); //entra em loop, coletando os caracteres até achar o \n, e então sai do loop
+            while(c!='#'); //entra em loop, coletando os caracteres até achar o \n, e então sai do loop
             
             s[i-1] = '\0';   //elimina o caracter terminador de strings
             pc.printf("%s", s);
-            epd.DisplayStringAtLine(l, (uint8_t*)s, CENTER_MODE);
+            for(int o = 0; o < i - 1; o++)
+            {
+                epd.DisplayChar(x, y,s[o]);
+                x = x + 10;
+            }
+            //epd.DisplayStringAt(x, y, (uint8_t*)s, CENTER_MODE);
             epd.RefreshDisplay();
             i=0;
 
-        }//FIM DA ROTINA PARA ESCREVER NO EPAPER 
-        
-//----------ROTINA PARA CONTROLAR O MOTOR BRUSHLESS- PULSOS PPM----------------
-        if(c == 'D')
-        {
-            pc.printf("\nP para parar");
-            while(1)
-            {
-                k = CONTROL;
-                p =_scale.from(k);  //converte o valor do ADC (0.0 - 1.0) para valor compativel do PPM (1 - 2 mS)
-                myservo = p;
-                pc.printf("control %f\n\r",p);    
-                wait(0.2);
-                if(pc.readable())
-                {
-                    c = pc.getc();
-                }
-                if(c == 'P')
-                {   
-                    break;
-                }
-                if(button == 1)
-                {
-                    wait(0.1);   //Debounce
-                    if(button == 1)
-                    {
-                        break;
-                    }
-                }    
-            }
-            myservo = OFF;
-            pc.printf("\nSaindo da funcao brushless");
-        }//FIM DA ROTINA DO MOTOR BRUSHLESS
-        
-//-------ROTINA PARA EXIBIR NOVAMENTE O MENU PRINCIPAL-------------        
-        if(c == 'E') 
-        flag_init = 1; 
+        //FIM DA ROTINA PARA ESCREVER NO EPAPER 
             
     }//FIM DA WHILE
 }//FIM DO PROGRAMA
\ No newline at end of file