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

📄 app.c

📁 ucos2.52在msp149上移植范例
💻 C
字号:

#include "includes.h"

#define   TaskStkLengh    64            
OS_STK    TaskStk  [TaskStkLengh];        
//OS_STK    TaskStk1 [TaskStkLengh];
//OS_STK    TaskStk2 [TaskStkLengh];
//
//OS_EVENT  *TASK1;         
//OS_EVENT  *TASK2;    
//OS_EVENT  *TASK3;    

void Task0(void *pdata);           
//void Task1(void *pdata);    
//void Task2(void *pdata);    

INT8U err;

void  UART0Init(void)
{ 
  UCTL0 = CHAR + SWRST; // 8-bits stop; USART Software Reset 
  UTCTL0 = SSEL1 + SSEL0 + TXEPT; // MCLK; TX Buffer empty
  
  // 115200 baud rate 
  UBR00 = 0x45;	                
  UBR10 = 0x00;	
  UMCTL0 = 0x4A;       
  
  ME1 |= UTXE0+URXE0;      // Enable USART0 TXD
  P3SEL |= ( BIT4+BIT5 );  // IO 
  P3DIR |= BIT4;           // P3.4 output direction
  P3DIR &= ~BIT5;          // P3.5 input direction
  UCTL0 &= ~SWRST;         // USART Software Reset 
  IE1 &= ~URXIE0;          // Disable input/output interrupts
} 

void  UART0_SendByte(INT8U data)
{ 
  TXBUF0 = data;  // Send a byte
  while( ( UTCTL0 & 0x01 ) == 0x00 );  // Wait for Tx to finish  
}

int main (void)
{
  OSInit( ); 
  OSTaskCreate(Task0,(void *)0, &TaskStk[TaskStkLengh - 1], 0); 
//  TASK1 = OSSemCreate(0);
//  TASK2 = OSSemCreate(0);  
//  TASK3 = OSSemCreate(0);     
  OSStart ();
  return 0;                                                            
}


void Task0(void *pdata)
{

  WDTCTL = WDT_MDLY_32;                   /* 设置时钟节拍间隔为32ms     */
  IE1   |= BIT0;                          /* 开看门狗定时器中断         */
  
  UART0Init();
  //OSTaskCreate(Task1, (void *)0, &TaskStk1[TaskStkLengh-1], 1); 
  //OSTaskCreate(Task2, (void *)0, &TaskStk2[TaskStkLengh-1], 2); 
//  OSSemPost(TASK1);   
  
  while (1)
  {     
//    OSSemPend(TASK1,10,&err);    
//    if(err==OS_NO_ERR)
//    {
//      UART0_SendByte(0x01);         
//      OSSemPost(TASK2);
//    }
    
    UART0_SendByte(0x01);
    OSTimeDly(200); 
  }
}


/*
void Task1(void *pdata)
{
  UART0Init();
  while (1)
  {
    OSSemPend(TASK2,10,&err);    
    if(err==OS_NO_ERR)
    {        
      UART0_SendByte(0x02);             
      OSSemPost(TASK3); 
    }
  }
}


void Task2(void *pdata)
{
  UART0Init();
  while(1)
  {
    OSSemPend(TASK3,10,&err);
    if(err==OS_NO_ERR)
    {
      UART0_SendByte(0x03); 
      OSSemPost(TASK1);
    }      
  }
}

*/

⌨️ 快捷键说明

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