麻烦,很少用中断,就算不得不用,也只是在中断里响应尽可能少的语句,
如楼上,都是查询,虽长期要点用查询时间,但是不会因为中断是影响关键程序段.
------其实是本人对中断的使用不熟.
可以试下,其它中断如下操作:(如主要中断为A,次要中断为B)
A中断执行时,中断A标志(如:char A_INT_Flag) A_INT_Flag = 1;
当A中断结束时:A_INT_Flag = 0;
以标志A中断程序是否在执行中;
B有效时:中断B状态(如:char B_STAT_Flag)
#Pro........... B--------这段我还不会弄,就是中断发生是,执行这部分内容(下同)
void B_init (void)
{
B_STAT_Flag = 0;
//B 中断程序
} else
{
B_STAT_Flag = 1;
}
#Pro........... A
void A_Init(vod)
{
A_INIT_Flag = 1;
//中断A程序开始
......
//中断A程序后段
A_INIT_Flag = 0;
if (B_STAT_Flag == 1)
B_init();
}
注:中是一个思路,如何处理中断执行时,如何避免中断冲突等问题不在上面考虑范围内
|