Exemplo n.º 1
0
uint8_t PLR_StartNewFile(const char* filename, bool turn) {

	uint16_t data;
	if(turn == TRUE){
		turning = TRUE;
		turntime = (config_turnval*1000)/TASKDEL_MS; /*Turn in taskcycles*/
	}
	//Stop actual playback
	PLR_StopPlayback();

	VS_ReadRegister(VS_MODE, &data);
	data = (data | VS_MODE_SM_LINE1 | VS_MODE_SM_SDINEW);
	VS_WriteRegister(VS_MODE, data);

	/*resync*/
	VS_WriteRegister(VS_WRAMADDR, 0x1E29);
	VS_WriteRegister(VS_WRAM, 0);

	if (FAT1_open(&fp, filename, FA_READ) != FR_OK) {
		return ERR_FAILED;
	}

	/*As in datasheet explained set twice 0 in REG_DECODETIME to set back playback time*/
	VS_WriteRegister(VS_DECODE_TIME, 0x00);
	VS_WriteRegister(VS_DECODE_TIME, 0x00);

	setPlayback();

	while (!VS_Ready()) {
		//wait until DREQ high
	}

	return ERR_OK;

}
Exemplo n.º 2
0
static uint8_t PrintStatus(const CLS1_StdIOType *io) {
  uint8_t buf[24];
  uint16_t val;

  CLS1_SendStatusStr((unsigned char*)"VS1053", (unsigned char*)"\r\n", io->stdOut);

  if (VS_ReadRegister(VS_MODE, &val)==ERR_OK) {
    UTIL1_strcpy(buf, sizeof(buf), "0x");
    UTIL1_strcatNum16Hex(buf, sizeof(buf), val);
    UTIL1_strcat(buf, sizeof(buf), "\r\n");
  } else {
    UTIL1_strcpy(buf, sizeof(buf), "ERROR\r\n");
  }
  CLS1_SendStatusStr((unsigned char*)"  MODE", buf, io->stdOut);

  if (VS_ReadRegister(VS_STATUS, &val)==ERR_OK) {
    UTIL1_strcpy(buf, sizeof(buf), "0x");
    UTIL1_strcatNum16Hex(buf, sizeof(buf), val);
    UTIL1_strcat(buf, sizeof(buf), "\r\n");
  } else {
    UTIL1_strcpy(buf, sizeof(buf), "ERROR\r\n");
  }
  CLS1_SendStatusStr((unsigned char*)"  STATUS", buf, io->stdOut);

  if (VS_ReadRegister(VS_CLOCKF, &val)==ERR_OK) {
    UTIL1_strcpy(buf, sizeof(buf), "0x");
    UTIL1_strcatNum16Hex(buf, sizeof(buf), val);
    UTIL1_strcat(buf, sizeof(buf), "\r\n");
  } else {
    UTIL1_strcpy(buf, sizeof(buf), "ERROR\r\n");
  }
  CLS1_SendStatusStr((unsigned char*)"  CLOCKF", buf, io->stdOut);

  if (VS_ReadRegister(VS_VOL, &val)==ERR_OK) {
    UTIL1_strcpy(buf, sizeof(buf), "0x");
    UTIL1_strcatNum16Hex(buf, sizeof(buf), val);
    UTIL1_strcat(buf, sizeof(buf), "\r\n");
  } else {
    UTIL1_strcpy(buf, sizeof(buf), "ERROR\r\n");
  }
  CLS1_SendStatusStr((unsigned char*)"  VOLUME", buf, io->stdOut);

  return ERR_OK;
}
Exemplo n.º 3
0
uint8_t PLR_StopPlayback(void) {
	uint16_t data;

	clearPlayback();
	FAT1_close(&fp);

	VS_ReadRegister(VS_MODE, &data);
	data = (data | VS_MODE_SM_LINE1 | VS_MODE_SM_SDINEW | VS_MODE_SM_CANCEL);
	VS_WriteRegister(VS_MODE, data);
}