Enrico Aloisi Nardi / Mbed 2 deprecated conversor_dac

Dependencies:   mbed

Revision:
11:d3e72f8d05cd
Parent:
8:20afab089ff8
Child:
12:415818832707
--- a/conversor.cpp	Mon Jun 08 14:59:14 2020 +0000
+++ b/conversor.cpp	Tue Jun 09 12:45:33 2020 +0000
@@ -1,13 +1,15 @@
 #include "mbed.h"
 #include <math.h>
+#define PI 3.14159265
 BusOut saida_digital (D2,D3,D4);
-InterruptIn botao_usuario(PC_13);
+InterruptIn botao_usuario(PC_13); //definição do botao do usuário como pino de interrupção para, independentemente do que estiver acontecendo, o programa mudar de um tipo de onda para o outro
 AnalogIn leitura_an(A0);
 
 Serial pc(USBTX, USBRX);
 float valor;
 int estado_botao;
-
+float tempo = 0.5;
+//array de valores que será enviado para os pinos "saida digital"
 int SEQUENCIA[8]={
     0b000,
     0b001,
@@ -28,51 +30,66 @@
 }
 
 int main(){
-    estado_botao=0;
-    pc.baud(9600);
-    pc.printf("\r");
-    pc.printf("oi");
+    estado_botao=0; //inicialização da variável estado_botao para que o gerador sempre comece como um gerador de onda quadrada
+    pc.baud(9600);//indicação do número de vezes que o canal de leitura do monitor serial poderá mudar de estado até 9600 vezes
     while(1){
-        pc.printf("%d",estado_botao);
-        botao_usuario.fall(&funcao_botao);
-        if(estado_botao == 0){
-            for (int i=0; i<8; i++) { 
+        botao_usuario.fall(&funcao_botao); //chamada da função de interrupção dada uma descida no estado do botão do usuário
+        //Onda quadrada
+        if(estado_botao == 0){//teste do valor da variável estado_botao para determinar qual onda será a saída do gerador
+            for (int i=0; i<8; i++) { //laço para repetir o comando de envio do nível lógico enquanto o contador for menor que 8 (valor atrelado ao fato de que temos um conversor de 3 bits)
             saida_digital = 0b111;
             valor=leitura_an.read(); 
             pc.printf("\r\t%1.3f\n",valor);  
-            wait(0.5);
-            }
+            wait(tempo);}
+            
             for (int i=8; i>0; i--) { 
             saida_digital = 0b000;
             valor=leitura_an.read(); 
             pc.printf("\r\t%1.3f\n",valor);  
-            wait(0.5);
-            }
+            wait(tempo);}            
         }
-        else if (estado_botao == 1){ //Onda rampa
+        
+        //Onda rampa
+        else if (estado_botao == 1){//teste do valor da variável estado_botao para determinar qual onda será a saída do gerador
             for (int i=0; i<8; i++) { 
             saida_digital = SEQUENCIA[i];
             valor=leitura_an.read(); 
             pc.printf("\r\t%1.3f\n",valor);  
-            wait(0.5);
-            }
+            wait(tempo);}
         }
-        else if (estado_botao == 2){ //Onda triangular
+        
+        //Onda triangular
+        else if (estado_botao == 2){//teste do valor da variável estado_botao para determinar qual onda será a saída do gerador
             for (int i=0; i<8; i++) {    
                 saida_digital = SEQUENCIA[i];
-                wait(0.5);
+                wait(tempo);
                 valor=leitura_an.read();
                 pc.printf("\r\t%1.3f\n",valor);    
             }
             for (int i=7; i>0; i--) {  
                 saida_digital = SEQUENCIA[i];
-                wait(0.5);
+                wait(tempo);
                 valor=leitura_an.read();
                 pc.printf("\r\t%1.3f\n",valor);   
             }
         }
-        
+        //Onda senoidal
+        else if (estado_botao == 3){//teste do valor da variável estado_botao para determinar qual onda será a saída do gerador
+            for (int i=0; i<8; i++) {    
+                saida_digital = SEQUENCIA[i];
+                wait(tempo);
+                valor=leitura_an.read();
+                pc.printf("\r\t%1.3f\n",valor);    
+            }
+            for (int i=7; i>0; i--) {  
+                saida_digital = SEQUENCIA[i];
+                wait(tempo);
+                valor=leitura_an.read();
+                pc.printf("\r\t%1.3f\n",valor);   
+            }
+        }
+             
         
-    }
-}
+    }//fim do while(1)
+}//fim do int main()
         
\ No newline at end of file