矿石收音机论坛

 找回密码
 加入会员

QQ登录

只需一步,快速开始

搜索
查看: 5154|回复: 9

一分钟待机的问题。请高人们指教

[复制链接]
     
发表于 2018-8-29 15:37:29 | 显示全部楼层 |阅读模式
一个蓝牙音箱的面板。4个按键,不按的话,一分钟,要求led灯变暗;按键有操作的时候,led灯变亮。(led灯全程是开着的)(51核单片机 不能进入休眠状态)。
高人们指导下,应该怎么去做。
     
发表于 2018-8-29 15:48:26 | 显示全部楼层
这个简单的功能不需要上单片机吧
回复 支持 反对

使用道具 举报

     
发表于 2018-8-29 15:57:47 | 显示全部楼层
定时器加按键扫描可以解决了!
回复 支持 反对

使用道具 举报

     
发表于 2018-8-29 20:00:44 来自手机 | 显示全部楼层
好像搞个三极管延时就能实现的
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2018-9-3 12:59:52 | 显示全部楼层
xzf586 发表于 2018-8-29 15:57
定时器加按键扫描可以解决了!

高人,框架应该怎么写呀?按键扫描和开关灯都放到一个定时器里去吗?
回复 支持 反对

使用道具 举报

     
发表于 2018-9-3 13:15:34 | 显示全部楼层
我一般是专门开个定时做这些事情,比如使用一个定时器,1ms中断一次.
然后各种FLAG++,某个标识到设置值时设置另外一个FLAG,大循环里面来处理,该干嘛干嘛.

软件框架叫"定时器驱动事件",我自己起的名字别当真.
回复 支持 反对

使用道具 举报

     
发表于 2018-9-3 13:27:27 | 显示全部楼层
HSOS.rar (1.26 KB, 下载次数: 30)
使用例程:
HSOS.C里面的定时器函数需要你自己去补充完整,里面有10个可以使用的软定时器,一般软件是足够了的,不够你就继续扩充.在大循环里面加上checktimer(); 或是中断里加上,考虑是51,加到大循环就可以了.
void debug_flag(void)
{
    printf(" APP IS RUN \r\n");
}

void debug_on(void)
{
    stoptimer(1);//先停止
    debug_flag();//要执行的函数
    starttimer(1, 1000, debug_on);//定时 1000ms后执行
}
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2018-9-11 09:18:00 | 显示全部楼层
haisens 发表于 2018-9-3 13:27
使用例程:
HSOS.C里面的定时器函数需要你自己去补充完整,里面有10个可以使用的软定时器,一般软件是足够 ...

高人,我先试试。因为我用的单片机,自己带触摸的,自己有一个库。自己再加定时器之类的功能,一搞就出问题。
回复 支持 反对

使用道具 举报

     
发表于 2018-9-12 13:31:13 | 显示全部楼层
led要用PWM控制亮度的
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2018-11-23 10:34:40 | 显示全部楼层
haisens 发表于 2018-9-3 13:27
使用例程:
HSOS.C里面的定时器函数需要你自己去补充完整,里面有10个可以使用的软定时器,一般软件是足够 ...

谢谢高人。搞定了。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入会员

本版积分规则

小黑屋|手机版|矿石收音机 ( 蒙ICP备05000029号-1 )

蒙公网安备 15040402000005号

GMT+8, 2025-5-1 01:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表