4121|14

141

帖子

0

TA的资源

一粒金砂(高级)

楼主
 

请教问题(奖励10芯币), [复制链接]

2芯积分
void alarm(void)
{
 加一句
if(carry_count*250+pulse_count>=alarm_l)  
Alarm=0;//需要跳过的语句

if(carry_count*250+pulse_count<alarm_h)   
Alarm=1;//要执行的语句
}

我想要在执行前检测如果Alarm=0;就跳过    if(carry_count*250+pulse_count>=alarm_l)  
Alarm=0;  这句,直接执行下面的语句,



此帖出自51单片机论坛

最新回复

void alarm(void) {   if((carry_count*250+pulse_count>=alarm_l)&&(Alarm != 0))   Alarm=0;   if(carry_count*250+pulse_count  详情 回复 发表于 2012-7-24 14:26
点赞 关注
 

回复
举报

61

帖子

0

TA的资源

一粒金砂(高级)

沙发
 
void alarm(void)
{
if(Alarm==0)
        goto   LABEL;
    if(carry_count*250+pulse_count>=alarm_l)  
        Alarm=0;//需要跳过的语句
LABEL:
    if(carry_count*250+pulse_count         Alarm=1;//要执行的语句
}
此帖出自51单片机论坛
 
 
 

回复

141

帖子

0

TA的资源

一粒金砂(高级)

板凳
 
Build target 'Target 1'
assembling STARTUP.A51...
compiling chengxu.c...
CHENGXU.C(218): error C202: 'LABEL': undefined identifier
CHENGXU.C(221): error C233: 'LABEL': undefined label
Target not created
此帖出自51单片机论坛
 
 
 

回复

141

帖子

0

TA的资源

一粒金砂(高级)

4
 
void alarm(void)
{
    if(Alarm==0)
       goto LABEL;

(A)if(carry_count*250+pulse_count>=alarm_l)  
Alarm=0;

LABEL:
 (B)if(carry_count*250+pulse_count<alarm_h)  
Alarm=1;
}

如果Alarm=0跳转到(B)处执行,否则就执行(A).我试了,这个不能实现目标。
此帖出自51单片机论坛
 
 
 

回复

2453

帖子

19

TA的资源

五彩晶圆(中级)

5
 
void alarm(void)
{
switch(alarm)
case(1):if(carry_count*250+pulse_count>=alarm_l)  
           Alarm=0;//需要跳过的语句


case(0):if(carry_count*250+pulse_count Alarm=1;//要执行的语句
default;
}
此帖出自51单片机论坛
 
 
 

回复

12

帖子

0

TA的资源

一粒金砂(中级)

6
 
这个应该简单,先检测Alarm是否等1,如果等1,语句全执行,如果不等1(即等0),只执行if(carry_count*250+pulse_count Alarm=1;   ,你试试!


void alarm(void)
{
if(Alarm=1)
{
if(carry_count*250+pulse_count>=alarm_l)  
Alarm=0;//需要跳过的语句
}

if(carry_count*250+pulse_count Alarm=1;//要执行的语句
}
此帖出自51单片机论坛
 
 
 

回复

141

帖子

0

TA的资源

一粒金砂(高级)

7
 
迷糊了。都不行的
此帖出自51单片机论坛
 
 
 

回复

119

帖子

0

TA的资源

纯净的硅(初级)

8
 
void alarm(void)
{
if(Alarm!=0)
{
加一句
if(carry_count*250+pulse_count>=alarm_l)  
Alarm=0;//需要跳过的语句}else
{
if(carry_count*250+pulse_count Alarm=1;//要执行的语句
}

}
此帖出自51单片机论坛
 
 
 

回复

141

帖子

0

TA的资源

一粒金砂(高级)

9
 
void alarm(void)
{
加一句
if(carry_count*250+pulse_count>=alarm_l)  
Alarm=0;//需要跳过的语句

if(carry_count*250+pulse_count Alarm=1;//要执行的语句
}

我想要在执行前检测如果Alarm=0;就跳过    if(carry_count*250+pulse_count>=alarm_l)  
Alarm=0;  这句,直接执行下面的语句,
此帖出自51单片机论坛
 
 
 

回复

2453

帖子

19

TA的资源

五彩晶圆(中级)

10
 
void alarm(void)
{
switch(Alarm){
case(0):break;
case(1):
if(carry_count*250+pulse_count>=alarm_l)
Alarm=0;//需要跳过的语句

if(carry_count*250+pulse_count Alarm=1;//要执行的语句
break;
default;
}
}
此帖出自51单片机论坛
 
 
 

回复

4008

帖子

0

TA的资源

版主

11
 
goto肯定可以的,怀疑你的逻辑被编译器优化了。不用管他,只要结果对就行了
此帖出自51单片机论坛
 
 
 

回复

21

帖子

0

TA的资源

一粒金砂(中级)

12
 
void alarm(void)
{
      if(Alarm!=0)
{
      if(carry_count*250+pulse_count>=alarm_l)  
      Alarm=0;//需要跳过的语句
}
else
   {
               if(carry_count*250+pulse_count                Alarm=1;//要执行的语句
   }
}
此帖出自51单片机论坛
 
 
 

回复

223

帖子

0

TA的资源

一粒金砂(高级)

13
 

回复楼主

写程序的方法很多,上面有好多都是按你的要求写的。但是,我想知道的是你为什么要这样做呢? 我想这个问题能一段时间后自己就能解决了,并且到那个时候你会发现今天的这些问题都不算什么了,或者你会疑惑,当初我问什么会这样写呢?
此帖出自51单片机论坛
 
 
 

回复

11

帖子

0

TA的资源

一粒金砂(中级)

14
 
void alarm(void)
{
  if((carry_count*250+pulse_count>=alarm_l)&&(Alarm != 0))
  Alarm=0;

  if(carry_count*250+pulse_count   Alarm=1;
}
很简单啊。。。。。。
此帖出自51单片机论坛
 
 
 

回复

11

帖子

0

TA的资源

一粒金砂(中级)

15
 

很简单啊。。。。

void alarm(void)
{
  if((carry_count*250+pulse_count>=alarm_l)&&(Alarm != 0))
  Alarm=0;

  if(carry_count*250+pulse_count   Alarm=1;
}
此帖出自51单片机论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表