MSP430 code for nRF2401
*********************************************************************
CPU=MSP430F149
Writer:Wang wei hua
Address:Beijing Airport Industrial Zone B-6 (Xizang Huada)漂移技术
EMAIL:wwh_1981@163
Date:2006-8-9
*********************************************************************
TX code:
#include <msp430x14x.h>
#define uchar unsigned char
#define uint unsigned int
uchar InitData[18];
uchar TXData[14];
uchar RXData[2];
uchar temp;
uchar ByteCnt;
uchar ByteCnt1;
uchar BitCnt;
uchar BitCnt1;
uchar Data1=0xff;
uchar tempi;
#define PWR BIT0 //P4.0
#define DR1 BIT3 //P4.3
#define CLK1 BIT4 //P4.4
#define DATA BIT5//P4.5
#define CE BIT1 //P4.1
#define CS BIT2 //P4.2
void init_io();
void nRF2401_ON();
void BuildInitWord();
void InitnRF2401();
void DoSPIClock();
void CE_High();
void RXEN_HIGH();
void TXEN_LOW();
void Delay500ns();
void Delay5us();
void Delay202us();
void Delay3ms();
void BuildShockWord();
void ShockBurst();
void ReceiveShock();
void time_set();
void main (void)
{ uint i;
WDTCTL = WDTPW + WDTHOLD;
BCSCTL1&=~XT2OFF;
2013款雅阁BCSCTL2=0x88; //10001000; XT2 as MCLK, 6M
do
瑞鹰suv{
IFG1&=~OFIFG; //clear OSCFault flag_breathe
for(i=0xFF;i>0;i--); //delay wait
} while((IFG1&OFIFG)!=0);
init_io();
nRF2401_ON();
BuildInitWord();
InitnRF2401();
BuildShockWord();
ShockBurst();
}
void init_io(void)
{P4DIR|=CS+DATA+PWR;
P4DIR&=~DR1;
P4DIR|=CLK1;
P4DIR|=CE;
P4OUT&=~DATA;
P4OUT&=~PWR;
P4OUT&=~CS;
P4OUT&=~CLK1;
P4OUT&=~CE;
}
void nRF2401_ON(void)
{P4OUT|=PWR;
}
void BuildInitWord(void)
{InitData[0]=0x8E;//
InitData[1]=0x08;//
InitData[2]=0x1C;//
InitData[4]=0x10;//频道1 数据长度,16bit,2byte.
InitData[5]=0x00;//频道2 地址
InitData[6]=0x1c;//频道2 地址
InitData[7]=0xcc;//频道2 地址
InitData[8]=0xcc;//频道2 地址
InitData[9]=0xcc;//频道2 地址
InitData[10]=0x00;//频道1 地址
InitData[11]=0xcc;//频道1 地址
InitData[12]=0xcc;//频道1 地址
InitData[13]=0xcc;//频道1 地址
InitData[14]=0xcc;//频道1 地址
InitData[15]=0x83;//4byte 地址,16CRC,CRC 允许
InitData[16]=0x4f;//一个频道接收,shock 模式,250K,16MCRY,0DBm
InitData[17]=0x04;//tx
}
void InitnRF2401(void)
{
P4OUT|=CS;
Delay5us();//
for(ByteCnt=0;ByteCnt<18;ByteCnt++)
{tempi=InitData[ByteCnt];
for(BitCnt=0;BitCnt<8;BitCnt++)
{ P4OUT&=~CLK1;
if(tempi&0x80)
P4OUT|=DATA;
else
P4OUT&=~DATA;
Delay500ns();
P4OUT|=CLK1;
Delay500ns();
P4OUT&=~CLK1;
tempi=tempi<<1;
}
}
P4OUT&=~CS;
P4OUT&=~DATA;
}
void Delay500ns(void)
本田雅阁召回{
_NOP();
}
void Delay5us(void)
{uchar x;
uchar y;
for(y=0;y<5;y++)
for(x=0;x<2;x++);
}
void Delay202us(void)
{uchar n;
uchar m;
for(m=0;m<200;m++)
for(n=0;n<3;n++);
}
void Delay3ms(void)
{
int i;
unsigned long j;
for(i = 3;i > 0;i--)
{
for(j = 2000;j > 0;j--);
}
}
void BuildShockWord(void)
{TXData[0]=0xcc;
TXData[1]=0xcc;
TXData[2]=0xcc;
TXData[3]=0xcc;
TXData[4]=0x01;
TXData[5]=0x01;
}
void ShockBurst(void)
{
P4OUT|=CE;
Delay5us();//
for(ByteCnt1=0;ByteCnt1<6;ByteCnt1++)
{tempi=TXData[ByteCnt1];
for(BitCnt1=0;BitCnt1<8;BitCnt1++)
{P4OUT&=~CLK1;
if(tempi&0x80)
P4OUT|=DATA;
else
P4OUT&=~DATA;
Delay500ns();
P4OUT|=CLK1;
Delay500ns();
P4OUT&=~CLK1;
tempi=tempi<<1;
}
}
P4OUT&=~CE;
P4OUT&=~DATA;
Delay202us();
}
*******************************************************************************
RX code:
#include <msp430x14x.h>
汽车标志图片及名称#define uchar unsigned char
#define uint unsigned int
uchar InitData[18];
uchar TXData[14];
uchar RXData[2];
uchar temp;
uchar ByteCnt;
uchar ByteCnt1;
uchar BitCnt;马自达3两厢报价
uchar BitCnt1;
uchar Data1=0xff;
uchar tempi;
#define PWR BIT0 //P4.0
发布评论