XN297L汇编驱动代码.docx

上传人:b****2 文档编号:2570918 上传时间:2023-05-04 格式:DOCX 页数:53 大小:27.48KB
下载 相关 举报
XN297L汇编驱动代码.docx_第1页
第1页 / 共53页
XN297L汇编驱动代码.docx_第2页
第2页 / 共53页
XN297L汇编驱动代码.docx_第3页
第3页 / 共53页
XN297L汇编驱动代码.docx_第4页
第4页 / 共53页
XN297L汇编驱动代码.docx_第5页
第5页 / 共53页
XN297L汇编驱动代码.docx_第6页
第6页 / 共53页
XN297L汇编驱动代码.docx_第7页
第7页 / 共53页
XN297L汇编驱动代码.docx_第8页
第8页 / 共53页
XN297L汇编驱动代码.docx_第9页
第9页 / 共53页
XN297L汇编驱动代码.docx_第10页
第10页 / 共53页
XN297L汇编驱动代码.docx_第11页
第11页 / 共53页
XN297L汇编驱动代码.docx_第12页
第12页 / 共53页
XN297L汇编驱动代码.docx_第13页
第13页 / 共53页
XN297L汇编驱动代码.docx_第14页
第14页 / 共53页
XN297L汇编驱动代码.docx_第15页
第15页 / 共53页
XN297L汇编驱动代码.docx_第16页
第16页 / 共53页
XN297L汇编驱动代码.docx_第17页
第17页 / 共53页
XN297L汇编驱动代码.docx_第18页
第18页 / 共53页
XN297L汇编驱动代码.docx_第19页
第19页 / 共53页
XN297L汇编驱动代码.docx_第20页
第20页 / 共53页
亲,该文档总共53页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

XN297L汇编驱动代码.docx

《XN297L汇编驱动代码.docx》由会员分享,可在线阅读,更多相关《XN297L汇编驱动代码.docx(53页珍藏版)》请在冰点文库上搜索。

XN297L汇编驱动代码.docx

XN297L汇编驱动代码

;**************************************************************************

;ProjectName:

;FileName:

TX&RX

;Author:

;Time:

2016.10.20

;Vesion:

v1.0

;格式有些不对,可以把代码拷贝到TXT文档里查看

;****************************************

#INCLUDEXXXX.H

;/********************XN297LdBmdefine:

updatewithpanchip********************/

#defineRF13dBm0x3F;;13dBm

#defineRF12dBm0x1F;;12dBm

#defineRF10dBm0X17;;10dBm

#defineRF8dBm0x15;;8dbm

#defineRF6dBm0x0D;;6dbm

#defineRF5dBm0x2c;;5dbm

#defineRF4dBm0x1C;;4dbm

#defineRF2dBm0x13;;2dbm

#defineRF0dBm0X0B;;0dBm

#defineRF_2dBm0x3A;;-3dBmOR-2dBm

#defineRF_6dBm0x0A;;-6dBm

#defineRF_10dBm0x21;;-10dBm

#defineRF_14dBm0x09;;-14dBm

#defineRF_18dBm0x01;;-18dBm

#defineRF_21dBm0x38;;-21dBm

#defineRF_24dBm0x10;;-24dBm

#defineRF_26dBm0x10;;-27dBm

#defineRF_30dBm0x00;;-30dBm

;/********************XN297LSPICOMMAND********************/

#defineR_REGISTER0x00;;SPIreadRFdata

#defineW_REGISTER0x20;;SPIwriteRFdata

#defineR_RX_PAYLOAD0x61;;ReadRXPayload

#defineW_TX_PAYLOAD0xA0;;WriteTXPayload

#defineFLUSH_TX0xE1;;FlushRXFIFO

#defineFLUSH_RX0xE2;;FlushTXFIFO

#defineREUSE_TX_PL0xE3;;ReuseTXPayload

#defineACTIVATE0x50;;ACTIVATE

#defineDEACTIVATE0x50;;DEACTIVATE

#defineR_RX_PL_WID0x60;;ReadwidthofRXdata

#defineW_ACK_PAYLOAD0xA8;;DatawithACK

