📄 main.c
字号:
P1OUT &= ~BIT2;
Delayms(50); // 延时,等待DCO稳定
Delayms(50);
WDTCTL = WDTPW+WDTCNTCL+WDTSSEL; // wdt 定时1S
P1OUT |= BIT2;
ccc = ReadRawIO(0x01);
Delayms(50);
Delayms(50);
Delayms(50);
Delayms(50);
Delayms(50);
Delayms(50);
P1OUT &= ~BIT2;
}
// inline structure in order to reset the communication channel between
// function and ISR
#define ResetInfo(info) \
info.cmd = 0; \
info.status = MI_OK;\
info.irqSource = 0; \
info.nBytesSent = 0; \
info.nBytesToSend = 0; \
info.nBytesReceived = 0; \
info.nBitsReceived = 0; \
info.collPos = 0;
// struct definition for a communication channel between function and ISR
typedef struct
{
unsigned char cmd; //!< command code
char status; // communication status
unsigned char nBytesSent; // how many bytes already sent
unsigned char nBytesToSend; // how many bytes to send
unsigned char nBytesReceived;// how many bytes received
unsigned short nBitsReceived; // how many bits received
unsigned char irqSource; // which interrupts have occured
unsigned char collPos; // at which position occured a
// collision
} MfCmdInfo;
void main()
{//wdt 要求在初始设置值满足前,对wdt进行设置或操作。
unsigned char i,j;
WDTCTL = WDTPW+WDTCNTCL+WDTSSEL; // wdt 定时1S
WDTCTL = WDTPW+WDTCNTCL+WDTSSEL; // wdt 定时1S
WDTCTL = WDTPW+WDTCNTCL+WDTSSEL; // wdt 定时1S
Delayms(50); // 延时,等待DCO稳定
Delayms(50);
WDTCTL = WDTPW+WDTCNTCL+WDTSSEL; // wdt 定时1S
Delayms(50);
Delayms(50);
WDTCTL = WDTPW+WDTCNTCL+WDTSSEL;
Delayms(50);
Delayms(50);
WDTCTL = WDTPW+WDTCNTCL+WDTSSEL;
Delayms(50);
WDTCTL = WDTPW+WDTCNTCL+WDTSSEL;
Delayms(50);
Delayms(50);
// 设置工作SMCLK,以DCO作为SMCLK,设为16M,如果MCU校验值在,使用校验值,否则采用软件校准
if ((CALBC1_16MHZ != 0xff)&&(CALDCO_16MHZ != 0xff))
{
BCSCTL1 = CALBC1_16MHZ ; // 用校验值进行DCO设置
DCOCTL = CALDCO_16MHZ;
}
else
{
WDTCTL = WDTPW+WDTCNTCL+WDTSSEL;
Set_DCO(DELTA_16MHZ); // 软件校准DCO的值
WDTCTL = WDTPW+WDTCNTCL+WDTSSEL;
}
SetUCB0_SPIMode();
P1OUT &= ~BIT2;
// ccc = ReadRawIO(0x01);
// FM1702SL_Init();
// ResetFM();
temp[0] = 0x00;
SPIWrite(Page_Reg,temp,1);
while(1)
{
for(i=0; i<64; i++)
{
SPIRead(i,temp+i,1);
Delayms(50);
WDTCTL = WDTPW+WDTCNTCL+WDTSSEL;
}
/*
//写寄存器
temp[0] = 0x80;
SPIWrite(Page_Reg,temp,1);
Delayms(50);
WDTCTL = WDTPW+WDTCNTCL+WDTSSEL;
temp[0] = 0x80;
SPIRead(Command_Reg,temp,1);
Delayms(50);
WDTCTL = WDTPW+WDTCNTCL+WDTSSEL;
// SPIRead(FIFO_Reg,temp,1);
Delayms(50);
WDTCTL = WDTPW+WDTCNTCL+WDTSSEL;
SPIRead(FIFOLength_Reg,temp,1);
Delayms(50);
WDTCTL = WDTPW+WDTCNTCL+WDTSSEL;
SPIRead(SecondaryStatus_Reg,temp,1);
Delayms(50);
WDTCTL = WDTPW+WDTCNTCL+WDTSSEL;
SPIRead(InterruptEn_Reg,temp,1);
Delayms(50);
WDTCTL = WDTPW+WDTCNTCL+WDTSSEL;
SPIRead(InterruptRq_Reg,temp,1);
Delayms(50);
WDTCTL = WDTPW+WDTCNTCL+WDTSSEL;
SPIRead(Control_Reg,temp,1);
Delayms(50);
WDTCTL = WDTPW+WDTCNTCL+WDTSSEL;
SPIRead(ErrorFlag_Reg,temp,1);
Delayms(50);
WDTCTL = WDTPW+WDTCNTCL+WDTSSEL;
SPIRead(BitFraming_Reg,temp,1);
Delayms(50);
WDTCTL = WDTPW+WDTCNTCL+WDTSSEL;
SPIRead(TxControl_Reg,temp,1);
Delayms(50);
WDTCTL = WDTPW+WDTCNTCL+WDTSSEL;
SPIRead(CwConductance_Reg,temp,1);
Delayms(50);
WDTCTL = WDTPW+WDTCNTCL+WDTSSEL;
SPIRead(RxControl2_Reg,temp,1);
Delayms(50);
WDTCTL = WDTPW+WDTCNTCL+WDTSSEL;
SPIRead(ChannelRedundancy_Reg,temp,1);
Delayms(50);
WDTCTL = WDTPW+WDTCNTCL+WDTSSEL;
SPIRead(RxWait_Reg,temp,1);
Delayms(50);
WDTCTL = WDTPW+WDTCNTCL+WDTSSEL;
//写寄存器
*/
/*
temp[0] = 0x81;
SPIWrite(Page_Reg,temp,1);
Delayms(50);
WDTCTL = WDTPW+WDTCNTCL+WDTSSEL;
// 读出寄存器的值
SPIRead(Page_Reg,temp,1);
Delayms(50);
WDTCTL = WDTPW+WDTCNTCL+WDTSSEL;
SPIRead(Command_Reg,temp+1,1);
Delayms(50);
WDTCTL = WDTPW+WDTCNTCL+WDTSSEL;
// SPIRead(FIFO_Reg,temp+2,1);
Delayms(50);
WDTCTL = WDTPW+WDTCNTCL+WDTSSEL;
SPIRead(FIFOLength_Reg,temp+3,1);
Delayms(50);
WDTCTL = WDTPW+WDTCNTCL+WDTSSEL;
SPIRead(SecondaryStatus_Reg,temp+4,1);
Delayms(50);
WDTCTL = WDTPW+WDTCNTCL+WDTSSEL;
SPIRead(InterruptEn_Reg,temp+5,1);
Delayms(50);
WDTCTL = WDTPW+WDTCNTCL+WDTSSEL;
SPIRead(InterruptRq_Reg,temp+6,1);
Delayms(50);
WDTCTL = WDTPW+WDTCNTCL+WDTSSEL;
SPIRead(Control_Reg,temp+7,1);
Delayms(50);
WDTCTL = WDTPW+WDTCNTCL+WDTSSEL;
SPIRead(ErrorFlag_Reg,temp+8,1);
Delayms(50);
WDTCTL = WDTPW+WDTCNTCL+WDTSSEL;
SPIRead(BitFraming_Reg,temp+9,1);
Delayms(50);
WDTCTL = WDTPW+WDTCNTCL+WDTSSEL;
SPIRead(TxControl_Reg,temp+10,1);
Delayms(50);
WDTCTL = WDTPW+WDTCNTCL+WDTSSEL;
SPIRead(CwConductance_Reg,temp+11,1);
Delayms(50);
WDTCTL = WDTPW+WDTCNTCL+WDTSSEL;
SPIRead(RxControl2_Reg,temp+12,1);
Delayms(50);
WDTCTL = WDTPW+WDTCNTCL+WDTSSEL;
SPIRead(ChannelRedundancy_Reg,temp+13,1);
Delayms(50);
WDTCTL = WDTPW+WDTCNTCL+WDTSSEL;
SPIRead(RxWait_Reg,temp+14,1);
Delayms(50);
WDTCTL = WDTPW+WDTCNTCL+WDTSSEL;
// 读出寄存器的值
*/
_NOP();
/*
WDTCTL = WDTPW+WDTCNTCL+WDTSSEL;
Delayms(50); // 延时,等待DCO稳定
Delayms(50);
WriteRawIO(0x02,0x55);
WDTCTL = WDTPW+WDTCNTCL+WDTSSEL; // wdt 定时1S
Delayms(50);
Delayms(50);
WDTCTL = WDTPW+WDTCNTCL+WDTSSEL;
Delayms(50); // 延时,等待DCO稳定
Delayms(50);
WriteRawIO(0x02,0x66);
WDTCTL = WDTPW+WDTCNTCL+WDTSSEL; // wdt 定时1S
Delayms(50);
Delayms(50);
WDTCTL = WDTPW+WDTCNTCL+WDTSSEL;
Delayms(50); // 延时,等待DCO稳定
Delayms(50);
ccc = ReadIO(0x00);
WDTCTL = WDTPW+WDTCNTCL+WDTSSEL; // wdt 定时1S
Delayms(50);
Delayms(50);
ccc = 0;
WDTCTL = WDTPW+WDTCNTCL+WDTSSEL; // wdt 定时1S
Delayms(50);
Delayms(50);
WDTCTL = WDTPW+WDTCNTCL+WDTSSEL;
Delayms(50); // 延时,等待DCO稳定
Delayms(50);
ccc = ReadIO(0x02);
WDTCTL = WDTPW+WDTCNTCL+WDTSSEL; // wdt 定时1S
Delayms(50);
Delayms(50);
WDTCTL = WDTPW+WDTCNTCL+WDTSSEL; // wdt 定时1S
Delayms(50);
Delayms(50);
ccc = 0;
WDTCTL = WDTPW+WDTCNTCL+WDTSSEL; // wdt 定时1S
Delayms(50);
Delayms(50);
WDTCTL = WDTPW+WDTCNTCL+WDTSSEL;
Delayms(50); // 延时,等待DCO稳定
Delayms(50);
ccc = ReadIO(0x04);
WDTCTL = WDTPW+WDTCNTCL+WDTSSEL;
Delayms(50); // 延时,等待DCO稳定
Delayms(50);
*/
}
//ResetFM();
/*
for(i=0; i<64;i++ )
{
WDTCTL = WDTPW+WDTCNTCL+WDTSSEL;
Delayms(50); // 延时,等待DCO稳定
Delayms(50);
WDTCTL = WDTPW+WDTCNTCL+WDTSSEL; // wdt 定时1S
Delayms(50);
Delayms(50);
temp[i] = ReadIO(i);
WDTCTL = WDTPW+WDTCNTCL+WDTSSEL;
Delayms(50); // 延时,等待DCO稳定
Delayms(50);
WDTCTL = WDTPW+WDTCNTCL+WDTSSEL; // wdt 定时1S
Delayms(50);
Delayms(50);
}*/
/*
for(i=0; i<64;i++)
{
// ResetFM();
WDTCTL = WDTPW+WDTCNTCL+WDTSSEL;
Delayms(50); // 延时,等待DCO稳定
Delayms(50);
WDTCTL = WDTPW+WDTCNTCL+WDTSSEL; // wdt 定时1S
Delayms(50);
Delayms(50);
WDTCTL = WDTPW+WDTCNTCL+WDTSSEL;
Delayms(50); // 延时,等待DCO稳定
Delayms(50);
WDTCTL = WDTPW+WDTCNTCL+WDTSSEL; // wdt 定时1S
Delayms(50);
Delayms(50);
temp[i] = ReadRawIO(i);
Delayms(50);
WDTCTL = WDTPW+WDTCNTCL+WDTSSEL;
Delayms(50);
ccc = 0;
}
*/
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -