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

📄 wdct_02.h

📁 我写的atmega16驱动的nrf24l01程序
💻 H
字号:
/****************************************Copyright (c)**********************************************
**      Copyright (c) 2001,ysh
**      All rights reserved.
**
**----------------------------------文件信息--------------------------------------------------------
** 文件名称: nrf24l01.h
** 文件标识:见配置管理计划书
** 文件摘要:2.4G射频通信模块通信配置文件
**
** 当前版本: 0.2
** 作    者:ysh815
** 完成日期:2006/07/03
**----------------------------------修改信息--------------------------------------------------------
** 取代版本:
** 原  作者:
** 完成日期:
**--------------------------------------------------------------------------------------------------
** 取代版本:
** 原  作者:
** 完成日期:
**
***************************************************************************************************/
#include <iom16v.h>
#include <macros.h>
#include <eeprom.h>	

//----------------------------------------------------------------------
//申明中断
#pragma interrupt_handler INT_EX0:iv_INT0;
#pragma interrupt_handler INT_Timer0:iv_TIMER0_OVF;		
#pragma interrupt_handler INT_Timer1:iv_TIMER1_OVF;
#pragma interrupt_handler INT_USART_RX:iv_USART_RX;
#pragma interrupt_handler INT_USART_TX:iv_USART_TX;
#pragma interrupt_handler spi_stc_isr:11

//#pragma interrupt_handler INT_ADVAR:iv_ADC;

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

#define	dTrue	0x55
#define	dFalse	0x00

#define uchar	unsigned char
#define uint 	unsigned int

//口线定义
//----------------------------------------------------------------------
//PORTA作为按键检测  
#define KeyPORT		PORTA
#define KeyPIN		PINA
#define KeyDDR		DDRA
// ---------------------------------------------------------------------
//PORTB0--2模拟SPI口  ---v0.2
#define SimSPI_PORT		PORTB
#define SimSPI_PIN		PINB
#define SimSPI_DDR		DDRB
//#define SimSck			0
//#define SimMosi			1
//#define SimMiso			2

#define nrfPORT			PORTB
#define nrfPIN			PINB
#define nrfDDR			DDRB
#define nrfCE			3
#define nrfSS			4
//PORTB5--7:SPI口  
#define SPI_PORT		PORTB
#define SPI_PIN			PINB
#define SPI_DDR			DDRB
#define SpiMosi			5
#define SpiMiso			6
#define SpiSck			7
//----------------------------------------
//PORTC--IR
#define IR_PORT		PORTC
#define IR_PIN		PINC
#define IR_DDR		DDRC
#define	IrIn		0
#define LedPORT		PORTC
#define LedPIN		PINC
#define LedDDR		DDRC
#define	Led2		1
#define	Led1		2
//----------------------------------------
//PORTD0,1--UART
//PORTD2--EXIRQ
//PORT3-7:L3 interface
#define L3PORT		PORTD
#define L3PIN		PIND
#define L3DDR		DDRD

#define	L3D			3
#define	L3C			5
#define	L3M			6


#define	Ws		4
#define	SysClk		7
//----------------------------------------

//----------------------------------------------------------------------
// ----------定义在EEPROM中的变量---------------------------------------
#pragma data:eeprom

