⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ioport.c

📁 MSP4250单芯片电子称,采样数据无线发送给主机,编译环境IAR for MSP430
💻 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 + -