Gerador de sinal do tipo rampa, triangular e senoidal

Dependencies:   mbed

Files at this revision

API Documentation at this revision

Comitter:
diogonac
Date:
Sun Jun 06 15:29:51 2021 +0000
Commit message:
APS4 - DAC R-2R de 8-bit

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Sun Jun 06 15:29:51 2021 +0000
@@ -0,0 +1,98 @@
+#include "mbed.h"
+
+Serial pc (D1, D0); //Comunicação com USB
+
+BusOut saida(D4, D5, D6, D7, D8, D9, D10, D11); //Barramento dos bits do DAC R-@R
+
+InterruptIn troca_onda(PC_13); //Declara o botão do usuário para troca de sinal
+
+int senoide [] = {0x80,0x83,0x86,0x89,0x8c,0x8f,0x92,0x95, 
+0x98,0x9b,0x9e,0xa2,0xa5,0xa7,0xaa,0xad,
+0xb0,0xb3,0xb6,0xb9,0xbc,0xbe,0xc1,0xc4,
+0xc6,0xc9,0xcb,0xce,0xd0,0xd3,0xd5,0xd7,
+0xda,0xdc,0xde,0xe0,0xe2,0xe4,0xe6,0xe8,
+0xea,0xeb,0xed,0xee,0xf0,0xf1,0xf3,0xf4,
+0xf5,0xf6,0xf8,0xf9,0xfa,0xfa,0xfb,0xfc,
+0xfd,0xfd,0xfe,0xfe,0xfe,0xff,0xff,0xff,
+0xff,0xff,0xff,0xff,0xfe,0xfe,0xfe,0xfd,
+0xfd,0xfc,0xfb,0xfa,0xfa,0xf9,0xf8,0xf6,
+0xf5,0xf4,0xf3,0xf1,0xf0,0xee,0xed,0xeb,
+0xea,0xe8,0xe6,0xe4,0xe2,0xe0,0xde,0xdc,
+0xda,0xd7,0xd5,0xd3,0xd0,0xce,0xcb,0xc9,
+0xc6,0xc4,0xc1,0xbe,0xbc,0xb9,0xb6,0xb3,
+0xb0,0xad,0xaa,0xa7,0xa5,0xa2,0x9e,0x9b,
+0x98,0x95,0x92,0x8f,0x8c,0x89,0x86,0x83,
+0x80,0x7c,0x79,0x76,0x73,0x70,0x6d,0x6a,
+0x67,0x64,0x61,0x5d,0x5a,0x58,0x55,0x52,
+0x4f,0x4c,0x49,0x46,0x43,0x41,0x3e,0x3b,
+0x39,0x36,0x34,0x31,0x2f,0x2c,0x2a,0x28,
+0x25,0x23,0x21,0x1f,0x1d,0x1b,0x19,0x17,
+0x15,0x14,0x12,0x11,0xf,0xe,0xc,0xb,
+0xa,0x9,0x7,0x6,0x5,0x5,0x4,0x3,
+0x2,0x2,0x1,0x1,0x1,0x0,0x0,0x0,
+0x0,0x0,0x0,0x0,0x1,0x1,0x1,0x2,
+0x2,0x3,0x4,0x5,0x5,0x6,0x7,0x9,
+0xa,0xb,0xc,0xe,0xf,0x11,0x12,0x14,
+0x15,0x17,0x19,0x1b,0x1d,0x1f,0x21,0x23,
+0x25,0x28,0x2a,0x2c,0x2f,0x31,0x34,0x36,
+0x39,0x3b,0x3e,0x41,0x43,0x46,0x49,0x4c,
+0x4f,0x52,0x55,0x58,0x5a,0x5d,0x61,0x64,
+0x67,0x6a,0x6d,0x70,0x73,0x76,0x79,0x7c}; //Look Up table para gerar um sinal senoidal 
+
+int i, cont;
+
+void rotina_troca_onda(void); //Rotina para trocar o sinal exibido
+
+void rotina_rampa(void); //Rotina para gerar um sinal de uma rampa 
+void rotina_triangular(void); //Rotina para gerar um sinal triangular 
+void rotina_senoidal(void); //Rotina para gerar um sinal de uma senoide 
+
+int main()
+{
+    pc.baud(115200); //Define a velocidade da porta USB
+    
+    troca_onda.fall(&rotina_troca_onda); //Define quando o botão vai ser detectado
+
+    while(1) {
+
+        if(cont == 0)rotina_rampa();
+        if(cont == 1)rotina_triangular();
+        if(cont == 2)rotina_senoidal();
+        if(cont >= 3) cont = 0;
+
+    }
+}
+
+void rotina_troca_onda()
+{
+    cont ++;
+}
+
+void rotina_rampa()
+{
+    for(i = 0; i <= 255; i++) {
+        saida = i;
+        wait(0.001);
+    }
+}
+
+void rotina_triangular()
+{
+    for(i = 0; i <= 255; i++) {
+        saida = i;
+        wait(0.001);
+    }
+
+    for(i = 255; i > -1; i--) {
+        saida = i;
+        wait(0.001);
+    }
+}
+
+void rotina_senoidal()
+{
+    for(i = 0; i <= 255; i++) {        
+        saida = senoide[i];
+        wait(0.001);
+    }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Sun Jun 06 15:29:51 2021 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/users/mbed_official/code/mbed/builds/65be27845400
\ No newline at end of file