#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
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;
/** 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;