?? cc1100_pa_rx.asm
字號:
; PICBASIC PRO(TM) Compiler 2.50a, (c) 1998, 2007 microEngineering Labs, Inc. All Rights Reserved.
_USED EQU 1
INCLUDE "C:\PBP250A\18F458.INC"
; Define statements.
#define OSC 10
RAM_START EQU 00000h
RAM_END EQU 005FFh
RAM_BANKS EQU 00006h
BANK0_START EQU 00060h
BANK0_END EQU 000FFh
BANK1_START EQU 00100h
BANK1_END EQU 001FFh
BANK2_START EQU 00200h
BANK2_END EQU 002FFh
BANK3_START EQU 00300h
BANK3_END EQU 003FFh
BANK4_START EQU 00400h
BANK4_END EQU 004FFh
BANK5_START EQU 00500h
BANK5_END EQU 005FFh
BANKA_START EQU 00000h
BANKA_END EQU 0005Fh
FLAGS EQU RAM_START + 000h
R0 EQU RAM_START + 001h
R1 EQU RAM_START + 003h
R2 EQU RAM_START + 005h
R3 EQU RAM_START + 007h
R4 EQU RAM_START + 009h
R5 EQU RAM_START + 00Bh
R6 EQU RAM_START + 00Dh
R7 EQU RAM_START + 00Fh
R8 EQU RAM_START + 011h
T1 EQU RAM_START + 013h
GOP EQU RAM_START + 015h
RM1 EQU RAM_START + 016h
RM2 EQU RAM_START + 017h
RR1 EQU RAM_START + 018h
RR2 EQU RAM_START + 019h
RS1 EQU RAM_START + 01Ah
RS2 EQU RAM_START + 01Bh
PB01 EQU RAM_START + 01Ch
_Dtest EQU RAM_START + 01Dh
_ADD_ID EQU RAM_START + 01Fh
_B0 EQU RAM_START + 020h
_Cmd EQU RAM_START + 021h
_cnt EQU RAM_START + 022h
_D0 EQU RAM_START + 023h
_Dat EQU RAM_START + 024h
_FIFO_BYTE EQU RAM_START + 025h
_i EQU RAM_START + 026h
_j EQU RAM_START + 027h
_k EQU RAM_START + 028h
_n EQU RAM_START + 029h
_pkt EQU RAM_START + 02Ah
_pkt_Len EQU RAM_START + 02Bh
_STA_TUS EQU RAM_START + 02Ch
_temp EQU RAM_START + 02Dh
_tx_error EQU RAM_START + 02Eh
_RX_buf EQU RAM_START + 02Fh
_TX_buf EQU RAM_START + 04Eh
_buffer EQU RAM_START + 06Eh
_PORTL EQU PORTB
_PORTH EQU PORTC
_TRISL EQU TRISB
_TRISH EQU TRISC
#define _PA_En _PORTB??2
#define _MISO _PORTB??3
#define _Sck _PORTB??4
#define _MOSI _PORTB??5
#define _GDO0 _PORTB??6
#define _CSn _PORTB??7
#define _TX _PORTC??6
#define _RX _PORTC??7
#define _Msb_Data PB01, 001h
#define _MISO_Wait PB01, 000h
#define _Tx_complete PB01, 003h
#define _Rx_rcv PB01, 002h
#define _PORTB??2 PORTB, 002h
#define _PORTB??3 PORTB, 003h
#define _PORTB??4 PORTB, 004h
#define _PORTB??5 PORTB, 005h
#define _PORTB??6 PORTB, 006h
#define _PORTB??7 PORTB, 007h
#define _PORTC??6 PORTC, 006h
#define _PORTC??7 PORTC, 007h
#define _Cmd??7 _Cmd, 007h
#define _STA_TUS??0 _STA_TUS, 000h
#define _Cmd??6 _Cmd, 006h
#define _Dat??7 _Dat, 007h
#define _Dat??0 _Dat, 000h
#define _B0??0 _B0, 000h
; Constants.
_T2400 EQU 00000h
_T1200 EQU 00001h
_T9600 EQU 00002h
_T300 EQU 00003h
_N2400 EQU 00004h
_N1200 EQU 00005h
_N9600 EQU 00006h
_N300 EQU 00007h
_OT2400 EQU 00008h
_OT1200 EQU 00009h
_OT9600 EQU 0000Ah
_OT300 EQU 0000Bh
_ON2400 EQU 0000Ch
_ON1200 EQU 0000Dh
_ON9600 EQU 0000Eh
_ON300 EQU 0000Fh
_MSBPRE EQU 00000h
_LSBPRE EQU 00001h
_MSBPOST EQU 00002h
_LSBPOST EQU 00003h
_LSBFIRST EQU 00000h
_MSBFIRST EQU 00001h
_CLS EQU 00000h
_HOME EQU 00001h
_BELL EQU 00007h
_BKSP EQU 00008h
_TAB EQU 00009h
_CR EQU 0000Dh
_UnitOn EQU 00012h
_UnitOff EQU 0001Ah
_UnitsOff EQU 0001Ch
_LightsOn EQU 00014h
_LightsOff EQU 00010h
_Dim EQU 0001Eh
_Bright EQU 00016h
_Burst EQU 00006h
_RW EQU 00007h
_R EQU 00001h
_W EQU 00000h
_single EQU 00000h
_Continu EQU 00001h
_CC1100_SRES EQU 00030h
_CC1100_SFSTXON EQU 00031h
_CC1100_SXOFF EQU 00032h
_CC1100_SCAL EQU 00033h
_CC1100_SRX EQU 00034h
_CC1100_STX EQU 00035h
_CC1100_SIDLE EQU 00036h
_CC1100_SAFC EQU 00037h
_CC1100_SWOR EQU 00038h
_CC1100_SPWD EQU 00039h
_CC1100_SFRX EQU 0003Ah
_CC1100_SFTX EQU 0003Bh
_CC1100_SWORRST EQU 0003Ch
_CC1100_SNOP EQU 0003Dh
_CC1100_PKTSTATUS EQU 00038h
_CC1100_TXBYTES EQU 0003Ah
_CC1100_RXBYTES EQU 0003Bh
_CC1100_PATABLE EQU 0003Eh
; EEPROM data.
INCLUDE "CC1100~1.MAC"
INCLUDE "C:\PBP250A\PBPPIC18.LIB"
MOVE?CB 000h, TRISA
MOVE?CB 007h, ADCON1
MOVE?CB 007h, CMCON
MOVE?CB 04Bh, TRISB
MOVE?CB 080h, TRISC
PAUSE?C 003E8h
SERPIN?T _PORTC??6
SERMODE?C _T9600
SEROUT?C 00Ah
SEROUT?C 00Dh
SEROUT?C 054h
SEROUT?C 065h
SEROUT?C 073h
SEROUT?C 074h
SEROUT?C 020h
SEROUT?C 053h
SEROUT?C 054h
SEROUT?C 02Dh
SEROUT?C 054h
SEROUT?C 052h
SEROUT?C 031h
SEROUT?C 031h
SEROUT?C 030h
SEROUT?C 030h
SEROUT?C 02Dh
SEROUT?C 050h
SEROUT?C 041h
SEROUT?C 00Ah
SEROUT?C 00Dh
MOVE?CT 001h, _CSn
MOVE?CT 000h, _Sck
MOVE?CT 000h, _PA_En
PAUSE?C 0C8h
MOVE?CB _CC1100_SRES, _Cmd
GOSUB?L _CMD_Write
MOVE?CB _CC1100_SNOP, _Cmd
GOSUB?L _CMD_Write
MOVE?CB 000h, _i
LABEL?L L00002
CMPGT?BCL _i, 02Eh, L00003
LOOKUP?BCLB _i, 02Fh, L00001, _Dat
LURET?C 00Bh
LURET?C 041h
LURET?C 041h
LURET?C 007h
LURET?C 0D3h
LURET?C 091h
LURET?C 0FFh
LURET?C 004h
LURET?C 005h
LURET?C 000h
LURET?C 000h
LURET?C 00Bh
LURET?C 000h
LURET?C 010h
LURET?C 0B0h
LURET?C 071h
LURET?C 0C8h
LURET?C 093h
LURET?C 073h
LURET?C 022h
LURET?C 0F8h
LURET?C 000h
LURET?C 007h
LURET?C 030h
LURET?C 018h
LURET?C 01Dh
LURET?C 01Ch
LURET?C 0C7h
LURET?C 000h
LURET?C 0B2h
LURET?C 087h
LURET?C 06Bh
LURET?C 0F8h
LURET?C 0B6h
LURET?C 010h
LURET?C 0EAh
LURET?C 02Ah
LURET?C 000h
LURET?C 011h
LURET?C 041h
LURET?C 000h
LURET?C 059h
LURET?C 07Fh
LURET?C 03Fh
LURET?C 088h
LURET?C 031h
LURET?C 00Bh
LABEL?L L00001
MOVE?BB _i, _Cmd
GOSUB?L _REG_Write
NEXT?BCL _i, 001h, L00002
LABEL?L L00003
MOVE?CB 03Fh, _Dat
MOVE?CB _CC1100_PATABLE, _Cmd
GOSUB?L _REG_Write
LABEL?L _main
MOVE?CB _CC1100_SIDLE, _Cmd
GOSUB?L _CMD_Write
MOVE?CB _CC1100_SRX, _Cmd
GOSUB?L _CMD_Write
LABEL?L _Rx_test
MOVE?CT 001h, _Rx_rcv
LABEL?L L00004
CMPNE?TCL _Rx_rcv, 001h, L00005
GOSUB?L _Rx_Byte
GOTO?L L00004
LABEL?L L00005
GOSUB?L _Read_RxFIFO
MOVE?CB 000h, _k
LABEL?L L00006
SUB?BCW _pkt_Len, 003h, T1
CMPGT?BWL _k, T1, L00007
SEROUT2DPIN?T _TX
SEROUT2MODE?C 054h
SEROUT2PACE?C 000h
AOUT?BBB _RX_buf, _k, T1
SEROUT2?B T1
NEXT?BCL _k, 001h, L00006
LABEL?L L00007
MOVE?CB _CC1100_SFRX, _Cmd
GOSUB?L _CMD_Write
MOVE?CB _CC1100_SIDLE, _Cmd
GOSUB?L _CMD_Write
MOVE?CB _CC1100_SRX, _Cmd
GOSUB?L _CMD_Write
GOTO?L _Rx_test
LABEL?L _CMD_Write
MOVE?CT 000h, _Sck
MOVE?CT 000h, _CSn
MOVE?CT 001h, _MISO_Wait
LABEL?L L00008
CMPNE?TCL _MISO_Wait, 001h, L00009
MOVE?TT _MISO, _MISO_Wait
GOTO?L L00008
LABEL?L L00009
MOVE?CB 000h, _k
LABEL?L L00010
CMPGT?BCL _k, 007h, L00011
MOVE?TT _Cmd??7, _MOSI
MOVE?CT 001h, _Sck
MOVE?TT _MISO, _STA_TUS??0
MOVE?CT 000h, _Sck
CMPEQ?BCL _k, 007h, L00012
SHIFTL?BCB _STA_TUS, 001h, _STA_TUS
LABEL?L L00012
SHIFTL?BCB _Cmd, 001h, _Cmd
NEXT?BCL _k, 001h, L00010
LABEL?L L00011
MOVE?CT 001h, _CSn
RETURN?
LABEL?L _REG_Write
MOVE?CT 000h, _Sck
MOVE?CT 000h, _CSn
MOVE?CT 001h, _MISO_Wait
LABEL?L L00014
CMPNE?TCL _MISO_Wait, 001h, L00015
MOVE?TT _MISO, _MISO_Wait
GOTO?L L00014
LABEL?L L00015
MOVE?CT 000h, _Cmd??7
MOVE?CT 000h, _Cmd??6
MOVE?CB 000h, _k
LABEL?L L00016
CMPGT?BCL _k, 007h, L00017
MOVE?TT _Cmd??7, _MOSI
MOVE?CT 001h, _Sck
MOVE?TT _MISO, _STA_TUS??0
MOVE?CT 000h, _Sck
CMPEQ?BCL _k, 007h, L00018
SHIFTL?BCB _STA_TUS, 001h, _STA_TUS
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -