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

📄 board.h

📁 chipcom公司CC1100无线模块底层驱动程序
💻 H
字号:
#ifndef __BOARD_h
#define __BOARD_h

#define	FOSC		8000000
#define	BAUD		9600
#define	UBRRN		(FOSC/(16*BAUD)-1)
#define	BAUD_TEST	3//9600

//Enable or Disable Rx and Tx interrupt
#define EN_RX()			SETBIT(UCSR0B,RXEN0)
#define DIS_RX()		CLRBIT(UCSR0B,RXEN0)

#define EN_RX_INT()  	SETBIT(UCSR0B,RXCIE0)
#define DIS_RX_INT() 	CLRBIT(UCSR0B,RXCIE0)

#define EN_TX_INT()  	SETBIT(UCSR0B,UDRIE0)
#define DIS_TX_INT() 	CLRBIT(UCSR0B,UDRIE0)

#define TXEN_OUT		SETBIT(DDRC,PC0)
#define TXEN_SET_H		SETBIT(PORTC,PC0)
#define TXEN_SET_L		CLRBIT(PORTC,PC0)

#define RXEN_OUT		SETBIT(DDRC,PC1)
#define RXEN_SET_H		SETBIT(PORTC,PC1)
#define RXEN_SET_L		CLRBIT(PORTC,PC1)

#define BEEP_INIT()		SETBIT(DDRD,PD5)
#define BEEP_ON()		SETBIT(PORTD,PD5)//beep
#define BEEP_OFF()		CLRBIT(PORTD,PD5)//beep

#define S2_STATUS	CHKBIT(PIND,PD4)//KEY
#define KEY_STATUS	S2_STATUS

#define S3_0_STATUS	CHKBIT(PINB,PB5)//WORK MODE
#define WORK_MODE	S3_0_STATUS

#define S3_1_STATUS	CHKBIT(PINB,PB4)//CS
#define CS_SELECT	S3_1_STATUS

#define S3_2_STATUS	CHKBIT(PINB,PB3)//channel
#define S3_3_STATUS	CHKBIT(PINB,PB2)
#define S3_4_STATUS	CHKBIT(PINB,PB1)

#define S3_5_STATUS	CHKBIT(PINB,PB0)//baud
#define S3_6_STATUS	CHKBIT(PIND,PD7)
#define S3_7_STATUS	CHKBIT(PIND,PD6)
#define BAUD_SET	(~((S3_2_STATUS>>1)|\
                        (S3_3_STATUS>>1)|\
                        (S3_4_STATUS>>1))&0x07)

#define CHAN_SET_DEMO	(~((S3_5_STATUS<<2)|\
                        (S3_6_STATUS>>6)|\
                        (S3_7_STATUS>>6))&0x07)


#define CHAN_SET_TEST	(~(S3_1_STATUS<<2|\
						(S3_2_STATUS<<2)|\
                        (S3_3_STATUS<<2)|\
                        (S3_4_STATUS<<2)|\
                        (S3_5_STATUS<<2)|\
                        (S3_6_STATUS>>6)|\
                        (S3_7_STATUS>>6))&0x7F)
#if 0
S3_0_STATUS 0x0020
S3_1_STATUS 0x0010
S3_2_STATUS 0x0008
S3_3_STATUS 0x0004
S3_4_STATUS 0x0002
S3_5_STATUS 0x0001
S3_6_STATUS 0x0080
S3_7_STATUS 0x0040

S3_STATUS 0x00FF
#endif

#define S3_STATUS   (S3_0_STATUS>>5)|\
                    (S3_1_STATUS>>3)|\
                    (S3_2_STATUS>>1)|\
                    (S3_3_STATUS<<1)|\
                    (S3_4_STATUS<<3)|\
                    (S3_5_STATUS<<5)|\
                    (S3_6_STATUS>>1)|\
                    (S3_7_STATUS<<1)
//#if	WORK_MODE==WORK_DEMO

