当前位置: 代码迷 >> 综合 >> 嵌入式两种裸机编程模式
  详细解决方案

嵌入式两种裸机编程模式

热度:29   发布时间:2024-02-13 13:04:41.0

轮询系统

轮询系统伪代码
int main(void)
{
/* 硬件相关初始化 */
HardWareInit();

     /* 无限循环 */
for (;;) {
/* 处理事情 1 */
DoSomething1();

     /* 处理事情 2 */
DoSomething2();

     /* 处理事情 3 */
DoSomething3();
}
}

前后台系统

前后台系统伪代码
int flag1 = 0;
int flag2 = 0;
int flag3 = 0;

 int main(void)
{
/* 硬件相关初始化 */
HardWareInit();

     /* 无限循环 */
for (;;) {
if (flag1) {
/* 处理事情 1 */
DoSomething1();
}

     if (flag2) {
/* 处理事情 2 */
DoSomething2();
}

     if (flag3) {
/* 处理事情 3 */
DoSomething3();
}
}
}

 void ISR1(void)
{
/* 置位标志位 */
flag1 = 1;
/* 如果事件处理时间很短,则在中断里面处理
如果事件处理时间比较长,在回到前台处理 */
DoSomething1();
}

 void ISR2(void)
{
/* 置位标志位 */
flag2 = 1;
/* 如果事件处理时间很短,则在中断里面处理
如果事件处理时间比较长,在回到前台处理 */
DoSomething2();
}

 void ISR3(void)
{
/* 置位标志位 */
flag3 = 1;
/* 如果事件处理时间很短,则在中断里面处理
如果事件处理时间比较长,在回到前台处理 */
DoSomething3();
}

摘自:[野火?]《RT-Thread 内核实现与应用开发实战—基于STM32》

  相关解决方案