概述
AC692X模式的相关处理
- 一、开始模式选择上次关机最后一次的模式
- 1.1开对应存储的VM区:
- 1.2在你需要存储最后一次工作模式的task_**.C文件下面添加以下代码,以蓝牙为例:
- 1.2.1 在flash_api.C定义一个变量
- 1.2.2 在各个模式下的task_**.C下添加flash_api.h的头文件,board.C也需要添加
- 1.2.3 在对应的模式下添加类似的代码,我的1代表的是蓝牙模
- 1.3 在board.C的主函数下面添加以下程序
- 二、通过按键消息自定义切换模式的顺序
一、开始模式选择上次关机最后一次的模式
首先需要将最后一次模式保存在类似单片机的flash或者eeprom等存储器里面。杰理的AC692X有VM区,类似于这些存储芯片,可断电保存数据。
1.1开对应存储的VM区:
在VM的枚举列表添加VM_WORK_MODE
在同一个文件下定义存储的长度
添加对应开启的VM存储单元
经过上面的设置,VM区就多出来一块存储最后一次工作模式的空间了。
接着要知道VM的读写函数:
s32 vm_write(u8 hdl, const void *data_buf, u16 len);
s32 vm_read(u8 hdl, void *data_buf, u16 len);
他们是SDK集成好的函数,我们根据在SDK里面原有的使用情况
fmtx_printf("fre:%dn", fmtx_var.freq);
vm_write(VM_FM_TRANSMIT_FREQ, &fmtx_var.freq, VM_FM_TRANSMIT_FREQ_LEN)
可以知道u8 hdl对应的是我们的VM枚举类型,const void *data_buf 对应的是需要存储的变量名的指针(地址),u16 len 是对应的存储长度。
1.2在你需要存储最后一次工作模式的task_**.C文件下面添加以下代码,以蓝牙为例:
1.2.1 在flash_api.C定义一个变量
这个变量一定要初始化为你模式对应的数据之一,不然开始会进入不了模式。我这里对应的是蓝牙模式的代号。
1.2.2 在各个模式下的task_**.C下添加flash_api.h的头文件,board.C也需要添加
1.2.3 在对应的模式下添加类似的代码,我的1代表的是蓝牙模
在对应的文件的地方添加代码
power_work_mode = 1;
vm_write(VM_WORK_MODE,&power_work_mode,VM_WORK_MODE_LEN);
1.3 在board.C的主函数下面添加以下程序
vm_read(VM_WORK_MODE, &power_work_mode,VM_WORK_MODE_LEN);
if(power_work_mode == 1)
{
task_switch(TASK_ID_BT, NULL);
}
else if(power_work_mode == 2)
{
task_switch(TASK_ID_LINEIN, NULL);
}
else if(power_work_mode == 3)
{
task_switch(TASK_ID_MUSIC, NULL);
}
else if(power_work_mode == 4)
{
task_switch(TASK_ID_FM, NULL);
}
添加上面的代码 ,把原来的注释掉;
这样第一次开始选择的是蓝牙,后面再次开机时你关机前的模式。
二、通过按键消息自定义切换模式的顺序
在task_common.c找到消息处理函数
tbool task_common_msg_deal(void *hdl, u32 msg)
在切换模式的消息下添加代码,原来的切换到下一个模式注销掉
if(task_get_cur() == TASK_ID_BT)
{
task_switch(TASK_ID_LINEIN, NULL);
Typemode = UMUSIC_mode;
}
else if(task_get_cur() == TASK_ID_LINEIN)
{
task_switch(TASK_ID_MUSIC, NULL) ;
Typemode = MUSIC_mode;
}
else if(task_get_cur() == TASK_ID_MUSIC)
{
task_switch(TASK_ID_FM, NULL);
Typemode = UMUSIC_mode;
}
else if(task_get_cur() == TASK_ID_FM)
{
task_switch(TASK_ID_BT, NULL);
Typemode = UMUSIC_mode;
}
exit = false;
Typemode = UMUSIC_mode; 这个你们可以去掉 ,我是因为需要在无USB和SD卡插入的情况下也要保持在音乐模式,而且在其他模式下,插入也不会主动跳转到音乐模式。
最后
以上就是舒服帅哥为你收集整理的杰理AC692X 开机模式选择上次关机的模式 通过按键消息自定义切换模式的顺序一、开始模式选择上次关机最后一次的模式二、通过按键消息自定义切换模式的顺序的全部内容,希望文章能够帮你解决杰理AC692X 开机模式选择上次关机的模式 通过按键消息自定义切换模式的顺序一、开始模式选择上次关机最后一次的模式二、通过按键消息自定义切换模式的顺序所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复