#defineW_TX_PAYLOAD_NOACK0xB0;;TXPayloadnoACKRequest

#defineCE_FSPI_ON0xFD;;CEHIGH

#defineCE_FSPI_OFF0xFC;;CELOW

#defineRST_FSPI0x53;;RESET

#defineNOP_N0xFF

;/******************XN297LSPICONTROLREGISTER*******************/

#defineCONFIG0x00

#defineEN_AA0x01

#defineEN_RXADDR0x02

#defineSETUP_AW0x03

#defineSETUP_RETR0x04

#defineRF_CH0x05

#defineRF_SETUP0x06

#defineRF_STATUS0x07

#defineOBSERVE_TX0x08

#defineRPD0x09

#defineRX_ADDR_P00x0A

#defineRX_ADDR_P10x0B

#defineRX_ADDR_P20x0C

#defineRX_ADDR_P30x0D

#defineRX_ADDR_P40x0E

#defineRX_ADDR_P50x0F

#defineTX_ADDR0x10

#defineRX_PW_P00x11

#defineRX_PW_P10x12

#defineRX_PW_P20x13

#defineRX_PW_P30x14

#defineRX_PW_P40x15

#defineRX_PW_P50x16

#defineFIFO_STATUS0x17

#defineDEM_CAL0x19

#defineRF_CAL20x1A

#defineDEM_CAL20x1B

#defineDYNPD0x1C

#defineFEATURE0x1D

#defineRF_CAL0x1E

#defineBB_CAL0x1F

;/*************************XN297LBUST&ENHANCEDEFINE****************************************/

#defineTRANS_ENHANCE_MODE1;传输类型增强型

#defineTRANS_BURST_MODE0;传输类型普通型

;/*************************XN297LRATEDEFINE****************************************/

#defineDR_1M0X00;;通信速率1Mbps

#defineDR_2M0X40;;通信速率2Mbps

#defineDR_250K0XC0;;通信速率2Mbps

;/*************************XN297LDEFAULTVALUE****************************************/

#defineDEFAULT_CHANNEL78;公共频率:

MHz

#definePAYLOAD_WIDTH8;收发数据长度8bytes

#defineTRANSMIT_TYPETRANS_BURST_MODE;使用无应答普通模式

#defineRFdbmRF0dBm;TX发射功率dBm

;#defineRF_RATE_250K;选择通讯速率

#ifdefRF_RATE_250K

#defineDATA_RATEDR_250K;通信速率2MbpsDR_2MDR_1M

#else

#defineDATA_RATEDR_1M;通信速率2MbpsDR_2MDR_1M

#endif

#defineEN_PIPE_NUM0x01;Enablepipe0

#defineADD_WIDTH0x03;02---4byte03--5byteAddressNbytes

#defineSETUP_RETR_DELAY0X00;RETR0次ANDDelay0us

#defineEN_AA_PIPE_NUM0X00;NOACK00H

#defineDYNPD_DATA00H;disable动态长度PIPEN

#defineFEATURE_DATA20H;[5]:

CEBYCOMMAND;[4-3]:

64/32BYTES;[2]:

ENABLEDYNPD;[1]:

ENABLEACKPLD

;*************************DEFAULTADDRESS*********************************************

#defineADD_R00xCC

#defineADD_R10xCC

#defineADD_R20xCC

#defineADD_R30xCC

#defineADD_R40xCC

;;************************USERIODEFINED*********************************************/

;SEND

KEY_FEQUP0,6

KEY_BEQUP0,7

KEY_REQUP0,1

KEY_LEQUP0,0

KEY_SEQUP0,2

KEY_FUNEQUP0,3

;RECEIVE

F_PWMEQUP0,6

B_PWMEQUP0,7

MR1EQUP0,3

MLEQUP0,2

DETECEQUP1,5;S1

T_FEQUP0,0

T_BEQUP0,1

KEY_UPEQUP1,5

KEY_DWEQUP2,0

;*************************FCCSETDEFINED*********************************************

FCC_H1EQUP0,3;FCC高频模式

FCC_MEQUP0,7;FCC中频模式

