ok

Dependencies:   lcd mbed

Revision:
0:bbe57925485f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Tue Jun 28 18:19:04 2016 +0000
@@ -0,0 +1,188 @@
+#include "mbed.h"
+//#include "lcd.h"
+
+//lcd pantalla(PTB8,PTB9,PTB10,PTE2,PTE3,PTE4,PTE5);
+//lcd::lcd(PinName _rs, PinName _rw, PinName _e, PinName _db4, PinName _db5, PinName _db6, PinName _db7):
+
+Serial pc (USBTX,USBRX);
+DigitalOut myled(LED2);
+
+
+//DigitalIn s(D4);
+//DigitalIn t(D5);
+//DigitalIn c(D6);
+//DigitalIn c2(D7);
+AnalogOut sal (PTE30);
+Ticker timer; 
+
+float i=0;
+int m;
+float T,a,in,amp=2.0/3.3;
+int f=100;
+char ts=0;
+
+
+//void clear(){   
+    //      }
+
+void senoidal(){
+    
+    a+=in;
+    sal=0.5+((sin(a)/2)*amp);  //0.031416
+    if(a>=6.2832){
+        a=0;
+        }
+    
+        }
+    
+    void cuadrada(){
+        a++;
+        if(a<=m/2){
+            sal=amp;
+            }else{
+                sal=0;
+                }
+        if(a>=m){
+          a=0;  
+        
+        }
+        }
+   // void triangula(){          
+       //      in++;
+     //       if(in<=m/2){
+         /*       
+                sal=in;
+              }else{
+             in--;
+             sal=in;
+              
+              
+              
+              
+              
+              
+         for( in=0 ;in<10;in=in+.01){
+              i=in*.33; 
+    
+            sal=i;    
+              wait(0.50);     
+          // pc.printf("%f,variable i\n",i);
+           //pc.printf("%f\n",a);
+          }
+               
+          for( in=10;in>0; in=in-0.1){
+         i=in*.33;
+          
+     sal=i;
+    
+        //pc.printf("%f\n",i);
+          // pc.printf("%f\n",a);
+        }}
+        
+        
+        */
+int main() {
+    
+    T=1.0/f;
+    m=T*20000.0;
+    in=6.2832/m;
+    
+    
+    while(1) {
+          
+          pc.printf("seleccione tipo de senal\n");
+         // pantalla.locate(0,1); 
+          //pantalla.printf("seleccione tipo de senal\n"); 
+          //pantalla.clear();
+          ts=pc.getc();
+            switch (ts){
+                case 's':
+            //    pantalla.locate(0,1);
+                pc.printf("ingrese frecuencia senoidal\n");
+                //pantalla.printf("ingrese frecuencia senoidal\n");
+              //   pantalla.locate(1,2);
+                pc.scanf("%d",&f);
+                //pantalla.locate(0,1);
+                pc.printf("ingrese amplitud senoidal\n");
+                //pantalla.locate(1,2);
+                        pc.scanf("%f",&amp);
+                         amp=amp/3.3;
+                         T=1.0/f;
+                         m=T*20000.0;
+                         in=6.2832/m;
+                         timer.attach(&senoidal,0.00005);
+                         pc.printf("termino\n");
+                         ts=0;
+                         
+
+//          pantalla.clear();
+                    break;
+                case 'c':
+                myled=0;
+               // pantalla.locate(0,1);
+                pc.printf("ingrese frecuencia cuadrada\n");
+                //pantalla.locate(1,2);
+                pc.scanf("%d",&f);
+                 //pantalla.locate(0,1);
+                pc.printf("ingrese amplitud cuadrada\n");
+                 //pantalla.locate(1,2);
+                 pc.scanf("%f",&amp);
+                         amp=amp/3.3;
+                         T=1.0/f;
+                         m=T*20000.0;
+                         timer.attach(&cuadrada,0.00005);
+                         //pantalla.locate(0,1);
+                         //pantalla.printf("termino\n");
+                         pc.printf("termino\n");
+                         ts=0;                                          
+                    break;
+                    
+                case 't':                
+                 // pantalla.locate(0,1);
+                pc.printf("ingrese frecuencia triangular\n");
+                //pantalla.locate(1,2);
+                pc.scanf("%d",&f);
+                //pantalla.scanf("%d",&f);
+                // pantalla.locate(0,1);
+                pc.printf("ingrese amplitud triangular\n");
+                //pantalla.printf("ingrese amplitud triangular\n");
+                 //pantalla.locate(1,2);
+                         pc.scanf("%f",&amp);      
+                        amp=amp/3.3;
+                         T=1.0/f;//0.0125
+                        in=200/m;          
+                        m=T*20000.0;//250
+                         
+                         
+                          for( in=0 ;in<70;in++){
+              i=in*.067; 
+    
+            sal=i; 
+                         
+                         
+                         
+                         
+                         
+                         
+                          for( in=70;in>1; in--){
+         i=in*.067;
+          
+     sal=i;
+    
+
+      
+      pc.printf("termino\n");                    
+                                             
+                     //timer.attach(&triangula,0.00005);
+                        
+                ts=0;        
+                break;
+                 }
+               
+            
+            
+             }
+           } 
+        
+}}    
+