在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);		
}
相关推荐
三块石头10115 分钟前
车载ADC避坑:为什么ADC采集值偏低?
经验分享·stm32·单片机·嵌入式硬件·mcu·硬件架构·硬件工程
jianqiang.xue23 分钟前
ESP-IDF保姆级入门39|固件安全与安全启动全解:签名校验/Flash加密/防回滚/OTP密钥/知识产权保护,掌握工业级固件安全防护体系
单片机·物联网·esp32
llilian_1624 分钟前
时间统一系统 高精度时统设备选购避坑指南 授时系统
大数据·网络·人工智能·功能测试·单片机·嵌入式硬件·51单片机
en.en..36 分钟前
sizeof与strlen的区别(附UDP网络编程实战坑点)
单片机·嵌入式硬件
AOI小白新手上路1 小时前
韦东山IMX6ULL快速入门路线
嵌入式硬件
糖糖单片机设计1 小时前
基于 STM32 的智能净水器系统
stm32·单片机·嵌入式硬件
zcmodeltech1 小时前
火电厂模型能演示冷态启动和故障处理吗?——基于STM32与Modbus RTU的集控实训控制系统设计
数据结构·stm32·单片机·嵌入式硬件·能源
llilian_161 小时前
标准时间间隔发生器应用解决方案 脉冲发生器 时间测量仪
大数据·网络·人工智能·功能测试·单片机·嵌入式硬件·51单片机
桀人1 小时前
STM32之GPIO四种输出模式——P-MOS和N-MOS管的工作原理——双二极管钳位保护电路——上拉电阻
stm32·单片机·嵌入式硬件
HRTOS2 小时前
HRTOS 4.0 DEBUG:面向 8051 实时系统运行状态的轻量级调试组件
单片机·嵌入式硬件·51单片机