?? mp3_atj2180.c
字號:
return(1);
}
/****************************************************************************************/
/*Project name : Ginwave mp3 development */
/*Process name : Mp3 API */
/*Function name : Mp3 Stop */
/*Outline : */
/*Function : Upon completion, the mp3 stop */
/*Returned value: nil */
/*Argument : nil */
/*Input-output : nil */
/*Version : v00.00 2004/12/8 1st edition by Terry.yuan */
/* Copyright (C) 2004 Development Division of Ginwave company Ltd. */
/****************************************************************************************/
static UCHAR ATj2180_analyze_link_protocol (FRAME_UPLINK *uplinkdatas)
{
UCHAR command_result;
//printf("MP3 analyze %x\n",uplinkdatas->FRAME_Dtype);
switch( uplinkdatas->FRAME_Dtype)
{
case ATJ2180_IDLE:
command_result=ATj2180_analyze_idle(uplinkdatas);
break;
case ATJ2180_DATA:
ATj2180_analyze_datas(uplinkdatas);
command_result=ATJ2180_DATA;
break;
case ATJ2180_ERROR:
command_result = ATj2180_analyze_error(uplinkdatas);
break;
case ATJ2180_BUSY:
command_result=ATj2180_analyze_busy(uplinkdatas);
break;
default:
command_result= ATJ2180_ERR_UNKNOW;
//assert(0);
break;
}
return(command_result);
}
/****************************************************************************************/
/*Project name : Ginwave mp3 development */
/*Process name : Mp3 API */
/*Function name : Mp3 GPIO set /read /clear */
/*Outline : */
/*Function : Upon completion, the mp3 set /read /clear */
/*Returned value: nil */
/*Argument : nil */
/*Input-output : nil */
/*Version : v00.00 2004/12/8 1st edition by Terry.yuan */
/* Copyright (C) 2004 Development Division of Ginwave company Ltd. */
/****************************************************************************************/
UCHAR Get_link_datas_Dtype(void)
{
UCHAR Data_type;
static UCHAR get_upbuffer[MP3_UPDATE_DATA_LENGH];
static FRAME_UPLINK get_uplinkdatas;
UCHAR success = 1;
success = Make_upFRAME(ATJ2180_ID,get_upbuffer) ;
if(success)
{
ATj2180_analyze_physical_protocol (get_upbuffer,&get_uplinkdatas);
mpi_data_type=ATj2180_analyze_link_protocol(&get_uplinkdatas);
}
return success;
}
/****************************************************************************************/
/*Project name : Ginwave mp3 development */
/*Process name : Mp3 API */
/*Function name : Mp3 Stop */
/*Outline : */
/*Function : Upon completion, the mp3 stop */
/*Returned value: nil */
/*Argument : nil */
/*Input-output : nil */
/*Version : v00.00 2004/12/8 1st edition by Terry.yuan */
/* Copyright (C) 2004 Development Division of Ginwave company Ltd. */
/****************************************************************************************/
static UCHAR ATj2180_get_TXD_check( FRAME_DOWNLINK *atj2180_frame)
{
UCHAR count;
UCHAR check;
UCHAR data_len;
data_len = atj2180_frame->FRAME_LEN-1;
//XOR
check = atj2180_frame->FRAME_LEN;
check = check^atj2180_frame->FRAME_CMD;
for(count=0;count<data_len;count++)
{
check = check^atj2180_frame->FRAME_DATAS[count];
}
return(check);
}
/****************************************************************************************/
/*Project name : Ginwave mp3 development */
/*Process name : Mp3 API */
/*Function name : Mp3 Stop */
/*Outline : */
/*Function : Upon completion, the mp3 stop */
/*Returned value: nil */
/*Argument : nil */
/*Input-output : nil */
/*Version : v00.00 2004/12/8 1st edition by Terry.yuan */
/* Copyright (C) 2004 Development Division of Ginwave company Ltd. */
/****************************************************************************************/
static void Make_buffer_downdata(FRAME_DOWNLINK* frame_downlink,physical_layer_down_struct *sendbuffer)
{
UCHAR count;
UCHAR buffer_count=0;
sendbuffer->physical_datas[buffer_count++] =frame_downlink->FRAME_LEN;
sendbuffer->physical_datas[buffer_count++] =frame_downlink->FRAME_CMD;
for(count=0;count<(frame_downlink->FRAME_LEN-1);count++)
sendbuffer->physical_datas[buffer_count++] =frame_downlink->FRAME_DATAS[count];
sendbuffer->physical_datas[buffer_count++] =frame_downlink->FRAME_CHECK;
sendbuffer->physical_len =buffer_count;
}
/****************************************************************************************/
/*Project name : Ginwave mp3 development */
/*Process name : Mp3 API */
/*Function name : Mp3 Stop */
/*Outline : */
/*Function : Upon completion, the mp3 stop */
/*Returned value: nil */
/*Argument : nil */
/*Input-output : nil */
/*Version : v00.00 2004/12/8 1st edition by Terry.yuan */
/* Copyright (C) 2004 Development Division of Ginwave company Ltd. */
/****************************************************************************************/
static UCHAR Send_downFRAME(UCHAR Device_ID ,UCHAR data_length,UCHAR * buffer_downdata )
{
UCHAR acknowledge;
int i;
acknowledge=MP3_IIC_Writeframe(Device_ID,data_length,buffer_downdata);
printf("MP3 W %x", acknowledge);
assert(data_length>1);
for(i=1; i<data_length-1; i++)
printf(" %x",*(buffer_downdata+i));
printf("\n");
//assert(acknowledge==1);
return(acknowledge == IIC_FRAMEOK);
}
/****************************************************************************************/
/*Project name : Ginwave mp3 development */
/*Process name : Mp3 API */
/*Function name : Mp3 Stop */
/*Outline : */
/*Function : Upon completion, the mp3 stop */
/*Returned value: nil */
/*Argument : nil */
/*Input-output : nil */
/*Version : v00.00 2004/12/8 1st edition by Terry.yuan */
/* Copyright (C) 2004 Development Division of Ginwave company Ltd. */
/****************************************************************************************/
UCHAR ATj2180_Mode_enter(UCHAR mode_ID)
{
memset(&Fr_downlink, 0, sizeof(Fr_downlink));
memset(&databuffer, 0, sizeof(databuffer));
acknowledge = 0;
//make link frame
Fr_downlink.FRAME_LEN =0x02;
Fr_downlink.FRAME_CMD =atj2180_mode[mode_ID].CMD_ENTER_MODE;
atj2180_frame_cmd_old = Fr_downlink.FRAME_CMD;
Fr_downlink.FRAME_DATAS[0] =atj2180_mode[mode_ID].DATA_MODE;
Fr_downlink.FRAME_CHECK=ATj2180_get_TXD_check(&Fr_downlink);
//make physical frame
Make_buffer_downdata(&Fr_downlink,&databuffer);
//send datas to ATJ2180
acknowledge=Send_downFRAME(ATJ2180_ID,databuffer.physical_len,databuffer.physical_datas);
return(acknowledge);
}
/****************************************************************************************/
/*Project name : Ginwave mp3 development */
/*Process name : Mp3 API */
/*Function name : Mp3 Stop */
/*Outline : */
/*Function : Upon completion, the mp3 stop */
/*Returned value: nil */
/*Argument : nil */
/*Input-output : nil */
/*Version : v00.00 2004/12/8 1st edition by Terry.yuan */
/* Copyright (C) 2004 Development Division of Ginwave company Ltd. */
/****************************************************************************************/
UCHAR ATj2180_Mode_quit(UCHAR mode_ID)
{
memset(&Fr_downlink, 0, sizeof(Fr_downlink));
memset(&databuffer, 0, sizeof(databuffer));
acknowledge = 0;
//make link frame
Fr_downlink.FRAME_LEN =0x02;
Fr_downlink.FRAME_CMD =atj2180_mode[mode_ID].CMD_QUIT_MODE;
atj2180_frame_cmd_old = Fr_downlink.FRAME_CMD;
Fr_downlink.FRAME_DATAS[0] =atj2180_mode[mode_ID].DATA_MODE;
Fr_downlink.FRAME_CHECK=ATj2180_get_TXD_check(&Fr_downlink);
//make physical frame
Make_buffer_downdata(&Fr_downlink,&databuffer);
//send datas to ATJ2180
acknowledge=Send_downFRAME(ATJ2180_ID,databuffer.physical_len,databuffer.physical_datas);
return(acknowledge);
}
/****************************************************************************************/
/*Project name : Ginwave mp3 development */
/*Process name : Mp3 API */
/*Function name : Mp3 Set_volume */
/*Outline : */
/*Function : Upon completion, the mp3 Set_volume */
/*Returned value: nil */
/*Argument : nil */
/*Input-output : nil */
/*Version : v00.00 2004/12/8 1st edition by Terry.yuan */
/* Copyright (C) 2004 Development Division of Ginwave company Ltd. */
/****************************************************************************************/
UCHAR ATj2180_Set_volume(UCHAR volume)
{
memset(&Fr_downlink, 0, sizeof(Fr_downlink));
memset(&databuffer, 0, sizeof(databuffer));
acknowledge = 0;
Fr_downlink.FRAME_LEN =0x02;
Fr_downlink.FRAME_CMD =0x04;
atj2180_frame_cmd_old = Fr_downlink.FRAME_CMD;
if(volume>=atj2180_vol.DATA_MAX_VALUME)
{
Fr_downlink.FRAME_DATAS[0]= atj2180_vol.DATA_MAX_VALUME;
}
else if(volume<=atj2180_vol.DATA_MIN_VALUME)
{
Fr_downlink.FRAME_DATAS[0]= atj2180_vol.DATA_MIN_VALUME;
}
else
{
Fr_downlink.FRAME_DATAS[0]=volume;
}
Fr_downlink.FRAME_CHECK=ATj2180_get_TXD_check(&Fr_downlink);
//make physical frame
Make_buffer_downdata(&Fr_downlink,&databuffer);
//send datas to ATJ2180
acknowledge=Send_downFRAME(ATJ2180_ID,databuffer.physical_len,databuffer.physical_datas);
return(acknowledge);
}
/****************************************************************************************/
/*Project name : Ginwave mp3 development */
/*Process name : Mp3 API */
/*Function name : Mp3 Set_Circle_mode */
/*Outline : */
/*Function : Upon completion, the mp3 Set_Circle_mode */
/*Returned value: nil */
/*Argument : nil */
/*Input-output : nil */
/*Version : v00.00 2004/12/8 1st edition by Terry.yuan */
/* Copyright (C) 2004 Development Division of Ginwave company Ltd. */
/****************************************************************************************/
UCHAR ATj2180_Set_Circle_mode(UCHAR circle_mode)
{
memset(&Fr_downlink, 0, sizeof(Fr_downlink));
memset(&databuffer, 0, sizeof(databuffer));
acknowledge = 0;
Fr_downlink.FRAME_LEN =0x02;
Fr_downlink.FRAME_CMD =0x05;
atj2180_frame_cmd_old = Fr_downlink.FRAME_CMD;
if(circle_mode>=atj2180_playmode.DATA_MAX)
{
Fr_downlink.FRAME_DATAS[0]= atj2180_playmode.DATA_MAX;
}
else if(circle_mode<=atj2180_playmode.DATA_MIN)
{
Fr_downlink.FRAME_DATAS[0]= atj2180_playmode.DATA_MIN;
}
else
{
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -