Ejemplo n.º 1
0
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;
}
Ejemplo n.º 2
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 ;
}
Ejemplo n.º 3
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);
  }