1378|0

3836

帖子

19

TA的资源

纯净的硅(中级)

楼主
 

MSP430-169移植uC/OS-II [复制链接]

移植uC/OS
    关于uC/OS在MSP430的移植可以参考文档[2],并结合邵贝贝翻译的《嵌入式实时操作系统uCOSII》。我网上找到了一份uC/OS-II在MSP430移植好的源码,几乎不用修改。
二、应用程序
    主要是针对MSP430-169LCD板子修改下应用程序,本例子旨在用两个任务控制灯的闪烁,任务A让灯亮,任务B让灯灭,两任务交替运行,从而达到灯闪烁的效果。
2.1 LED对应的管脚
    MSP430-169LCD有两个LED,一个用于电源指示,另一个可编程的。欲控制该LED,首先得找到与该LED相关的引脚。通过原理图(可以从[1]下载),可以得知该LED对应的引脚是P2.1,如下图红色标记所示:

图1 MSP430-169LCD的LED示意图
2.2 应用程序
任务A,让LED亮,源代码如下:
void TaskStartA(void *pdata)
{
  pdata = pdata; /*无任何意义,防止编译器报警 */

  WDTCTL = WDT_MDLY_32; /*设置时钟节拍间隔为32ms*/
  IE1 |= BIT0; /* 开看门狗定时器中断*/

  P2SEL &= BIT1; //引脚功能选择器
  P2DIR |= BIT1; //方向寄存器,1为输出模式

  while(1)
  {
    P2OUT |= BIT1; //LED灭亮
    OSTimeDly(10); //延时10个时钟节拍,任务挂起,等待延时结束(此时任务B执行)
  }
}
任务B,让LED灭,源代码如下:
void TaskStartB(void *pdata)
{
  pdata = pdata; /*无任何意义,防止编译器报警*/

  WDTCTL = WDT_MDLY_32; /*设置时钟节拍间隔为32ms*/
  IE1 |= BIT0; /*开看门狗定时器中断*/

  P2SEL &= BIT1; //引脚功能选择器
  P2DIR |= BIT1; //方向寄存器,1为输出模式

  while(1)
  {
    P2OUT &= ~BIT1; //LED灭
    OSTimeDly(20); //延时20个时钟节拍,任务挂起,等待延时结束(此时任务B执行)
  }
}
更多操作

 
点赞 关注

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

随便看看
查找数据手册?

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
快速回复 返回顶部 返回列表