/** * \brief Configure GPIO */ void EPD_initialize_gpio(void) { config_gpio_dir_i( EPD_BUSY_PIN); config_gpio_dir_o( EPD_SPI_CS_PIN); config_gpio_dir_o( EPD_RST_PIN); config_gpio_dir_o( EPD_PANELON_PIN); config_gpio_dir_o( EPD_DISCHARGE_PIN); config_gpio_dir_o( EPD_BORDER_PIN); EPD_flash_cs_high(); // dumy EPD_border_low(); /** not used at present config_gpio_dir_o( Flash_CS_PIN); config_gpio_dir_i( Temper_PIN); */ }
/** * \brief Configure SPI */ void epd_spi_init(void) { if (spi_flag) return; spi_flag = TRUE; //config i/o config_gpio_dir_o(SPICLK_PORT, SPICLK_PIN); config_gpio_dir_o(SPIMOSI_PORT, SPIMOSI_PIN); config_gpio_dir_i(SPIMISO_PORT, SPIMISO_PIN); BITSET(SPISEL, SPICLK_PIN + SPIMOSI_PIN + SPIMISO_PIN); BITSET(SPISEL2, SPICLK_PIN + SPIMOSI_PIN + SPIMISO_PIN); //comfig SPI SPICTL0 = UCCKPH | UCMST | UCSYNC | UCMSB; SPICTL1 = UCSSEL_2 + UCSWRST; SPIBR0 = 2; //16MHz/2=8MHz SPIBR1 = 0; BITSET(REN (SPIMISO_PORT), SPIMISO_PIN); BITCLR(SPICTL1, UCSWRST); }