Ejemplo n.º 1
0
void logic_state_run(uint32_t msg) {
    switch (HIGH_WORD(msg)) {
    case MSG_SWITCH_BRAKE:
        logic_brake(LOW_BYTE(LOW_WORD(msg)));
        break;
    case MSG_SWITCH_LTURN:
        logic_lturn(LOW_BYTE(LOW_WORD(msg)));
        break;
    case MSG_SWITCH_RTURN:
        logic_rturn(LOW_BYTE(LOW_WORD(msg)));
        break;
    case MSG_SWITCH_HEADLAMP:
        logic_headlamp(LOW_BYTE(LOW_WORD(msg)));
        break;
    case MSG_SWITCH_HIGHBEAM:
        logic_highbeam(LOW_BYTE(LOW_WORD(msg)));
        break;
    case MSG_SWITCH_REVERSE:
        logic_reverse(LOW_BYTE(LOW_WORD(msg)));
        break;
    case MSG_BLINKER_BLINK:
        if (blinker_is_on(LAMP_LTURN)) {
            lamp_toggle(LAMP_LTURN);
            usart_send(PACK_WORDS(MSG_LAMP_LTURN, lamp_is_on(LAMP_LTURN)));
        }
        if (blinker_is_on(LAMP_RTURN)) {
            lamp_toggle(LAMP_RTURN);
            usart_send(PACK_WORDS(MSG_LAMP_RTURN, lamp_is_on(LAMP_RTURN)));
        }
        break;
    case MSG_SWITCH_START:
        if (!LOW_WORD(msg)) {
            blinker_disable();
            lamp_disable();
            usart_send(PACK_WORDS(MSG_STANDBY, 0));
            state_set(LOGIC_STANDBY);
            /* TODO: control display module power */
            /* display_power_set(OFF); */
        }
	break;
    case MSG_DISPLAY_READY:
        logic_sync_lamps();
        break;
    default:
        console_log("event ignored");
    }
}
Ejemplo n.º 2
0
CALLSET_ENTRY (trivial, sw_left_slingshot, sw_right_slingshot)
{
	rudy_look_straight ();
	score (SC_110);
	sample_start (SND_SLING, SL_100MS * 3);
	if (flag_test (FLAG_OUTLANES_LIT))
		lamp_toggle (LM_SPECIALS);
}
Ejemplo n.º 3
0
void main(void){

	lamp_t t;
	color_t c;

	lamp_init(&t ,&PORTD, 5 ,&PORTD, 6,&PORTD,7);
	while (1){
		c=Green;
		_delay_ms(1000);
		lamp_toggle(t,c);
		c=Yellow;
		_delay_ms(1000);
		lamp_toggle(t,c);
		c=Red;
		_delay_ms(1000);
		lamp_toggle(t,c);

	}
}