void delay_osschedlock(void) { #ifdef CPU_CFG_CRITICAL_METHOD //使用UCOSIII OS_ERR err; OSSchedLock(&err); //UCOSIII的方式,禁止调度,防止打断us延时 #else //否则UCOSII OSSchedLock(); //UCOSII的方式,禁止调度,防止打断us延时 #endif }
时间: 2023-12-15 16:04:45 浏览: 162
这是一个延时函数,用于在特定情况下禁止任务调度,以防止中断延时操作。根据编译选项,该函数支持两种不同的操作系统:UCOSIII和UCOSII。
在UCOSIII中,使用了`OSSchedLock`函数来禁止任务调度,该函数接受一个指向`OS_ERR`类型的参数`err`,用于存储可能出现的错误信息。
而在UCOSII中,直接使用`OSSchedLock`函数来禁止任务调度,无需传递错误参数。
这样做是为了确保延时操作不会被任务切换所打断。
阅读全文