unsigned char II2C_Test[]		={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
unsigned char II2C_UserConfig[]		=
//0,   1,	2,	  3,   4,   5,	 6,	 7,   8,   9,  a,   b,  
{0x0f,0x0f,0x01,0x03,0x0a,0x40,0x07,0x70,0x00,0x00,0x00,0x00,
//c,   d,   e,   f,  10,  11,  12,  13,  14,  15,  16,  17
0xc3,0xc4,0xc5,0xc6,0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x00};			//
unsigned char II2C_RxPipe0Addr[]={0x01,0x02,0x03,0x04,0x05};
unsigned char II2C_RxPipe1Addr[]={0x01,0x02,0x03,0x04,0x06};
unsigned char II2C_TxPipeAddr[]={0x01,0x02,0x03,0x04,0x05};

#define UserConfigAddress		(int) (&II2C_UserConfig[0])
#define RxPipe0Addr				(int) (&II2C_RxPipe0Addr[0])
#define RxPipe1Addr				(int) (&II2C_RxPipe1Addr[0])
#define TxPipeAddr				(int) (&II2C_TxPipeAddr[0])
// ---------------------------------------------------------------------
// ----------定义在RAM中的变量------------------------------------------
#pragma data:data 

unsigned char   nrfTxBuf[6];         // nRF输出缓冲区   
unsigned char   nrfTxDataBuf[100];         // nRF输出缓冲区   
unsigned char   nrfRxBuf[100];         // nRF输入缓冲区
unsigned char   udaTxBuf[100];         // uda输出缓冲区   
unsigned char   udaRxBuf[100];         // uda输入缓冲区
unsigned char   ComTxBuf[100];         // Com输出缓冲区   
unsigned char   ComRxBuf[100];         // Com输入缓冲区
unsigned char   ComTxCount,ComRxCount;
unsigned int    ComRxingTimeLimited;

unsigned char   *PtComTx;

unsigned char   KeyBeforeCodeTemp,KeyDelayCou,KeyValue;
unsigned char   bKeyPress,bKeyGetted,bBusy;

unsigned char   bCom2Spi,bSpiTxing,bCom2Spi,bComRxing,bComTxing;
unsigned char   bEx0Interrupt;
unsigned char   RegisterNum;

unsigned char   bTime2ms,bSignal2Hz,bTest;
unsigned int    Timer1sCount,Timer300msCount;
unsigned char   Led1FlashTimes,Led2FlashTimes;

#define	_TurnOnLed1		LedPORT &=~(1<<Led1)
#define	_TurnOnLed2		LedPORT &=~(1<<Led2)
#define	_TurnOffLed1		LedPORT |=(1<<Led1)
#define	_TurnOffLed2		LedPORT |=(1<<Led2)

#define	_SetNRF_CE		nrfPORT |= 1<<nrfCE
#define	_ClrNRF_CE		nrfPORT &= ~(1<<nrfCE)
#define	_SetNRF_SS		nrfPORT |= 1<<nrfSS
#define	_ClrNRF_SS		nrfPORT &= ~(1<<nrfSS)


//---------------------------nRF24L01寄存器定义-----------------------
#define dRegister_Config	0x00
#define bMASK_RX_DR			0x06
#define bMASK_TX_DS			0x05
#define bMASK_MAX_RT		0x04
#define bEN_CRC				0x03
#define bCRCO				0x02
#define bPWR_UP				0x01
#define bPRIM_RX			0x00

#define dRegister_EN_AA		0x01
#define bENAA_P5			0x05
#define bENAA_P4			0x04
#define bENAA_P3			0x03
#define bENAA_P2			0x02
#define bENAA_P1			0x01
#define bENAA_P0			0x00

#define dRegister_Status	0x07
#define bRX_DR				0x06
#define bTX_DS				0x05
#define bMAX_RT				0x04
#define bTX_Full			0x00

#define dRegister_RX_PWP0	0x11
#define dRegister_RX_PWP1	0x12
#define dRegister_RX_PWP2	0x13
#define dRegister_RX_PWP3	0x14
#define dRegister_RX_PWP4	0x15
#define dRegister_RX_PWP5	0x16

//---------------------------nRF24L01命令定义-----------------------
#define dCom_Read			0x00
#define dCom_Write			0x20


#define dCom_ReadData		0x61
#define dCom_WriteData		0xa0
#define dCom_ClrTxFIFO		0xe1
#define dCom_ClrRxFIFO		0xe2
#define dCom_RESUT_TX_PL	0xe3


	
	

⌨️ 快捷键说明

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