实时时钟(RTC)与I2C总线的应用与配置
1. 实时时钟(RTC)相关
在实时系统中,RTC起着至关重要的作用,它能提供准确的时间信息。以下将详细介绍RTC的相关内容。
1.1 互斥锁(Mutexes)的使用
在多任务环境中,为了避免多个任务竞争共享资源,常常需要使用互斥锁。例如,在格式化完整的文本行时,使用互斥锁可以防止其他任务在当前任务打印文本的过程中插入打印操作。以下是互斥锁相关的代码:
// 互斥锁锁定函数
static void mutex_lock(void) {
xSemaphoreTake(h_mutex,portMAX_DELAY);
}
// 互斥锁解锁函数
static void mutex_unlock(void) {
xSemaphoreGive(h_mutex);
}
在主程序中,通过以下代码创建互斥锁的句柄:
h_mutex = xSemaphoreCreateMutex();
当锁定(获取)互斥锁时,会发生以下情况:
1. 如果互斥锁已经被锁定,调用任务将被阻塞(等待),直到它变为可用。
2. 当互斥锁可用时,会尝试锁定它。如果另一个竞争任务先获取了锁,则返回步骤1,继续阻塞直到互斥锁再次可用。
3. 否则,锁现在由调用者拥有,直到互斥锁被解锁。
1.2 演示程序
演示程序可以通过基于USB的TTL UART或直接通过USB电缆运行。在
超级会员免费看
订阅专栏 解锁全文
646

被折叠的 条评论
为什么被折叠?