FCC_LEQUP0,6;FCC低频模式

FCC_SEQUP0,2;FCC单载波模式

;*************************LEDIODEFINED*********************************************

;SEND

LED_COMEQUP1,5

TEST_PINEQUP1,4

;*************************2.4GSPI接口定义DEFINED***********************************

MOSI_OUTMACRO

SETBP1CL,3

CLRBP1CL,2

ENDM

MOSI_INMACRO

CLRBP1CL,3

CLRBP1CL,2

ENDM

CSNEQUP1,3

SCKEQUP1,2

MOSIEQUP1,1

MISOEQUP1,0

CEEQUP1,4

IRQEQUP2,2

;*************************FCC_MODESELECTPINDEFINED********************************

FCC_MODE_SELCETEQUP0,4

TX_RX_SELCETEQUP2,1

;*************************KSCANDATADEF*************************************

c_rkeycDEF.6;检测按键放开消抖次数6

c_keycDEF.5;检测按键按下消抖次数5

;;*************************用户全局变量******************************************

TCOUNTEQU?

;定时,主函数延时用

IRQ_WAIT_NUMEQU?

;IRQ循环计数

HOP_FREEQU?

;频点

CHINDEXEQU?

;下一个频点

;*********************SPI参数***********************

W_BUF0EQU?

W_BUF1EQU?

W_BUF2EQU?

W_BUF3EQU?

W_BUF4EQU?

W_BUF5EQU?

W_BUF6EQU?

W_BUF7EQU?

W_BUF8EQU?

W_BUF9EQU?

W_BUF10EQU?

W_BUF11EQU?

R_BUF0EQU?

R_BUF1EQU?

R_BUF2EQU?

R_BUF3EQU?

R_BUF4EQU?

R_BUF5EQU?

R_BUF6EQU?

R_BUF7EQU?

R_BUF8EQU?

R_BUF9EQU?

R_BUF10EQU?

R_BUF11EQU?

W_DATAEQU?

;;*************************用户临时变量******************************************

FLAGS_BAKEQU?

;08H;?

;中断保存FLAGS值用,临时

ACC_BAKEQU?

;0EH;?

;中断保存ACC值用,临时

DELAY_TEMP0EQU?

;0FH;?

;延时函数需要,临时

DELAY_TEMP1EQU?

;25H;?

;延时函数需要,临时

COUNTEQU?

;26H;?

;临时变量

TEMPEQU?

;27H;?

;临时变量

TEMPDATAEQU?

;2AH;?

;临时变量

TR_STATUSEQU?

;2BH;?

;RF状态变量;临时

;**************************标志位定义********************************************

;TX相关标志位

WORKEQU?

RECEIVE_FLAGEQUWORK,0;;接收到数据标志

BIND_BITEQUWORK,1

SEND_INGEQUWORK,2;;上一帧数据正在发送标志

RXTX_MODEEQUWORK,3;1为RX模式,0:

TX模式

FCC_MODE_SINGLEEQUWORK,4

FCC_SEND_DATAEQUWORK,5

HOLD_CHANNEL_CURRENTEQUWORK,6

ENTER_SEND_56EQUWORK,7

SEND_STB_FLAGEQU?

;发射对码过程标志

SEND_STB1_FEQUSEND_STB_FLAG,0

STEP_4_FLAGEQUSEND_STB_FLAG,1

ACK_SEND_OKEQUSEND_STB_FLAG,2

STB1EQUSEND_STB_FLAG,3;;发射对码的状态控制

STB2EQUSEND_STB_FLAG,4;

STB3EQUSEND_STB_FLAG,5;

FIRST_YS_FLAGEQUSEND_STB_FLAG,6;

CHECKDATA_OKEQUSEND_STB_FLAG,7;校验标志

;RX相关标志位

RX_RECE_FEQU?

;RX用到的标志

RXID_EQUEQURX_RECE_F,0

FACID_EQUEQURX_RECE_F,1

RX_ACK_FLAGEQURX_RECE_F,2

TXID_EQUEQURX_RECE_F,3

RX_ACKA1_FLAGEQURX_RECE_F,4

