
Ondas
main.cpp@0:f175604dab67, 2019-05-21 (annotated)
- Committer:
- Gabiuas
- Date:
- Tue May 21 00:43:07 2019 +0000
- Revision:
- 0:f175604dab67
Ondas;
Who changed what in which revision?
User | Revision | Line number | New 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 | } |