Esempio 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;

}
Esempio n. 2
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);
}
Esempio n. 3
0
uint8_t VS_SetVolume(uint16_t leftright) {
  /* max volume: 0x0000, total silence: 0xFEFE, 0xFFFF analog power down */
  return VS_WriteRegister(VS_VOL, leftright);
}