#if EN_OS_INT_ENTER >0 #pragma disable 始终搞不明白这两行代码什么意思。
#if EN_OS_INT_ENTER >0 //是允许系统管理中断嵌套??????? #pragma disable 禁止中断????????? 如果是禁止中断,又怎么实现的中断嵌套呢???? 以下是陈明计提供的串口中断实例: /********************************************************************************************************* ** 函数名称: comm ** 功能描述: 串口中断处理程序 ** 输 入: 无 ** 输 出: 无 ** 全局变量: 无 ** 调用模块: 无 ** ** 作 者: 陈明计 ** 日 期: 2002年12月4日 **------------------------------------------------------------------------------------------------------- ** 修改人: ** 日 期: **------------------------------------------------------------------------------------------------------ ********************************************************************************************************/ #if EN_OS_INT_ENTER >0 #pragma disable /* 除非最高优先级中断,否则,必须加上这一句 */ #endif void comm(void) interrupt 4 { uint8 data temp; if (RI == 1) { #if EN_OS_INT_ENTER >0 OS_INT_ENTER(); #endif RI = 0; OSQIntPost(SerialInData,SBUF); OSIntExit(); return; } if (TI == 1) { TI = 0; if (OSQAccept(&temp,SerialOutData) == OS_Q_OK) { SBUF = temp; } else { SerialCanSend = 1; } } } |