标题: C语言判断程序怎么写? [打印本页]

作者: hjx5548    时间: 2022-4-4 06:37
标题: C语言判断程序怎么写?
是这样的if(key=1)执行p1=1;p3=1;否则执行p0=0;但是在key=1时的执行过程中,如果p1=1超过1分钟后,应该停止p1=0
作者: lkc8210    时间: 2022-4-4 12:59

  1. 用定时器产生1ms心跳Flag1ms = 1;
  2. unsigned int i = 0;//全局变量
  3. if(key1==1)
  4. {
  5.         if(Flag1ms)
  6.         {
  7.                 Flag1ms = 0;
  8.                 if(i < 0xFFFF)i++;//防止溢出
  9.                 if(i < 60000)
  10.                 {
  11.                         p0=1;
  12.                 }
  13.                 else
  14.                 {
  15.                         P0=0;
  16.                 }
  17.         }
  18.         p3=1;
  19. }
  20. else
  21. {
  22.         p0=0;
  23.         i=0;
  24. }
复制代码

作者: hjx5548    时间: 2022-4-6 08:16
lkc8210 发表于 2022-4-4 12:59

如果2分钟怎样修改?
作者: bulzz    时间: 2022-4-6 10:02
就在if(key=1)后面再写个时间判断程序呗,根据单片机晶振写个延时程序,在应用到这里就可以了
作者: chen_天天来    时间: 2022-4-6 10:06
hjx5548 发表于 2022-4-6 08:16
如果2分钟怎样修改?

如果是我的话,就把那个60000再执行一次,不就是2分钟了
作者: wd1988    时间: 2022-4-6 10:24
hjx5548 发表于 2022-4-6 08:16
如果2分钟怎样修改?

直接改定时器生产的时间,原来1ms产生一次Flag1ms  改成2ms产生一次Flag2ms.
作者: Hephaestus    时间: 2022-4-6 14:14
千万别写if(key=1)这种!改成if(1=key)你就知道错在哪里了。
作者: hjx5548    时间: 2022-4-6 16:20
chen_天天来 发表于 2022-4-6 10:06
如果是我的话,就把那个60000再执行一次,不就是2分钟了

具体怎么修改最执行一次
作者: hjx5548    时间: 2022-4-6 16:21
wd1988 发表于 2022-4-6 10:24
直接改定时器生产的时间,原来1ms产生一次Flag1ms  改成2ms产生一次Flag2ms.

关键我其它程序里面有1ms,不能修改2ms啊
作者: hjx5548    时间: 2022-4-6 16:22
Hephaestus 发表于 2022-4-6 14:14
千万别写if(key=1)这种!改成if(1=key)你就知道错在哪里了。

能不能说说原理
作者: 非凡科技    时间: 2022-4-6 22:44
(key=1)少了一个等号,超过一分钟需要用定时器,到时间执行P1等于1就行了




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1