微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > msp430与A7105实现单工通信

msp430与A7105实现单工通信

时间:11-13 来源:互联网 点击:

//==========================================================
//功能,初始化程序
void A7105_Config(void)
{
uint i;
//0x00,mode register,for test
//0x05 fifo data register
//0x06 id code register
// 0x23 if calibrationII,only read
// 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 "data.h"
#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;

}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top