Ondas

Dependencies:   mbed TextLCD

Committer:
Gabiuas
Date:
Tue May 21 00:43:07 2019 +0000
Revision:
0:f175604dab67
Ondas;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Gabiuas 0:f175604dab67 1 #include "mbed.h"
Gabiuas 0:f175604dab67 2 #include "TextLCD.h"
Gabiuas 0:f175604dab67 3
Gabiuas 0:f175604dab67 4 BusOut onda(D2, D3, D4, D5);
Gabiuas 0:f175604dab67 5 TextLCD display(PC_9, PC_8, PC_10, PC_12, PA_13, PA_14, TextLCD::LCD20x4);
Gabiuas 0:f175604dab67 6
Gabiuas 0:f175604dab67 7
Gabiuas 0:f175604dab67 8 DigitalIn BA(D5); //Botão A
Gabiuas 0:f175604dab67 9 DigitalIn BB(D6); //Botão B
Gabiuas 0:f175604dab67 10 DigitalIn BC(D7); //Botão C
Gabiuas 0:f175604dab67 11
Gabiuas 0:f175604dab67 12 int i=0;
Gabiuas 0:f175604dab67 13 int z=0;
Gabiuas 0:f175604dab67 14 int x=0;
Gabiuas 0:f175604dab67 15 int state=1;
Gabiuas 0:f175604dab67 16 int temp;
Gabiuas 0:f175604dab67 17 unsigned char Sen []={7,9,11,12,13,14,15,15,15,15,14,13,12,11,9,7,6,4,3,2,1,0,0,0,0,1,2,3,4,6};
Gabiuas 0:f175604dab67 18
Gabiuas 0:f175604dab67 19
Gabiuas 0:f175604dab67 20 int main(){
Gabiuas 0:f175604dab67 21
Gabiuas 0:f175604dab67 22 display.cls();
Gabiuas 0:f175604dab67 23 display.printf("Tipos de Onda: \n");
Gabiuas 0:f175604dab67 24 display.printf("A - Onda Quadrada\n");
Gabiuas 0:f175604dab67 25 display.printf("B - Onda Triangular\n");
Gabiuas 0:f175604dab67 26 display.printf("C - Onda Senoidal\n");
Gabiuas 0:f175604dab67 27
Gabiuas 0:f175604dab67 28 //Onda Quadrada
Gabiuas 0:f175604dab67 29 if (BA<0.5) {
Gabiuas 0:f175604dab67 30 display.cls();
Gabiuas 0:f175604dab67 31 display.printf("Frequencia:\n");
Gabiuas 0:f175604dab67 32 display.printf("A - 500 Hz\n");
Gabiuas 0:f175604dab67 33 display.printf("B - 300,12 Hz\n");
Gabiuas 0:f175604dab67 34 while (1) { //Escolhendo a Frequencia
Gabiuas 0:f175604dab67 35 if (BA<0.5) { //500Hz
Gabiuas 0:f175604dab67 36 temp=1000;
Gabiuas 0:f175604dab67 37 break;
Gabiuas 0:f175604dab67 38 }
Gabiuas 0:f175604dab67 39 if (BB<0.5) { //300,12Hz
Gabiuas 0:f175604dab67 40 temp=1666;
Gabiuas 0:f175604dab67 41 break;
Gabiuas 0:f175604dab67 42 }
Gabiuas 0:f175604dab67 43 }
Gabiuas 0:f175604dab67 44 display.cls();
Gabiuas 0:f175604dab67 45 display.printf("Gerando Quadrada\n");
Gabiuas 0:f175604dab67 46 display.printf("B - Parar\n");
Gabiuas 0:f175604dab67 47 while (BB>0.5) { //Apertar B para parar onda
Gabiuas 0:f175604dab67 48 x=0;
Gabiuas 0:f175604dab67 49 onda=x;
Gabiuas 0:f175604dab67 50 printf("%i",x);
Gabiuas 0:f175604dab67 51 wait_us(temp);
Gabiuas 0:f175604dab67 52 x=15;
Gabiuas 0:f175604dab67 53 onda=x;
Gabiuas 0:f175604dab67 54 printf("%i",x);
Gabiuas 0:f175604dab67 55 wait_us(temp);
Gabiuas 0:f175604dab67 56 }
Gabiuas 0:f175604dab67 57 }
Gabiuas 0:f175604dab67 58 //Onda Triangular
Gabiuas 0:f175604dab67 59 if (BB<0.5) {
Gabiuas 0:f175604dab67 60 display.cls();
Gabiuas 0:f175604dab67 61 display.printf("Frequencia:\n");
Gabiuas 0:f175604dab67 62 display.printf("A - 505,05 Hz\n");
Gabiuas 0:f175604dab67 63 display.printf("B - 300,30 Hz\n");
Gabiuas 0:f175604dab67 64 while (1) { //Escolhendo a Frequencia
Gabiuas 0:f175604dab67 65 if (BA<0.5) { //505,05Hz
Gabiuas 0:f175604dab67 66 temp=66;
Gabiuas 0:f175604dab67 67 break;
Gabiuas 0:f175604dab67 68 }
Gabiuas 0:f175604dab67 69 if (BB<0.5) { //300,30Hz
Gabiuas 0:f175604dab67 70 temp=111;
Gabiuas 0:f175604dab67 71 break;
Gabiuas 0:f175604dab67 72 }
Gabiuas 0:f175604dab67 73 }
Gabiuas 0:f175604dab67 74 display.cls();
Gabiuas 0:f175604dab67 75 display.printf("Gerando Triangular\n");
Gabiuas 0:f175604dab67 76 display.printf("B - Parar\n");
Gabiuas 0:f175604dab67 77 while (BB>0.5) { //Apertar B para parar onda
Gabiuas 0:f175604dab67 78 if (state==1) {
Gabiuas 0:f175604dab67 79 onda=i;
Gabiuas 0:f175604dab67 80 wait_us(temp);
Gabiuas 0:f175604dab67 81 printf("%i\n",i);
Gabiuas 0:f175604dab67 82 i=i+1;
Gabiuas 0:f175604dab67 83 if (i==15) {
Gabiuas 0:f175604dab67 84 state=2;
Gabiuas 0:f175604dab67 85 }
Gabiuas 0:f175604dab67 86 }
Gabiuas 0:f175604dab67 87 if (state==2) {
Gabiuas 0:f175604dab67 88 onda=i;
Gabiuas 0:f175604dab67 89 wait_us(temp);
Gabiuas 0:f175604dab67 90 printf("%i\n",i);
Gabiuas 0:f175604dab67 91 i=i-1;
Gabiuas 0:f175604dab67 92 if (i==0) {
Gabiuas 0:f175604dab67 93 state=1;
Gabiuas 0:f175604dab67 94 }
Gabiuas 0:f175604dab67 95 }
Gabiuas 0:f175604dab67 96 }
Gabiuas 0:f175604dab67 97 }
Gabiuas 0:f175604dab67 98
Gabiuas 0:f175604dab67 99
Gabiuas 0:f175604dab67 100 //Onda Senoidal
Gabiuas 0:f175604dab67 101 if (BC<0.5) {
Gabiuas 0:f175604dab67 102 display.cls();
Gabiuas 0:f175604dab67 103 display.printf("Frequencia:\n");
Gabiuas 0:f175604dab67 104 display.printf("A - 505,05 Hz\n");
Gabiuas 0:f175604dab67 105 display.printf("B - 300,30 Hz\n");
Gabiuas 0:f175604dab67 106 while (1) { //Escolhendo a Frequencia
Gabiuas 0:f175604dab67 107 if (BA<0.5) { //505,05Hz
Gabiuas 0:f175604dab67 108 temp=66;
Gabiuas 0:f175604dab67 109 break;
Gabiuas 0:f175604dab67 110 }
Gabiuas 0:f175604dab67 111 if (BB<0.5) { //300,30Hz
Gabiuas 0:f175604dab67 112 temp=111;
Gabiuas 0:f175604dab67 113 break;
Gabiuas 0:f175604dab67 114 }
Gabiuas 0:f175604dab67 115 }
Gabiuas 0:f175604dab67 116 display.cls();
Gabiuas 0:f175604dab67 117 display.printf("Gerando Senoidal\n");
Gabiuas 0:f175604dab67 118 display.printf("B - Parar\n");
Gabiuas 0:f175604dab67 119 while (BB>0.5) { //Apertar B para parar onda
Gabiuas 0:f175604dab67 120 onda=Sen[z];
Gabiuas 0:f175604dab67 121 printf("%i",z);
Gabiuas 0:f175604dab67 122 wait_us(temp);
Gabiuas 0:f175604dab67 123 if (z==29) {
Gabiuas 0:f175604dab67 124 z=0;
Gabiuas 0:f175604dab67 125 }
Gabiuas 0:f175604dab67 126 else{
Gabiuas 0:f175604dab67 127 z=z+1;
Gabiuas 0:f175604dab67 128 }
Gabiuas 0:f175604dab67 129 }
Gabiuas 0:f175604dab67 130 }
Gabiuas 0:f175604dab67 131
Gabiuas 0:f175604dab67 132 }