标题: 51单片机 关于中断函数的一些问题 [打印本页]

作者: 军师祭酒    时间: 2017-5-9 17:46
标题: 51单片机 关于中断函数的一些问题
我想在 中断函数中 调用 子函数,请问   中断函数中可以调用子函数吗   怎么调用  能具体说一下吗???谢谢  谢谢  谢谢

作者: Meceda    时间: 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); }
作者: Meceda    时间: 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值。
注意  子函数要在主函数前进行声明。
作者: aiwang51    时间: 2017-5-9 20:12
不可以的
作者: aiwang51    时间: 2017-5-9 20:14
如果中断函数和其他地方同时调用一个函数,那么除非该函数不需要在内部分配临时变量,   否则就会出错。百度就知道了
作者: zl2168    时间: 2017-5-9 21:12
中断函数中可以调用子函数,直接调用就是了,注意工作寄存器要一致。
作者: Sawardeakar    时间: 2019-2-2 23:19
中断函数你可看成是高于主函数的函数,所以主函数能做的事他也能做,不要给中断给吓着了




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