我需要一个30秒倒计时的定时器,最好能触发多个任务,求大虾帮忙!

时间:2023-01-25 07:56:17
原始的定时器太过麻烦,谁有好的代码,就别藏着了,请大虾们赐教!!

7 个解决方案

#1


要求不清晰.....

#2


比如,我串口发送命令,然后我要让muc30秒后,回复串口一个回馈,我要用到定时器。

#3


加一个秒表,这是新式方法,简单不麻烦

#4


引用 1 楼 great_bug 的回复:
要求不清晰.....

+

#5


什么 系统下 裸机?

#6


感觉你这会是一个比较麻烦的任务. 一般的,在等待的30秒内,MCU可能还需要处理其它的事情. 那么某些状态就需要记录下来. 也许可以考虑这样的程序:

while (true)
{
  sleep(1_tick);

  /*任务 1 */
  switch (state_1)
  {
  case 0: /*等30秒*/
    timer_1++;
    if (timer_1 == T_30S) {....}
    break;
  case 1:
    ....
  }

  /*任务 2 */
  switch (state_2) {.....}
}

#7


用定时器啊

#1


要求不清晰.....

#2


比如,我串口发送命令,然后我要让muc30秒后,回复串口一个回馈,我要用到定时器。

#3


加一个秒表,这是新式方法,简单不麻烦

#4


引用 1 楼 great_bug 的回复:
要求不清晰.....

+

#5


什么 系统下 裸机?

#6


感觉你这会是一个比较麻烦的任务. 一般的,在等待的30秒内,MCU可能还需要处理其它的事情. 那么某些状态就需要记录下来. 也许可以考虑这样的程序:

while (true)
{
  sleep(1_tick);

  /*任务 1 */
  switch (state_1)
  {
  case 0: /*等30秒*/
    timer_1++;
    if (timer_1 == T_30S) {....}
    break;
  case 1:
    ....
  }

  /*任务 2 */
  switch (state_2) {.....}
}

#7


用定时器啊