1 /* vim: set et sw=4 sts=4 : */
6 /** Cantidad máxima de columnas */
7 #define LEDS_MAX_COLS 32
9 /** Tamaño de la matriz de leds, en cantidad de columnas */
10 extern unsigned char leds_matrix_len;
12 /** Matriz de leds, cada elemento del array es una columna */
13 extern unsigned int leds_matrix[LEDS_MAX_COLS];
15 /** Retardo de refresco de la matriz (en múltiplos de 0.1ms) */
16 extern unsigned char leds_delay;
20 * El 'dibujado' de la matriz se puede controlar fácilmente parando y/o
21 * iniciando el timer2. Para comenzar a 'dibujar' la matriz sólo es necesario
22 * setear el bit TR2 del registro T2CON (y habilitar las interrupciones
23 * globalmente si aún no se hizo, bit EA del registro IE).
27 /** Realiza un testeo simple de los leds */
30 /** Escribe un word (16 bits) en la columna de leds */
31 void leds_write(unsigned int);
33 /** Escribe un byte en la parte baja de la columna de leds */
34 void leds_write_low(unsigned char);
36 /** Escribe un byte en la parte alta de la columna de leds */
37 void leds_write_high(unsigned char);
39 /** Actualiza el delay al recomendado según el tamaño de la matriz */
40 void leds_delay_update();
42 /** Atiende interrupción del timer2 para 'dibujar' la matriz */
43 void leds_timer2_isr() interrupt 5;