Programa controlador de luces
Enviado por repzilla • 6 de Marzo de 2016 • Tarea • 1.297 Palabras (6 Páginas) • 244 Visitas
Programa.
La función del programa es activar las salidas correspondientes dependiendo de lo que tengamos en la entrada.
Programa.
#include "derivative.h" /* include peripheral declarations */
#define voltaje_celda GPIOC_PDIR
#define luces GPIOD_PDOR
#define direccionales GPIOE_PDIR
#define luz_direccion GPIOB_PTOR
void control_de_luces();
void control_direccionales();
void retardo_ms(unsigned int msegs);
int main(void) //---------------------------------------------------------------FUNCION PRINCIPAL-----------------------------------------------------------------------
{
SIM_SCGC5|=SIM_SCGC5_PORTD_MASK; // Configuracion del reloj
PORTD_PCR0|=PORT_PCR_MUX(1); // Indicamos que utilizaremos el modulo GPIO en el pin 0 del PD
PORTD_PCR2|=PORT_PCR_MUX(1); // Indicamos que utilizaremos el modulo GPIO en el pin 1 del PD
PORTD_PCR3|=PORT_PCR_MUX(1); // Indicamos que utilizaremos el modulo GPIO en el pin 2 del PD
GPIOD_PDDR|=0x0D; // Decimos que los pines 0, 2 y 3 del PD se utilizaran como salidas
SIM_SCGC5|=SIM_SCGC5_PORTC_MASK; // Configuracion del reloj
PORTC_PCR0|=PORT_PCR_MUX(1); // Indicamos que utilizaremos el modulo GPIO en el pin 0 del PC
PORTC_PCR1|=PORT_PCR_MUX(1); // Indicamos que utilizaremos el modulo GPIO en el pin 1 del PC
PORTC_PCR2|=PORT_PCR_MUX(1); // Indicamos que utilizaremos el modulo GPIO en el pin 2 del PC
PORTC_PCR3|=PORT_PCR_MUX(1); // Indicamos que utilizaremos el modulo GPIO en el pin 3 del PC
PORTC_PCR4|=PORT_PCR_MUX(1); // Indicamos que utilizaremos el modulo GPIO en el pin 4 del PC
PORTC_PCR5|=PORT_PCR_MUX(1); // Indicamos que utilizaremos el modulo GPIO en el pin 5 del PC
PORTC_PCR6|=PORT_PCR_MUX(1); // Indicamos que utilizaremos el modulo GPIO en el pin 6 del PC
PORTC_PCR7|=PORT_PCR_MUX(1); // Indicamos que utilizaremos el modulo GPIO en el pin 7 del PC
GPIOC_PDDR|=0x00; // Decimos que el PC se utilizara como entrada
SIM_SCGC5|=SIM_SCGC5_PORTE_MASK; // Configuracion del reloj
PORTE_PCR0|=PORT_PCR_MUX(1); // Indicamos que utilizaremos el modulo GPIO en el pin 0 del PE
PORTE_PCR1|=PORT_PCR_MUX(1); // Indicamos que utilizaremos el modulo GPIO en el pin 1 del PE
GPIOE_PDDR|=0x00; // Decimos que el PE se utilizara como entrada
SIM_SCGC5|=SIM_SCGC5_PORTB_MASK; // Configuracion del reloj
PORTB_PCR0|=PORT_PCR_MUX(1); // Indicamos que utilizaremos el modulo GPIO en el pin 0 del PB
PORTB_PCR1|=PORT_PCR_MUX(1); // Indicamos que utilizaremos el modulo GPIO en el pin 1 del PB
GPIOB_PDDR|=0x03; // Decimos que el PE se utilizara como salida
while(1)
{
control_de_luces();
control_direccionales();
}
}
void control_direccionales(void)
{
switch(direccionales)
{
case 0x01:
luz_direccion=01;
retardo_ms(1000);
break;
...