jueves, 12 de diciembre de 2013

SEMÁFORO [APUNTADORES]


DESCRIPCION

Se usará el led RGB propio de la tarjeta, para simular la secuencia de encendido de luces de un semáforo.


OBJETIVO

Esta práctica tiene la finalidad de mostrar el uso de apuntadores para ejecutar secuencias programadas.


REQUERIMIENTOS:


Hardware:

1 – Tarjeta Freescale FRDM-KL25Z128 (48 Mhz).
2 – Conector USB de la tarjeta Freedom.

                       
Software:

-  CodeWarrior for MCU
-  Version: 10.5
- Build Id:130916
- Arquitectura Eclipse.
- OpenSDA


DIAGRAMAS DE FLUJO

-     Diagrama del programa principal


-    Funciones:



-        Diagrama de Eventos.


DESCRIPCIÓN DE VARIABLES


extern int timmer;
Variable de tiempo para la interrupción.
int sig_task;
Variable que ejecuta las tareas de cambio de color.
int color_led;
Variable para el color de led.



COMPONENTES



LED_ROJO:BitIO
LED ROJO, PTC18.
LED_VERDE:BitIO
LED VERDE, PTC19.
LED_AZUL:BitIO
LED AZUL, PTD1.
TI1:TimerInt
Interrupción 100ms.



LED_ROJO:BitIO


LED_VERDE:BitIO


LED_AZUL:BitIO


TI1:TimerInt



Tabla de funciones
Apuntador para cambio de colores.
void (*ap_func[3])(void)={f_task_rojo, f_task_verde, f_task_amarillo};
Función de inicio.
void inicio(void)
{
       sig_task=task_rojo;
       timmer=0;
}
Función prende rojo.
void f_task_rojo(void)
{
       timmer=T_ROJO;
       f_LED(rojo);
       sig_task=task_verde;
}

Función prende verde.
void f_task_verde(void)
{
       timmer=T_VERDE;
       f_LED(verde);
       sig_task=task_amarillo;
}
Función prende amarillo.
void f_task_amarillo(void)
{
       timmer=T_AMARILLO;
       f_LED(amarillo);
       sig_task=task_rojo;
}

Función combinación de colores.
void f_LED(int color_led)
{
       if (color_led&b_rojo)
              LED_ROJO_ClrVal();
       else
              LED_ROJO_SetVal();

       if (color_led&b_verde)
              LED_VERDE_ClrVal();
       else
              LED_VERDE_SetVal();

       if (color_led&azul)
              LED_AZUL_ClrVal();
       else
              LED_AZUL_SetVal();

}





Código




Evidencia Fotografica




Referencias

-        KL25 Sub-Family Reference Manual.
-        http://www.freescale.com/



No hay comentarios:

Publicar un comentario