3509|1

14

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

uC/OS-II在STR750上的移植 [复制链接]

 

這是我們一門課的大作業,目標板是STR750開發板,跟大家分離一下。

 

在uC/OS-II中四个任务,第一个是对AD的采样值进行处理;

第二、第三个任务分别是数码管显示的高位和低位,但注意如果只这样写的话只能显示一个数字,因为两个字共用P0口,第二个任务挂起后,第三个任务的数据马上就会送到P0口,而把第二个任务的数据冲掉,我的解决办法是改os_cpu_c.c文件中的OSTimeTickHook ()函数,该函数是在每次时钟中断,即任务切换时调用,所以我在每次切换时挂起一个,Resume另一个,这样就解决了;

其实也可以把第二、第三个任务合成一个任务,写成这样:

 void Task2(void)
{
  while(1)
  {
      Display(Count1,1);
      OSTimeDlyHMSM(0, 0, 0, 20);
      Display(Count0,0);      
      OSTimeDlyHMSM(0, 0, 0, 20);
  }
}

我是觉得任务太少不太好,还有就是想练习一下前面的那种方法。

第四个任务是LED的闪烁,用来指示任务正在调试。而AD的采样值是中AD中断服务程序ADC_IRQHandler()中读取的,通过BSP_VectSet(ADC_IRQChannel, ADC_IRQHandler)函数把ADC_IRQHandler()的地址传给底层函数,然后就不用我们管了,记得打开该模块的EIC中断。

       任务间的通信是通过全局变量实现的,因为移植消息邮箱没有成功,我怀疑是硬件资源不够用的原因。如果有谁成功的话,请教我一下,谢谢。

 

我的邮箱是:464056226@qq.com,欢迎大家和我讨论。

 

附件是我的源代码,用IAR集成开发环境开发的。

Int uCOSII.rar

815.02 KB, 下载次数: 6

最新回复

先看看 支持一下先  详情 回复 发表于 2012-1-11 09:27
点赞 关注
 

回复
举报

3836

帖子

19

TA的资源

纯净的硅(中级)

沙发
 
先看看 支持一下先
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表