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

📄 hal.h

📁 MSP4250单芯片电子称,采样数据无线发送给主机,编译环境IAR for MSP430
💻 H
字号:
#ifndef  __HAL_H
#define  __HAL_H

#include "msp430x42x0.h"
#include "in430.h"
#include "common.h"
#include "ccreg.h"
#include "function.h"

//------------------------------------------------------------------------------
#define PLATE4		BIT7
#define PLATE3		BIT6
#define PLATE2		BIT5
#define PLATE1		BIT4
#define PLATE0		BIT3
#define KEY1		BIT2
#define PLATESHIFT	3

#define SET_EO		P5OUT |=  BIT7
#define CLR_EO		P5OUT &= ~BIT7
#define CCGDO2		BIT0				//ccxxxx
#define CCOVER		BIT7
//------------------------------------------------------------------------------
#define TIMER_A3_OFF		(TACTL = 0)
#define TIMER_A3_ON			(TACTL = TASSEL_1 + ID_3 + MC_1 + TACLR)
#define TIMER_A30_DURA(x)	{TACCR0 = x;TIMER_A3_ON;}

 #define TIMER_A30_1MS		3
 #define TIMER_A30_10MS		40
 #define TIMER_A30_100MS	409
 #define TIMER_A30_1S		4095
 #define TIMER_A30_10S		40959
 //min = 1/4096s   max = 16S

#define BTIMER_ON		IE2 |=  BTIE		//only disable or enable the IEN bit
#define BTIMER_OFF		IE2 &= ~BTIE
//------------------------------------------------------------------------------
#define  I2C_Wait()	{__no_operation();\
					 __no_operation();\
    				 __no_operation();\
					}

#define I2C_SDA_SET		(P5OUT |=  BIT5)
#define I2C_SDA_CLR		(P5OUT &= ~BIT5)
#define I2C_SCL_SET		(P5OUT |=  BIT6)
#define I2C_SCL_CLR		(P5OUT &= ~BIT6)

#define I2C_SCL_CLK		{I2C_SCL_SET; I2C_Wait(); I2C_SCL_CLR;}

#define I2C_SDA_DIRI	(P5DIR &= ~BIT5)
#define I2C_SDA_DIRO	(P5DIR |=  BIT5)
#define I2C_SDA_IN		((P5IN & BIT5) >> 5)

#define I2C_READ_MSK	BIT0
#define I2C_ACK			0
#define I2C_NOACK		1

#define I2C_DEVICE		0xA0

#define I2C_WAIT_WRITE	Pause_1mS(10)

#define I2C_TEST_ADDR	0xfe
#define I2C_CHACK_EN
//----------------------------------------------------------------------------//
#define SD16_REF	BIT4	//P6OUT
#define SD16_CH0	BIT5
#define SD16_CH1	BIT6
#define SD16_CH2	BIT7
#define SD16_CH3	BIT0	//P5OUT
#define SD16_CH4	BIT1

#define SD16_OFF_ALL	{P5OUT |=   BIT0+BIT1;  P6OUT |=   BIT4 + BIT5 + BIT6 + BIT7; }
#define SD16_ON_ALL		{P5OUT &= ~(BIT0+BIT1); P6OUT &= ~(BIT4 + BIT5 + BIT6 + BIT7);}
#define SD16CH_OFF_ALL	{P5OUT |=   BIT0+BIT1;  P6OUT |=   BIT5 + BIT6 + BIT7; }
#define SD16CH_ON_ALL 	{P5OUT &= ~(BIT0+BIT1); P6OUT &= ~(BIT5 + BIT6 + BIT7);}

#define SD16CH_OFF(x) 	{if(x>2){P5OUT |=   0x10>>x ;} else{P6OUT |=   0x20<<x; }}
#define SD16CH_ON(x) 	{if(x>2){P5OUT &= ~(0x10>>x);} else{P6OUT &= ~(0x20<<x);}}

#define SD16REF_OFF 	(P6OUT |=  SD16_REF)
#define SD16REF_ON 		(P6OUT &= ~SD16_REF)


#ifdef DEBUG
 #define CAL_MIN_MAX_SPAN    5000				//for test, get the tenth
 #define SET_TEST1	(P6OUT |=  SD16_CH1)
 #define CLR_TEST1	(P6OUT &= ~SD16_CH1)
 #define SET_TEST2	(P6OUT |=  SD16_CH2)
 #define CLR_TEST2	(P6OUT &= ~SD16_CH2)
#else
 #define CAL_MIN_MAX_SPAN    5000				// Scale value for CalMin/CalMax 10,000 Counts=10kg=10,000g
#endif

// Get a 18-bit wide result from SD16 channel 0 (17 bit + sign bit)
// Basic bit wide 16
#define SD16_BIT_WIDE		18

//----------------------------------------------------------------------------//

//----------------------------------------------------------------------------//
#endif

⌨️ 快捷键说明

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