打印

在51单片机的定时器0中断函数中用retun是不是跳出中断程序啊?请大侠帮忙指教,谢谢1

[复制链接]
3635|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
kuaile1986sbj|  楼主 | 2013-6-10 15:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void  led_flash_and_scroll() interrupt 1
{
      if(++k<35)  return ;
      k=0;
      switch(i)
       {
           case 0: B1=~B1;break;
           case 1: G1=~G1;break;
           case 2: R1=~R1;break;
           case 3: Y1=~Y1;break ;
            default:i=0;
        }
    if(++j<300) return;
    j=0;
    P0=0xff;
    i++;
}

相关帖子

沙发
NE5532| | 2013-6-10 18:26 | 只看该作者
是。c编译器自动生成退出中断的代码。

使用特权

评论回复
板凳
肖恩till| | 2013-6-10 20:50 | 只看该作者
return成立   就会跳出这个中断啦

使用特权

评论回复
地板
ballack_linux| | 2013-6-10 20:54 | 只看该作者
按语法来说函数返回值为void型的 函数体内不能出现return语句

使用特权

评论回复
5
NE5532| | 2013-6-10 22:06 | 只看该作者
ballack_linux 发表于 2013-6-10 20:54
按语法来说函数返回值为void型的 函数体内不能出现return语句

是不能return变量或立即数,return是随时允许滴。

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
xyz549040622 + 1
6
ballack_linux| | 2013-6-11 15:24 | 只看该作者
NE5532 发表于 2013-6-10 22:06
是不能return变量或立即数,return是随时允许滴。

呵呵 是这样的吗 我那是谭浩强先生书里的原话哈  

使用特权

评论回复
7
NE5532| | 2013-6-11 16:06 | 只看该作者
ballack_linux 发表于 2013-6-11 15:24
呵呵 是这样的吗 我那是谭浩强先生书里的原话哈

哦?多少页呢,我去看看。不过谭浩强前辈是没有搞单片机的。

使用特权

评论回复
8
pangencao| | 2013-6-12 15:18 | 只看该作者
return 为调到函数尾部,之后该咋处理还咋处理。

使用特权

评论回复
9
ayb_ice| | 2013-6-13 08:15 | 只看该作者
是返回不是跳出

使用特权

评论回复
10
杨爱林林| | 2013-6-13 08:23 | 只看该作者
return 是随时可以出现的
本意就是结束函数

使用特权

评论回复
11
dirtwillfly| | 2013-6-14 08:32 | 只看该作者
第一次见这种用法,学习了。
一般情况都是让中断里的程序尽量的短,不是必须放在中断里的语句尽量都放在外面

使用特权

评论回复
12
成全1309| | 2013-6-15 08:18 | 只看该作者
貌似有人说返回,有人说跳出啊。。好吧帮顶一个,等大神求解

使用特权

评论回复
13
study1234| | 2013-6-15 12:41 | 只看该作者
return 就是返回
在普通的函数里面就是函数退出。可以带返回值
在中断函数里面也是退出中断函数 ,当然条件是这一层就是中断函数。如果是中断函数调用的函数退出则只是返回。

其实可以这样理解:
不管函数里面有几个return或者一个return也没。普通函数或者中断函数都有一个出口。
当然这两个出口是有所区别的。对51,除了堆栈操作外,可以理解成ret和reti的区别。

return就是到那个出口的地方

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
xyz549040622 + 1
14
943096020| | 2013-6-26 13:00 | 只看该作者
学学习习了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

2

帖子

0

粉丝