#include "LPC8xx.h" #include "syscon.h" #include "swm.h" #include "spi.h" #include "uart.h" #include "utilities.h" #include "chip_setup.h" #include "lib_ENS_II1_lcd.h" #define SPIBAUD 115200 #define SCK_PIN P0_19 #define MOSI_PIN P0_18 #define SSEL_PIN P0_21 // // Main routine // int main(void) { // Enable clocks to relevant peripherals LPC_SYSCON->SYSAHBCLKCTRL[0] |= (SPI0|SWM); // Configure the SWM (see peripherals_lib and swm.h) ConfigSWM(SPI0_SCK, SCK_PIN); ConfigSWM(SPI0_MOSI, MOSI_PIN); ConfigSWM(SPI0_SSEL0, SSEL_PIN); // Give SPI0 a reset LPC_SYSCON->PRESETCTRL[0] &= (SPI0_RST_N); LPC_SYSCON->PRESETCTRL[0] |= ~(SPI0_RST_N); // Enable main_clk as function clock to SPI LPC_SYSCON->SPI0CLKSEL = FCLKSEL_MAIN_CLK; // Get main_clk frequency SystemCoreClockUpdate(); // Configure the SPI master's clock divider (value written to DIV divides by value+1) LPC_SPI0->DIV = (main_clk/SPIBAUD) - 1; // Configure the CFG register: // Enable=true, master, no LSB first, CPHA=0, CPOL=0, no loop-back, SSEL active low LPC_SPI0->CFG = SPI_CFG_ENABLE | SPI_CFG_MASTER; // Configure the SPI delay register (DLY) // Pre-delay = 0 clocks, post-delay = 0 clocks, frame-delay = 0 clocks, transfer-delay = 0 clocks LPC_SPI0->DLY = 0x0000; // Configure the SPI control register // Master: End-of-frame true, End-of-transfer true, RXIGNORE true, LEN 8 bits. LPC_SPI0->TXCTL = SPI_CTL_EOF | SPI_CTL_EOT | SPI_CTL_RXIGNORE | SPI_CTL_LEN(8); // Init LCD Screen init_lcd(); lcd_puts("Test e-paper"); lcd_position(1, 0); lcd_puts("Init ok"); while(1) { }; } // end of main