玩具应用篇(旧工程 - app_mg) ===================================== 简介 ################################ **该工程在2023年7月11日发布的AD1x-457_AC104-release_v1.7.0 SDK后停止维护,后续仅维护voice_toy工程;** AD140,AD150的应用模式有MIDI模式、音乐模式、录音模式和关机模式,不同的模式间会有资源和按键互斥的关系。应用上面做了一个简单的模式切换管理来管理不同模式的资源和按键。 模式管理的整体管理思路是,进入该模式的时候初始化模式需要使用的资源和按键处理函数,退出该模式的时候关闭该模式需要使用的资源和释放按键处理函数。 模式初始化函数: 1. int app_mg_init(APP_T app,void* param); 2. void app(void); 模式切换函数: 1. int app_switch(APP_T app,void* param); 2. int app_switch_next(void); 3. int app_switch_priv(void); 4. u8 app_get(void); 模式管理接口的文件摆布: .. image:: ad14_15_mode_manage.png :alt: "图1 模式管理文件摆放" :align: center .. centered:: 图1 模式管理文件摆放 模式初始化函数 ################################ 函数int app_mg_init(APP_T app,void* param) ***************************************************************************************** 此函数初始化了第一个模式: 1. app :初始化的模式; 2. param: 初始化的模式参数; 函数void app(void) *************************************************************************************** 此函数为模式管理的入口函数,并且模式间的切换由该函数完成。 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 模式切换函数 ################################ 函数int app_switch(APP_T app,void* param) *************************************************************************************** 此函数可以切换到指定的模式: 1. app : 指定的app模式; 2. param: 切换模式参数; 函数int app_switch_next(void) *************************************************************************************** 此函数用来自动切换app到下一个模式,模式列表看APP_T。 函数int app_switch_priv(void) *************************************************************************************** 此函数用来自动切换app到上一个模式,模式列表看APP_T。 函数u8 app_get(void) *************************************************************************************** 此函数用来获取当前的app是在哪个模式。 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 常用工程配置文件 ################################# “app_config.c”文件 *************************************************************************************** "app_config.c"可以配置中断优先级,AUDIO参数,打印等。 详细请看章节“1.2.1 应用配置文件《app_config.c》介绍”。 函数u8 app_get(void) *************************************************************************************** "app_config.h"配置了串口,按键选项,按键音,SD卡使能,USB模块配置项。 .. image:: app_config.h.png :alt: "图2 “app_config.h”文件介绍" :align: center .. centered:: 图2 “app_config.h”文件介绍 code block 工程配置 *************************************************************************************** code block工程配置配置了一些模块使能,用户可以在这里选择开启和关闭相关的模块。 .. image:: codeblock_config.png :alt: "图3 "code block 工程配置" :align: center .. centered:: 图3 code block 工程配置