OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 7007|回复: 11

关于在UCOSSII里运行红外例子的问题

[复制链接]

4

主题

56

帖子

0

精华

初级会员

Rank: 2

积分
95
金钱
95
注册时间
2013-7-18
在线时间
0 小时
发表于 2013-12-19 21:38:17 | 显示全部楼层 |阅读模式
原子你好,一直在用MINI板学习UCOSS感觉还是不错的,但当将红外的例子放入UCSII时,郁闷了,实例LCD只能检测到按键的次数并且随着按键的次数一直增加数值,而key值并不能显示,一直是0.说明程序并没有检测到正确的波长,并进入相应的函数。程序为UCOSII里的程序,其余子程序都沿用原光盘实例,并没有改动。暂时还不知道问题该如何解决。
   void REMOTE_task(void *pdata)
 {
 u8 key=0;
    while(1)
  {
    OSSchedLock();//禁止任务调度   加了这句 结果一样
    if(Remote_Rdy)
    {
     
     key=Remote_Process();
  LCD_ShowNum(10,10,key,5,16);
  LCD_ShowNum(10,40,Remote_Cnt,5,16);//显示按键次数
  
    } 
    OSSchedUnlock();
    delay_ms(200);
  }                                                                                                                  
 }
我认为下面这个函数并没有检测到正确脉冲宽度造成,但产生的原因是什么,不知道了
res=Pulse_Width_Check();//获得此次高脉冲宽度                                                                                                                 
 



 
好好学习,明天向上
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

6

主题

19

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
213
金钱
213
注册时间
2013-9-10
在线时间
0 小时
发表于 2013-12-19 22:22:54 | 显示全部楼层
帮顶一个!我裸跑红外解码是没有问题的,但是在uCOS下无法正确解码,得到的按键值一直是0,而且感觉定时器没有正确捕捉跳变沿,这种情况可能与任务调度机制有关,咱时木有想明白,请高手指教。
回复 支持 反对

使用道具 举报

4

主题

56

帖子

0

精华

初级会员

Rank: 2

积分
95
金钱
95
注册时间
2013-7-18
在线时间
0 小时
 楼主| 发表于 2013-12-19 23:00:27 | 显示全部楼层
回复【2楼】Good_Natured:
---------------------------------
问题是禁止了任务调度还是一样的效果,郁闷中。
好好学习,明天向上
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-12-19 23:15:23 | 显示全部楼层
回复【楼主位】kuangnan:
---------------------------------
mini板例程,UCOSII没有用最新的SYSTEM文件夹,导致delay_ms和delay_us不可以和ucosii共存,你的问题,应该是这个原因引起的.
你可以拷贝战舰板的SYSTEM文件过来,就能解决.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

6

主题

19

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
213
金钱
213
注册时间
2013-9-10
在线时间
0 小时
发表于 2013-12-19 23:35:30 | 显示全部楼层
我的是战舰版程序,经过调试,问题解决了,原因可能是我在输入捕获中断中调用了彩屏显示程序,导致中断执行时间太长,所以发生了错误。红外解码最好让中断函数越短越好。
回复 支持 反对

使用道具 举报

4

主题

56

帖子

0

精华

初级会员

Rank: 2

积分
95
金钱
95
注册时间
2013-7-18
在线时间
0 小时
 楼主| 发表于 2013-12-20 00:25:57 | 显示全部楼层
谢谢原子,我用战舰版的SYSTEM文件,问题解决。感谢深夜回复呀。呵呵,明天我再细读一遍SYS文件。
好好学习,明天向上
回复 支持 反对

使用道具 举报

4

主题

56

帖子

0

精华

初级会员

Rank: 2

积分
95
金钱
95
注册时间
2013-7-18
在线时间
0 小时
 楼主| 发表于 2013-12-20 20:15:31 | 显示全部楼层
回复【5楼】Good_Natured:
---------------------------------
出现新问题,我用战舰Sys文件时“‘define SYSTEM_SUPPORT_UCOS 0//定义系统文件夹是否支持UCOS”为不支持UCOS时,作为UCSO任务的红外程序能正常使用,并检测出KEY值,而其他任务不能执行。当设置为1支持UCOSS任务如LED闪烁能执行,但红外又不能执行,我的板子是MINI板。
好好学习,明天向上
回复 支持 反对

使用道具 举报

4

主题

56

帖子

0

精华

初级会员

Rank: 2

积分
95
金钱
95
注册时间
2013-7-18
在线时间
0 小时
 楼主| 发表于 2013-12-20 20:17:56 | 显示全部楼层
回复【5楼】Good_Natured:
---------------------------------
我的还是没解决,你的板子是MINI的吗。
好好学习,明天向上
回复 支持 反对

使用道具 举报

4

主题

56

帖子

0

精华

初级会员

Rank: 2

积分
95
金钱
95
注册时间
2013-7-18
在线时间
0 小时
 楼主| 发表于 2013-12-20 20:18:30 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
出现新问题,我用战舰Sys文件时“‘define SYSTEM_SUPPORT_UCOS 0//定义系统文件夹是否支持UCOS”为不支持UCOS时,作为UCSO任务的红外程序能正常使用,并检测出KEY值,而其他任务不能执行。当设置为1支持UCOSS任务如LED闪烁能执行,但红外又不能执行,我的板子是MINI板。
好好学习,明天向上
回复 支持 反对

使用道具 举报

4

主题

56

帖子

0

精华

初级会员

Rank: 2

积分
95
金钱
95
注册时间
2013-7-18
在线时间
0 小时
 楼主| 发表于 2013-12-20 22:06:28 | 显示全部楼层
终于找到问题了,原子在delay_us(u32 nus),里使用了【OSSchedLock();//阻止ucos调度,防止打断us延时,//OSSchedUnlock();//开启ucos调度 】这一对函数,我将它屏蔽掉后,所有UCOSII里的任务运行正常,红外检测正常。我虽然知道是时间函数冲突,但这个问题实在没闹明白,希望原子也分析下原因所在。我整整捣鼓了两天差不多两夜呀。现在红外解码非常正确,另外五个任务也运行正常。庆祝下
好好学习,明天向上
回复 支持 反对

使用道具 举报

6

主题

19

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
213
金钱
213
注册时间
2013-9-10
在线时间
0 小时
发表于 2013-12-21 22:41:38 | 显示全部楼层
回复【10楼】kuangnan:
---------------------------------
OSSchedLock()中有这对函数:OS_ENTER_CRITICAL();OS_EXIT_CRITICAL();,这样在调用delay_us(u32 nus)的地方就禁止中断了。红外解码是需要输入捕获中断来解码的,而你其他任务可能用delay_us(u32 nus)的地方比较多,所以可能经常需要关中断,那自然输入捕获就无法正常进行了。不知我这样理解的有没有道理?
回复 支持 反对

使用道具 举报

4

主题

56

帖子

0

精华

初级会员

Rank: 2

积分
95
金钱
95
注册时间
2013-7-18
在线时间
0 小时
 楼主| 发表于 2013-12-25 08:59:46 | 显示全部楼层
回复【11楼】Good_Natured:
---------------------------------
有道理,呵呵,讨论中学习,我也研判下。谢谢
好好学习,明天向上
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-7 09:21

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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