找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4013|回复: 6
打印 上一主题 下一主题
收起左侧

51单片机 关于中断函数的一些问题

[复制链接]
跳转到指定楼层
楼主
ID:192235 发表于 2017-5-9 17:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我想在 中断函数中 调用 子函数,请问   中断函数中可以调用子函数吗   怎么调用  能具体说一下吗???谢谢  谢谢  谢谢
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:194608 发表于 2017-5-9 20:07 | 只看该作者
void dis(int temp) {                   P2=0xfe;                 P1=dis_dat[temp/10];                 delay(100);                            P2=0xfd;                 P1=dis_dat[temp%10];                 delay(100);                          P2=0xfb;                 P1=0x9c;                 delay(100);                 P2=0xf7;                 P1=0xc6;                 delay(100); }
回复

使用道具 举报

板凳
ID:194608 发表于 2017-5-9 20:12 | 只看该作者
void dis(int temp)
{
                  P2=0xfe;
                P1=dis_dat[temp/10];
                delay(100);
          
                P2=0xfd;
                P1=dis_dat[temp%10];
                delay(100);
       
                P2=0xfb;
                P1=0x9c;
                delay(100);

                P2=0xf7;
                P1=0xc6;
                delay(100);
}
void key() interrupt 0 using 3
{
        temp++;
       dis(temp);
                       
}
可以  如以上程序:按住外部中段,temp加一 ,并显示temp值。
注意  子函数要在主函数前进行声明。
回复

使用道具 举报

地板
ID:84299 发表于 2017-5-9 20:12 | 只看该作者
不可以的
回复

使用道具 举报

5#
ID:84299 发表于 2017-5-9 20:14 | 只看该作者
如果中断函数和其他地方同时调用一个函数,那么除非该函数不需要在内部分配临时变量,   否则就会出错。百度就知道了
回复

使用道具 举报

6#
ID:111634 发表于 2017-5-9 21:12 | 只看该作者
中断函数中可以调用子函数,直接调用就是了,注意工作寄存器要一致。
回复

使用道具 举报

7#
ID:469932 发表于 2019-2-2 23:19 | 只看该作者
中断函数你可看成是高于主函数的函数,所以主函数能做的事他也能做,不要给中断给吓着了

评分

参与人数 2黑币 +70 收起 理由
areyouok + 35
jinsheng7533967 + 35

查看全部评分

回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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