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

📄 spi.lis

📁 很好的制作AVR32 ICE的资料
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 014A           ;             {
 014A                   .dbline 238
 014A           ;               MOSI_SET;
 014A C59A              sbi 0x18,5
 014C                   .dbline 238
 014C                   .dbline 239
 014C           ;             }
 014C 01C0              xjmp L39
 014E           L38:
 014E                   .dbline 241
 014E           ;           else
 014E           ;             {
 014E                   .dbline 242
 014E           ;               MOSI_CLEAR;
 014E C598              cbi 0x18,5
 0150                   .dbline 242
 0150                   .dbline 243
 0150           ;             }
 0150           L39:
 0150                   .dbline 244
 0150           ;           d<<=1;
 0150 000F              lsl R16
 0152                   .dbline 245
 0152           ;           result<<=1;
 0152 440F              lsl R20
 0154                   .dbline 248
 0154           ;           
 0154           ;           #if F_CPU < 8000000
 0154           ;           for (j = 0; j < 18; j++) asm ("nop");
 0154 2224              clr R2
 0156 3324              clr R3
 0158 3982              std y+1,R3
 015A 2882              std y+0,R2
 015C 06C0              xjmp L43
 015E           L40:
 015E                   .dbline 248
 015E 0000              nop
 0160           L41:
 0160                   .dbline 248
 0160 8881              ldd R24,y+0
 0162 9981              ldd R25,y+1
 0164 0196              adiw R24,1
 0166 9983              std y+1,R25
 0168 8883              std y+0,R24
 016A           L43:
 016A                   .dbline 248
 016A 8881              ldd R24,y+0
 016C 9981              ldd R25,y+1
 016E 8231              cpi R24,18
 0170 E0E0              ldi R30,0
 0172 9E07              cpc R25,R30
 0174 A0F3              brlo L40
 0176           X17:
 0176                   .dbline 252
 0176           ;           #else
 0176           ;           for (j = 0; j < 36; j++) asm ("nop");
 0176           ;           #endif
 0176           ;           SCK_SET
 0176 C79A              sbi 0x18,7
 0178                   .dbline 254
 0178           ;           //PORTB|=BIT5_POS; //sck 
 0178           ;           if (MISO_IN)
 0178 B69B              sbis 0x16,6
 017A 01C0              rjmp L44
 017C           X18:
 017C                   .dbline 255
 017C           ;             {
 017C                   .dbline 256
 017C           ;               result|=1;
 017C 4160              ori R20,1
 017E                   .dbline 257
 017E           ;             }
 017E           L44:
 017E                   .dbline 259
 017E           ;           #if F_CPU < 8000000
 017E           ;           for (j = 0; j < 18; j++) asm ("nop");
 017E 2224              clr R2
 0180 3324              clr R3
 0182 3982              std y+1,R3
 0184 2882              std y+0,R2
 0186 06C0              xjmp L49
 0188           L46:
 0188                   .dbline 259
 0188 0000              nop
 018A           L47:
 018A                   .dbline 259
 018A 8881              ldd R24,y+0
 018C 9981              ldd R25,y+1
 018E 0196              adiw R24,1
 0190 9983              std y+1,R25
 0192 8883              std y+0,R24
 0194           L49:
 0194                   .dbline 259
 0194 8881              ldd R24,y+0
 0196 9981              ldd R25,y+1
 0198 8231              cpi R24,18
 019A E0E0              ldi R30,0
 019C 9E07              cpc R25,R30
 019E A0F3              brlo L46
 01A0           X19:
 01A0                   .dbline 264
 01A0           ;           #else
 01A0           ;           for (j = 0; j < 36; j++) asm ("nop");
 01A0           ;           #endif
 01A0           ;           //PORTB&=BIT5_NEG;
 01A0           ;           SCK_CLEAR
 01A0 C798              cbi 0x18,7
 01A2                   .dbline 265
 01A2           ;         }
 01A2           L35:
 01A2                   .dbline 234
 01A2 6395              inc R22
 01A4           L37:
 01A4                   .dbline 234
 01A4 6830              cpi R22,8
 01A6 70F2              brlo L34
 01A8           X20:
 01A8                   .dbline 266
 01A8           ;       MOSI_CLEAR;
 01A8 C598              cbi 0x18,5
 01AA                   .dbline 266
 01AA                   .dbline 268
 01AA           ; 
 01AA           ;       return result;
 01AA 042F              mov R16,R20
 01AC                   .dbline -2
 01AC           L28:
 01AC                   .dbline 0 ; func end
 01AC 2296              adiw R28,2
 01AE 6991              ld R22,y+
 01B0 4991              ld R20,y+
 01B2 0895              ret
 01B4                   .dbsym l j 0 i
 01B4                   .dbsym r i0 22 c
 01B4                   .dbsym r result0 20 c
 01B4                   .dbsym r d 16 c
 01B4                   .dbend
 01B4                   .dbfunc e spi_transfer_16 _spi_transfer_16 fc
 01B4           ;              d -> R20,R21
                        .even
 01B4           _spi_transfer_16::
 01B4 4A93              st -y,R20
 01B6 5A93              st -y,R21
 01B8 A801              movw R20,R16
 01BA                   .dbline -1
 01BA                   .dbline 281
 01BA           ;     }
 01BA           ; }
 01BA           ; 
 01BA           ; /**
 01BA           ;       Does a 16 bit transfer over the SPI-Interface
 01BA           ;       and gives back the last byte received
 01BA           ; 
 01BA           ;       @param  d       the int to be transmitted
 01BA           ; 
 01BA           ;       @return         the last byte received
 01BA           ; */
 01BA           ; unsigned char spi_transfer_16(unsigned int d)
 01BA           ; {
 01BA                   .dbline 282
 01BA           ;   spi_transfer_8((d>>8)&0xFF);
 01BA 8A01              movw R16,R20
 01BC 012F              mov R16,R17
 01BE 1127              clr R17
 01C0 1070              andi R17,0
 01C2 B0DF              xcall _spi_transfer_8
 01C4                   .dbline 283
 01C4           ;   return spi_transfer_8(d&0xFF);
 01C4 8A01              movw R16,R20
 01C6 1070              andi R17,0
 01C8 ADDF              xcall _spi_transfer_8
 01CA                   .dbline -2
 01CA           L50:
 01CA                   .dbline 0 ; func end
 01CA 5991              ld R21,y+
 01CC 4991              ld R20,y+
 01CE 0895              ret
 01D0                   .dbsym r d 20 i
 01D0                   .dbend
 01D0                   .dbfunc e spi_transfer_32 _spi_transfer_32 fc
 01D0           ;              d -> y+0
                        .even
 01D0           _spi_transfer_32::
 01D0 0E940000          xcall push_arg4
 01D4                   .dbline -1
 01D4                   .dbline 295
 01D4           ; }
 01D4           ; 
 01D4           ; /**
 01D4           ;       Does a 32 bit transfer over the SPI-Interface
 01D4           ;       and gives back the last byte received
 01D4           ; 
 01D4           ;       @param  d       the long to be transmitted
 01D4           ; 
 01D4           ;       @return         the last byte received
 01D4           ; */
 01D4           ; unsigned char spi_transfer_32(unsigned long d)
 01D4           ; {
 01D4                   .dbline 296
 01D4           ;   spi_transfer_8((d>>24)&0xFF);
 01D4 88E1              ldi R24,24
 01D6 90E0              ldi R25,0
 01D8 0881              ldd R16,y+0
 01DA 1981              ldd R17,y+1
 01DC 2A81              ldd R18,y+2
 01DE 3B81              ldd R19,y+3
 01E0 8A93              st -y,R24
 01E2 0E940000          xcall lsr32
 01E6 1801              movw R2,R16
 01E8 2901              movw R4,R18
 01EA 8FEF              ldi R24,255
 01EC 90E0              ldi R25,0
 01EE A0E0              ldi R26,0
 01F0 B0E0              ldi R27,0
 01F2 2822              and R2,R24
 01F4 3922              and R3,R25
 01F6 4A22              and R4,R26
 01F8 5B22              and R5,R27
 01FA 022D              mov R16,R2
 01FC 93DF              xcall _spi_transfer_8
 01FE                   .dbline 297
 01FE           ;   spi_transfer_8((d>>16)&0xFF);
 01FE 8FEF              ldi R24,255
 0200 90E0              ldi R25,0
 0202 A0E0              ldi R26,0
 0204 B0E0              ldi R27,0
 0206 2880              ldd R2,y+0
 0208 3980              ldd R3,y+1
 020A 4A80              ldd R4,y+2
 020C 5B80              ldd R5,y+3
 020E 1201              movw R2,R4
 0210 4424              clr R4
 0212 5524              clr R5
 0214 2822              and R2,R24
 0216 3922              and R3,R25
 0218 4A22              and R4,R26
 021A 5B22              and R5,R27
 021C 022D              mov R16,R2
 021E 82DF              xcall _spi_transfer_8
 0220                   .dbline 298
 0220           ;   spi_transfer_8((d>>8)&0xFF);
 0220 88E0              ldi R24,8
 0222 90E0              ldi R25,0
 0224 0881              ldd R16,y+0
 0226 1981              ldd R17,y+1
 0228 2A81              ldd R18,y+2
 022A 3B81              ldd R19,y+3
 022C 8A93              st -y,R24
 022E 0E940000          xcall lsr32
 0232 1801              movw R2,R16
 0234 2901              movw R4,R18
 0236 8FEF              ldi R24,255
 0238 90E0              ldi R25,0
 023A A0E0              ldi R26,0
 023C B0E0              ldi R27,0
 023E 2822              and R2,R24
 0240 3922              and R3,R25
 0242 4A22              and R4,R26
 0244 5B22              and R5,R27
 0246 022D              mov R16,R2
 0248 6DDF              xcall _spi_transfer_8
 024A                   .dbline 299
 024A           ;   return spi_transfer_8(d&0xFF);
 024A 8FEF              ldi R24,255
 024C 90E0              ldi R25,0
 024E A0E0              ldi R26,0
 0250 B0E0              ldi R27,0
 0252 2880              ldd R2,y+0
 0254 3980              ldd R3,y+1
 0256 4A80              ldd R4,y+2
 0258 5B80              ldd R5,y+3
 025A 2822              and R2,R24
 025C 3922              and R3,R25
 025E 4A22              and R4,R26
 0260 5B22              and R5,R27
 0262 022D              mov R16,R2
 0264 5FDF              xcall _spi_transfer_8
 0266                   .dbline -2
 0266           L51:
 0266                   .dbline 0 ; func end
 0266 2496              adiw R28,4
 0268 0895              ret
 026A                   .dbsym l d 0 l
 026A                   .dbend
 026A           ; }

⌨️ 快捷键说明

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