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

📄 hal.h

📁 单相多功能代码,计量芯片采用ADE7737做为计量,SPI通讯,仅供参考,不得用于商业
💻 H
字号:
/* hal.h */

#ifndef HAL_H
#define HAL_H


#ifdef __cplusplus
extern "C"
{
#endif

// 实时时钟管脚定义 ( MSP430F435 <--> 8025 )
// +---------------+
// |          P6.0 |  ---> WP
// |          P6.6 | <---> SDA
// |          P6.7 |  ---> SCL
// +---------------+

#define RTC_WP                    BIT0
#define RTC_WP_OUT               P6OUT
#define RTC_WP_DIR               P6DIR

#define RTC_SDA                   BIT6
#define RTC_SDA_IN                P6IN
#define RTC_SDA_OUT              P6OUT
#define RTC_SDA_DIR              P6DIR

#define RTC_SCL                   BIT7
#define RTC_SCL_OUT              P6OUT
#define RTC_SCL_DIR              P6DIR

//      MSP430F123   <---> DataFlash
// +---------------+
// |          P2.2 | ---> DATA_FLASH_WP
// |          P3.0 | <--- DATA_FLASH_SO
// |          P3.1 | ---> DATA_FLASH_CS
// |          P3.2 | ---> DATA_FLASH_SCL
// |          P3.3 | ---> DATA_FLASH_SI
// +---------------+
#define DATA_FLASH_WP                              BIT2
#define DATA_FLASH_WP_OUT                             P2OUT
#define DATA_FLASH_SO                              BIT0
#define DATA_FLASH_SO_IN                             P3IN
#define DATA_FLASH_CS                              BIT1
#define DATA_FLASH_CS_OUT                             P3OUT
#define DATA_FLASH_SCL                              BIT2
#define DATA_FLASH_SCL_OUT                             P3OUT
#define DATA_FLASH_SI                              BIT3
#define DATA_FLASH_SI_OUT                             P3OUT


//      MSP430F123   <---> UART
// +---------------+
// |          P3.7 |  ---> UART_TX_EN
// |          P3.4 |  ---> RD_D
// |          P3.5 | <---  RS_R(Interrupt)
// +---------------+
#define UART_TX_EN                  BIT7
#define UART_TX_EN_DIR             P3DIR
#define UART_TX_EN_OUT             P3OUT

#define UART_TX                  BIT4
#define UART_TX_DIR             P3DIR
#define UART_TX_OUT             P3OUT

#define UART_RX                  BIT5
#define UART_RX_DIR             P3DIR
#define UART_RX_IN               P3IN
#define UART_RX_OUT             P3OUT
#define UART_RX_IE               P3IE
#define UART_RX_IES             P3IES
#define UART_RX_IFG             P3IFG
#define UART_RX_SEL             P3SEL



//      MSP430F123   <---> RF Card        
//;        +---------------+
//;        |          P2.0 <---	RF_RX_PIN/RF_OUT_3V
//;        |               |
//;        |          P2.1 --->   	RF_TX_PIN/RF_IN
//;        |               |
//;        |          P1.0/TACLK<---RF_CLK_PIN/RF_CLK_3V
//;        |               |
//;        |          P1.3 ---> 	RF_PWC_PIN  
//;        +---------------+

/* AT88RF256-12 related definitions */

#define    RF_RX_PIN	BIT0         /* 2.0*/
#define 	 RF_RX_PIN_INIT() { P2SEL &= ~RF_RX_PIN; P2DIR &= ~RF_RX_PIN; }
#define 	 RF_RX_PIN_UNINIT() { P2DIR |= RF_RX_PIN; P2OUT &= ~RF_RX_PIN;}
#define 	 RF_RX_BIT()  (P2IN & RF_RX_PIN)

//TX
#define    RF_TX_PIN 	BIT1        	/* 2.1 */
#define 	 RF_TX_PIN_INIT() { P2SEL &= ~RF_TX_PIN; P2DIR |= RF_TX_PIN; }

#define 	 RF_TX_0()  P2OUT &= ~RF_TX_PIN;
#define 	 RF_TX_1()  P2OUT |= RF_TX_PIN;
//CLK
#define    RF_CLK_PIN  	BIT0    	/* 1.0 */ //rf clk input as TA clock source
#define 	 RF_CLK_PIN_INIT() { P1SEL |= RF_CLK_PIN; P1DIR &= ~RF_CLK_PIN; }
#define 	 RF_CLK_PIN_UNINIT() { P1SEL &= ~RF_CLK_PIN; P1DIR |= RF_CLK_PIN; P1OUT &= ~RF_CLK_PIN; }

//PWC
#define 	 RF_PWC_PIN  	BIT3	/* 1.3 */
#define 	 RF_PWC_PIN_INIT() { P1SEL &= ~RF_PWC_PIN; P1DIR |= RF_PWC_PIN; }

#define 	 RF_PWC_ON()  P1OUT &= ~RF_PWC_PIN;
#define 	 RF_PWC_OFF()  P1OUT |= RF_PWC_PIN;


//      MSP430F123   <---> KEY
// +---------------+
// |          P1.1 | <---  KEY(Interrupt)
// +---------------+
#define KEY                  BIT1
#define KEY_DIR             P1DIR
#define KEY_IN               P1IN
#define KEY_OUT             P1OUT
#define KEY_IE               P1IE
#define KEY_IES             P1IES
#define KEY_IFG             P1IFG
#define KEY_SEL             P1SEL


//      MSP430F123   <---> PWR_MONITOR
// +---------------+
// |          P1.2 | <---  PWR_MONITOR(Input)
// +---------------+
#define PWR_MONITOR                  BIT2
#define PWR_MONITOR_DIR             P1DIR
#define PWR_MONITOR_IN               P1IN
#define PWR_MONITOR_OUT             P1OUT
#define PWR_MONITOR_IE               P1IE
#define PWR_MONITOR_IES             P1IES
#define PWR_MONITOR_IFG             P1IFG
#define PWR_MONITOR_SEL             P1SEL



//      MSP430F123   <---> LED
// +---------------+
// |          P3.6 | <---  LED
// +---------------+
#define LED                  BIT6
#define LED_OUT             P3OUT


//      MSP430F123   <---> BEEP
// +---------------+
// |          P2.3 | <---  BEEP
// +---------------+
#define BEEP                  BIT3
#define BEEP_OUT             P2OUT



// I/O init value
// P1.0----RF_CLK_PIN
// P1.1----KEY
// P1.2----PWR_MONITOR
// P1.3----RF_PWC_PIN
#define P1SEL_VAL 0
#define P1DIR_VAL (RF_CLK_PIN+RF_PWC_PIN)
#define P1OUT_VAL (RF_PWC_PIN)
#define P1IES_VAL (KEY)
#define P1IE_VAL (KEY)
// P2.0----RF_TX_PIN
// P2.1----RF_RX_PIN
// P2.2----DATA_FLASH_WP
// P2.3----UART_TX_EN
// P2.4----no use
#define P2SEL_VAL 0
#define P2DIR_VAL (RF_TX_PIN+RF_RX_PIN+DATA_FLASH_WP+BEEP+BIT4)
#define P2OUT_VAL (BEEP+BIT4)
#define P2IES_VAL 0
#define P2IE_VAL 0
// P3.0----DATA_FLASH_SO
// P3.1----DATA_FLASH_SI
// P3.2----DATA_FLASH_CS
// P3.3----DATA_FLASH_SCL
// P3.4----UART_TX
// P3.5----UART_RX
// P3.6----LED
// P3.7----BEEP
#define P3SEL_VAL (UART_TX+UART_RX)
#define P3DIR_VAL (DATA_FLASH_SI+DATA_FLASH_CS+DATA_FLASH_SCL+LED+UART_TX_EN)
#define P3OUT_VAL (DATA_FLASH_SI+DATA_FLASH_CS+DATA_FLASH_SCL+LED+UART_TX_EN)
#define P3IES_VAL 0
#define P3IE_VAL 0


#ifdef __cplusplus
}
#endif


#endif /* HAL_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -