jose ortega cervantes
/
generado_final
ok
main.cpp@0:bbe57925485f, 2016-06-28 (annotated)
- Committer:
- joseortega
- Date:
- Tue Jun 28 18:19:04 2016 +0000
- Revision:
- 0:bbe57925485f
generador de se?ales
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
joseortega | 0:bbe57925485f | 1 | #include "mbed.h" |
joseortega | 0:bbe57925485f | 2 | //#include "lcd.h" |
joseortega | 0:bbe57925485f | 3 | |
joseortega | 0:bbe57925485f | 4 | //lcd pantalla(PTB8,PTB9,PTB10,PTE2,PTE3,PTE4,PTE5); |
joseortega | 0:bbe57925485f | 5 | //lcd::lcd(PinName _rs, PinName _rw, PinName _e, PinName _db4, PinName _db5, PinName _db6, PinName _db7): |
joseortega | 0:bbe57925485f | 6 | |
joseortega | 0:bbe57925485f | 7 | Serial pc (USBTX,USBRX); |
joseortega | 0:bbe57925485f | 8 | DigitalOut myled(LED2); |
joseortega | 0:bbe57925485f | 9 | |
joseortega | 0:bbe57925485f | 10 | |
joseortega | 0:bbe57925485f | 11 | //DigitalIn s(D4); |
joseortega | 0:bbe57925485f | 12 | //DigitalIn t(D5); |
joseortega | 0:bbe57925485f | 13 | //DigitalIn c(D6); |
joseortega | 0:bbe57925485f | 14 | //DigitalIn c2(D7); |
joseortega | 0:bbe57925485f | 15 | AnalogOut sal (PTE30); |
joseortega | 0:bbe57925485f | 16 | Ticker timer; |
joseortega | 0:bbe57925485f | 17 | |
joseortega | 0:bbe57925485f | 18 | float i=0; |
joseortega | 0:bbe57925485f | 19 | int m; |
joseortega | 0:bbe57925485f | 20 | float T,a,in,amp=2.0/3.3; |
joseortega | 0:bbe57925485f | 21 | int f=100; |
joseortega | 0:bbe57925485f | 22 | char ts=0; |
joseortega | 0:bbe57925485f | 23 | |
joseortega | 0:bbe57925485f | 24 | |
joseortega | 0:bbe57925485f | 25 | //void clear(){ |
joseortega | 0:bbe57925485f | 26 | // } |
joseortega | 0:bbe57925485f | 27 | |
joseortega | 0:bbe57925485f | 28 | void senoidal(){ |
joseortega | 0:bbe57925485f | 29 | |
joseortega | 0:bbe57925485f | 30 | a+=in; |
joseortega | 0:bbe57925485f | 31 | sal=0.5+((sin(a)/2)*amp); //0.031416 |
joseortega | 0:bbe57925485f | 32 | if(a>=6.2832){ |
joseortega | 0:bbe57925485f | 33 | a=0; |
joseortega | 0:bbe57925485f | 34 | } |
joseortega | 0:bbe57925485f | 35 | |
joseortega | 0:bbe57925485f | 36 | } |
joseortega | 0:bbe57925485f | 37 | |
joseortega | 0:bbe57925485f | 38 | void cuadrada(){ |
joseortega | 0:bbe57925485f | 39 | a++; |
joseortega | 0:bbe57925485f | 40 | if(a<=m/2){ |
joseortega | 0:bbe57925485f | 41 | sal=amp; |
joseortega | 0:bbe57925485f | 42 | }else{ |
joseortega | 0:bbe57925485f | 43 | sal=0; |
joseortega | 0:bbe57925485f | 44 | } |
joseortega | 0:bbe57925485f | 45 | if(a>=m){ |
joseortega | 0:bbe57925485f | 46 | a=0; |
joseortega | 0:bbe57925485f | 47 | |
joseortega | 0:bbe57925485f | 48 | } |
joseortega | 0:bbe57925485f | 49 | } |
joseortega | 0:bbe57925485f | 50 | // void triangula(){ |
joseortega | 0:bbe57925485f | 51 | // in++; |
joseortega | 0:bbe57925485f | 52 | // if(in<=m/2){ |
joseortega | 0:bbe57925485f | 53 | /* |
joseortega | 0:bbe57925485f | 54 | sal=in; |
joseortega | 0:bbe57925485f | 55 | }else{ |
joseortega | 0:bbe57925485f | 56 | in--; |
joseortega | 0:bbe57925485f | 57 | sal=in; |
joseortega | 0:bbe57925485f | 58 | |
joseortega | 0:bbe57925485f | 59 | |
joseortega | 0:bbe57925485f | 60 | |
joseortega | 0:bbe57925485f | 61 | |
joseortega | 0:bbe57925485f | 62 | |
joseortega | 0:bbe57925485f | 63 | |
joseortega | 0:bbe57925485f | 64 | for( in=0 ;in<10;in=in+.01){ |
joseortega | 0:bbe57925485f | 65 | i=in*.33; |
joseortega | 0:bbe57925485f | 66 | |
joseortega | 0:bbe57925485f | 67 | sal=i; |
joseortega | 0:bbe57925485f | 68 | wait(0.50); |
joseortega | 0:bbe57925485f | 69 | // pc.printf("%f,variable i\n",i); |
joseortega | 0:bbe57925485f | 70 | //pc.printf("%f\n",a); |
joseortega | 0:bbe57925485f | 71 | } |
joseortega | 0:bbe57925485f | 72 | |
joseortega | 0:bbe57925485f | 73 | for( in=10;in>0; in=in-0.1){ |
joseortega | 0:bbe57925485f | 74 | i=in*.33; |
joseortega | 0:bbe57925485f | 75 | |
joseortega | 0:bbe57925485f | 76 | sal=i; |
joseortega | 0:bbe57925485f | 77 | |
joseortega | 0:bbe57925485f | 78 | //pc.printf("%f\n",i); |
joseortega | 0:bbe57925485f | 79 | // pc.printf("%f\n",a); |
joseortega | 0:bbe57925485f | 80 | }} |
joseortega | 0:bbe57925485f | 81 | |
joseortega | 0:bbe57925485f | 82 | |
joseortega | 0:bbe57925485f | 83 | */ |
joseortega | 0:bbe57925485f | 84 | int main() { |
joseortega | 0:bbe57925485f | 85 | |
joseortega | 0:bbe57925485f | 86 | T=1.0/f; |
joseortega | 0:bbe57925485f | 87 | m=T*20000.0; |
joseortega | 0:bbe57925485f | 88 | in=6.2832/m; |
joseortega | 0:bbe57925485f | 89 | |
joseortega | 0:bbe57925485f | 90 | |
joseortega | 0:bbe57925485f | 91 | while(1) { |
joseortega | 0:bbe57925485f | 92 | |
joseortega | 0:bbe57925485f | 93 | pc.printf("seleccione tipo de senal\n"); |
joseortega | 0:bbe57925485f | 94 | // pantalla.locate(0,1); |
joseortega | 0:bbe57925485f | 95 | //pantalla.printf("seleccione tipo de senal\n"); |
joseortega | 0:bbe57925485f | 96 | //pantalla.clear(); |
joseortega | 0:bbe57925485f | 97 | ts=pc.getc(); |
joseortega | 0:bbe57925485f | 98 | switch (ts){ |
joseortega | 0:bbe57925485f | 99 | case 's': |
joseortega | 0:bbe57925485f | 100 | // pantalla.locate(0,1); |
joseortega | 0:bbe57925485f | 101 | pc.printf("ingrese frecuencia senoidal\n"); |
joseortega | 0:bbe57925485f | 102 | //pantalla.printf("ingrese frecuencia senoidal\n"); |
joseortega | 0:bbe57925485f | 103 | // pantalla.locate(1,2); |
joseortega | 0:bbe57925485f | 104 | pc.scanf("%d",&f); |
joseortega | 0:bbe57925485f | 105 | //pantalla.locate(0,1); |
joseortega | 0:bbe57925485f | 106 | pc.printf("ingrese amplitud senoidal\n"); |
joseortega | 0:bbe57925485f | 107 | //pantalla.locate(1,2); |
joseortega | 0:bbe57925485f | 108 | pc.scanf("%f",&); |
joseortega | 0:bbe57925485f | 109 | amp=amp/3.3; |
joseortega | 0:bbe57925485f | 110 | T=1.0/f; |
joseortega | 0:bbe57925485f | 111 | m=T*20000.0; |
joseortega | 0:bbe57925485f | 112 | in=6.2832/m; |
joseortega | 0:bbe57925485f | 113 | timer.attach(&senoidal,0.00005); |
joseortega | 0:bbe57925485f | 114 | pc.printf("termino\n"); |
joseortega | 0:bbe57925485f | 115 | ts=0; |
joseortega | 0:bbe57925485f | 116 | |
joseortega | 0:bbe57925485f | 117 | |
joseortega | 0:bbe57925485f | 118 | // pantalla.clear(); |
joseortega | 0:bbe57925485f | 119 | break; |
joseortega | 0:bbe57925485f | 120 | case 'c': |
joseortega | 0:bbe57925485f | 121 | myled=0; |
joseortega | 0:bbe57925485f | 122 | // pantalla.locate(0,1); |
joseortega | 0:bbe57925485f | 123 | pc.printf("ingrese frecuencia cuadrada\n"); |
joseortega | 0:bbe57925485f | 124 | //pantalla.locate(1,2); |
joseortega | 0:bbe57925485f | 125 | pc.scanf("%d",&f); |
joseortega | 0:bbe57925485f | 126 | //pantalla.locate(0,1); |
joseortega | 0:bbe57925485f | 127 | pc.printf("ingrese amplitud cuadrada\n"); |
joseortega | 0:bbe57925485f | 128 | //pantalla.locate(1,2); |
joseortega | 0:bbe57925485f | 129 | pc.scanf("%f",&); |
joseortega | 0:bbe57925485f | 130 | amp=amp/3.3; |
joseortega | 0:bbe57925485f | 131 | T=1.0/f; |
joseortega | 0:bbe57925485f | 132 | m=T*20000.0; |
joseortega | 0:bbe57925485f | 133 | timer.attach(&cuadrada,0.00005); |
joseortega | 0:bbe57925485f | 134 | //pantalla.locate(0,1); |
joseortega | 0:bbe57925485f | 135 | //pantalla.printf("termino\n"); |
joseortega | 0:bbe57925485f | 136 | pc.printf("termino\n"); |
joseortega | 0:bbe57925485f | 137 | ts=0; |
joseortega | 0:bbe57925485f | 138 | break; |
joseortega | 0:bbe57925485f | 139 | |
joseortega | 0:bbe57925485f | 140 | case 't': |
joseortega | 0:bbe57925485f | 141 | // pantalla.locate(0,1); |
joseortega | 0:bbe57925485f | 142 | pc.printf("ingrese frecuencia triangular\n"); |
joseortega | 0:bbe57925485f | 143 | //pantalla.locate(1,2); |
joseortega | 0:bbe57925485f | 144 | pc.scanf("%d",&f); |
joseortega | 0:bbe57925485f | 145 | //pantalla.scanf("%d",&f); |
joseortega | 0:bbe57925485f | 146 | // pantalla.locate(0,1); |
joseortega | 0:bbe57925485f | 147 | pc.printf("ingrese amplitud triangular\n"); |
joseortega | 0:bbe57925485f | 148 | //pantalla.printf("ingrese amplitud triangular\n"); |
joseortega | 0:bbe57925485f | 149 | //pantalla.locate(1,2); |
joseortega | 0:bbe57925485f | 150 | pc.scanf("%f",&); |
joseortega | 0:bbe57925485f | 151 | amp=amp/3.3; |
joseortega | 0:bbe57925485f | 152 | T=1.0/f;//0.0125 |
joseortega | 0:bbe57925485f | 153 | in=200/m; |
joseortega | 0:bbe57925485f | 154 | m=T*20000.0;//250 |
joseortega | 0:bbe57925485f | 155 | |
joseortega | 0:bbe57925485f | 156 | |
joseortega | 0:bbe57925485f | 157 | for( in=0 ;in<70;in++){ |
joseortega | 0:bbe57925485f | 158 | i=in*.067; |
joseortega | 0:bbe57925485f | 159 | |
joseortega | 0:bbe57925485f | 160 | sal=i; |
joseortega | 0:bbe57925485f | 161 | |
joseortega | 0:bbe57925485f | 162 | |
joseortega | 0:bbe57925485f | 163 | |
joseortega | 0:bbe57925485f | 164 | |
joseortega | 0:bbe57925485f | 165 | |
joseortega | 0:bbe57925485f | 166 | |
joseortega | 0:bbe57925485f | 167 | for( in=70;in>1; in--){ |
joseortega | 0:bbe57925485f | 168 | i=in*.067; |
joseortega | 0:bbe57925485f | 169 | |
joseortega | 0:bbe57925485f | 170 | sal=i; |
joseortega | 0:bbe57925485f | 171 | |
joseortega | 0:bbe57925485f | 172 | |
joseortega | 0:bbe57925485f | 173 | |
joseortega | 0:bbe57925485f | 174 | pc.printf("termino\n"); |
joseortega | 0:bbe57925485f | 175 | |
joseortega | 0:bbe57925485f | 176 | //timer.attach(&triangula,0.00005); |
joseortega | 0:bbe57925485f | 177 | |
joseortega | 0:bbe57925485f | 178 | ts=0; |
joseortega | 0:bbe57925485f | 179 | break; |
joseortega | 0:bbe57925485f | 180 | } |
joseortega | 0:bbe57925485f | 181 | |
joseortega | 0:bbe57925485f | 182 | |
joseortega | 0:bbe57925485f | 183 | |
joseortega | 0:bbe57925485f | 184 | } |
joseortega | 0:bbe57925485f | 185 | } |
joseortega | 0:bbe57925485f | 186 | |
joseortega | 0:bbe57925485f | 187 | }} |
joseortega | 0:bbe57925485f | 188 |