📄 zheng_capturerise.c
字号:
#include "include.h"
BOOL nsduStatus;
void Time_B0_init(void)//定时器捕获模式用于同步时间输出。3.5.2008
{
// P4DIR&=~BIT0;
P4SEL|=BIT0;
TBCTL=TBSSEL1+TBCLR+MC1;
TBCCTL0&=~(CCIS1+CCIS0); //p4.0捕获,即CCI0A(也是CCI0B)
TBCCTL0|=CM0+SCS+CAP+CCIE; // 中断请求,下降沿捕获,同步捕获,工作在捕获模式
/*
_EINT();
TBCTL=TBSSEL0+TBCLR; // SELECT MCLK 32K
TBCCTL0=CCIE; //ENABLE THE INTERUPT
TBCCR0=32768; //1秒
TBCTL|=MC0; //SELECT THE ADD MODEL
_EINT();
*/
}
/******************************************
定时1秒发送一个超帧用定时器B0定时。
*******************************************/
#ifdef __ICC430__
#pragma vector=TIMERB0_VECTOR
__interrupt void Time_B0(void)
// MSP430-GCC C/C++ compiler for MSP430
#elif defined(__MSP430__)
interrupt (TIMERB0_VECTOR) Time_B0(void)
#endif
{
if(TBCCTL0&CCIFG)
{
TBCCTL0&=~CCIFG;
///测试同步用的代码
//if (TBCCTL0&CM0)
UINT8 temptime[8];
convert_time_format8( Timeinfo.specialtime,temptime);
TXBUF0 = temptime[5];
while ((UTCTL0&0x01)==0);
TXBUF0 = temptime[4];
while ((UTCTL0&0x01)==0);
TXBUF0 = temptime[3];
while ((UTCTL0&0x01)==0);
TXBUF0 = temptime[2];
while ((UTCTL0&0x01)==0);
TXBUF0 = temptime[1];
while ((UTCTL0&0x01)==0);
TXBUF0 = temptime[0];
while ((UTCTL0&0x01)==0);
}
/*
//////////////////每隔1分钟发送一次信标帧协调网络同步和工作////////////// basicRfInit(RFCHANNEL, PANID, 0x1234);
// basicRfReceiveOn();
// nsduStatus=FALSE;
//P1OUT ^= BM(LED1);
BYTE frameType=NWK_FCF_DATA;
BYTE discoverRoute=NWK_FCF_SUPPRESSROUTEDISCOVERY;
BOOL security=FALSE;
WORD nwkFrameControlField;
nwkFrameControlField = frameType;
nwkFrameControlField |= (NWK_FCF_PROTOCOLVERSION<<2);
nwkFrameControlField |= (discoverRoute<<6);
if(security)
{
nwkFrameControlField |= BM(NWK_FCF_SECURITY);
}
WORD destAddr=0x5678;
WORD srcAddr=0x1234;
BYTE radiusCounter=0x00;
BYTE dataSeqNumber=0x00;
UINT8 nsduLength=NWK_aMaxFramePayloadSize;
BYTE nsdu[NWK_aMaxFramePayloadSize];
BYTE txOption=MAC_TXOPTION_GTSTRANSMISSION;
for (int i=0;i<nsduLength;i++)
nsdu[i]=0x11 ;//信标帧负载 可以定义特定任务
FASTSPI_STROBE(CC2420_STXON);
NLDEDATA_request(nwkFrameControlField, destAddr, srcAddr, radiusCounter, dataSeqNumber, nsduLength, nsdu, txOption);
// halWait(65553);
//////////////////////////////////////////////////
// DISABLE_GLOBAL_INT();
FASTSPI_STROBE(CC2420_SRXON);
FASTSPI_STROBE(CC2420_SFLUSHRX);
*/ // ENABLE_GLOBAL_INT();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -