예제 #1
0
void show_boot_progress(int status)
{
	printf ("Status: %d\n", status);
        led_red_off();
	led_blue_off();

	if (status < -2 ) {
		led_red_on();
		return;
	}
	switch(status){
		case -1: /* Image Header has bad magic number */
			led_red_on();
			break;
						
                case 1:
                        break;
                case 2:
                        break;
                case 3:
                        break;
                case 4:
                        break;
                case 5:
                case 6:
                        break;
                case 7:
                case 8:	/* Image Type check ok */
			led_blue_on();
                        break;
                case 9:
                case 10:
                case 11:
                case 12:
                case 13:
                case 14:
                case 15: /* All preparation done, transferring control to OS */
			led_blue_on();
                        break;
                default:
                        break;
        }
}
예제 #2
0
// Receive message from the CAN bus (blocking)
uint32_t can_rx(CanRxMsgTypeDef *rx_msg, uint32_t timeout) 
{
    uint32_t status;

    can_handle.pRxMsg = rx_msg;

    status = HAL_CAN_Receive(&can_handle, CAN_FIFO0, timeout);

	led_blue_on();
    return status;
}
예제 #3
0
void toggle_leds() {
        if(state == 0 ) {
           led_green_on();
           led_blue_off();
           state = 1;
        } else {
           led_green_off();
           led_blue_on();
           state = 0;
        }
        
}
예제 #4
0
int window_fan() {
    rcc_config();
    delay_config();

    led_debug_config();
    motor_config();

    led_blue_off();
    led_green_off();

    servo_config();
    servo_set_pos(0);
    servo_start();

    u32 i;
    u32 from = 0;
    u32 to = 180;
    u32 delay = 2000;

  while(1) {

    motor_forward();

    led_blue_on();
    led_green_off();
    for(i=from; i<to; i++) {
        servo_set_pos(i);
        delay_ms(delay);
    }

    led_blue_off();
    led_green_on();
    for(i=to; i>from; i--) {
        servo_set_pos(i);
        delay_ms(delay);
    }

    motor_stop();
    delay_ms(10000);
  }
}
예제 #5
0
int reader_test() {
    rcc_config();

    led_debug_config();
    motor_config();
    reed_config();
    
    led_blue_off();
    led_green_off();
    
    uint8_t i;
  
    while(1) {
        // forward
        motor_forward();
        led_blue_on();
        reed_delay_left();
        
        // stop
        motor_stop();
        led_blue_off();
        bigDelay();
        bigDelay();
        bigDelay();

        // backward
        motor_back();
        led_green_on();
        reed_delay_right();
        
        // stop
        motor_stop();
        led_green_off();
        bigDelay();
        bigDelay();
        bigDelay();
    }  

}
예제 #6
0
// Start the CAN peripheral
void can_enable(void)
{
    if (bus_state == OFF_BUS)
    {
    	can_handle.Init.Prescaler = prescaler;
    	can_handle.Init.Mode = CAN_MODE_NORMAL;
    	can_handle.Init.SJW = CAN_SJW_1TQ;
    	can_handle.Init.BS1 = CAN_BS1_4TQ;
    	can_handle.Init.BS2 = CAN_BS2_3TQ;
    	can_handle.Init.TTCM = DISABLE;
    	can_handle.Init.ABOM = ENABLE;
    	can_handle.Init.AWUM = DISABLE;
    	can_handle.Init.NART = can_nart;
    	can_handle.Init.RFLM = DISABLE;
    	can_handle.Init.TXFP = DISABLE;
    	can_handle.pTxMsg =  NULL;
        HAL_CAN_Init(&can_handle);
        HAL_CAN_ConfigFilter(&can_handle, &filter);
        bus_state = ON_BUS;

        led_blue_on();
    }
}