共2条 1/1
1
跳转至
页
uc,os 读传感器数据,不用uc/os正常,用了读数错误,原因在哪里?真切求助
![](http://m.amcfsurvey.com/uphotos/jackwang/thumb/avatar.jpg)
问 自己写了程序,运行正常.移植到消息循环下,读数错误,这到底该从哪里下手解决呢?
答
1: 详细点说明
答
2: 问题是这样的用1-wire的传感器做测量,不用
uc/
os系统调试程序很正常.后来为了用多任务,使用
uc/
os-ii的消息循环机制,发现从传感器上读到的数据有错误,这是怎么回事呢?请指教.
答
3: !读数据之前加OS_ENTER_CRITICAL(),读数据之后加OS_EXIT_CRITICAL()试试!
答
4: 好的,我试试,行不行给大家一个结果我这就试试,谢谢hexenzhou
答
5: 不行啊加上OS_ENTER_CRITICAL和OS_EXIT_CRITICAL()这样也不行啊
答
6: 一线协议对时间有很高的要求分短时序和长时序,读写过程必须严格保证时序时间长度,如果采用关中断,长的关中断,需要好几个毫秒,如果不关中断,有可能时间长度不符合要求
答
7: 那有什么解决的办法呢?在不加载系统时,工作正常,说明时序是对的。放在uC/OS-II下,现在考虑的确是应该开/关中断的,不过使用了OS_ENTER_CRITICAL和OS_EXIT_CRITICAL()也不行,这又是怎么回事呢?不明白pubstar的意思,代码在OS_ENTER_CRITICAL和OS_EXIT_CRITICAL()之间执行,也要分开/关中断需时的长短么?请各位指教。
答
8: 想也是时序方面的问题。把其他任务停掉try一try此外,把这个任务的代码贴出来看看与你说的消息有没有关系?
答
9: 不如将几种时间单独,重复产生,用示波器看一下时序
答
10: 在多任务下很难测时序的pubstar,很难测的。greatbin,用你的方法试试,10个数据中有1个错的,一用多任务就没一个对的了。怎么办?
答
11: 可能的话,代码贴出来看看
答
12: greatbin,我换了I2C的片子不过还有一个问题,怎么测量任务的运行时间呢?
答
13: 请看UCOS-II关于OSStat部分
答
14: 我也遇到过用1-wire的产品在uC/OS下出错的不过是有对有错,没有全错,即使放在临界代码段也不行,问题也没搞清楚;(,1-wire的东西对时序要求太严格了。
共2条 1/1
1
跳转至
页
回复
有奖活动 | |
---|---|
5月直播——【探索边缘智能的未来——直播盛宴即将开启!】 | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
【有奖活动】智能可穿戴设备AR/VR如何引领科技新潮流! | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 |