ok

Dependencies:   lcd mbed

main.cpp

Committer:
joseortega
Date:
2016-06-28
Revision:
0:bbe57925485f

File content as of revision 0:bbe57925485f:

#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;
                 }
               
            
            
             }
           } 
        
}}