UCOS在MSP430F149上的移植问题

2019-07-15 16:15发布

各位大神,有没有人在MSP430F149上移植过UCOSII并且用它写过中断函数,我现在想在移植后的操作系统里面写开门狗的中断服务程序,会的人能不能教教我。这是我创建的一个任务并且写的中断函数,但是不行,能不能帮我看看是什么问题。
void  task3(void *pdata)
{
     pdata  = pdata;                                        /* 无任何意义,防止编译器报警 */

     WDTCTL = WDT_MDLY_32;                                  /* 设置时钟节拍间隔为32ms     */

      /*下面六行程序关闭所有的IO口*/
    P1DIR = 0XFF;P1OUT = 0XFF;
    P2DIR = 0XFF;P2OUT = 0XFF;
    P3DIR = 0XFF;P3OUT = 0XFF;
    P4DIR = 0XFF;P4OUT = 0XFF;
    P5DIR = 0XFF;P5OUT = 0XFF;
    P6DIR = 0XFF;P6OUT = 0XFF;

    WDTCTL = WDT_MDLY_32;       // 设置内部看门狗工作在定时器模式,1000ms中断一次

    IE1 |= WDtiE;                 // 使能看门狗中断

    P6DIR |= BIT2;P6OUT |= BIT2;            //打开数码管,关闭流水灯和电平转换

    P4DIR = 0xff;                 //设置P4,P5的IO方向为输出

    P5DIR = 0xff;                 

     P4OUT = 0x00;                 //设置P4,P5的输出初值

     wei_h;

     wei_l;

    P5OUT = 0xff;

    _BIS_SR(LPM3_bits + GIE);     //CPU进入LPM3低功耗模式,同时打开全局中断

#pragma vector=WDT_VECTOR
__interrupt void watchdog_timer(void)
  {
       P4OUT = scandata[cnt];        //输出段选信号
       duan_h;
       duan_l;
       P4OUT = 0x00;                 //设置P4,P5的输出初值
       wei_h;
       wei_l;
       cnt++;                        //位计数变量在0~5之间循环
       if(cnt == 16)
         cnt = 0;
   }
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
1条回答
yf201306
1楼-- · 2019-07-15 19:57
貌似我已经解决了这个问题,就是像使用430正常的中断一样把中断单独拿出来就行了。

一周热门 更多>