回答

收藏

C5000音频电容式触摸扩展板 功能拆解之 文件操作函数分析2

FPGA/DSP FPGA/DSP 2804 人阅读 | 0 人回复 | 2013-01-15

UpdateDisplay_File
该函数用于更新显示文件
如果文件存在,则显示,不存在,显示empty

Print_PwrOff
该函数用于在液晶上显示系统待机的提示信息
首先将以下四个字符串
        "Hui Tou Jian...      ",    //displayStrings.PWROFF1
        "Hasta La Vista..     ",    //displayStrings.PWROFF2
        "   Ciao...           ",    //displayStrings.PWROFF3
        " And Goodbye!        ",    //displayStrings.PWROFF4
依次打印在虚拟的坐标
/**< For Power off window >*/
#define CURSOR_PWROFF1   (0x0000)    // Starts at Line 0 Pixel 0
#define CURSOR_PWROFF2   (0x0100)    // Starts at Line 1 Pixel 0
#define CURSOR_PWROFF3   (0x0200)    // Starts at Line 2 Pixel 0
#define CURSOR_PWROFF4   (0x0300)    // Starts at Line 3 Pixel 0
即 第 0 1 2 3 行
然后调用SETVP 命令,实际显示出来
注意, SETVP 命令设置的视点是 0x0000 为了能够将四行的信息全部显示出来,又调用了SetScreen 函数
SetScreen((unsigned int) LINE_MSG0, (unsigned int) LINE_MSG1, (unsigned int) 1, (unsigned int) 1, (unsigned int) 0xFFFF);


void SetScreen(unsigned int line_from, unsigned int line_to, unsigned int vpixel_incr, unsigned int do_vscroll, unsigned int vscroll_delay),而且在现实的时候多次用到
注释给的英文的意思应该是为了能够在屏幕上显示两行信息进行设置

之所以要左移8位 是因为对C5000的显示命令而言,前8位控制行 后8位控制列
而  vpixel_incr 参数控制每次垂直滚动的间隔。该函数根据LINE_MSG0 参数和 LINE_MSG1参数之间的大小关系 既能实现从上到下的滚动 也能实现从下到上的滚动。

附图说明


黑色字体代表虚拟屏幕上打印
红色边框代表根据不同变化的视点而实际显示的效果,通过视点的不断下移或上移,从而实现了垂直滚动显示信息的效。

Go_NextFile
该函数用于播放下一个音乐文件
该函数首先判断系统上一个状态,如果不是在浏览文件,则先定位到当前文件夹的第一个文件,在多次循环调用 NEXTF 命令,找到文件后进行播放;如果是在浏览文件,则直接调用 NEXTF 命令进入下一个文件,并进行播放。

关于更新命令函数 ,实现了状态机编程,可参见状态转换图

current_state 的 BROWSE_DIR 下面分      
current_event 的 SCROLL_RIGHT、 SCROLL_LEFT、 MID、 UP_HOLD、 DOWNx2

current_state 的 BROWSE_FILE 下面分      
current_event 的 SCROLL_RIGHT、 SCROLL_LEFT、 MID、 DOWN_HOLD、 DOWNx2、 UP_HOLD UP

current_state 的 FF

current_state 的 RWD

current_state 的 RECORD、 REC_PAUSE下面分      
current_event 的 MID、 MID_HOLD、UP_HOLD

current_state 的 USB_MSC下面分      
current_event 的 DOWNx2

current_state 的 PWR_OFF下面分      
current_event 的 UP_HOLD

还发现有几个命令C5000的开发板没用上 准备有机会试验下
静音操作命令 RESUME_RECORD command
删除文件或者文件夹命令 DEL command
创建新的文件夹命令MKDIR command
进入下一个子文件夹NEXTD command
还能设置平衡 BALANCE_RESET command


分享到:
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条