Hola
Estoy desde ayer dando vueltas a una programacion y la verdad es que estoy algo denso con ella.
estoy intentando hacer una programacion en base a tareas pendientes, me explico:
No consigo esbozar aunque sea en nemonicos, como hacer que el arduino chequee unas tareas (ocho en total) continuamente (bueno, esto si, leo una varible en el loop y ya esta), si se ha producido un evento asignar como tarea pendiente hasta que se cumpla, pero no siempre estara pendiente de la tarea de primer nivel, entre huecos tiene que chequear otras tareas y al cabo de 4 minutos volver a la principal hasta que se cumpla.
De momento estoy intentando hacerlo asi:
creo una variable llamada tarea de tipo byte (tarea = 0000 0000) y asigno el primer bit (que seria tarea de primer nivel) a '0' si no hay tarea tipo uno y si tiene que hacer esa tarea la pongo a '1' es decir (tarea = 0000 0001).
Asi el arduino chequea la varible "tarea" y ve que tiene pendiente alguno de los bits que ya no esta a cero (la tarea numero 1 de primer nivel (bitread(tarea, 1))), entonces pasa a ejecutarla, pero si no consigue ejecutarla en intervalos de 4 minutos y hasta un maximo de tres intentos, pasa a dejarla pendiente hasta la siguiente hora.
tambien se puede producir una tarea 5, es decir que queda pendiente realizar la cinco (tarea = 0001 0001) pero como esa es de segundo nivel, la primera que tiene que intentar es la uno.
En esos 4 minutos de intervalos de los tres intentos, tambien chequea las otras tareas de segundo nivel (tarea dos, tres, cuatro...), pero tiene que pasar a cumplir la tarea 1 cuando se cumplan los 4 minutos.
En el momento que ha finalizado la tarea 1, pone la variable a 0 para que sepa que esta liquidada (bitwrite (tarea, 1, 0)) y continua en ese bucle sin fin de chequearlas.
el concepto en delphi lo tengo claro y ademas asigno timers para dicha funcion, pero en arduino no consigo esbozar la estructura o el procedimiento basico, ni siquiera en tablas de decision, y ya digo... estoy un poco bloqueado.
¿ Podeis darme alguna orientacion o parecido, a "grosso modo" a lo que quiero hacer?
Gracias, sobre todo por leerlo.
Añado por si queda un poco mas claro: Si la tarea "uno" es poner en marcha una bomba de agua para achicar y esta bomba solo puede conectarse a intervalos de 4 minutos, sino consigue achicar el agua, tiene que esperar una hora hasta que se enfrie y volver a ello hasta que haya quitado toda el agua.
Pero eso no quita que mientras compruebe si hay electricidad, si se ha calentado mucho, si hay bloqueo en otra cañeria etc.. etc... espero que haya quedado un poco mas claro.