?? main.c
字號:
}
OSFlagPost(SemFlag, (OS_FLAGS)(CH375SemFlag | LGDP4216SemFlag), OS_FLAG_SET, &err);
}
ch375Result = CH375FileClose( );
mStopIfError( ch375Result );
}
}
}
else { /* 出錯 */
mStopIfError( ch375Result );
break;
}
}
LED_OUT_INACT( ); /* LED滅 */
OSTimeDly( OS_TICKS_PER_SEC / 20 );
}
}
//音樂播放任務
void VS1003Task (void *pdata)
{
uint8 byteIndex, data;
uint32 blockIndex;
pdata = pdata;
InitPortVS1003();
//printf( "VS1003 test begin.\r\n" );
//VsSineTest();
//printf( "VS1003 test finish.\r\n" );
SpeFlag = 0;
Mp3SoftReset();
LoadPatch();
while(1)
{
OSFlagPend(SemFlag, (OS_FLAGS)(CH375SemFlag), OS_FLAG_WAIT_SET_ALL, 0, &err);
OSFlagPost(SemFlag, (OS_FLAGS)(CH375SemFlag), OS_FLAG_CLR, &err);
for(blockIndex = 0; blockIndex < (FILE_DATA_BUF_LEN / VS1003_BLOCK_SIZE); blockIndex++) {
DREQWait();
SPIStart();
Mp3SelectData();
//SPIBatchSend((uint8 *)&FILE_DATA_BUF, (blockIndex << 5/* 2^5 = VS1003_BLOCK_SIZE */) , 32);
for(byteIndex = 0; byteIndex < VS1003_BLOCK_SIZE; byteIndex++) {
if(SPIRW(&data, FILE_DATA_BUF[(blockIndex << 5/* 2^5 = VS1003_BLOCK_SIZE */) + byteIndex]) == FALSE) {
//printf( "SPIRW error!.\r\n" );
}
}
Mp3DeselectData();
if(SPIEnd()== FALSE) {
//printf( "SPIEnd error!.\r\n" );
}
if(SpeFlag == 0) {
// Request to read Spectrum Analyzer register
Mp3WriteRegister(SCI_WRAMADDR, 0x18, 0x04);
// Read Spectrum Analyzer registers
for (byteIndex = 0; byteIndex < 14; byteIndex ++) {
Spe[byteIndex] = Mp3ReadRegister(SCI_WRAM) & 63;
}
SpeFlag = 0xFF;
}
}
OSFlagPost(SemFlag, (OS_FLAGS)VS1003SemFlag, OS_FLAG_SET, &err);
}
}
void DrawColorTable() {
uint16 i,j;
SendCommand(MXSTART);//開始坐標
WriteData(0);
SendCommand(MXEND);//開始x坐標
WriteData(127);
SendCommand(MYSTART);
WriteData(0);
SendCommand(MYEND);
WriteData(125);
SendCommand(AD_X);
WriteData(0);
SendCommand(AD_Y);
WriteData(0);
SendCommand(DISP_DATA);
for(i = 0; i < 30; i++) {
for(j = 0; j < 64; j++) {
WriteData(j);
WriteData(0);
WriteData(0);
WriteData(j);
WriteData(0);
WriteData(0);
}
}
for(i = 0; i < 2; i++) {
for(j = 0; j < 64; j++) {
WriteData(0x3F);
WriteData(0);
WriteData(0);
WriteData(0x3F);
WriteData(0);
WriteData(0);
}
}
for(i = 0; i < 30; i++) {
for(j = 0; j < 64; j++) {
WriteData(0);
WriteData(j);
WriteData(0);
WriteData(0);
WriteData(j);
WriteData(0);
}
}
for(i = 0; i < 2; i++) {
for(j = 0; j < 64; j++) {
WriteData(0);
WriteData(0x3F);
WriteData(0);
WriteData(0);
WriteData(0x3F);
WriteData(0);
}
}
for(i = 0; i < 30; i++) {
for(j = 0; j < 64; j++) {
WriteData(0);
WriteData(0);
WriteData(j);
WriteData(0);
WriteData(0);
WriteData(j);
}
}
for(i = 0; i < 2; i++) {
for(j = 0; j < 64; j++) {
WriteData(0);
WriteData(0);
WriteData(0x3F);
WriteData(0);
WriteData(0);
WriteData(0x3F);
}
}
for(i = 0; i < 30; i++) {
for(j = 0; j < 64; j++) {
WriteData(j);
WriteData(j);
WriteData(j);
WriteData(j);
WriteData(j);
WriteData(j);
}
}
}
void OLedClear(unsigned char r, unsigned char g, unsigned char b)
{
uint16 i;
SendCommand(MXSTART);
WriteData(0);
SendCommand(MXEND);
WriteData(159);
SendCommand(MYSTART);
WriteData(0);
SendCommand(MYEND);
WriteData(127);
SendCommand(DISP_DATA);
for(i = 0; i < 10240; i ++ )
{
WriteData(r);
WriteData(g);
WriteData(b);
WriteData(r);
WriteData(g);
WriteData(b);
}
}
void DisplayTask(void *pdata)
{
uint8 i, j, k, l;
InitLGDP4216Port();
OSFlagPend(SemFlag, (OS_FLAGS)CH375SemFlag, OS_FLAG_WAIT_SET_ALL, 0, &err);
OSFlagPost(SemFlag, (OS_FLAGS)LGDP4216SemFlag, OS_FLAG_CLR, &err);
InitLGDP4216();
OLedClear(0x00,0x00,0x00);
OSFlagPost(SemFlag, (OS_FLAGS)LGDP4216SemFlag, OS_FLAG_SET, &err);
while(1) {
OSFlagPend(SemFlag, (OS_FLAGS)CH375SemFlag, OS_FLAG_WAIT_SET_ALL, 0, &err);
OSFlagPost(SemFlag, (OS_FLAGS)LGDP4216SemFlag, OS_FLAG_CLR, &err);
//DrawColorTable();
//OLedClear(0x00,0x00,0x00);
for(i = 0; i < 14; i ++) {
SendCommand(MXSTART);
WriteData(k);
SendCommand(MXEND);
WriteData(k+7);
SendCommand(MYSTART);
WriteData(0);
SendCommand(MYEND);
WriteData(63);
SendCommand(AD_X);
WriteData(k);
SendCommand(AD_Y);
WriteData(0);
SendCommand(DISP_DATA);
for(j = 0; j < 64; j ++) {
if(j < Spe[i] ) {
if( j < 5) {
WriteData(0x2F);
WriteData(0x2F);
WriteData(0x2F);
for( l = 0; l < 6; l ++) {
WriteData(0x3F);
WriteData(0x3F);
WriteData(0x3F);
}
WriteData(0x2F);
WriteData(0x2F);
WriteData(0x2F);
}else if(j < 10) {
WriteData(0x2F);
WriteData(0x2F);
WriteData(0x2F);
for( l = 0; l < 6; l ++) {
WriteData(0x00);
WriteData(0x00);
WriteData(0x3F);
}
WriteData(0x2F);
WriteData(0x2F);
WriteData(0x2F);
}else if(j < 15) {
WriteData(0x2F);
WriteData(0x2F);
WriteData(0x2F);
for( l = 0; l < 6; l ++) {
WriteData(0x3F);
WriteData(0x3F);
WriteData(0x00);
}
WriteData(0x2F);
WriteData(0x2F);
WriteData(0x2F);
}else {
WriteData(0x2F);
WriteData(0x2F);
WriteData(0x2F);
for( l = 0; l < 6; l ++) {
WriteData(0x3F);
WriteData(0x00);
WriteData(0x00);
}
WriteData(0x2F);
WriteData(0x2F);
WriteData(0x2F);
}
}else {
WriteData(0x00);
WriteData(0x00);
WriteData(0x00);
WriteData(0x00);
WriteData(0x00);
WriteData(0x00);
WriteData(0x00);
WriteData(0x00);
WriteData(0x00);
WriteData(0x00);
WriteData(0x00);
WriteData(0x00);
WriteData(0x00);
WriteData(0x00);
WriteData(0x00);
WriteData(0x00);
WriteData(0x00);
WriteData(0x00);
WriteData(0x00);
WriteData(0x00);
WriteData(0x00);
WriteData(0x00);
WriteData(0x00);
WriteData(0x00);
}
}
k += 8;
}
k = 0;
SpeFlag = 0;
OSFlagPost(SemFlag, (OS_FLAGS)LGDP4216SemFlag, OS_FLAG_SET, &err);
OSTimeDly( OS_TICKS_PER_SEC / 100 );
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -