一乐电子

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

微信扫码登录

手机号码,快捷登录

手机号码,快捷登录

搜索
查看: 1892|回复: 5

[其他综合] 请教定时器可变延时写法

[复制链接]
发表于 2013-4-27 23:12 | 显示全部楼层 |阅读模式
写了个小软件有个需求,要延时时间从小到大变化
我现在是这样写的
让下面这段在主程序里面跑,延时就会从小变大。可是发现按键不灵敏了因为延时时间太长了
    us3++;    //让这个自加
    if(us3>=50000)   us3=0;
   delay_50ms(us3);

按键函数里面还有别的任务要执行,不能放在中断里面去扫描

我想把这个可变的定时,用定时器做,想了好久不知道怎么写出来,朋友们给指点一下吧。谢谢了~
 楼主| 发表于 2013-4-27 23:29 | 显示全部楼层
本帖最后由 gw168sh 于 2013-4-27 23:33 编辑

这样行吗,刚才又想了想

uint temp=0,temp1=100;

中断
{
temp++;
if(temp>=temp1)
{
temp=0;
temp1+=100;//会变的数,每进来1次加100
bz=1;     //定时到
if(temp1>=50000) temp1=100; //到最大值后在变成最小
}

主程序函数()

{
  if(bz)  //定时到
  {
  LED=~LED;
  bz=0;    //标志清零

  }

}
回复

使用道具 举报

发表于 2013-4-27 23:55 | 显示全部楼层
楼主想做呼吸灯》
回复

使用道具 举报

发表于 2013-4-27 23:57 | 显示全部楼层
2楼的思路貌似可以
回复

使用道具 举报

 楼主| 发表于 2013-4-28 10:22 | 显示全部楼层
11.jpg

貌似还可以哦。。呵呵
回复

使用道具 举报

发表于 2013-6-20 14:02 | 显示全部楼层
51的话直接用计时器的PWM方式不是挺好的吗。
回复

使用道具 举报

本版积分规则

QQ|一淘宝店|手机版|商店|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2025-11-1 08:10 , Processed in 0.035311 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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