主要内容:中断
笔记资料引用于“百问网7天物联网智能家居训练班。
C程序执行方式:
1.轮询方式:即while1不断循环多个事件
缺点是:函数之间相互影响
while()
{
A();
B();
}
2.事件驱动方式:即开启中断
缺点是:当a、b中断同时发生,就会互相影响:
两个中断,同一时间只能处理一个
如果当前中断处理时间比较长,就会影响到另一个中断的处理
void main()
{
while (1)
{ if (get_key) process_key(); }
}
void key_isr() /* 孩子喊叫触发中断a */
{ key = xxx;
get_key = 1;
}
void b_isr() /* 同事发来信息触发中断b */
{ 回一个信息(); }
3.改进的事件驱动方式:即开启中断+回调函数设置标志位,在while中执行函数
优点是:中断处理很快,不会因为一个中断执行时间长而影响另一个。
缺点 :中断触发后续处理退化为轮询方式!!!
void main()
{
while (1)
{
if (crying == 1)
喂一口饭();
if (get_msg == 1)
回一个信息();
}
}<