RX_ACKA0_FLAGEQURX_RECE_F,5

RX_HAVE50HEQURX_RECE_F,6

RX_HAVE51HEQURX_RECE_F,7

MOTOR_FEQU?

FRONT_FLAGEQUMOTOR_F,0

BACK_FLAGEQUMOTOR_F,1

RF_DATA_REC_AVILADEQUMOTOR_F,2;接收数据有效标志

SEN_REC_FLAGEQUMOTOR_F,3

BS_STATUS_FLAGEQUMOTOR_F,4;变身状态保持标志0为下降,1为上升

BS_STOP_MOVE_FLAGEQUMOTOR_F,5;变身状态停止

PWM_START_FEQUMOTOR_F,6

FOUT_FEQUMOTOR_F,7

SAVE_RAM1EQU?

SAVE_RAM2EQU?

SAVE_RAM3EQU?

;------------START----------------------

;****************************************

;****************************************

ORG07FFH

JPSTART

ORG0000H

JPSTART

ORG0001H

INT_SERVICE:

LDACC_BAK,A;中断现场保护

SWAPRACC_BAK

SWAPAFLAGS

LDFLAGS_BAK,A

INT_TMR2:

SNZBINT_EN,EN_T2;TMR2IE;;判断中断类型

JPINT_EXIT

SNZBINT_FLAG,F_T2;TMR2IF

JPINT_EXIT

CLRBINT_FLAG,F_T2

JPTIMER_2

;---------------------定时中断---------------------

TIMER_2:

INCRTCOUNT;;定时器0中断

LDIA.249

LDT2DATA,A;设置TMR2目标值

JPINT_EXIT

;---------------------ADC中断---------------------

;--------------------------------------------

;--------------------------------------------------

INT_EXIT:

SWAPAFLAGS_BAK;中断返回

LDFLAGS,A

SWAPAACC_BAK

RETI

;************************************************************

;************************************************************

;*******************系统初始化,I/O初始化,延时,清RAM,初始化RAM等**************

START:

NOP

NOP

START_NEXT:

CLRWDT

;-----------初始化系统寄存器-----------------

;关闭总中断,外设中断,清中断标志

CLRSYS_GEN;INTCON中断使能控制寄存器

CLRINT_EN;中断控制寄存器INT_EXT暂时没使用

;SETBWDTCON,0

;LDIA04H

;OPTIONTIMER0应用

;-----------初始化I/O------------------------

LDIAB'00000000';设置P0口各位P0.3,P0.2,P0.1,P0.0输入输出方式00:

上拉输入01:

输入10:

推挽输出11:

AN/EKY

LDP0CL,A;P03:

KEY_FUNP02:

KEY_SP01:

KEY_BP00:

KEY_F

LDIAB'00001000';P07:

KEY_RP06:

KEY_LP05:

NCP04:

FCC_MODE

LDP0CH,A

LDIAB'10101000';设置P13:

CSP12:

SCKP11:

MOSIP10:

MISO口各位输入输出方式

LDP1CL,A

LDIAB'10010010';P6XXXP5XXXLED_COMP4:

CEXX

LDP1CH,A

LDIAB'00000010';设置P22:

IRQX输入P21XXXTX/RXP20XXX口各位输入输出方式

LDP2C,A

CLRP0

CLRP1

CLRP2

;-----------延时250MS等待稳定(256*(4*256+5)+10)~250ms--------------

;---------------------------------------------------------------------

START_DELAY:

CLRDELAY_TEMP0

CLRDELAY_TEMP1

START_DELAY_LOOP:

CLRWDT

SZDECRDELAY_TEMP0

JPSTART_DELAY_LOOP

SZDECRDELAY_TEMP1

JPSTART_DELAY_LOOP

;-----------------------------------------------

;上电清所有通用RAM。

RAM通过STATUS.IRP位分2页

;地址范围:

00~2F30-7F

;--------------------------------------------

;-----------清通用寄存器BANK0--------------------------

CLR_RAM:

;FLAGS,4=0BANK0间接寻址清掉所有RAM

LDIA0FH

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2