Exemplo n.º 1
0
/**
 * First init
 */
static void firstInit(void) {

	//Hardware init
	GPIO_init();
	USART1_init();//midi
	USART6_init();//debug
	usb_midi_init(); //Init everything for midiUSB

	ADC_init_all(); //ADC init
	SD_DMA_activate();
	//Display
	delayms(400);
#ifdef WS0010_GRAPHICS
	hd44780_init();
	hd44780_display( HD44780_DISP_ON, HD44780_DISP_CURS_OFF, HD44780_DISP_BLINK_OFF);
	ws0010_Graphics_mode();
	ws0010_Draw_buffer(pictureVMK188);
    delayms(20000);
	ws0010_Character_mode();
	hd44780_init();
#else
	hd44780_init();
	hd44780_display( HD44780_DISP_ON, HD44780_DISP_CURS_OFF, HD44780_DISP_BLINK_OFF);
	hd44780_message_center(APP_NAME, 1);
	hd44780_message_center(APP_VERSION, 2);
    delayms(3000);
#endif

}
Exemplo n.º 2
0
/** Main routine for midi-link. **/
int main(void) {
  /** Disable watchdog. **/
  wdt_disable();

  /** setbits for the LEDs. **/
  //  DDRC |= _BV(5);
  DDRC |= _BV(4);

  sr165_init();
  
  lcd_init();
  lcd_line1();
  lcd_puts("HELO");

  for (;;) {
    uint16_t sr = sr165_read16();
    lcd_line1();
    lcd_putnumber16(sr);
  }
  
  /** Initialize UART. **/
  uart_init();
  usb_midi_init();

  /** Initialize D12 pins and stack. **/
  d12_pins_init();
  d12_init();

  /** Enable interrupts. **/
  sei();
  uint8_t uart_configured = 0;

  for (;;) {
    if (d12_device_is_configured() && (uart_configured == 0)) {
      /* discard data in uart buffer */
      while (uart_avail()) {
	uart_getc();
      }
      uart_configured = 1;
    }

    if (uart_configured < 100) {
      _delay_ms(10);
      uart_configured++;
    } else {
      /** Handle midi from UART and from USB. **/
      midi_link_main();
    }

    /** Handle usb status. **/
    d12_main();

    /* check ep2 again because of d12 bug */
    uint8_t status;
    do {
      d12_read_cmd(D12_CMD_SELECT_EP + D12_MIDI_EP_OUT, &status, 1);
      if ((status & 1) && d12_device_is_configured() && (uart_configured > 100)) {
	handle_midi_ep_out();
      }
    } while (status & 1);

  }
}