在DelayMS加入bsp_Idle,把单片机延时空闲利用起来

在单片机应用中,使用延时函数 DelayMS() 会导致程序在延时期间无法执行其他任务,

这可能影响系统对一些响应时间要求较高的任务的处理。

为了提高系统的响应速度和利用单片机的空闲时间,可以在延时函数中加入 bsp_Idle() 函数,

以允许在延时期间执行一些低优先级的任务或处理其他需要即时响应的操作。

像 modbus 数据解析这样的通讯任务,在需要及时响应的情况下,

利用单片机的空闲时间通过 bsp_Idle() 来处理这类任务能够显著提高通讯的响应速度。

这种做法对于确保通讯的稳定性和即时响应至关重要,而不至于被延时函数影响而导致通讯出现问题。

c 复制代码
void bsp_DelayMS(uint32_t n)
{
	DISABLE_INT();
	s_uiDelayCount = n;
	s_ucTimeOutFlag = 0;
	ENABLE_INT();  			

	while (1)
	{
		bsp_Idle();			
		if (s_ucTimeOutFlag == 1)
		{
			break;
		}
	}
}

void bsp_Idle(void)
{
    if( HS_MOD1_MODE ==0) 
			MODS_Poll(0);
		else
			MODH_Poll(0);		
}
相关推荐
夜月yeyue21 小时前
Linux 调度类(sched_class)
linux·运维·c语言·单片机·性能优化
日更嵌入式的打工仔21 小时前
实用:嵌入式执行时间测量常用方法
笔记·单片机
dreamczf1 天前
如何确定项目中的产品选型-物联网设备
单片机·物联网·嵌入式软件
Free丶Chan1 天前
关于KEIL下载提示UnKown CPU(STM32)
stm32·单片机·嵌入式硬件
boneStudent1 天前
Day35:DMA 原理与架构
stm32·单片机·嵌入式硬件
Vizio<1 天前
STM32HAL库开发笔记-GPIO输入
笔记·stm32·单片机·嵌入式硬件
硅农深芯1 天前
什么时候要用开漏输出(open drain output)?
单片机·嵌入式硬件·gpio·开漏输出·open drain
电子工程师-C511 天前
基于51单片机的家居环境监测系统
单片机·嵌入式硬件·51单片机
Big_潘大师1 天前
十轴IMU模块-AHRS角度姿态、加速度计、磁力计、气压陀螺仪传感器
stm32·单片机·嵌入式硬件·arduino·陀螺仪
ghomeway1 天前
keil使用虚拟的调试串口给调试助手发送数据
单片机·嵌入式硬件