xujianglun1 发表于 2012-11-28 09:31:30

在中断中向串口发送数据,*** WARNING L15: MULTIPLE CALL TO SEGMENT

我用51核的单片机,
在其外部中断中,通过串口向电脑发送数据,以监测程序运行情况,
现在程序报:*** WARNING L15: MULTIPLE CALL TO SEGMENT

void INT0_PRG() interrupt 0
{
if (TF0) TF0 = 0;
   Send_RS232_PC_Byte(TH0);


不知道若   Send_RS232_PC_Byte(TH0);
用的时间过多,在中断中,会发什么情况,
程序将如何执行了,?

lixin91985 发表于 2012-11-28 09:35:17

你的MCU 不支持回调,中断中的函数另外抄一遍就可以了。

mTouch 发表于 2012-11-28 11:58:03

将该函数定义允许回调,可重入即可!

xujianglun1 发表于 2012-11-28 13:57:50

会不会发生如下,当第一个中断还没有执行完,又来一个中断,
去执行第二个中断了,

mcu_mouse 发表于 2012-11-28 14:00:25

Send_RS232_PC_Byte(TH0);
这个函数在中断外部也被别的函数调用了。51里面用回调貌似不好用。还是像2楼说的另外写一个中断里面发送的函数好了。
页: [1]
查看完整版本: 在中断中向串口发送数据,*** WARNING L15: MULTIPLE CALL TO SEGMENT