fm_i2cdrv2.lst

来自「MP3 整个 SDK」· LST 代码 · 共 394 行 · 第 1/2 页

LST
394
字号
    157    000091 D1                 POP     DE
    158    000092 C1                 POP        BC
    159    000093 F1                 POP        AF
    160    000094 C9                 RET            
    161    000095                              
    162    000095          //==================================================
 =======
    163    000095          //             WRITE FM REGISTER
    164    000095          //==================================================
 =======
    165    000095          WRITE_ONEFRAME:
    166    000095 E5                   PUSH    HL
    167    000096 C5                   PUSH    BC
    168    000097 D5                   PUSH    DE
    169    000098                      
    170    000098 1EC0                 LD      E,0C0H              //send start
                                                   & address  
    171    00009A CD....               CALL    LWRD I2C_Start
    172    00009D FE00                 CP      00H
    173    00009F 2813                 JR      Z,I2C_werror_exit               
                                                                                
                                                                
    174    0000A1          
    175    0000A1 11....               LD      DE,LWRD WRITE_BUFFER 
    176    0000A4 0E05                 LD      C,05H
    177    0000A6 CD....               CALL    LWRD I2C_Write
    178    0000A9 FE00                 CP      00H
    179    0000AB 2807                 JR      Z,I2C_werror_exit
    180    0000AD                                                
    181    0000AD 3E01                 LD      A,01H
    182    0000AF 32....               LD      (LWRD FM_result),A    
    183    0000B2 1805                 JR      I2Cwstop_exit  
    184    0000B4          I2C_werror_exit:
    185    0000B4 3E00                 LD      A,00H
    186    0000B6 32....               LD      (LWRD FM_result),A   
    187    0000B9          I2Cwstop_exit:            
    188    0000B9 3A....               LD      A,(LWRD FM_result)
    189    0000BC                      
    190    0000BC D1                   POP     DE
    191    0000BD C1                   POP     BC
    192    0000BE E1                   POP     HL
    193    0000BF C9                   RET
    194    0000C0                      
    195    0000C0          //==================================================
 =======
    196    0000C0          //             READ FM REGISTER
    197    0000C0          //==================================================
 =======
    198    0000C0          READ_ONEFRAME:
    199    0000C0 C5                   PUSH    BC
    200    0000C1 E5                   PUSH    HL 
    201    0000C2 D5                   PUSH    DE 
    202    0000C3                      
    203    0000C3 1EC1                 LD      E,0C1H                         /
                                                  /send start & address    
    204    0000C5 CD....               CALL    LWRD I2C_Start
    205    0000C8 FE00                 CP      00H
    206    0000CA 2813                 JR      Z,I2C_rerror_exit
    207    0000CC                          
    208    0000CC 11....               LD      DE,LWRD READ_BUFFER
    209    0000CF 0E05                 LD      C,05H
    210    0000D1 CD....               CALL    LWRD I2C_Read
    211    0000D4 FE00                 CP      00H
    212    0000D6 2807                 JR      Z,I2C_rerror_exit               
                                                   
    213    0000D8                      
    214    0000D8 3E01                 LD      A,01H
    215    0000DA 32....               LD      (LWRD FM_result),A    
    216    0000DD 1805                 JR      I2Crstop_exit    
    217    0000DF          I2C_rerror_exit:
    218    0000DF 3E00                 LD      A,00H
    219    0000E1 32....               LD      (LWRD FM_result),A   
    220    0000E4          I2Crstop_exit:
    221    0000E4 3A....               LD      A,(LWRD FM_result)
    222    0000E7                      
    223    0000E7 D1                   POP     DE
    224    0000E8 E1                   POP     HL
    225    0000E9 C1                   POP     BC
    226    0000EA C9                   RET
    227    0000EB          
    228    0000EB          /***************************************************
                             **********
    229    0000EB                  I2C Write One Frame
    230    0000EB                    input parameter:DE:Sendbuffer address
    231    0000EB                                    C:byte length
    232    0000EB                    output parameter:A:01-sucess;00-fail.
    233    0000EB          ****************************************************
 *********/
    234    0000EB          I2C_Write:
    235    0000EB C5                    PUSH   BC
    236    0000EC D5                    PUSH   DE
    237    0000ED                       
    238    0000ED 6B                    LD     L,E
    239    0000EE 62                    LD     H,D                             
                                                         
    240    0000EF 41                    LD     B,C 
    241    0000F0 05                    DEC    B            
    242    0000F1          I2C_Write_loop:             
    243    0000F1 5E                    LD     E,(HL)
    244    0000F2 0E00                  LD     C,00H
    245    0000F4 CD....                CALL   LWRD I2C_Writeonebyte
    246    0000F7 FE00                  CP     00H
    247    0000F9 2809                  JR     Z,I2C_Write_exit
    248    0000FB                       
    249    0000FB 23                    INC    HL
    250    0000FC                           
    251    0000FC 10F3                  DJNZ   I2C_Write_loop
    252    0000FE                       
    253    0000FE 5E                    LD     E,(HL)
    254    0000FF 0E02                  LD     C,02H
    255    000101 CD....                CALL   LWRD I2C_Writeonebyte
    256    000104                       
    257    000104          I2C_Write_exit:                          
    258    000104 D1                    POP    DE
    259    000105 C1                    POP    BC
    260    000106 C9                    RET
    261    000107          
    262    000107          /***************************************************
                             **********
    263    000107                  I2C Read Continuous Byte
    264    000107                    input parameter:DE:Receivebuffer address.
    265    000107                                    C:Data length
    266    000107                    output parameter:A:1-success;0:fail.
    267    000107          ****************************************************
 *********/
    268    000107          I2C_Read:
    269    000107 D5                   PUSH      DE
    270    000108                      
    271    000108 6B                   LD        L,E
    272    000109 62                   LD        H,D
    273    00010A 41                   LD        B,C
    274    00010B 05                   DEC       B
    275    00010C CD....               CALL      DELAY_15us               //mus
 t >10us;avoid address ACK too short.
    276    00010F          Read_data_loop:
    277    00010F 1E00                 LD        E,00H
    278    000111 CD....               CALL      LWRD I2C_ReadOneByte
    279    000114 FE00                 CP        00H
    280    000116 2812                 JR        Z,I2C_Read_Exit
    281    000118 79                   LD        A,C
    282    000119 77                   LD        (HL),A
    283    00011A 23                   INC       HL
    284    00011B 10F2                 DJNZ      Read_data_loop 
    285    00011D                        
    286    00011D 1E02                   LD        E,02H                    //S
                                                      end Stop & Receive data
    287    00011F CD....                 CALL      LWRD I2C_ReadOneByte
    288    000122 FE00                 CP        00H
    289    000124 2804                 JR        Z,I2C_Read_Exit
    290    000126 79                   LD        A,C
    291    000127 77                   LD        (HL),A
    292    000128                      
    293    000128 3E01                   LD        A,01H
    294    00012A          I2C_Read_Exit:              
    295    00012A D1                     POP       DE
    296    00012B C9                     RET
    297    00012C                          
    298    00012C          //==================================================
 ======
    299    00012C          //         FM wait 50ms  
    300    00012C          //==================================================
 ====== 
    301    00012C          FMwait50ms:       
    302    00012C F5                  PUSH    AF
    303    00012D C5                  PUSH    BC 
    304    00012E DB4E                IN           A,(4eh)
    305    000130 F608                OR          08h
    306    000132 D34E                OUT         (4eh),A
    307    000134 0664                LD      B,100
    308    000136          FMwait50msloop1:        
    309    000136 C5                  PUSH    BC   
    310    000137          //500us            
    311    000137 06E6                LD      B,230
    312    000139          FMwait50msloop2:          
    313    000139 D5                  PUSH    DE
    314    00013A D1                  POP     DE
    315    00013B D5                  PUSH    DE
    316    00013C D1                  POP     DE
    317    00013D 10FA                DJNZ    FMwait50msloop2
    318    00013F                  
    319    00013F C1                  POP     BC
    320    000140 10F4                DJNZ    FMwait50msloop1        
    321    000142 C1                  POP     BC
    322    000143 F1                  POP     AF
    323    000144 C9                  RET
    324    000145                              
    325    000145          END
##############################
#          CRC:B5D1          #
#        Errors:   0         #
#        Warnings: 0         #
#         Bytes: 325         #
##############################





⌨️ 快捷键说明

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