int main(void) { Board_Init(); SystemCoreClockUpdate(); Init_UART_PinMux(); Chip_UART_Init(LPC_USART0); Board_LED_Set(0, false); /* Allocate UART handle, setup UART parameters, and initialize UART clocking */ setupUART(); /* Transmit the welcome message and instructions using the putline function */ putLineUART("LP540xx USART API ROM polling Example\r\n"); putLineUART("String receive (no echo): " "Enter a string and press enter to echo if back\r\n"); /* Get a string for the UART and echo it back to the caller. Data is NOT echoed back via the UART using this function. */ getLineUART(recv_buf, sizeof(recv_buf)); recv_buf[sizeof(recv_buf) - 1] = '\0'; /* Safety */ if (strlen(recv_buf) == (sizeof(recv_buf) - 1)) { putLineUART("**String was truncated, input data longer than " "receive buffer***\r\n"); } putLineUART(recv_buf); /* Transmit the message for byte/character part of the exampel */ putLineUART("\r\nByte receive with echo: " "Press a key to echo it back. Press ESC to exit\r"); /* Endless loop until ESC key is pressed */ recv_buf[0] = '\n'; while (recv_buf[0] != ESCKEY) { /* Echo it back */ LPC_UARTD_API->uart_put_char(uartHandle, recv_buf[0]); /* uart_get_char will block until a character is received */ recv_buf[0] = LPC_UARTD_API->uart_get_char(uartHandle); } /* Transmit the message for byte/character part of the exampel */ putLineUART("\r\nESC key received, exiting\r\n"); while (1) { __WFI(); } return 0; }
int main(void) { uint32_t sysTickRate; Board_Init(); #ifdef DEBUG // Set up UART for debug init_uart(115200); putLineUART("\n"); #endif // Enable EEPROM clock and reset EEPROM controller Chip_Clock_EnablePeriphClock(SYSCTL_CLOCK_EEPROM); Chip_SYSCTL_PeriphReset(RESET_EEPROM); // Set up clocking for SD lib SystemCoreClockUpdate(); DWT_Init(); // Set up the FatFS Object f_mount(fatfs,"",0); // Initialize SD card Board_LED_Color(LED_CYAN); if(sd_reset(&cardinfo) != SD_OK) { error(ERROR_SD_INIT); } sd_state = SD_READY; // Setup config Board_LED_Color(LED_CYAN); configStart(); Board_LED_Color(LED_GREEN); // Allow MSC mode on startup msc_state = MSC_ENABLED; // Log startup log_string("Startup"); // Set up ADC for reading battery voltage read_vBat_setup(); // Initialize ring buffer used to buffer raw data samples rawBuff = RingBuffer_initWithBuffer(RAW_BUFF_SIZE, RAM1_BASE); // Set up MRT used by pb and daq Chip_MRT_Init(); NVIC_ClearPendingIRQ(MRT_IRQn); NVIC_EnableIRQ(MRT_IRQn); NVIC_SetPriority(MRT_IRQn, 0x02); // Set higher than systick, but lower than sampling // Initialize push button pb_init(); // Enable and setup SysTick Timer at a periodic rate Chip_Clock_SetSysTickClockDiv(1); sysTickRate = Chip_Clock_GetSysTickClockRate(); SysTick_Config(sysTickRate / TICKRATE_HZ1); // Idle and run systick loop until triggered or plugged in as a USB device system_state = STATE_IDLE; enterIdleTime = Chip_RTC_GetCount(LPC_RTC); // Wait for interrupts while (1) { __WFI(); } return 0 ; }
int main(void) { USBD_API_INIT_PARAM_T usb_param; USB_CORE_DESCS_T desc; USBD_MSC_INIT_PARAM_T msc_param; ErrorCode_t ret = LPC_OK; USB_INTERFACE_DESCRIPTOR* pIntfDesc; SD_ERROR sderr; uint32_t t1,t2,i; /* Initialize board and chip */ Board_Init(); SystemCoreClockUpdate(); DWT_Init(); Board_LED_Set(0, false); Board_LED_Set(1, false); Board_LED_Set(2, false); init_uart(115200); sderr=init_sd_spi(&cardinfo); switch(sderr) { case SD_OK: sprintf(buffer,"\r\n----->Card initialization OK\r\n"); break; case ERROR_GO_IDLE_STATE_TIMEOUT: sprintf(buffer,"Error: ERROR_GO_IDLE_STATE_TIMEOUT\r\n"); break; case ERROR_GO_IDLE_STATE_RESPONSE: sprintf(buffer,"Error: ERROR_GO_IDLE_STATE_RESPONSE:%d\r\n",response[0]); break; case ERROR_SEND_IF_COND_TIMEOUT: sprintf(buffer,"Error: ERROR_SEND_IF_COND_TIMEOUT\r\n"); break; case ERROR_SEND_IF_COND_RESPONSE: sprintf(buffer,"Error: ERROR_SEND_IF_COND_RESPONSE:%02x%02x%02x%02x%02x\r\n",response[0],response[1],response[2],response[3],response[4]); break; case ERROR_READ_OCR_TIMEOUT: sprintf(buffer,"Error: ERROR_READ_OCR_TIMEOUT\r\n"); break; case ERROR_READ_OCR_RESPONSE: sprintf(buffer,"Error: ERROR_READ_OCR_RESPONSE:%02x%02x%02x\r\n",response[0],response[1],response[2]); break; case ERROR_APP_CMD_TIMEOUT: sprintf(buffer,"Error: ERROR_APP_CMD_TIMEOUT\r\n"); break; case ERROR_SD_SEND_OP_COND_TIMEOUT: sprintf(buffer,"Error: ERROR_SD_SEND_OP_COND_TIMEOUT\r\n"); break; case ERROR_INIT_TIMEOUT: sprintf(buffer,"Error: ERROR_INIT_TIMEOUT\r\n"); break; case ERROR_SEND_CID_TIMEOUT: sprintf(buffer,"Error: ERROR_SEND_CID_TIMEOUT\r\n"); break; case ERROR_SEND_CID_TOKEN_TIMEOUT: sprintf(buffer,"Error: ERROR_SEND_CID_TOKEN_TIMEOUT\r\n"); break; case ERROR_SEND_CSD_TIMEOUT: sprintf(buffer,"Error: ERROR_SEND_CSD_TIMEOUT\r\n"); break; case ERROR_SEND_CSD_TOKEN_TIMEOUT: sprintf(buffer,"Error: ERROR_SEND_CSD_TOKEN_TIMEOUT\r\n"); break; } putLineUART(buffer); if(sderr!=SD_OK) { Board_LED_Set(2, true); while(1){}; } putLineUART("\r\n----------CARD INFO------------\r\n"); switch(cardinfo.CardType){ case SD_CARD_STD_CAPACITY_V1_1:sprintf(buffer,"Card Type: SD Card v1.1\r\n");break; case SD_CARD_STD_CAPACITY_V2_0:sprintf(buffer,"Card Type: SD Card v2.0\r\n");break; case SD_CARD_HIGH_CAPACITY:sprintf(buffer,"Card Type: SDHC Card\r\n");break; case MULTIMEDIA_CARD:sprintf(buffer,"Card Type: MMC Card\r\n");break; } putLineUART(buffer); sprintf(buffer,"ManufacturerID:%d",cardinfo.SD_cid.ManufacturerID); putLineUART(buffer); sprintf(buffer,"\r\nOEM_AppliID:%c%c",cardinfo.SD_cid.OEM_AppliID>>8,cardinfo.SD_cid.OEM_AppliID&0x00FF); putLineUART(buffer); sprintf(buffer,"\r\nProdName:%c%c%c%c%c",cardinfo.SD_cid.ProdName1>>24,(cardinfo.SD_cid.ProdName1&0x00FF0000)>>16, (cardinfo.SD_cid.ProdName1&0x0000FF00)>>8,cardinfo.SD_cid.ProdName1&0x000000FF,cardinfo.SD_cid.ProdName2); putLineUART(buffer); if(cardinfo.CardType==MULTIMEDIA_CARD) { sprintf(buffer,"%c",cardinfo.SD_cid.Reserved1); putLineUART(buffer); } sprintf(buffer,"\r\nProdRev:%d.%d",cardinfo.SD_cid.ProdRev>>4,cardinfo.SD_cid.ProdRev&0x0F); putLineUART(buffer); sprintf(buffer,"\r\nProdSN:0x%08X",cardinfo.SD_cid.ProdSN); putLineUART(buffer); if(cardinfo.CardType==MULTIMEDIA_CARD) { sprintf(buffer,"\r\nManufactDate:%04d-%02d",(cardinfo.SD_cid.ManufactDate>>4)+1997,cardinfo.SD_cid.ManufactDate&0x000F); }