📄 demo.c
字号:
#include "stdio.h"
#include "stdlib.h"
#include "command.h"
#include <string.h>
extern int open_com(void);
extern void close_com(void);
extern void wait(int time);
#define FILE_MAX_SIZE 64*1024
char fileData[FILE_MAX_SIZE];
int GetFileSize(FILE *fp)
{
int size;
fseek(fp, 0, SEEK_END);
size = ftell(fp);
rewind(fp);
return size;
}
int main(int argc, char **argv)
{
char *inFile;
FILE* fin;
int mode;
char buf[128];
int len;
int counter;
int i;
int rate;
int fileSize;
char *curPt;
int tmpFlag;
if(argc < 3)
{
printf("Error!\n");
exit(1);
}
i = open_com();
mode = atoi(argv[1]);
rate = atoi(argv[2]);
inFile = argv[3];
if((fin = fopen(inFile, "rb")) == 0){
printf("Cannot open some source files.\n");
fclose(fin);
}
fileSize = GetFileSize(fin);
if(FILE_MAX_SIZE < fileSize)
{
printf("file is too big.\n");
fclose(fin);
}
fread(fileData, 1, fileSize, fin);
i = req_status();
if(i == OK)
printf("chip ok!\n");
else
printf("chip error!\n");
i = set_uart_baud_rate(115200);
if(i == OK)
printf("set baud rate 115200!\n");
else
printf("set baud rate error!\n");
clear_input_buffer(0);
if(mode == 0)
{
speech_channel_select(0);
set_bit_rates(rate);
set_volume(0x200); //0 ... 0x200
speech_filter_control(0);
set_lbr_speed(7); //0 ... 15
curPt = fileData;
tmpFlag = 0;
if( fileSize > 128 )
{
send_speech_data(curPt,128);
speech_control(1);
fileSize -= 128;
curPt += 128;
while(1)
{
if(check_speech_buffer() >= 128)
{
if(fileSize >= 128)
{
send_speech_data(curPt,128);
fileSize -= 128;
curPt += 128;
}
else{
if(fileSize != 0)
send_speech_data(curPt,fileSize);
break;
}
}
}
}
else
{
send_speech_data(curPt,fileSize);
speech_control(1);
}
while(check_speech_buffer()>=240)
speech_control(0);
wait(500);
}
else if(mode == 1)
{
speech_channel_select(1);
set_bit_rates(rate);
set_volume(0x200);
len = fread(buf,1,128,fin);
send_speech_data(buf,128);
speech_control(1);
counter = 0;
while(1)
{
if(check_speech_buffer() >= 128)
{
len = fread(buf,1,128,fin);
send_speech_data(buf,len);
if(len < 128)
{
speech_control(0);
break;
}
}
}
wait(500);
}
else if(mode == 2)
{
set_volume(0x200);
set_midi_volume(0xffffffff);
len = fread(buf,1,128,fin);
send_midi_data(buf,128);
midi_control(1);
counter = 1;
while(1)
{
if(check_midi_buffer() >= 128)
{
len = fread(buf,1,128,fin);
send_midi_data(buf,len);
if(len < 128)
{
midi_control(0);
break;
}
counter++;
if(counter == 2)
{
len = fread(buf,1,1,fin);
if(len < 1)
{
midi_control(0);
break;
}
write_ram(buf,0,1);
counter = 0;
}
}
}
wait(500);
}
close_com();
exit(1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -