Red de conocimiento informático - Conocimiento informático - Programación de luces de emergencia

Programación de luces de emergencia

# incluir ltMSP 430g 2553 . h gt;

# 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

if (led_left & led_right)

Devuelve 1;

}

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