Programación de luces de emergencia
# incluir ltintrinsics.h gt
#Definir myMCLK 8000000
#Definir un entero sin signo
#Definir carácter uchar sin firmar
Led_left largo sin firmar = 0;
led_right largo sin firmar = 0;
Led largo sin firmar
Carácter sin firmar Ok();
void Dis _ Led();
void Init_clk()
{
BCS CTL 1 = calbc 1 _ 8 MHz
DCOCTL = CALDCO _ 8MHZ
}
Encabezado no válido (Invalid)
{
Uchar I;
wdt CTL = wdt pw WDTHOLD; //Apagar el perro guardián
init _ clk();
while(1)
{
led _ left = 0x80000000//Enciende la primera luz.
led_right=0x00000004//Enciende la última luz.
dis_Led();
_ _Número de ciclos de retraso (4000000); //Retraso de 500 milisegundos
if( Ok())
{
for(I = 0;i lt30;i)
{
led _ izquierda lt lt=1;
dis_Led();
__Número de ciclos de retardo (4000000); //Retraso de 500 milisegundos
if(led_left == 0 amp; ampled_right== 0)
;
led_right gt gt=1;
dis_Led();
__Número de ciclos de retraso (4000000); //retraso de 500 milisegundos
if (led_left == 0 amp; ampled_right==0)
;
}
}
}
}
Los caracteres sin firmar son normales ()
{
Ur charl;
for(I = 0 ;ilt30;i)
{
led_left amp= ~ 0x 000000003 // siempre establece los dos últimos bits en 0.
led_right amp= ~ 0x 000000003; //Siempre establece los dos últimos bits en 0.
led_izquierda gt gt=1
led_izquierda = led_izquierda 0x80000000
dis_Led(); >_ _Número de ciclos de retraso (4000000); //Retraso de 500 milisegundos
if (led_left amp; led_right)
Retorno 1;
led_right lt lt= 1;
led_right = led_right | 0x 00000004;
dis_Led();
_ _delay Número de ciclos (4000000); //retraso de 500 milisegundos p>
if (led_left & led_right)
Devuelve 1;
} p>
Devuelve 0;
}
void Dis_Led()
{
led = led _ left | led _ right
//Envía el bit correspondiente en el LED a el puerto IO para visualización.
}
Puedes consultarlo