这个是之前写的,最近看了一下发现有好多地方没有必要,反而使代码冗长和繁琐,所以修改了一下。https://blog.csdn.net/JIU_LU/article/details/100687820
/**********************************
*功能:长按开机,短按换挡,再次长按关机。
*详细:第一次长按3秒开机(使用变量key_flag区分是第一次长按还是第二次长按,
* 长按开机时,绿灯闪烁,未达到3秒不开机,且绿灯停止闪烁,绿灯闪烁作为
* 正在开机的提示),当开启时就已经自动是中档模式(可随自己的想法更改,此
* 时绿灯常亮),也就是说,只要开机就定位在中档(因为flag这个变量,可随自
* 己想法更改)。并且,因为else if(num>0&&num!=300)这条指令而不会直接进入
* 换挡程序(如果这条指令是else的话,就会连续执行换挡程序且一直下去直到关
* 机),短按换挡,且不会连续换挡(思路是:先检测按键是长短按之后,才会识
* 别是换挡还是关机),开机后,再一次长按3秒(此时长按灯不会闪烁,因为
* key_flag这个变量)才会关机。如果非要按着一直不松开超过6秒,也不会在关
* 机函数执行完后还在执行换挡程序(因为先检测按键长短按和key_flag这个变量,
* 就算按下100多秒,也属于按下超过3秒这个条件,而不会在一直按的同时连续
* 执行开机和关机函数)。应需要判断关机函数是否正确执行,所以关机后黄灯亮。
*
*