Exemplo n.º 1
0
/////////////////
//	main routine
/////////////////
void main (void) {
  
  uint8_t   Rx, loop;
  
  
  /////////////////
  //	init peripherals
  /////////////////

  // disable interrupts
  DISABLE_INTERRUPTS;

  // switch to 16MHz (default is 2MHz)
  CLK.CKDIVR.byte = 0x00;  
  
  // configure green LED pin (PH2)
  gpio_init(&PORT_H, PIN_2, OUTPUT_PUSHPULL_FAST);

  // init timer TIM4 for 1ms clock with interrupts
  tim4_init();
  
  // init pins for UART1 Rx(=PA4) and Tx(=PA5)
  gpio_init(&PORT_A, PIN_4, INPUT_PULLUP_NOEXINT);
  gpio_init(&PORT_A, PIN_5, OUTPUT_PUSHPULL_FAST);

  // init UART1 (connected to PC on muBoard)
  uart1_init(115200L);
  
  // init pins for UART3 Rx(=PD6) and Tx(=PD5)
  gpio_init(&PORT_D, PIN_6, INPUT_PULLUP_NOEXINT);
  gpio_init(&PORT_D, PIN_5, OUTPUT_PUSHPULL_FAST);

  // init UART3 (available on io-plug on muBoard)
  uart3_init(115200L);
  
  // enable interrupts
  ENABLE_INTERRUPTS;

    
  /////////////////
  //	main loop
  /////////////////
  loop = 0;
  while (1) {
    
    // if byte received via UART1 send via UART3
    if (uart1_check_Rx())
      uart3_send_byte(uart1_receive());
    
    // if byte received via UART3 send via UART1
    if (uart3_check_Rx())
      uart1_send_byte(uart3_receive());


    // every 1ms do
    if (g_flagClock) {
      g_flagClock = 0;
    
      // every 500ms toggle LED & print text
      if (g_clock > 500) {
        g_clock = 0;
        
        // toggle LED
        PORT_H.ODR.bit.b2 ^= 1;
      
      } // loop 500ms
      
    } // loop 1ms
    
  } // main loop

} // main
Exemplo n.º 2
0
/////////////////
//	main routine
/////////////////
void main (void) {
  
  uint8_t   Rx, loop;
  
  
  /////////////////
  //	init peripherals
  /////////////////

  // disable interrupts
  DISABLE_INTERRUPTS;

  // switch to 16MHz (default is 2MHz)
  CLK.CKDIVR.byte = 0x00;  
  
  // configure green LED pin (PH2)
  gpio_init(&PORT_H, PIN_2, OUTPUT_PUSHPULL_FAST);

  // init timer TIM4 for 1ms clock with interrupts
  tim4_init();
  
  // init pins for UART1 Rx(=PA4) and Tx(=PA5)
  gpio_init(&PORT_A, PIN_4, INPUT_PULLUP_NOEXINT);
  gpio_init(&PORT_A, PIN_5, OUTPUT_PUSHPULL_FAST);

  // init UART1 (connected to PC on muBoard)
  uart1_init(115200L);
  
  // enable interrupts
  ENABLE_INTERRUPTS;

    
  /////////////////
  //	main loop
  /////////////////
  loop = 0;
  while (1) {
    
    // if byte received via UART1, echo byte+1
    while (uart1_check_Rx()) {
      Rx = uart1_receive();        // grab oldest byte
      putchar((char) (Rx+1));
    }

    // every 1ms do
    if (g_flagClock) {
      g_flagClock = 0;
    
      // every 500ms toggle LED & print text
      if (g_clock > 500) {
        g_clock = 0;
        
        // toggle LED
        PORT_H.ODR.bit.b2 ^= 1;
        
        // print something to UART (blocking)
        printf("loop: %d\n", (int) (++loop));
      
      } // loop 500ms
      
    } // loop 1ms
    
  } // main loop

} // main
Exemplo n.º 3
0
void cmd_handle(void){
	unsigned char cmd;
	unsigned char cmd_param[8];
	int i;

	cmd = uart1_receive();
	uart1_send_char(cmd);
//	uart2_send_char('O');
//	uart3_send_char('K');
	switch(cmd){
	case CMD_FORWARD://前进
		car_forward();
		break;
	case CMD_BACK ://后退
		car_back();
		break;
	case CMD_LEFT://向左移动
		car_left();
		break;
	case CMD_RIGHT://向右移动
		car_right();
		break;
	case CMD_STOP://制动
		car_stop();
		break;
	case CMD_INIT://初始化
		car_init();
		break;
	case CMD_STANDBY://待机
		car_standby();
		break;
	case  CMD_CIRCLE1://转
		car_circle(1);
		break;
	case  CMD_CIRCLE2://反转
		car_circle(0);
		break;
	case CMD_MOTOR_SET://设置参数
		for(i=0;i<8;i++){
			cmd_param[i]=uart1_receive();
		}
		car_set(cmd_param);
		for(i=0;i<8;i++){
			uart1_send_char(cmd_param[i]);
		}
		break;
	case CMD_RESUME://恢复
		car_resume();
		break;
	case CMD_POWER_SET:
		for(i=0;i<2;i++){
			cmd_param[i]=uart1_receive();
		}
		power_set(cmd_param);
		for(i=0;i<2;i++){
			uart1_send_char(cmd_param[i]);
		}
		break;
	case CMD_STEER_SET:
		for(i=0;i<3;i++){
			cmd_param[i]=uart1_receive();
		}
		steering_set(cmd_param);
		for(i=0;i<3;i++){
			uart1_send_char(cmd_param[i]);
		}
		break;
	case CMD_STEER_SHOW:
		steering_show();
		break;
	case CMD_STEER_SET_INIT:
			steering_set_init();
			break;
	case CMD_PLAY_WAV:
			cmd_param[0]=uart1_receive();
			play_wav(cmd_param[0]);
			break;
	default:break;
	}
}