//#endif

//#if	WORK_MODE==WORK_TEST

//#endif


#define MAX_RF_BUFF	 	64
#define MAX_UT_BUFF	 	64
#define MAX_DATA_NUM 	60
#define MAX_DATA_TEST 	48

typedef struct S_SYS_SETTINGS {
	INT8U	tcnt0_val; //超时
	INT8U	ubrr0l_val;//波特率
	INT8U	ubrr0h_val;//....
	INT8U	mdcfg4_val;//CC1100频率
	INT8U	mdcfg3_val;//....
	INT8U	deviatn;   //DEVIATN
	INT16U  baud;
} SYS_SETTINGS;

//x=100H-(Time*8000/1024)
#define T_T0_1MS	0xF9//1MS
#define T_T0_2MS	0xF1//2MS
#define T_T0_3MS	0xE9//3MS
#define T_T0_4MS	0xE1//4MS
#define T_T0_5MS	0xD9//5MS
#define T_T0_6MS	0xD2//6MS
#define T_T0_7MS	0xCA//7MS
#define T_T0_8MS	0xC2//8MS
#define T_T0_9MS	0xBA//9MS
#define T_T0_10MS	0xB2//10MS
#define T_T0_11MS	0xAB//11MS
#define T_T0_12MS	0xA3//12MS

#define T_T0_13MS	0x9B//13MS
#define T_T0_14MS	0x93//14MS
#define T_T0_15MS	0x8B//15MS
#define T_T0_16MS	0x83//16MS
#define T_T0_17MS	0x7C//17MS
#define T_T0_18MS	0x74//18MS

extern INT8U RFSend_Start;
extern INT8U CC1100IntHFlg;
extern INT8U CC1100IntLFlg;
extern INT8U CC1100CfgReg[38];


extern INT8U Test_RFTx_Buf[MAX_DATA_TEST];
extern INT8U UartReceive_Buf[MAX_UT_BUFF];	//射频发送(串口接收)缓存
extern INT8U RFReceive_Buf[MAX_RF_BUFF]; 	//射频接收(串口发送)缓存

extern INT8U RFSendCnt;        //射频发送计数器,记录要发送的字节个数
extern INT8U RFReceiveCnt;     //串口发送计数器

extern INT8U RFReceiveLen;     //串口发送字节长度

extern INT8U RFSendFlg;        //当串口接收完一包数据,置该标志
extern INT8U RFReceiveFlg;     //当射频接收完一包数据,置该标志

extern INT8U RFState;          //保存射频状态,共两种状态:发送、接收

extern INT8U RXOTFlg;          //串口接收数据超时标志
extern INT8U RXOTCnt;          //串口接收数据超时计数器

extern INT8U  Beep_Flag;
extern INT16U Beep_Time;
/*
************************************************************
*Description:初始化CC1100
*Arguments  :none
*Returns    :none
*Notes      :
************************************************************
*/
extern void CC1100Init(void);
/*
************************************************************
*Description:处理CC1100中断函数,每中断一次调用一次该函数
*Arguments  :none
*Returns    :none
*Notes      :
************************************************************
*/
extern void RF_ReceivePacket(void);


/*
************************************************************
*Description:射频发送函数,当串口接收完一包数据且射频处于
*            接收状态时,调用该函数
*Arguments  :none
*Returns    :none
*Notes      :
************************************************************
*/
extern void RF_SendPacket(INT8U *txBuffer, INT8U size);


/*
************************************************************
*Description:射频接收完一包数据处理函数,准备把数据发送到串口
*Arguments  :none
*Returns    :none
*Notes      :
************************************************************
*/
extern void Uart_SendPacket(void);



extern INT8U Key_Scan(void);

/*
************************************************************
*Description:初始化系统各种参数,配置寄存器
*Arguments  :none
*Returns    :none
*Notes      :
************************************************************
*/
extern void InitSys(void);

#endif

⌨️ 快捷键说明

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