Hola a todos de nuevo y gracias por las respuestas otra vez.
Esta tarde estuve leyéndome un libro de C, preguntando por la univerdad y con la ayuda de ustedes he conseguido empezar a hacer que el código funcione un poco.
Lo pongo a continuación:
int led = 13;
int boton = 2;
int numeropulsaciones;
int contador;
void setup () {
pinMode (led, OUTPUT);
pinMode (boton, INPUT);
Serial.begin (9600);
}
void loop () {
//contador = digitalRead (boton);
if (digitalRead (boton) == HIGH){
numeropulsaciones ++;
Serial.print (numeropulsaciones);
}
if (numeropulsaciones == 3)
numeropulsaciones = 0;
switch (numeropulsaciones) {
case 0:
apagado ();
break;
case 1:
encendido ();
break;
case 2:
parpadeo ();
break;
case 3:
fading ();
break;
}
delay (100);
}
void apagado () {
digitalWrite (led, LOW);
}
void encendido () {
digitalWrite (led, HIGH);
}
void parpadeo () {
/* Iniciar desbordamiento del timer 0 con el
tiempo del parpadeo deseado.
Luego se envía una función que hace toggle del LED. */
}
void fading () {
/* Iniciamos el desbodamienton con el ancho del pulso PWM
en cada desbordamiento llamamos a la funcion para modificar
el ciclo del PWM */
}
El problema que tengo ahora es que para que el programa no se me quede colgado parpadeando y no responda necesito tener el tmr0 con el tiempo que desee y hacer que al producirse un desbordamiento me realice lo que quiera. Lo mismo con el fading.
Voy a mirar el post de eureka de chambri que creo que le vi un problema similar.
Un saludo