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

📄 2.4g+̤

📁 2.4G无线模块资料
💻 4G+̤
📖 第 1 页 / 共 5 页
字号:
 00D6           ;    Module:   init_CPU
 00D6           ;    Function: Initialization of CPU
 00D6           ; ------------------------------------------------------------------------------*/
 00D6           ; void init_CPU (void)
 00D6           ; {
 00D6                   .dbline 223
 00D6           ;       MCUCR = 0x00;   // 
 00D6 2224              clr R2
 00D8 25BE              out 0x35,R2
 00DA                   .dbline 224
 00DA           ;       EICRA = 0x00; //extended ext ints
 00DA 20926900          sts 105,R2
 00DE                   .dbline 225
 00DE           ;     EIMSK = 0x00;
 00DE 2DBA              out 0x1d,R2
 00E0                   .dbline 227
 00E0           ;        
 00E0           ;       TIMSK0 = 0x01; //timer 0 interrupt sources
 00E0 81E0              ldi R24,1
 00E2 80936E00          sts 110,R24
 00E6                   .dbline 228
 00E6           ;       TIMSK1 = 0x00; //timer 1 interrupt sources
 00E6 20926F00          sts 111,R2
 00EA                   .dbline 229
 00EA           ;       TIMSK2 = 0x00; //timer 2 interrupt sources
 00EA 20927000          sts 112,R2
 00EE                   .dbline 230
 00EE           ;        CLI(); //disable all interrupts
 00EE F894              cli
 00F0                   .dbline 231
 00F0           ;        NOP();
 00F0 0000              nop
 00F2                   .dbline 232
 00F2           ;       PORTB = 0x01;
 00F2 85B9              out 0x5,R24
 00F4                   .dbline 233
 00F4           ;       DDRB  = 0xf3;
 00F4 83EF              ldi R24,243
 00F6 84B9              out 0x4,R24
 00F8                   .dbline 234
 00F8           ;       PORTD = 0x80;
 00F8 80E8              ldi R24,128
 00FA 8BB9              out 0xb,R24
 00FC                   .dbline 235
 00FC           ;       DDRD  = 0xff;
 00FC 8FEF              ldi R24,255
 00FE 8AB9              out 0xa,R24
 0100                   .dbline 236
 0100           ;       PORTC = 0x80;
 0100 80E8              ldi R24,128
 0102 88B9              out 0x8,R24
 0104                   .dbline 237
 0104           ;       DDRC  = 0x78;
 0104 88E7              ldi R24,120
 0106 87B9              out 0x7,R24
 0108                   .dbline 238
 0108           ;       nrf24l01init();
 0108 DFDF              rcall _nrf24l01init
 010A                   .dbline 239
 010A           ;     nRF24L01_CEL;
 010A 5D98              cbi 0xb,5
 010C                   .dbline 240
 010C           ;       delay();
 010C 05D0              rcall _delay
 010E                   .dbline 241
 010E           ;       nRF24L01_CSNH;                  // Spi disable
 010E 5E9A              sbi 0xb,6
 0110                   .dbline 242
 0110           ;       delay();
 0110 03D0              rcall _delay
 0112                   .dbline 243
 0112           ;       nRF24L01_SCKL;  
 0112 5F98              cbi 0xb,7
 0114                   .dbline 244
 0114           ;       delay();
 0114 01D0              rcall _delay
 0116                   .dbline -2
 0116           L21:
 0116                   .dbline 0 ; func end
 0116 0895              ret
 0118                   .dbend
 0118                   .dbfunc e delay _delay fV
                        .even
 0118           _delay::
 0118                   .dbline -1
 0118                   .dbline 247
 0118           ; }
 0118           ; void delay(void)//
 0118           ; {
 0118                   .dbline 248
 0118           ;       NOP();
 0118 0000              nop
 011A                   .dbline 249
 011A           ;       NOP();
 011A 0000              nop
 011C                   .dbline 250
 011C           ;       NOP();
 011C 0000              nop
 011E                   .dbline 251
 011E           ;       NOP();
 011E 0000              nop
 0120                   .dbline 252
 0120           ;       NOP();
 0120 0000              nop
 0122                   .dbline 253
 0122           ;       NOP();
 0122 0000              nop
 0124                   .dbline -2
 0124           L22:
 0124                   .dbline 0 ; func end
 0124 0895              ret
 0126                   .dbend
 0126                   .dbfunc e delayms _delayms fV
 0126           ;            dly -> R16,R17
                        .even
 0126           _delayms::
 0126                   .dbline -1
 0126                   .dbline 256
 0126           ; }
 0126           ; void delayms(unsigned short   dly)//
 0126           ; {
 0126                   .dbline 257
 0126 02C0              rjmp L27
 0128           L24:
 0128                   .dbline 257
 0128           L25:
 0128                   .dbline 257
 0128 0150              subi R16,1
 012A 1040              sbci R17,0
 012C           L27:
 012C                   .dbline 257
 012C           ;       for(;dly>0;dly--) ;
 012C 0030              cpi R16,0
 012E 0107              cpc R16,R17
 0130 D9F7              brne L24
 0132           X1:
 0132                   .dbline -2
 0132           L23:
 0132                   .dbline 0 ; func end
 0132 0895              ret
 0134                   .dbsym r dly 16 s
 0134                   .dbend
 0134                   .dbfunc e clear_buf _clear_buf fV
 0134           ;         number -> R18
 0134           ;            ptr -> R16,R17
                        .even
 0134           _clear_buf::
 0134                   .dbline -1
 0134                   .dbline 261
 0134           ; }
 0134           ; 
 0134           ; void clear_buf(unsigned char  *ptr,unsigned char number)//清零buffer,指定字节个数
 0134           ; {
 0134                   .dbline 262
 0134 05C0              rjmp L32
 0136           L29:
 0136                   .dbline 262
 0136 2224              clr R2
 0138 F801              movw R30,R16
 013A 2192              st Z+,R2
 013C 8F01              movw R16,R30
 013E           L30:
 013E                   .dbline 262
 013E 2A95              dec R18
 0140           L32:
 0140                   .dbline 262
 0140           ;       for (;number>0;number--) *ptr++=0;
 0140 2224              clr R2
 0142 2216              cp R2,R18
 0144 C0F3              brlo L29
 0146                   .dbline -2
 0146           L28:
 0146                   .dbline 0 ; func end
 0146 0895              ret
 0148                   .dbsym r number 18 c
 0148                   .dbsym r ptr 16 pc
 0148                   .dbend
 0148                   .dbfunc e SPI_RW _SPI_RW fc
 0148           ;        bit_ctr -> R20
 0148           ;           byte -> R22
                        .even
 0148           _SPI_RW::
 0148 00D0              rcall push_gset2
 014A 602F              mov R22,R16
 014C                   .dbline -1
 014C                   .dbline 273
 014C           ; }
 014C           ; //------------------------------------------------------
 014C           ; /**************************************************
 014C           ; Function: SPI_RW();
 014C           ; 
 014C           ; Description:
 014C           ;   Writes one byte to nRF24L01, and return the byte read
 014C           ;   from nRF24L01 during write, according to SPI protocol  */
 014C           ; /**************************************************/
 014C           ; unsigned char SPI_RW(unsigned char byte)
 014C           ; {
 014C                   .dbline 275
 014C           ;       unsigned char  bit_ctr; 
 014C           ;       for(bit_ctr=0;bit_ctr<8;bit_ctr++)      // output 8-bit
 014C 4427              clr R20
 014E 0FC0              rjmp L37
 0150           L34:
 0150                   .dbline 276
 0150           ;       {
 0150                   .dbline 277
 0150           ;               if(byte & 0x80) 
 0150 67FF              sbrs R22,7
 0152 02C0              rjmp L38
 0154                   .dbline 278
 0154           ;                       nRF24L01_MOSIH;
 0154 289A              sbi 0x5,0
 0156 01C0              rjmp L39
 0158           L38:
 0158                   .dbline 280
 0158           ;               else 
 0158           ;                       nRF24L01_MOSIL;
 0158 2898              cbi 0x5,0
 015A           L39:
 015A                   .dbline 281
 015A           ;               delay();
 015A DEDF              rcall _delay
 015C                   .dbline 282
 015C           ;               byte = (byte << 1);                     // shift next bit into MSB..
 015C 660F              lsl R22
 015E                   .dbline 283
 015E           ;               nRF24L01_SCKH;
 015E 5F9A              sbi 0xb,7
 0160                   .dbline 284
 0160           ;               delay();
 0160 DBDF              rcall _delay
 0162                   .dbline 285
 0162           ;               if(PINB&nRF24L01_MISO) byte |= 1;
 0162 199B              sbis 0x3,1
 0164 01C0              rjmp L40
 0166                   .dbline 285
 0166 6160              ori R22,1
 0168           L40:
 0168                   .dbline 286
 0168 5F98              cbi 0xb,7
 016A                   .dbline 287
 016A D6DF              rcall _delay
 016C                   .dbline 288
 016C           L35:
 016C                   .dbline 275
 016C 4395              inc R20
 016E           L37:
 016E                   .dbline 275
 016E 4830              cpi R20,8
 0170 78F3              brlo L34
 0172                   .dbline 289
 0172           ;               nRF24L01_SCKL;
 0172           ;               delay();
 0172           ;       }
 0172           ;     return(byte);                                     // return read byte
 0172 062F              mov R16,R22
 0174                   .dbline -2
 0174           L33:
 0174 00D0              rcall pop_gset2
 0176                   .dbline 0 ; func end
 0176 0895              ret
 0178                   .dbsym r bit_ctr 20 c
 0178                   .dbsym r byte 22 c
 0178                   .dbend
 0178                   .dbfunc e SPI_RW_Reg _SPI_RW_Reg fc
 0178           ;         status -> R20
 0178           ;          value -> R22
 0178           ;            reg -> R20
                        .even
 0178           _SPI_RW_Reg::
 0178 00D0              rcall push_gset2
 017A 622F              mov R22,R18
 017C 402F              mov R20,R16
 017E                   .dbline -1
 017E                   .dbline 298
 017E           ; }
 017E           ; /**************************************************
 017E           ; Function: SPI_RW_Reg();
 017E           ; 
 017E           ; Description:
 017E           ;   Writes value 'value' to register 'reg' */

⌨️ 快捷键说明

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