7 个解决方案
#1
要求不清晰.....
#2
比如,我串口发送命令,然后我要让muc30秒后,回复串口一个回馈,我要用到定时器。
#3
加一个秒表,这是新式方法,简单不麻烦
#4
+
#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) {.....}
}
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
+
#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) {.....}
}
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
用定时器啊