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

📄 newfanremote.lst

📁 一款用24L01给美的电器做的2.4G无线遥控器
💻 LST
📖 第 1 页 / 共 5 页
字号:
+    SETUP_RETR                      =  0004 
+    SPI0E                           =  0002 
+    SPI_CFG                         =  0040 
+    SPI_CLK                         =  0000 
+    SPI_CTR                         =  0001 
+    SPI_RW                             **** GX
+    STATUS                          =  0007 
+  3 Scankey                            01BD GR
+    Select_RF_Channel                  **** GX
+  3 Set_Channel                        01CC R
+  3 Sleep_Mode                         0042 R
+    TX_ADDR                         =  0010 
+    TX_DS                           =  0020 
+    WRITE_REG                       =  0020 
+    WR_TX_PLOAD                     =  00A0 
+    Write_Command                      **** GX
+    Write_TX_Payload                   **** GX
+    Write_tx_addr_Fan                  **** GX
+    Write_tx_addr_writer               **** GX
+  1 access_code                        0005 GR
+    byte                               **** GX
+    c_all_key_high                  =  000E 
+    c_com_answer                    =  0040 G
+    c_com_ask                       =  0020 G
+    c_com_factory_set               =  0060 G
+    c_com_normal_key                =  0000 G
+    c_com_return                    =  00C0 G
+    c_ext_int_enable                =  001E 
+    c_ext_int_fall_edge             =  0000 
+    c_fecth_IRQ_source              =  0070 G
+    c_fecth_flag_rx                 =  0002 
+    c_fecth_pipe_no                 =  000E G
+    c_fetch_command                 =  00E0 G
+    c_flag_key_int                  =  0008 
+    c_globle_int_enable             =  0090 
+    c_irq_int                       =  0010 
+    c_key_on_off                    =  0002 
+    c_key_speed                     =  0004 
+    c_key_timer                     =  0008 
+    c_max_channel                   =  000F G
+    c_nRF24L01_not_use              =  0068 
+    c_port_input_ctrl               =  00FF 
+    c_porta_dir_ctrl                =  0081 
+    c_ram                           =  0022 
+    c_sleep_ctrl                    =  0080 
+    c_try_tx_max                    =  000E 
+  1 channel_count                      0009 GR
+  1 command                            000B GR
+    eep_init_check                     **** GX
+    eep_save_data                      **** GX
+    f_irq_int                       =  0002 
+    f_key_int                       =  0003 
+    f_rx_ok                         =  0001 
+    f_tx_ok                         =  0000 
+  1 flag                               000D GR
+  1 key_code                           0008 R
+    nRF24L01_Configuration             **** GX
+    reg_value                          **** GX
+  1 tmp_a                              0002 R
+  1 tmp_cpusts                         0003 R
+  1 tmp_tpl                            0004 GR
+  1 try_ctrl                           000A R
+
+
+Area Table
+
+   0 .                                  size    0   flags 0
+   1 main_data                          size    C   flags E
+   2 Start_Up                           size   10   flags D
+   3 Main_Code                          size  1F4   flags D
+   4 Run_away                           size  503   flags D
+###########################################################
+###   g:\work\mdfan\new黄庆杯改写\spi.asl               ###                          
+###########################################################
+                     1 ;=============================================
+                     2 ;    SPI control  subroutines
+                     3 ;Function: Read from or write to SPI    
+                     4 ;note:读写SPI及对nRF24L01的初始化配置是参照给出的参考firmware写的
+                     5 ;=============================================
+                     8 ;-------------Constants------------------------
0001                  9 c_fetch_MISO           =          0x01
+                    10 ;c_ADDR_Length          =          0x05
0004                 11 c_tx_payload_width     ==          0x04
0007                 12 c_tx_fan_addr3	=	0x07
0008                 13 c_tx_fan_addr4	=	0x08
0040                 14 c_tx_writer_addr0	=	0x40
0050                 15 c_tx_writer_addr1	=	0x50
0060                 16 c_tx_writer_addr2	=	0x60
0070                 17 c_tx_writer_addr3	=	0x70
0080                 18 c_tx_writer_addr4	=	0x80
+                    19 
000F                 20 c_RF_0db		=	0x0f
0009                 21 c_RF_18db		=	0x09
+                    22 
+                    23 ;-------------Variables------------------------
+                    24            .area    SPI_Data(data)
+B 00 01
0010                 25 byte::             .ds               1
0011                 26 bit_ctrl:         .ds               1
+                    27 
+                    28 ;status           .ds               1           ;store status register content in nRF24L01
+                    29 ;byte_ctrl:        .ds               1 
+                    30 ;reg              .ds               1           ;the nRF24L01 register to be write to or read from (share)
+                    31  
0012                 32 reg_name::         .ds               1
0013                 33 reg_value::        .ds               1
+                    34 ;RF_channel::       .ds              1         
+                    35 ;-------------Code-----------------------------
+                    36            .area    SPI_Code(code)
+                    37 ;****************************************
+                    38 ; Function: nRF24L01_Configuration
+                    39 ; Description:
+                    40 ;   This function initializes one nRF24L01 device  set TX address, 
+                    41 ;set RX address for auto.ack,fill TX payload, select RF channel, datarate & TX pwr.
+                    42 ;      
+                    43 ;   
+                    44 ;  ToDo: set PWR_UP, CRC(2 bytes) is enabled, & PRIM:TX. One high pulse(>10us) on CE will now send this
+                    45 ;  packet and expect an acknowledgment from the RX device.
+                    46 ;****************************************
+B 00 02
0282                 47 nRF24L01_Configuration::
0282 20 03 DF        48        call     Write_tx_addr_Fan
+                    49 
0285 F3 21           50        lda      #WRITE_REG+#EN_AA                      ; Enable Auto.Ack:Pipe0
0287 FD 12           51        sta      reg_name
0289 F3 01           52        lda      #0x01
028B FD 13           53        sta      reg_value
028D 20 04 6B        54        call     SPI_RW_Reg
0290 20 02 14        55        call     Delay_5us
+                    56 
0293 F3 22           57        lda      #WRITE_REG+#EN_RXADDR                      ;Enable Data Pipe0
0295 FD 12           58        sta      reg_name
0297 F3 01           59        lda      #0x01
0299 FD 13           60        sta      reg_value
029B 20 04 6B        61        call     SPI_RW_Reg
029E 20 02 14        62        call     Delay_5us
+                    63 
02A1 F3 24           64        lda      #WRITE_REG+#SETUP_RETR                      ; 500us + 86us, 10 retransmit
02A3 FD 12           65        sta      reg_name
02A5 F3 1A           66        lda      #0x1a
02A7 FD 13           67        sta      reg_value
02A9 20 04 6B        68        call     SPI_RW_Reg
02AC 20 02 14        69        call     Delay_5us
+                    70 
02AF F3 00           71        lda      #0
02B1 FD 09           72        sta      channel_count
02B3 20 01 E3        73        call     Look_up_Freq_table
02B6 FD 13           74        sta      reg_value
02B8 20 04 60        75        call     Select_RF_Channel
02BB 20 02 14        76        call     Delay_5us
+                    77 
02BE F3 31           78        lda      #WRITE_REG+#RX_PW_P0
02C0 FD 12           79        sta      reg_name
02C2 F3 04           80        lda      #c_tx_payload_width
02C4 FD 13           81        sta      reg_value
02C6 20 04 6B        82        call     SPI_RW_Reg
02C9 20 02 14        83        call     Delay_5us
+                    84        
+                    85 
02CC F3 26           86        lda      #WRITE_REG+#RF_SETUP                     ;TX_PWR:0dBm, Datarate:2Mbps, LNA:HCURR
02CE FD 12           87        sta      reg_name
02D0 F3 0F           88        lda      #c_RF_0db
02D2 FD 13           89        sta      reg_value
02D4 20 04 6B        90        call     SPI_RW_Reg
02D7 20 02 14        91        call     Delay_5us
+                    92 
+                    93 
02DA F3 27           94        lda      #WRITE_REG+#STATUS
02DC FD 12           95        sta      reg_name
02DE F3 70           96        lda      #0x70
02E0 FD 13           97        sta      reg_value
02E2 20 04 6B        98        call     SPI_RW_Reg         ;clear IRQ flags(nRF24L01)
+                    99 
02E5 24             100        ret
+                   101 ;**********************************************
+                   102 ;   Description: set nRF24L01 power up or power down
+                   103 ;**********************************************
02E6                104 Power_UP_Tx::
02E6 F3 20          105        lda      #WRITE_REG+#CONFIG                    ;Set PWR_UP bit, enable CRC(2 bytes) 
02E8 FD 12          106        sta      reg_name                          ; & Prim:TX. MAX_RT & TX_DS enabled
02EA F3 0E          107        lda      #0x0e
02EC FD 13          108        sta      reg_value
02EE 20 04 6B       109        call     SPI_RW_Reg
+                   110       ; call     Delay_5us
02F1 24             111        ret
+                   112 
02F2                113 Power_UP_Rx::
+                   114        ;lda      #WRITE_REG+#RX_PW_P0                  ;Select RX payload width 
+                   115        ;sta      reg_name                   
+                   116        ;lda      #c_tx_payload_width
+                   117        ;sta      reg_value
+                   118        ;call     SPI_RW_Reg
+                   119        ;call     Delay_5us      
+                   120        
02F2 F3 20          121        lda      #WRITE_REG+#CONFIG                  ;Set PWR_UP bit, enable CRC(2 bytes)
02F4 FD 12          122        sta      reg_name                                    ;& Prim:RX. RX_DR enabled
02F6 F3 0F          123        lda      #0x0f
02F8 FD 13          124        sta      reg_value
02FA 20 04 6B       125        call     SPI_RW_Reg
02FD 20 02 14       126        call     Delay_5us
0300 20 02 14       127        call     Delay_5us
0303 24             128        ret
+                   129 
0304                130 Power_Down::
0304 F3 20          131        lda      #WRITE_REG+#CONFIG
0306 FD 12          132        sta      reg_name
0308 F3 0C          133        lda      #0x0c
030A FD 13          134        sta      reg_value
030C 20 04 6B       135        call     SPI_RW_Reg
030F 20 02 14       136        call     Delay_5us
0312 24             137        ret
+                   138 ;*************************************
+                   139 ; Function: Write_Tx_Payload
+                   140 ;  
+                   141 ;     Description: Writes data'tx_payload' to TX payload
+                   142 ;
+                   143 ;     In/Out parameters:
+                   144 ;     In:  commamd,access code0,1,2
+                   145 ;     Out: Non
+                   146 ;*************************************
0313                147 Write_TX_Payload::       
0313                148        clearbit(plata,CSN)                    ;Writes data to nRF24L01 TX payload
0319 F3 A0          149        lda      #WR_TX_PLOAD
031B FD 10          150        sta      byte
031D 20 04 A5       151        call     SPI_RW
+                   152        ;lda      #c_tx_payload_width
+                   153        ;sta      byte_ctrl
0320 F1 0B          154        lda      command
0322 FD 10          155        sta      byte
0324 20 04 A5       156        call     SPI_RW
0327 F1 05          157        lda      access_code
0329 FD 10          158        sta      byte
032B 20 04 A5       159        call     SPI_RW
032E F1 06          160        lda      access_code+1
0330 FD 10          161        sta      byte
0332 20 04 A5       162        call     SPI_RW
0335 F1 07          163        lda	access_code+2
0337 FD 10          164        sta	byte
0339 20 04 A5       165        call	SPI_RW
033C                166        setbit(plata,CSN)
0342 24             167        ret
+                   168 ;---------------------------
0343                169 Write_Command::
0343                170 	clearbit(plata,CSN)                    ;Writes data to nRF24L01 TX payload
0349 F3 A0          171         lda     #WR_TX_PLOAD
034B FD 10          172         sta     byte
034D 20 04 A5       173         call    SPI_RW
0350 F1 0B          174         lda     command
0352 FD 10          175         sta     byte
0354 20 04 A5       176         call    SPI_RW  
0357                177         setbit(plata,CSN) 
035D 24             178         ret
+                   179 ;**************************************
+                   180 ;Write tx and rx address to communicate with writer
+                   181 ;*************************************
035E                182 Write_tx_addr_writer::
035E                183        clearbit(plata,CSN)               ; Set CSN low, init SPI tranaction

⌨️ 快捷键说明

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