X-Git-Url: https://git.llucax.com/z.facultad/66.09/etherled.git/blobdiff_plain/6add33161e732ed834469f217a7ba97200694d63..1655c9d04f619f5160e6e4cc2a19f8143d140e6e:/src/leds.h diff --git a/src/leds.h b/src/leds.h index 188978b..c69a956 100644 --- a/src/leds.h +++ b/src/leds.h @@ -3,6 +3,9 @@ #ifndef _LEDS_H_ #define _LEDS_H_ +/** Cantidad mínima de columnas (es más un límite estético que físico) */ +#define LEDS_MIN_COLS 8 + /** Cantidad máxima de columnas */ #define LEDS_MAX_COLS 32 @@ -10,7 +13,7 @@ extern unsigned char leds_matrix_len; /** Matriz de leds, cada elemento del array es una columna */ -extern unsigned int leds_matrix[LEDS_MAX_COLS]; +extern idata unsigned int leds_matrix[LEDS_MAX_COLS]; /** Retardo de refresco de la matriz (en múltiplos de 0.1ms) */ extern unsigned char leds_delay; @@ -39,6 +42,14 @@ void leds_write_high(unsigned char); /** Actualiza el delay al recomendado según el tamaño de la matriz */ void leds_delay_update(); +/** Bloquea timer de leds cuando se accede a una zona crítica (P0 y/o P2). */ +void leds_lock(); + +/** Desbloquea el timer de los leds. + * @precond Se llamó a leds_lock(); + */ +void leds_unlock(); + /** Atiende interrupción del timer2 para 'dibujar' la matriz */ void leds_timer2_isr() interrupt 5;