📄 main.cpp
字号:
//******************************************************************************
#include "msp430x21x1.h"
#include "rfcard.h"
//******************************************************************************
//******************************************************************************
//*****************************全局变量*****************************************
unsigned int scnt=0;
unsigned int cnt=0;
//__no_init unsigned char CardNo[4] @ 0xFFD0;
unsigned char *CardNo=(unsigned char *)0xFFD0;
//******************************************************************************
// 主程序
//******************************************************************************
int main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer
WDTCTL = WDT_ADLY_1000; //;
P1DIR |= 0x0d; // Set P1.0 to output direction
P2DIR |= 0x1f;
P1OUT = 0x00; // Toggle P1.0 using exclusive-OR
DELAY100US(65);
TXData[2]=CardNo[2];
TXData[3]=CardNo[3];
InitnRF2402();
//////////////////////
DELAY100US(10);
CEon();
Dltime(10);
TXDataPacket();
//////////////////////
CEof(); //Disable CE (TX Starts!)--standby mode
CSof();
PWof();
do //等待晶振稳定
{
scnt++;
if (scnt>100)
{
LPM4;
}
DELAY100US(500);
IFG1 &=~OFIFG;
}
while(OFIFG&IFG1);
scnt=0;
IE1 |= WDTIE;
_EINT(); // Enable interrupts
LPM3; // Enter LPM3
while(1)
{
switch (scnt)
{
case 0 :
PWon();
scnt = 1;
WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer
WDTCTL = WDT_ADLY_1_9;
IE1 |= WDTIE;
_EINT(); // Enable interrupts
LPM3; // Enter LPM3
break;
case 1 :
scnt = 2;
IE1 |= WDTIE;
_EINT(); // Enable interrupts
LPM3; // Enter LPM3
break;
case 2 :
CEon(); //ChipCE=1; ShockBurst mode
cnt%=16;
cnt+=10;
Dltime(cnt);
TXDataPacket();
PWof();
scnt = 0;
WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer
WDTCTL = WDT_ADLY_1000;
IE1 |= WDTIE;
_EINT(); // Enable interrupts
LPM3; // Enter LPM3
break;
default:
PWof();
scnt = 0;
WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer
WDTCTL = WDT_ADLY_1_9;
IE1 |= WDTIE;
_EINT(); // Enable interrupts
LPM3; // Enter LPM3
}
_NOP(); // Toggle P1.0 using exclusive-OR
}
}
/******************************************************
// Watchdog Timer interrupt service routine
******************************************************/
#pragma vector=WDT_VECTOR
__interrupt void watchdog_timer(void)
{
_DINT();
cnt++;
LPM3_EXIT;
}
/*****************************************************************************/
/*****************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -