Paso 47: Software: funciones de red LED
void LED_Pixel (UINT8 px, py UINT8, estado UINT8)
Esta función toma un (x, y) coordinar y modifica el bit que representa el píxel. Si 'estado' es igual a 1, el bit que el pixel representa un 1, si el estado es igual a 0, se borrará el bit a 0. En el paso #45 en el ejemplo #2, tuvimos que modificar los datos del LED a encender Pixel(11,7). Si tuviéramos que utilizar esta función para encender el LED en (11.7) escribiría:
LED_Pixel(11,7,on);
HT1632_UPDATE = 1;
La razón por la que no actualizo el píxel en la misma función de LED_Pixel(x,ystate) es porque nos puede interesar modificar múltiples píxeles y tenerlos todos actualización al mismo tiempo. Como este:
LED_Pixel(16,5,on);
LED_Pixel(16,6,on);
LED_Pixel(16,7,on);
LED_Pixel(16,8,on);
LED_Pixel(17,8,on);
LED_Pixel(18,8,on);
HT1632_UPDATE = 1;
A pesar de que hemos denominado LED_Pixel(x,y,state) seis veces diferentes, los datos modificados de LED todo se actualizará al mismo tiempo cuando se produce la siguiente interrupción del timer3. En caso de que se lo pregunte, esos píxeles componen una forma de 'L' en la red.
void Draw_Circle (UINT8 px, py UINT8, radio UINT8)
Esta función será modificar los datos de LED y crear un círculo alrededor del punto central (PX, py). El parámetro 3 define el radio del círculo. Foto #2 muestra un ejemplo de código siguiente:
Draw_Circle(16,6,3);
HT1632_UPDATE = 1;
void Draw_Rect (UINT8 px, py UINT8, UINT8 sx, sy UINT8)
Esta función se utiliza para dibujar un rectángulo a partir de punto (px, py). El tamaño del rectángulo se especifica en píxeles por sx y sy. Foto #3 muestra un ejemplo de cómo se dibuja el rectángulo (una plaza también se puede crear con esta función).
Draw_Rect(5,2,8,6);
HT1632_UPDATE = 1;
void Fill_Grid(void)
Esta función establece cada pedacito en la matriz de datos LED a 1. Si la cuadrícula se actualiza después de llamar a esto todos los pixels del LED se encenderán.
Fill_Grid();
HT1632_UPDATE = 1;
void Clear_Grid(void)
Esta función borrará cada bit en la matriz de datos LED 0. Si la cuadrícula se actualiza después de llamar a esto entonces todos los pixels del LED se apagará. Esta función es útil cuando queremos establecer un nuevo marco de la rejilla LED, podemos restablecer todos los bits de LED_data [x] viejo y empezar a modificar los datos sabiendo que cada bit se ha reajustado a 0 (OFF).
Clear_Grid(); Claro los datos viejos
Escribir nuevos datos aquí
HT1632_UPDATE = 1;
void Draw_Border(UINT8 width)
Esta función dibujará un borde alrededor del perímetro de la rejilla LED. El ancho de la frontera se establece por el valor pasado en 'width'. El valor máximo de una frontera es 6 píxeles (6 píxeles * 2 lados = 12 COLs) y el valor mínimo es 1 (obviamente). El ejemplo siguiente se demuestra en la foto #4.
Draw_Border(2);
HT1632_UPDATE = 1;
void Invert_Grid(void)
Esta función simplemente la inversión cada uno de los bits de datos del LED. Si ejecuta este derecho de función antes de HT1632_UPDATE igual a 1, mostrará el reverso exacto de lo que iba a mostrar antes de ejecutar esta función. (es decir los LEDs que será apagado y el LED se apaga será en).
Otros bits de configuración LED código aquí
Invert_Grid();
HT1632_UPDATE = 1;
void HT1632_Set_PWM(UINT8 value)
Esta función se encuentra en los archivos de controlador de HT1632C y puede establecer la red LED en 16 niveles diferentes de brillo. Foto #5 muestra el deber los ciclos para cada brillo y Foto #6 muestra los ciclos de trabajo de cada brillo en forma de gráfico. Esta función no necesita una actualización de red después de que se llama como se escribe directamente en los controladores HT1632C y ajusta el brillo a través de PWM. Si queremos configurar la red LED a atenuarse hasta un ciclo de trabajo 10/16 (consulte la tabla de valor) escribiría:
HT1632_Set_PWM(9);
Es la mayoría de las funciones básicas. Ahora que sabes cómo controlar la red LED podemos combinan estas funciones y utilizar retrasos para hacer algunos efectos realmente genial.