硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1657|回复: 3
收起左侧

[FreeRTOS] 关于FreeRTOS的us级延时和任务划分

[复制链接]

8

主题

21

回帖

45

积分

新手上路

积分
45
发表于 2022-6-2 09:54:31 | 显示全部楼层 |阅读模式
关于FreeRTOS小白提问:
1、FreeRTOS里面的时钟默认我看是设置成1ms(#define configTICK_RATE_HZ                                ( ( TickType_t ) 1000 )),
也就是1ms切换任务,那如果我要用I2C如何实现us级别的延时呢?
2、如果我找到了us级的延时,是否是读写i2C时程序循环等待i2C的时序,这和操作系统轮流使用CPU的思路对应不上呢?
3、如果我有这样的需求:读个i2c数据,根据数据PWM方式控制IO,再读i2C和AD,业务逻辑后输出DA、输出到串口数据、输出到I2C,我大致如何建任务呢?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106574
QQ
发表于 2022-6-3 00:27:03 | 显示全部楼层
关于I2C的问题是这样,裸机和OS下一个用法即可。

很多I2C器件是边沿触发识别,高低电平时间长点不影响。
1、容错,像ADC,传感器类I2C,出错没关系,使用下次的。稍微影响的像EEPROM,做好应答,错误了重新写入即可。
2、不是很频繁的读写,放在稍微高优先级的任务执行即可,只要不是任务打断,仅中断打断基本影响不大。
回复

使用道具 举报

333

主题

2031

回帖

3035

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3035
发表于 2022-6-6 10:39:56 | 显示全部楼层
本帖最后由 caicaptain2 于 2022-6-6 10:43 编辑
eric2013 发表于 2022-6-3 00:27
关于I2C的问题是这样,裸机和OS下一个用法即可。

很多I2C器件是边沿触发识别,高低电平时间长点不影响。 ...

OS下,有函数可以禁止任务切换。 比如参考 https://blog.csdn.net/qq_15181569/article/details/105528699
参考 http://t.zoukankan.com/yangguang-it-p-7168336.html
回复

使用道具 举报

0

主题

3

回帖

3

积分

新手上路

积分
3
发表于 2022-8-29 17:16:46 | 显示全部楼层
IIC总线us级延时操作期间进入临界区,这样就不会进行任务调度了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-25 09:41 , Processed in 0.163988 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表