📄 ioport.c
字号:
/*
*********************************************************************************************************
* msp430
* ioport functions
*
*
* File : IOPORT.C
* Data : April 12, 2007
*********************************************************************************************************
*/
#include "hal.h"
/*
*********************************************************************************************************
* INTERRUPT VECTOR FOR "PORT1"
*
* Description :
* Note(s)/Warnings :
*********************************************************************************************************
*/
#pragma vector = PORT1_VECTOR
__interrupt void PORT1_ISR(void)
{
// Clear all P1 int flags
}
/*
*********************************************************************************************************
* INTERRUPT VECTOR FOR "PORT2"
*
* Description :
* Note(s)/Warnings :
*********************************************************************************************************
*/
char P2LAST;
#pragma vector = PORT2_VECTOR
__interrupt void PORT2_ISR(void)
{
char length;
if(P2IFG & BIT0){ //CCxx' GDO2 pin
if(RF0CTRL & RF_BUSY){ //RF is working now
if(RF0CTRL & RF_TRRV){ //receive
if(READ_GDO2){ //sync word has been received
__no_operation();
}else{ //while package has been received
if((SpiReadStatus(CCxxx0_RXBYTES) & BYTES_IN_RXFIFO)) {
length = SpiReadReg(CCxxx0_RXFIFO);
if (length <= *RfRxBuf) { //length ok
*RfRxBuf = length; //get true length
SpiReadBurstReg(CCxxx0_RXFIFO, RfRxBuf+1, length); //read data
SpiReadBurstReg(CCxxx0_RXFIFO, RF0STATUS, 2); //read status
}else{ //length error
*RfRxBuf = length;
SpiStrobe(CCxxx0_SIDLE);
RF0CTRL |= RF_RVERR;
}
}else{ //receive error
SpiStrobe(CCxxx0_SIDLE);
RF0CTRL |= RF_RVERR;
}
RF0CTRL |= RF_OVER;
//GDO2_INT_MSK; //enable key interrupt
}
}else{ //transmit status
if(READ_GDO2){ //sync has been sent
__no_operation();
}else{ //finish transmit
RF0CTRL |= RF_OVER;
GDO2_INT_MSK; //enable key interrupt
}
}
}else{
RF0CTRL |= RF_INTERR;
}
P2IFG &= ~BIT0;
}else{ //keys interrupt
//if(
P2IFG &= BIT0; //clrear all interrupt flag
}
}
/*
*********************************************************************************************************
* KeyScan
*
* Description :
* Arguments : none
* Returned Values :
* Note(s)/Warnings :
*********************************************************************************************************
*/
__no_init char Key_save @LCDM9_;
char KeyScan(void)
{
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -