设计要求:一个芯片循环发送0到255的数据,另一个芯片当有按键的时候,接收三个数据。
遇到的问题:接收到的数据应该是连续的,现在是有时三个数据连续,有时侯不连续。找不到问题!!!
//按键之后,开始发送数据
interrupt (PORT1_VECTOR) Port1 (void)
{
Bitcnt =0xA;
CCR0 =TAR;
CCR0 +=Bitime;
data=0;
Txdata =data;
Txdata |=0x100;
Txdata =Txdata <<1;
data++;
CCTL0 |=OUTMOD0 + CCIE;
P1IFG &=~BIT7;
}
//TA0IV发送中断
interrupt (TIMERA0_VECTOR)Timer_A0(void)
{
CCR0 +=Bitime;
if (bitcnt ==0)
{
Bitcnt =0xa;
Txdata =data;
Txdata |=0x100;
Txdata =Txdata <<1;
data++;
if(data ==0x100)
data=0x00;
}
else
{
if (Txdata &0x01)
CCTL0 &=~OUTMOD_TOGGLE;
else
CCTL0 |=OUTMOD_TOGGLE;
Txdata =Txdata >>1;
Bitcnt --;
}
}
//接收中断
interrupt (TIMERA0_VECTOR)Timer_A0(void)
{
CCR0 +=Bitime;
if(CCTL0&CAP)
{
CCTL0& =CAP;
CCTL0 +=Bitime_5;
}
else
{
RXData =RXData >>1;
if (CCTL0&SCCI)
RXData |=0x10;
Bitcnt --;
if (Bitcnt ==0)
{
Bitcnt =0x08;
CCTL0 |=CAP;
Data [num++] =RXData ;
if (num==3)
{
num=0;
CCTL0 & =~CCIE;
}
}
}
} |