⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 application.c

📁 这是一个MSP430单片机上运行UCOSII的例程
💻 C
字号:
#include "includes.h"
#include "serial.h"

#define  TASK_STK_SIZE                  64                 /* 定义任务堆栈大小     */


OS_STK   TaskStartStk[TASK_STK_SIZE];

OS_STK   TaskStartStk1[TASK_STK_SIZE];
void   TaskStart(void *pdata);                              /* 前导声明任务(函数) */

void    TaskB(void *pdata);

void SetDCO(unsigned char Mul)//输出频率为  32768*2*Mul
{                             
    SCFQCTL=(Mul-1)&0x7f;
    SCFI0|=FN_3;
    SCFI0|=FLLD0;
    FLL_CTL0=XCAP18PF+DCOPLUS;//设置DCO+为1,
}
 
unsigned char buf[20];

void  main (void)
{
    WDTCTL = WDTPW + WDTHOLD;				   /* 禁止看门狗              */

    OSInit();                                              /* 初始化uCOS-II */
    
    SetDCO(75);
    UartInit(38400);
    
    OSTaskCreate(TaskStart, (void *)0, &TaskStartStk[TASK_STK_SIZE - 1], 0);
    OSTaskCreate(TaskB, (void *)0, &TaskStartStk1[TASK_STK_SIZE - 1], 1);
    OSStart();                                             /* 开始任务调度  */
}

  
void TaskB(void *pdata)
{ 
    pdata=pdata;
    WDTCTL = WDT_MDLY_8;
    IE1 |= 0x01;
    P6DIR |= BIT1;
    while(1)
    {
        P6OUT ^= BIT1;
        UartWrite(buf,10);
        OSTimeDly(4);
    }
}

void  TaskStart (void *pdata)
{
    pdata  = pdata;                                        /* 无任何意义,防止编译器报警 */

    WDTCTL = WDT_MDLY_8;                                   /* 设置时钟节拍间隔为32ms     */
    IE1   |= 0x01;                                         /* 开看门狗定时器中断         */
    /*************************************
    *       应用程序初始化
    *************************************/
//    P1SEL &= BIT0; 											
    P6DIR |= BIT2;
    while (1) {
        /******************************************************************************************
        *         测试代码
        *
        × 此处我们仅测试移植代码的正确,只是定时在P1.0输出高低电平,对应MSP-FET449学习板的P1.0 LED闪烁。
        *
        *          MSP430F449
        *     -----------------
        *  /|\|              XIN|-  
        *   | |                 |
        *   --|RST          XOUT|-
        *     |                 |
        *     |             P1.0|-->LED  
        * 
        *******************************************************************************************/
    	P6OUT ^= BIT2; 	 								    
        UartRead(buf,10);
        OSTimeDly(10);   /* 眼时10个时钟节拍,挂起本任务等待延时结束 */
    }
} 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -