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

📄 hal.c.svn-base

📁 ucos2.52在msp149上移植范例
💻 SVN-BASE
字号:

#include "includes.h"

static void McuInit( void )
{
  char i;     
  BCSCTL1 &= ~XT2OFF;        // Select XT2; ACLK=32.768KHz 
  do
  {
    IFG1 &= ~OFIFG;               // Clear OSCFault flag
    for(i=0xFF; i>0; i--);        // Time for flag to set
  }while ((IFG1 & OFIFG) != 0 );  // OSCFault flag still set 
  
  BCSCTL2 = SELM_2 + SELS;        // MCLK=XT2CLK;  SMCLK=XT2CLK;  
}


static 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
  
  P3SEL &=~(BIT1+BIT2+BIT3);
  P3DIR |=(BIT1+BIT2+BIT3);
  P3OUT &= ~BIT1; // set EN=0,  Enable the MAX3221 Receiver 
  P3OUT |= BIT3;  //set FORCEOFF=1, Enable MAX3221
  P3OUT |= BIT2;//INVALID=1// Turn on MAX3221    
} 


void HalTimerInit(void)
{
  TACTL   = TASSEL_1 + TACLR + MC_1; 
  TACCTL0 |= CCIE;
  TACCR0  = 328;  
}

static void HalLedInit(void)
{
  P6SEL &= ~(BIT3+BIT4);
  P6DIR|= (BIT3+BIT4);
  P6OUT &= ~(BIT3+BIT4);
}


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

void Uart0SendData( INT8U * data ,INT8U len )
{ 
  INT8U i; 
  for( i = 0 ; i < len ; i ++ )
  {
    TXBUF0 = data[i];
    while( ( UTCTL0 & 0x01 ) == 0x00 );
  }
}


void HalOpenLed(INT8U i)
{
  switch(i)
  {
  case 1:
    P6OUT |= BIT3;
    break;
  case 2:
    P6OUT |= BIT4;
    break;
  }
}

void HalCloseLed(INT8U i)
{
  switch(i)
  {
  case 1:
    P6OUT &=~ BIT3;
    break;
  case 2:
    P6OUT &=~ BIT4;
    break;
  }
}


void StateInit( void )
{
  WDTCTL = WDTPW + WDTHOLD;			/* 禁止看门狗 */  
  McuInit( );
  Uart0Init( );
  HalLedInit( );   
}

⌨️ 快捷键说明

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