/* Set up and initialize all required blocks and functions related to the board hardware */ void Board_Init(void) { /* Sets up DEBUG UART */ DEBUGINIT(); /* Initializes GPIO */ Chip_GPIO_Init(LPC_GPIO); Chip_IOCON_Init(LPC_IOCON); /* Initialize LEDs */ Board_LED_Init(); }
/* Set up and initialize all required blocks and functions related to the board hardware */ void Board_Init(void) { /* Sets up DEBUG UART */ DEBUGINIT(); /* Updates SystemCoreClock global var with current clock speed */ SystemCoreClockUpdate(); /* Initializes GPIO */ Chip_GPIO_Init(LPC_GPIO); Chip_IOCON_Init(LPC_IOCON); /* Initialize LEDs */ Board_LED_Init(); }
int main (void) { // Read clock settings and update SystemCoreClock variable SystemCoreClockUpdate(); // Enable and setup SysTick Timer for 1 ms us_elapsed = 0; SysTick_Config(SystemCoreClock / 1000); // Turn on GPIO and IOCON blocks Chip_GPIO_Init(LPC_GPIO); Chip_IOCON_Init(LPC_IOCON); // Disable buffering on stdout setvbuf(stdout, NULL, _IONBF, 0); setvbuf(stderr, NULL, _IONBF, 0); // Initialize peripherals usb_init(); Serial.begin(115200); Debug.begin(115200); fprintf(stderr, "Coretex M3 running at %ld MHz\r\n", (long) (SystemCoreClock / 1e6)); // Load eeprom fprintf(stderr, "Opening eeprom file..."); init_eeprom(); fprintf(stderr, "Done!\r\n"); // Bind in NeoPixel display driver //machineThread.machine.pDisplay = &neoPixel; // Initialize machineThread.setup(PIN_CONFIG); firestep::threadRunner.setup(LED_PIN); // Run over and over again firestep::threadRunner.run(); return 0; }
void ssp_init( uint8_t id, uint32_t bitrate, uint8_t frame_sz, bool master_mode, bool poll ) { ssp_cfg[id].polling = poll; ssp_cfg[id].frame_size = frame_sz; ssp_cfg[id].master_mode = master_mode; ssp_cfg[id].bitrate = bitrate; /* Set up clock and muxing for SSP0/1 interface */ /* Slave Select (SSEL/FCS_B) is left as GPIO so we can send more than one byte without this pin going high (default operation of SSP interface) */ Chip_IOCON_Init(LPC_IOCON); Chip_IOCON_PinMux(LPC_IOCON, ssp_pins[id].port, ssp_pins[id].sck_pin, IOCON_MODE_PULLDOWN, ssp_pins[id].sck_func); Chip_IOCON_PinMux(LPC_IOCON, ssp_pins[id].port, ssp_pins[id].ssel_pin, IOCON_MODE_PULLUP, ssp_pins[id].ssel_func); Chip_IOCON_PinMux(LPC_IOCON, ssp_pins[id].port, ssp_pins[id].mosi_pin, IOCON_MODE_INACT, ssp_pins[id].mosi_func); Chip_IOCON_PinMux(LPC_IOCON, ssp_pins[id].port, ssp_pins[id].miso_pin, IOCON_MODE_INACT, ssp_pins[id].miso_func); if (ssp_pins[id].ssel_func == 0) { gpio_set_pin_dir( ssp_pins[id].port, ssp_pins[id].ssel_pin, OUTPUT); gpio_set_pin_state( ssp_pins[id].port, ssp_pins[id].ssel_pin, HIGH); } Chip_SSP_Init(ssp_cfg[id].lpc_id); Chip_SSP_SetBitRate(ssp_cfg[id].lpc_id, bitrate); Chip_SSP_SetMaster(ssp_cfg[id].lpc_id, master_mode); Chip_SSP_SetFormat(ssp_cfg[id].lpc_id, (frame_sz-1), SSP_FRAMEFORMAT_SPI, SSP_CLOCK_CPHA0_CPOL0); Chip_SSP_Enable(ssp_cfg[id].lpc_id); if (!poll) { /* Configure interruption priority and enable it */ NVIC_SetPriority( ssp_cfg[id].irq, configMAX_SYSCALL_INTERRUPT_PRIORITY ); NVIC_EnableIRQ( ssp_cfg[id].irq ); } if (ssp_cfg[id].lpc_id == LPC_SSP0) { active_SSP0 = id; } }
int main(void) { //*********************************************** // Inicializace //*********************************************** Chip_IOCON_Init(LPC_IOCON); Chip_GPIO_Init(LPC_GPIO); enet_init(); eeprom_init(); setup_uarts(); //*********************************************** // Hlavni smycka //*********************************************** while (1) { eeprom_write(); ethernet_transmit(); } return EXIT_FAILURE; }