msp430与A7105实现单工通信
//==========================================================
//功能,初始化程序
void A7105_Config(void)
{
uint i;
//0x00,mode register,for test
//0x05 fifo da
//0x06 id co
// 0x23 if calibrationII,on
// 0x32 filter test register
for(i=0x01;i<0x04;i++)
A7105_WriteReg(i,A7105Config[i]);
for(i=0x07;i<0x22;i++)
A7105_WriteReg(i,A7105Config[i]);
for(i=0x24;i<=0x31;i++)
A7105_WriteReg(i,A7105Config[i]);
}
//=============================================================
//================================================================
//main.c 文件
//功能:程序入口
//代码:
#include "io430.h"
#include "in430.h"
#include "da
#include "fuction.c"
#include "stdio.c"
//=====================================================
//主函数
//=====================================================
int main( void )
{
// Stop watchdog timer to prevent time out reset
WDTCTL = WDTPW + WDTHOLD;
Init_Clk();
Init_Timer();
init_IO();
init_uart();
_EINT();
if(maslv)
{ init_zhishi(100);
initRF();
StrobeCmd(CMD_STBY);
A7105_WriteFIFO();
Seq=0;
timer=0;
while(1)
{//发送
while(timer!=2);
SetCH(HopTab[Seq]);
StrobeCmd(CMD_TX);//发送命令
while(P2IN & 0X02);//等待发送完
Seq++;
if(Seq>4)
Seq=0;
}
}
else
{
init_zhishi(0);
initRF();
StrobeCmd(CMD_STBY);
RxCnt=0;
Seq=0;
while(1)
{
while(timer!=0);
SetCH(HopTab[Seq]-1);
StrobeCmd(CMD_RX);
while((P1IN&0x02) && timer<=3);//等待
if(timer>3)
{
StrobeCmd(CMD_PLL);
Seq++;
if(Seq>4)
Seq=0;
}
// timer=2;//reoffest
RxPacket();
Seq++;
if(Seq>4)
Seq=0;
init_uartRX();
}
}
// return 0;
}
//=======================================================
//中断
//========================================================
#pragma vector=TIMERA0_VECTOR
__interrupt void TimerA_(void)
{
timer++;
if(timer>20)
timer=0;
}
msp430A7105单工通 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)