Digitales2 / Mbed 2 deprecated mbed_blinky

Dependencies:   mbed

main.cpp

Committer:
dfmolanon
Date:
2020-07-20
Revision:
25:8aaf4f9111fe
Parent:
24:7f14b70fc9ef

File content as of revision 25:8aaf4f9111fe:

#include "mbed.h"
#include "stdlib.h"
#define tam_men             4
Ticker t_motor;
//Serial
Serial pc(USBTX, USBRX);
//puertos
BusOut bobinas(D7, D6,D5,D4);
DigitalOut a(D8);
DigitalOut b(D9);
PwmOut pwm(PTE29);
//Variables
int ii=0;
float motor;
float duty_led;
float motor_dc;
float servomotor;
float paso;
char men[tam_men];
char cadena[tam_men-1];
char c;
int i=0, x=0;
int bandera;
//tabla de la secuencia de pasos
//char const sec[8]={0x1, 0x3, 0x2, 0x6, 0x4, 0xc, 0x8, 0x9};
char const sec[4]={0x1, 0x2, 0x4, 0x9};
//metodos
void recibir();
void rc_isr();
void mover_motor();

void rc_isr()
{   
    pc.attach(NULL, Serial::RxIrq);
    recibir();
    
}
void recibir()
{
    
    c = pc.getc(); // Read hyperterminal
    // pc.putc(c);
    if(c=='a'){bandera=1;}
    else if(c=='b'){bandera=2;}
    else if(c=='c'){bandera=3;}   
    else if ((c != '\r') & (i < tam_men)) 
    {   
        if ( (c >= '0') &  (c <= '9') )
        {    
        men[i] = c;
        i++;
    }
        else  
        { 
            if(bandera==1){  
            motor_dc = atof(men);
            a=1;
            b=0;
            motor=motor_dc*0.01;
            pwm.write(motor); 
            pc.printf("motor dc %d \n\r",motor_dc);
          }     
         else if(bandera==2){
          servomotor = atof(men);      
          pc.printf("servo %d \n\r",servomotor);
            }   
          else if(bandera==3){
          paso = atof(men);     
          pc.printf("paso %d \n\r",paso); 
            }  
        for (i=0; i< tam_men; i++) {men[i] = '\0';}
        i=0;
    }    
       }
    pc.attach(&rc_isr, Serial::RxIrq);
}
/*
void motores() {
    #include "mbed.h"

//prototipos
void mover_motor()
{
    bobinas= sec[i];
    i++;
    if(i==4) i=0; 
}
int main (){
    a=1;
    b=0;
    pwm.write(0.2f);
    t_motor.attach(&mover_motor, 0.005);
   while(true){
    
    }
    }
    
    }

*/
int main()
{
    pc.attach(&rc_isr, Serial::RxIrq);
    pc.printf("Comienzo...\n\r");
    //led.period(8.33333e-3);
    while(1) {
        pc.printf("Esperando...\n\r");
        wait(2);                
    }
}