这是我的程序请大神帮我看一下是不是思路错了???TBCCR1,,TBCCR2添加watch经过串口有数据传过来但是不能控制舵机动而且用示波器测试p4.1没有波形。。。。是不是思路错了大佬们?? 
#include "msp430x14x.h" 
#include "Slaveoperation.h" 
void UART0_Init(); 
void TimerB_Init(); 
void Port_Init(); 
void Init_Clock(void); 
void Send0_Byte(unsigned char data); 
void Send0_Str(unsigned char *s); 
unsigned char SerialpoSend[6]={0xAA, 0x11,0x22,0x33,0x44,0xBB}; 
unsigned char SerialportRev[17],SerialportRevCount,SerialportRevFlag; 
unsigned char data,jj,adc_flag,countsend; 
    
int main( void ) 
{ 
  WDTCTL = WDTPW + WDTHOLD; 
  SerialportRevCount=0; 
  UART0_Init(); 
  Port_Init(); 
  TimerB_Init(); 
  Clock_Init(); 
  Close_LED(); 
  while(1); 
   
   
   
} 
//*********************************************************************** 
//               MSP430IO口初始化 
//*********************************************************************** 
void Port_Init() 
{ 
  LED8SEL  = 0x00;                      //设置IO口为普通I/O模式,此句可省 
  LED8DIR  = 0xFF;                      //设置IO口方向为输出 
  LED8PORT = 0xFF;                      //P2口初始设置为FF 
   
  DATASEL  = 0x00;                      //设置IO口为普通I/O模式,此句可省 
  DATADIR  = 0xFF;                      //设置IO口方向为输出 
  DATAPORT = 0xFF;                      //P4口初始设置为FF 
   
  CTRSEL  =  0x00;                      //设置IO口为普通I/O模式,此句可省 
  CTRDIR |=  BIT3 + BIT4;               //设置IO口方向为输出,控制口在P63,P64 
  CTRPORT =  0xFF;                      //P6口初始设置为FF   
} 
//************************************************************************* 
//               MSP430串口0初始化 
//************************************************************************* 
void UART0_Init() 
{ 
   unsigned char j; 
        WDTCTL = WDTPW + WDTHOLD;      //关闭看门狗 
        BCSCTL1&=~XT2OFF; 
        do{ 
          IFG1&=~OFIFG;               //消除振荡器失效标志 
          for(j=0XFF;j>0;j--); 
          }  
        while((IFG1&OFIFG)); 
        BCSCTL2|=SELM_2;   
        P3DIR|=BIT4; 
        P3DIR&=~BIT5; 
        P3SEL|=BIT4+BIT5; 
         
        ME1 |= UTXE0 + URXE0;        // 使能USART0收发 
        U0CTL |= CHAR;               // 8-bit 数据,一位停止位 
        U0TCTL |= SSEL0;             // 选择时钟,UCLK = ACLK,32768 
        U0BR0 = 0x03;                // 32k/9600 
        U0BR1 = 0x00;                //波特率9600 
        U0MCTL = 0x4a;               // Modulation 
        U0CTL &= ~SWRST;             // 初始化UART0状态机,一般要设置好串口之后才复位 
        
        IE1 |= URXIE0;        
        _EINT();         
} 
 
//************************************************************************* 
//               处理来自串口0的接收中断 
//************************************************************************* 
#pragma vector=UART0RX_VECTOR 
__interrupt void UART0_RX_ISR(void) 
{ 
   
SerialportRev[SerialportRevCount]=U0RXBUF;//SerialportRev[11],SerialportRevCount,SerialportRevFlag; 
SerialportRevCount++; 
if(SerialportRevCount==17) 
{SerialportRevCount=0; 
  for(jj=0;jj<12;jj++) 
  { 
    if(( SerialportRev[jj]==0xAA)&&( SerialportRev[jj+5]==0xBB)) 
    { 
      TBCCR1=SerialportRev[jj+1]*16+SerialportRev[jj+2]; 
      TBCCR2=SerialportRev[jj+3]*16+SerialportRev[jj+4]; 
       
   } 
  } 
  data=U0RXBUF;                       //接收到的数据存起来 
  Send0_Byte(data);                      //将接收到的数据再发送出去 
} 
   
   
   
} 
//************************************************************************* 
//              串口0发送一个数据函数 
//************************************************************************* 
void Send0_Byte(unsigned char data) 
{ 
  while(!(IFG1&UTXIFG0));          //发送寄存器空的时候发送数据 
    U0TXBUF=data; 
} 
 
//************************************************************************* 
//              串口0发送字符串函数 
//************************************************************************* 
void Send0_Str(unsigned char *s) 
{ 
    while(*s != '\0') 
    { 
       while(!(IFG1&UTXIFG0)); 
        U0TXBUF = *s++; 
    } 
} 
//************************************************************************* 
//               定时器B,用于实现PWM脉冲输出 
//************************************************************************* 
void TimerB_Init() 
{WDTCTL = WDTPW + WDTHOLD;       //关闭看门狗 
  P4DIR |= 0x7e; // P4.1 - P4.6 output 
  P4SEL |= 0x7e; // P4.1 -P4.6 TB1/2 options 
  TBCCR0 =20000; // PWM Period/20 
  TBCCTL1 = OUTMOD_7; // CCR1 toggle/set 
  TBCCR1 = SerialportRev[jj+1]*16+SerialportRev[jj+2]; // p4.1控制0号舵机(500-2500  90~~-90) 
  TBCCTL2 = OUTMOD_7; // CCR2 toggle/set 
  TBCCR2 = SerialportRev[jj+3]*16+SerialportRev[jj+4]; // p4.2控制2号舵机只能到(1000-2500  45~~-90) 
  TBCTL = TBSSEL_2 + MC_1+ID_3+TBCLR; // SMCLK, 8分频 增计数模式 
} 
 |   
     
  
 |