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

📄 2.4g+̤

📁 2.4G无线模块资料
💻 4G+̤
📖 第 1 页 / 共 5 页
字号:
 0114           ; }
 0114           ; void nrf24l01init(void)
 0114           ; {
 0114                   .dbline 228
 0114           ;        nRF24L01_IRQ_DIR;
 0114 2298              cbi 0x4,2
 0116                   .dbline 229
 0116           ;        nRF24L01_MISO_DIR;
 0116 2198              cbi 0x4,1
 0118                   .dbline 230
 0118           ;        nRF24L01_CE_DIR;
 0118 559A              sbi 0xa,5
 011A                   .dbline 231
 011A           ;        nRF24L01_SCK_DIR;
 011A 579A              sbi 0xa,7
 011C                   .dbline 232
 011C           ;        nRF24L01_CSN_DIR;
 011C 569A              sbi 0xa,6
 011E                   .dbline 233
 011E           ;        nRF24L01_MOSI_DIR;
 011E 209A              sbi 0x4,0
 0120                   .dbline -2
 0120           L28:
 0120                   .dbline 0 ; func end
 0120 0895              ret
 0122                   .dbend
 0122                   .dbfunc e init_CPU _init_CPU fV
                        .even
 0122           _init_CPU::
 0122                   .dbline -1
 0122                   .dbline 240
 0122           ; }
 0122           ; /*-----------------------------------------------------------------------------
 0122           ;    Module:   init_CPU
 0122           ;    Function: Initialization of CPU
 0122           ; ------------------------------------------------------------------------------*/
 0122           ; void init_CPU (void)
 0122           ; {
 0122                   .dbline 241
 0122           ;       MCUCR = 0x00;   // 
 0122 2224              clr R2
 0124 25BE              out 0x35,R2
 0126                   .dbline 242
 0126           ;       EICRA = 0x00; //extended ext ints
 0126 20926900          sts 105,R2
 012A                   .dbline 243
 012A           ;     EIMSK = 0x00;
 012A 2DBA              out 0x1d,R2
 012C                   .dbline 245
 012C           ;        
 012C           ;       TIMSK0 = 0x01; //timer 0 interrupt sources
 012C 81E0              ldi R24,1
 012E 80936E00          sts 110,R24
 0132                   .dbline 246
 0132           ;       TIMSK1 = 0x00; //timer 1 interrupt sources
 0132 20926F00          sts 111,R2
 0136                   .dbline 247
 0136           ;       TIMSK2 = 0x00; //timer 2 interrupt sources
 0136 20927000          sts 112,R2
 013A                   .dbline 248
 013A           ;        CLI(); //disable all interrupts
 013A F894              cli
 013C                   .dbline 249
 013C           ;        NOP();
 013C 0000              nop
 013E                   .dbline 250
 013E           ;       PORTB = 0x01;
 013E 85B9              out 0x5,R24
 0140                   .dbline 251
 0140           ;       DDRB  = 0xf3;
 0140 83EF              ldi R24,243
 0142 84B9              out 0x4,R24
 0144                   .dbline 252
 0144           ;       PORTD = 0x80;
 0144 80E8              ldi R24,128
 0146 8BB9              out 0xb,R24
 0148                   .dbline 253
 0148           ;       DDRD  = 0xE3;
 0148 83EE              ldi R24,227
 014A 8AB9              out 0xa,R24
 014C                   .dbline 254
 014C           ;       PORTC = 0x80;
 014C 80E8              ldi R24,128
 014E 88B9              out 0x8,R24
 0150                   .dbline 255
 0150           ;       DDRC  = 0x40;
 0150 80E4              ldi R24,64
 0152 87B9              out 0x7,R24
 0154                   .dbline 256
 0154           ;       nrf24l01init();
 0154 DFDF              rcall _nrf24l01init
 0156                   .dbline 257
 0156           ;     nRF24L01_CEL;
 0156 5D98              cbi 0xb,5
 0158                   .dbline 258
 0158           ;       delay();
 0158 05D0              rcall _delay
 015A                   .dbline 259
 015A           ;       nRF24L01_CSNH;                  // Spi disable
 015A 5E9A              sbi 0xb,6
 015C                   .dbline 260
 015C           ;       delay();
 015C 03D0              rcall _delay
 015E                   .dbline 261
 015E           ;       nRF24L01_SCKL;  
 015E 5F98              cbi 0xb,7
 0160                   .dbline 262
 0160           ;       delay();
 0160 01D0              rcall _delay
 0162                   .dbline -2
 0162           L29:
 0162                   .dbline 0 ; func end
 0162 0895              ret
 0164                   .dbend
 0164                   .dbfunc e delay _delay fV
                        .even
 0164           _delay::
 0164                   .dbline -1
 0164                   .dbline 265
 0164           ; }
 0164           ; void delay(void)//
 0164           ; {
 0164                   .dbline 266
 0164           ;       NOP();
 0164 0000              nop
 0166                   .dbline 267
 0166           ;       NOP();
 0166 0000              nop
 0168                   .dbline 268
 0168           ;       NOP();
 0168 0000              nop
 016A                   .dbline 269
 016A           ;       NOP();
 016A 0000              nop
 016C                   .dbline 270
 016C           ;       NOP();
 016C 0000              nop
 016E                   .dbline 271
 016E           ;       NOP();
 016E 0000              nop
 0170                   .dbline -2
 0170           L30:
 0170                   .dbline 0 ; func end
 0170 0895              ret
 0172                   .dbend
 0172                   .dbfunc e delayms _delayms fV
 0172           ;            dly -> R16,R17
                        .even
 0172           _delayms::
 0172                   .dbline -1
 0172                   .dbline 274
 0172           ; }
 0172           ; void delayms(unsigned short   dly)//
 0172           ; {
 0172                   .dbline 275
 0172 02C0              rjmp L35
 0174           L32:
 0174                   .dbline 275
 0174           L33:
 0174                   .dbline 275
 0174 0150              subi R16,1
 0176 1040              sbci R17,0
 0178           L35:
 0178                   .dbline 275
 0178           ;       for(;dly>0;dly--) ;
 0178 0030              cpi R16,0
 017A 0107              cpc R16,R17
 017C D9F7              brne L32
 017E           X1:
 017E                   .dbline -2
 017E           L31:
 017E                   .dbline 0 ; func end
 017E 0895              ret
 0180                   .dbsym r dly 16 s
 0180                   .dbend
 0180                   .dbfunc e clear_buf _clear_buf fV
 0180           ;         number -> R18
 0180           ;            ptr -> R16,R17
                        .even
 0180           _clear_buf::
 0180                   .dbline -1
 0180                   .dbline 279
 0180           ; }
 0180           ; 
 0180           ; void clear_buf(unsigned char  *ptr,unsigned char number)//清零buffer,指定字节个数
 0180           ; {
 0180                   .dbline 280
 0180 05C0              rjmp L40
 0182           L37:
 0182                   .dbline 280
 0182 2224              clr R2
 0184 F801              movw R30,R16
 0186 2192              st Z+,R2
 0188 8F01              movw R16,R30
 018A           L38:
 018A                   .dbline 280
 018A 2A95              dec R18
 018C           L40:
 018C                   .dbline 280
 018C           ;       for (;number>0;number--) *ptr++=0;
 018C 2224              clr R2
 018E 2216              cp R2,R18
 0190 C0F3              brlo L37
 0192                   .dbline -2
 0192           L36:
 0192                   .dbline 0 ; func end
 0192 0895              ret
 0194                   .dbsym r number 18 c
 0194                   .dbsym r ptr 16 pc
 0194                   .dbend
 0194                   .dbfunc e SPI_RW _SPI_RW fc
 0194           ;        bit_ctr -> R20
 0194           ;           byte -> R22
                        .even
 0194           _SPI_RW::
 0194 00D0              rcall push_gset2
 0196 602F              mov R22,R16
 0198                   .dbline -1
 0198                   .dbline 291
 0198           ; }
 0198           ; //------------------------------------------------------
 0198           ; /**************************************************
 0198           ; Function: SPI_RW();
 0198           ; 
 0198           ; Description:
 0198           ;   Writes one byte to nRF24L01, and return the byte read
 0198           ;   from nRF24L01 during write, according to SPI protocol  */
 0198           ; /**************************************************/
 0198           ; unsigned char SPI_RW(unsigned char byte)
 0198           ; {
 0198                   .dbline 293
 0198           ;       unsigned char  bit_ctr; 
 0198           ;       for(bit_ctr=0;bit_ctr<8;bit_ctr++)      // output 8-bit
 0198 4427              clr R20
 019A 0FC0              rjmp L45
 019C           L42:
 019C                   .dbline 294
 019C           ;       {
 019C                   .dbline 295
 019C           ;               if(byte & 0x80) 
 019C 67FF              sbrs R22,7
 019E 02C0              rjmp L46
 01A0                   .dbline 296
 01A0           ;                       nRF24L01_MOSIH;
 01A0 289A              sbi 0x5,0
 01A2 01C0              rjmp L47
 01A4           L46:
 01A4                   .dbline 298
 01A4           ;               else 
 01A4           ;                       nRF24L01_MOSIL;
 01A4 2898              cbi 0x5,0
 01A6           L47:
 01A6                   .dbline 299
 01A6           ;               delay();
 01A6 DEDF              rcall _delay
 01A8                   .dbline 300
 01A8           ;               byte = (byte << 1);                     // shift next bit into MSB..
 01A8 660F              lsl R22
 01AA                   .dbline 301
 01AA           ;               nRF24L01_SCKH;
 01AA 5F9A              sbi 0xb,7
 01AC                   .dbline 302
 01AC           ;               delay();
 01AC DBDF              rcall _delay
 01AE                   .dbline 303
 01AE           ;               if(PINB&nRF24L01_MISO) byte |= 1;
 01AE 199B              sbis 0x3,1
 01B0 01C0              rjmp L48
 01B2                   .dbline 303
 01B2 6160              ori R22,1
 01B4           L48:
 01B4                   .dbline 304
 01B4 5F98              cbi 0xb,7
 01B6                   .dbline 305
 01B6 D6DF              rcall _delay
 01B8                   .dbline 306
 01B8           L43:
 01B8                   .dbline 293
 01B8 4395              inc R20
 01BA           L45:
 01BA                   .dbline 293
 01BA 4830              cpi R20,8
 01BC 78F3              brlo L42
 01BE                   .dbline 307
 01BE           ;               nRF24L01_SCKL;
 01BE           ;               delay();
 01BE           ;       }
 01BE           ;     return(byte);                                     // return read byte
 01BE 062F              mov R16,R22
 01C0                   .dbline -2
 01C0           L41:
 01C0 00D0              rcall pop_gset2
 01C2                   .dbline 0 ; func end
 01C2 0895              ret
 01C4                   .dbsym r bit_ctr 20 c
 01C4                   .dbsym r byte 22 c
 01C4                   .dbend
 01C4                   .dbfunc e SPI_RW_Reg _SPI_RW_Reg fc
 01C4           ;         status -> R20

⌨️ 快捷键说明

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