// 快放假了,手头上也没有太多的工作要做,所以,想写写东西,算是对这一年来在单片机程序设计方面的工作进行下总结吧。
首先看下面这两个函数(发送消息、接收消息)
#define MSG_DEEP 16
u8 MsgPool[MSG_DEEP];
u8 inptr = 0,outptr = 0;
//发送消息
void PutMsg(u8 msg)
{
IE0_bit.EA = 0;
MsgPool[inptr] = msg;
inptr++;
if(inptr == MSG_DEEP)
inptr = 0;
IE0_bit.EA = 1;
}
//接收消息
u8 GetMsg(void)
{
u8 msg;
IE0_bit.EA = 0;
if (outptr == inptr)
{
IE0_bit.EA = 1;
return NO_MSG;
}
msg = MsgPool[outptr];
outptr++;
if(outptr == MSG_DEEP)
outptr = 0;
IE0_bit.EA = 1;
return msg;
}
//无论是发送消息指针,还是接收消息指针,都是始终指向下一个消息。消息池的深度为16个。