开关机实现方式介绍

硬开关机

硬开关机意思是芯片一供电就开机,断电就是关机。常见的有DC直流电源直插开机,拔掉关机;拨动开关等。

这种开关机方式就较为简单了,不需要做太多处理,主要在代码中把以下函数注销即可:

杰理AC692X---开关机实现方式介绍

把这个函数注销以后,则芯片上电就直接开机了,不做电压的其他判断。

 

软开关机

软开关机就是说芯片一直供电,关机状态下实际上是进入了休眠模式,开机就是把芯片从休眠模式中唤醒,注意只有PR口可以唤醒芯片,所以如果使用的芯片型号没有PR口,就做不了这种软关机方式,需要用双向二极管加MOS管的方式来实现按键开关机。常用的软开关机引脚是PR2口。

杰理AC692X---开关机实现方式介绍

把这个函数取消注销,然后定位到函数实体中看(check_power_on_voltage):

杰理AC692X---开关机实现方式介绍

这个函数较长,我们只看关键部分。

POWER_KEY_INIT();是初始化开机引脚,下面的判断是开机计数 ,如果按键按下了,时间持续到设定的时长,就开机,按到一般松开了或者没计数到设定市场都不开机。

右键选择POWER_KEY_INIT();,定义到开机按键的宏定义处可以修改开机引脚:

杰理AC692X---开关机实现方式介绍

 

那么关机改怎么做呢?

打开按键宏定义

把以下位置的GPIO按键宏定义置1:

杰理AC692X---开关机实现方式介绍

这样我们就选择了使用GPIO按键了。

按键引脚修改

杰理AC692X---开关机实现方式介绍

这里我们定义了IO_KEY_ONLY_ONE,所以只有一个按键,引脚使用的是PR2引脚,如果想用多个按键,则注销IO_KEY_ONLY_ONE这个宏定义,然后参照下面额#else后面的KEY_INIT()去增加自己的按键引脚定义。

 

 

 

 

然后打开IO按键的C文件:

杰理AC692X---开关机实现方式介绍

 

可以看到当KEY0按下时,键值返回0,这个0对应到按键列表里面的0,如下:

杰理AC692X---开关机实现方式介绍

意思是当KEY0按下是,执行MSG_BT_PP这个消息,这个消息就是控制手机的音乐播放暂停的功能。另外按键还可以分为长按、按住、长按抬起的功能:

杰理AC692X---开关机实现方式介绍

这里做的功能是长按关机,至于关机长按时间的设置在如下位置:

杰理AC692X---开关机实现方式介绍

根据项目需求,改成符合项目的值即可。

在692X的SDK中,各个模式(U盘,AUX,FM,蓝牙)的按键消息是分开的,都需要单独配置,跟上面以蓝牙按键为例的配置是一样的:

杰理AC692X---开关机实现方式介绍

相关文章:

  • 2021-11-13
  • 2021-08-23
  • 2021-11-09
  • 2021-04-06
  • 2021-11-03
  • 2021-08-08
  • 2021-07-22
  • 2021-08-21
猜你喜欢
  • 2021-06-14
  • 2021-05-16
  • 2022-01-02
  • 2021-08-28
  • 2021-06-18
  • 2021-05-31
  • 2021-10-21
相关资源
相似解决方案