Go Down

Topic: Funciones como parametros? (Read 2533 times) previous topic - next topic

dieguitofernandez

Buenos dias, estoy arrancando con mi primer proyecto y quisiera algunos consejos para acomodar el codigo de mi solucion.

Básicamente tengo que detectar los eventos Click y UnClick de una serie de fines de carrera que tengo instalados en un porton, no quiero realizarlo por interrupciones ya que tengo pensado mas adelante multiplexar las entradas, y tampoco necesito tiempos de respuesta tan veloces como me darian las interrupciones.

El codigo actual hace algo esto (puede ser que no ande, solo copie algunas lineas del original):
Code: [Select]

//Pines asignados a las entradas
const int controlRemoto =  2;

boolean ctrlControlRemoto = false;

void setup() {               
  //A las entradas les activo las resistencias pullup internas http://arduino.cc/es/Tutorial/DigitalPins
  pinMode(controlRemoto, INPUT);
  digitalWrite(controlRemoto, HIGH);
}

void loop() {
  boolean control = digitalRead(controlRemoto);
  ///Detecto los Click y unClick de cada una de las entradas
  //Boton del control
  if (control != ctrlControlRemoto)
  {
    //Algo cambio
    if (!control){
      //Evento Click
      ApretoControl();
    }
    else{
      //Evento UnClick
    }
    ctrlControlRemoto = control;
  }
}


Andar anda, pero quisiera poder meter toda esta lógica dentro de alguna librería (pensando en la futura multiplexacion), y que sea simple de implementar.
Yo tenia pensado inicializar esta librería pasándole un array con con tanta cantidad de items como entradas tenga, donde en cada posición del array se corresponde con la función que quiero que ejecute para el evento click de esa entrada... de entiende?

Cambien podría hacerse con eventos, pero la verdad no se como se implementan acá, si hay que usar delegados o cosas por el estilo ya empezaría a complicarse la implementacion.

Muchas Gracias!

PD: Se aceptan toda clase de sugerencia sobre sintaxis, scope de variables, buenas practicas, etc.

chiva

Usa punteros a funciones, hay montones de info por internet
Por ejemplo: http://www.newty.de/fpt/index.html

dieguitofernandez

Perfecto! Estuve mirando el link y eso parece ser lo que necesito.

Tambien encontre una serie de librerias que desconocia para abstraccion de hardware
http://arduino.cc/playground/Code/HardwareAbstraction

La de keypad hace algo parecido a lo que necesito.

Muchas gracias.

Go Up