Eduardo Guzman / Mbed 2 deprecated proyecto

Dependencies:   mbed

main.cpp

Committer:
euduardo_guz
Date:
2013-12-03
Revision:
0:29bf6bfc3778

File content as of revision 0:29bf6bfc3778:

#include "mbed.h"



DigitalOut myled(LED1);

int verde_estatico();
int verde_intermitente();
int amarillo();
int rojo_estatico();
int rojo_intermitente();
int rojo_amarillo();
int var_rojo=0;
int var_interm=1;
DigitalIn senal(PTE29); //NOT_RBPU_bit
DigitalOut grabador1(PTE2);   //portd.f0
DigitalOut grabador2(PTE20);    //portd.f1

int main() {
   
int r;
int x=1;
//PORTC=0;
//PORTD=0;
//TRISD=0;
//TRISC=0;
//NOT_RBPU_bit=0;
//portc.f5=1;

DigitalOut led0(PTE21); //portc.f0
DigitalOut led1(PTE22);   //portc.f1
DigitalOut led2(PTE23);   //portc.f2

DigitalOut led5(PTE5);   //portc.f5
DigitalOut led3(PTE3);   //portc.f3
DigitalOut led4(PTE4);   //portc.f4

//DigitalOut grabador1(PTE2);   //portd.f0
//DigitalOut grabador2(PTE20);    //portd.f1

//DigitalIn senal(PTE29); //NOT_RBPU_bit

//senal=1;
while(1)
{
   
                       //semaforo principal
   led0=1;
   verde_estatico();
   led0=0;
   verde_intermitente();
   led0=1;
   verde_intermitente();
   led0=0;
   verde_intermitente();
   led0=1;
   verde_intermitente();
   led0=0;
   verde_intermitente();
   led0=1;
   verde_intermitente();
   var_interm=1;
   led0=0;
   led1=1;
   amarillo();
   led1=0;
   led2=1;

                       //semaforo secundario
   led5=0;
   led3=1;
   rojo_estatico();
   led3=0;
   rojo_intermitente();
   led3=1;
   rojo_intermitente();
   led3=0;
   rojo_intermitente();
   led3=1;
   rojo_intermitente();
   led3=0;
   rojo_intermitente();
   led3=1;
   rojo_intermitente();
   var_interm=1;
   led3=0;
   led4=1;
   rojo_amarillo();
   led4=0;
   led5=1;
   led2=0;
}
}


int verde_estatico()
{
int r;
int x=1;
  for(r=0; r<=50; r++)
  {
    if(var_rojo==1)      // señal de activacion "desde rojo"
    {
      grabador1=1;       // pulso a sonido ~verde~
      wait(0.4);    //-----cambiar a 200 o 250
      grabador1=0;
      var_rojo=0;
    }
    if(senal==0 && x==1)    // activacion por baston en verde estatico, o señal de activacion "desde rojo"
    {
      grabador1=1;       //pulso a sonido ~verde~
      wait(0.4);    //-----cambiar a 200 o 250
      grabador1=0;
      x=0;              // evitar repeticiones de pulso si el baston se deja colocado en el sensor
    }
    if(senal==1)       // si no hay baston
    {
    }
    wait(0.1);
  }
  x=1;
}

int verde_intermitente()
{
int r;
int x=1;

  for(r=0; r<=4; r++)
  {
    if(senal==0 && var_interm==1)    // activacion por baston en verde intermitente
    {
      grabador2=1;       //pulso a sonido ~rojo~
      wait(0.4);      //------cambiar a 200 o 250
      grabador2=0;
      x=0;
      var_rojo=1;        //variable para enviar señal de activacion "desde rojo"
      var_interm=0;      //no repetir pulso en las demas funciones "intermitente"
    }
    if(senal==1)       // si no hay baston
    {
    }
    wait(0.4);
  }
  x=1;
}

int amarillo()
{
int r;
int x=1;
  for(r=0; r<=15; r++)
  {
    if(senal==0 && x==1)    // activacion por baston en amarillo
    {
      grabador2=1;       // pulso a sonido ~rojo~
      wait(0.4);      //------cambiar a 200 o 250
      grabador2=0;
      x=0;
      var_rojo=1;        //variable para enviar señal de activacion "desde rojo"
    }
    if(senal==1)       // si no hay baston
    {
    }
    wait(0.1);
  }
  x=1;
}

int rojo_estatico()
{
int r;
int x=1;
  for(r=0; r<=50; r++)
  {
    if(senal==0 && x==1)    // activacion por baston en rojo (verde estatico en semaforo secundario)
    {
      grabador2=1;       // pulso a sonido ~rojo~
      wait(0.4);      //-------cambiar a 200 o 250
      grabador2=0;
      x=0;
      var_rojo=1;        //variable para enviar señal de activacion "desde rojo"
    }
    if(senal==1)       // si no hay baston
    {
    }
    wait(0.1);
  }
  x=1;
}

int rojo_intermitente()
{
int r;
int x=1;
  for(r=0; r<=4; r++)
  {
    if(senal==0 && var_interm==1)    // activacion por baston en rojo (verde intermitente en semaforo secundario)
    {
      grabador2=1;       // pulso a sonido ~rojo~
      wait(0.4);      //-------cambiar a 200 o 250
      grabador2=0;
      x=0;
      var_rojo=1;        //variable para enviar señal de activacion "desde rojo"
      var_interm=0;      //no repetir pulso en las demas funciones "intermitente"
   }
    if(senal==1)       // si no hay baston
    {
    }
    wait(0.1);
  }
  x=1;
}

int rojo_amarillo()
{
int r;
int x=1;
  for(r=0; r<=15; r++)
  {
    if(senal==0 && x==1)    // activacion por baston en rojo (amarillo en semaforo secundario)
    {
      grabador2=1;       // pulso a sonido ~rojo~
      wait(0.4);      //-------cambiar a 200 o 250
      grabador2=0;
     // delay_ms(1200);    //---------------------------------------------------------------/
      //portd.f1=1;       //                                                               /
      //delay_ms(400);    //    pulso de apagado, para evitar problema de doble sonido     /
      //portd.f1=0;      // ---------------------------------------------------------------/
      x=0;
      var_rojo=1;        //variable para enviar señal de activacion "desde rojo"
  }
    if(senal==1)       // si no hay baston
    {
    }
    wait(0.1);
  }
  x=1;
}