ok

Dependencies:   lcd mbed

Committer:
joseortega
Date:
Tue Jun 28 18:19:04 2016 +0000
Revision:
0:bbe57925485f
generador de se?ales

Who changed what in which revision?

UserRevisionLine numberNew 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",&amp);
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",&amp);
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",&amp);
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