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

📄 cc1100.lis

📁 主要是通过AMEGAL88 来控制cc1100
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 010A           ;     NOP(); 
 010A 0000              nop
 010C           L115:
 010C                   .dbline 155
 010C                   .dbline 155
 010C 0EBD              out 0x2e,R16
 010E                   .dbline 155
 010E           L121:
 010E                   .dbline 155
 010E           L122:
 010E                   .dbline 155
 010E 2DB4              in R2,0x2d
 0110 27FE              sbrs R2,7
 0112 FDCF              rjmp L121
 0114                   .dbline 155
 0114           L119:
 0114                   .dbline 155
 0114                   .dbline 155
 0114           L116:
 0114                   .dbline 155
 0114           ;     SPI_TX(addr); 
 0114           L124:
 0114                   .dbline 156
 0114                   .dbline 156
 0114 2EBD              out 0x2e,R18
 0116                   .dbline 156
 0116           L130:
 0116                   .dbline 156
 0116           L131:
 0116                   .dbline 156
 0116 2DB4              in R2,0x2d
 0118 27FE              sbrs R2,7
 011A FDCF              rjmp L130
 011C                   .dbline 156
 011C           L128:
 011C                   .dbline 156
 011C                   .dbline 156
 011C           L125:
 011C                   .dbline 156
 011C           ;     SPI_TX(value);
 011C                   .dbline 157
 011C           ;     NOP(); 
 011C 0000              nop
 011E                   .dbline 158
 011E           ;     SPI_OFF(); 
 011E 2A9A              sbi 0x5,2
 0120                   .dbline -2
 0120           L111:
 0120                   .dbline 0 ; func end
 0120 0895              ret
 0122                   .dbsym r value 18 c
 0122                   .dbsym r addr 16 c
 0122                   .dbend
 0122                   .dbfunc e spiWriteBurstReg _spiWriteBurstReg fV
 0122           ;              i -> R20
 0122           ;          count -> R22
 0122           ;         buffer -> R18,R19
 0122           ;           addr -> R16
                        .even
 0122           _spiWriteBurstReg::
 0122 00D0              rcall push_gset2
 0124 6C81              ldd R22,y+4
 0126                   .dbline -1
 0126                   .dbline 162
 0126           ; }
 0126           ; 
 0126           ; void spiWriteBurstReg(BYTE addr, BYTE *buffer, BYTE count) 
 0126           ; {
 0126                   .dbline 164
 0126           ;     UINT8 i;
 0126           ;     SPI_ON(); 
 0126 2A98              cbi 0x5,2
 0128           L134:
 0128                   .dbline 165
 0128           L135:
 0128                   .dbline 165
 0128           ;     while((PORT_SPI&1<<MISO));
 0128 2C99              sbic 0x5,4
 012A FECF              rjmp L134
 012C           L137:
 012C                   .dbline 166
 012C                   .dbline 166
 012C 802F              mov R24,R16
 012E 8064              ori R24,64
 0130 8EBD              out 0x2e,R24
 0132                   .dbline 166
 0132           L143:
 0132                   .dbline 166
 0132           L144:
 0132                   .dbline 166
 0132 2DB4              in R2,0x2d
 0134 27FE              sbrs R2,7
 0136 FDCF              rjmp L143
 0138                   .dbline 166
 0138           L141:
 0138                   .dbline 166
 0138                   .dbline 166
 0138           L138:
 0138                   .dbline 166
 0138           ;     SPI_TX(addr | WRITE_BURST); 
 0138                   .dbline 167
 0138           ;     for (i = 0; i < count; i++) 
 0138 4427              clr R20
 013A 0AC0              rjmp L149
 013C           L146:
 013C                   .dbline 168
 013C           ;     {
 013C           L150:
 013C                   .dbline 169
 013C                   .dbline 169
 013C E42F              mov R30,R20
 013E FF27              clr R31
 0140 E20F              add R30,R18
 0142 F31F              adc R31,R19
 0144 2080              ldd R2,z+0
 0146 2EBC              out 0x2e,R2
 0148                   .dbline 169
 0148           L156:
 0148                   .dbline 169
 0148           L157:
 0148                   .dbline 169
 0148 2DB4              in R2,0x2d
 014A 27FE              sbrs R2,7
 014C FDCF              rjmp L156
 014E                   .dbline 169
 014E           L154:
 014E                   .dbline 169
 014E                   .dbline 169
 014E           L151:
 014E                   .dbline 169
 014E                   .dbline 170
 014E           L147:
 014E                   .dbline 167
 014E 4395              inc R20
 0150           L149:
 0150                   .dbline 167
 0150 4617              cp R20,R22
 0152 A0F3              brlo L146
 0154                   .dbline 171
 0154           ;       SPI_TX(buffer[i]);
 0154           ;     }
 0154           ;     SPI_OFF();
 0154 2A9A              sbi 0x5,2
 0156                   .dbline -2
 0156           L133:
 0156 00D0              rcall pop_gset2
 0158                   .dbline 0 ; func end
 0158 0895              ret
 015A                   .dbsym r i 20 c
 015A                   .dbsym r count 22 c
 015A                   .dbsym r buffer 18 pc
 015A                   .dbsym r addr 16 c
 015A                   .dbend
 015A                   .dbfunc e spiWriteRfSettings _spiWriteRfSettings fV
                        .even
 015A           _spiWriteRfSettings::
 015A 2197              sbiw R28,1
 015C                   .dbline -1
 015C                   .dbline 179
 015C           ; }
 015C           ; 
 015C           ; 
 015C           ;  
 015C           ; 
 015C           ; 
 015C           ; void spiWriteRfSettings() 
 015C           ; {
 015C                   .dbline 183
 015C           ; 
 015C           ;     // Write register settings
 015C           ;       
 015C           ;     spiWriteReg(CC1100_FSCTRL1,  rfSettings.FSCTRL1);
 015C 20910000          lds R18,_rfSettings
 0160 0BE0              ldi R16,11
 0162 CFDF              rcall _spiWriteReg
 0164                   .dbline 184
 0164           ;     spiWriteReg(CC1100_FSCTRL0,  rfSettings.FSCTRL0);
 0164 20910100          lds R18,_rfSettings+1
 0168 0CE0              ldi R16,12
 016A CBDF              rcall _spiWriteReg
 016C                   .dbline 185
 016C           ;     spiWriteReg(CC1100_FREQ2,    rfSettings.FREQ2);
 016C 20910200          lds R18,_rfSettings+2
 0170 0DE0              ldi R16,13
 0172 C7DF              rcall _spiWriteReg
 0174                   .dbline 186
 0174           ;     spiWriteReg(CC1100_FREQ1,    rfSettings.FREQ1);
 0174 20910300          lds R18,_rfSettings+3
 0178 0EE0              ldi R16,14
 017A C3DF              rcall _spiWriteReg
 017C                   .dbline 187
 017C           ;     spiWriteReg(CC1100_FREQ0,    rfSettings.FREQ0);
 017C 20910400          lds R18,_rfSettings+4
 0180 0FE0              ldi R16,15
 0182 BFDF              rcall _spiWriteReg
 0184                   .dbline 188
 0184           ;     spiWriteReg(CC1100_MDMCFG4,  rfSettings.MDMCFG4);
 0184 20910500          lds R18,_rfSettings+5
 0188 00E1              ldi R16,16
 018A BBDF              rcall _spiWriteReg
 018C                   .dbline 189
 018C           ;     spiWriteReg(CC1100_MDMCFG3,  rfSettings.MDMCFG3);
 018C 20910600          lds R18,_rfSettings+6
 0190 01E1              ldi R16,17
 0192 B7DF              rcall _spiWriteReg
 0194                   .dbline 190
 0194           ;     spiWriteReg(CC1100_MDMCFG2,  rfSettings.MDMCFG2);
 0194 20910700          lds R18,_rfSettings+7
 0198 02E1              ldi R16,18
 019A B3DF              rcall _spiWriteReg
 019C                   .dbline 191
 019C           ;     spiWriteReg(CC1100_MDMCFG1,  rfSettings.MDMCFG1);
 019C 20910800          lds R18,_rfSettings+8
 01A0 03E1              ldi R16,19
 01A2 AFDF              rcall _spiWriteReg
 01A4                   .dbline 192
 01A4           ;     spiWriteReg(CC1100_MDMCFG0,  rfSettings.MDMCFG0);
 01A4 20910900          lds R18,_rfSettings+9
 01A8 04E1              ldi R16,20
 01AA ABDF              rcall _spiWriteReg
 01AC                   .dbline 193
 01AC           ;     spiWriteReg(CC1100_CHANNR,   rfSettings.CHANNR);
 01AC 20910A00          lds R18,_rfSettings+10
 01B0 0AE0              ldi R16,10
 01B2 A7DF              rcall _spiWriteReg
 01B4                   .dbline 194
 01B4           ;     spiWriteReg(CC1100_DEVIATN,  rfSettings.DEVIATN);
 01B4 20910B00          lds R18,_rfSettings+11
 01B8 05E1              ldi R16,21
 01BA A3DF              rcall _spiWriteReg
 01BC                   .dbline 195
 01BC           ;     spiWriteReg(CC1100_FREND1,   rfSettings.FREND1);
 01BC 20910C00          lds R18,_rfSettings+12
 01C0 01E2              ldi R16,33
 01C2 9FDF              rcall _spiWriteReg
 01C4                   .dbline 196
 01C4           ;     spiWriteReg(CC1100_FREND0,   rfSettings.FREND0);
 01C4 20910D00          lds R18,_rfSettings+13
 01C8 02E2              ldi R16,34
 01CA 9BDF              rcall _spiWriteReg
 01CC                   .dbline 197
 01CC           ;     spiWriteReg(CC1100_MCSM0 ,   rfSettings.MCSM0 );
 01CC 20910E00          lds R18,_rfSettings+14
 01D0 08E1              ldi R16,24
 01D2 97DF              rcall _spiWriteReg
 01D4                   .dbline 198
 01D4           ;     spiWriteReg(CC1100_FOCCFG,   rfSettings.FOCCFG);
 01D4 20910F00          lds R18,_rfSettings+15
 01D8 09E1              ldi R16,25
 01DA 93DF              rcall _spiWriteReg
 01DC                   .dbline 199
 01DC           ;     spiWriteReg(CC1100_BSCFG,    rfSettings.BSCFG);
 01DC 20911000          lds R18,_rfSettings+16
 01E0 0AE1              ldi R16,26
 01E2 8FDF              rcall _spiWriteReg
 01E4                   .dbline 200
 01E4           ;     spiWriteReg(CC1100_AGCCTRL2, rfSettings.AGCCTRL2);
 01E4 20911100          lds R18,_rfSettings+17
 01E8 0BE1              ldi R16,27
 01EA 8BDF              rcall _spiWriteReg
 01EC                   .dbline 201
 01EC           ;     spiWriteReg(CC1100_AGCCTRL1, rfSettings.AGCCTRL1);
 01EC 20911200          lds R18,_rfSettings+18
 01F0 0CE1              ldi R16,28
 01F2 87DF              rcall _spiWriteReg
 01F4                   .dbline 202
 01F4           ;     spiWriteReg(CC1100_AGCCTRL0, rfSettings.AGCCTRL0);
 01F4 20911300          lds R18,_rfSettings+19
 01F8 0DE1              ldi R16,29
 01FA 83DF              rcall _spiWriteReg
 01FC                   .dbline 203
 01FC           ;     spiWriteReg(CC1100_FSCAL3,   rfSettings.FSCAL3);
 01FC 20911400          lds R18,_rfSettings+20
 0200 03E2              ldi R16,35
 0202 7FDF              rcall _spiWriteReg
 0204                   .dbline 204
 0204           ;     spiWriteReg(CC1100_FSCAL2,   rfSettings.FSCAL2);
 0204 20911500          lds R18,_rfSettings+21
 0208 04E2              ldi R16,36
 020A 7BDF              rcall _spiWriteReg
 020C                   .dbline 205
 020C           ;     spiWriteReg(CC1100_FSCAL1,   rfSettings.FSCAL1);
 020C 20911600          lds R18,_rfSettings+22
 0210 05E2              ldi R16,37
 0212 77DF              rcall _spiWriteReg
 0214                   .dbline 206
 0214           ;     spiWriteReg(CC1100_FSCAL0,   rfSettings.FSCAL0);
 0214 20911700          lds R18,_rfSettings+23
 0218 06E2              ldi R16,38
 021A 73DF              rcall _spiWriteReg
 021C                   .dbline 207
 021C           ;     spiWriteReg(CC1100_FSTEST,   rfSettings.FSTEST);
 021C 20911800          lds R18,_rfSettings+24
 0220 09E2              ldi R16,41
 0222 6FDF              rcall _spiWriteReg
 0224                   .dbline 208
 0224           ;     spiWriteReg(CC1100_TEST2,    rfSettings.TEST2);
 0224 20911900          lds R18,_rfSettings+25
 0228 0CE2              ldi R16,44
 022A 6BDF              rcall _spiWriteReg
 022C                   .dbline 209
 022C           ;     spiWriteReg(CC1100_TEST1,    rfSettings.TEST1);
 022C 20911A00          lds R18,_rfSettings+26
 0230 0DE2              ldi R16,45
 0232 67DF              rcall _spiWriteReg
 0234                   .dbline 210
 0234           ;     spiWriteReg(CC1100_TEST0,    rfSettings.TEST0);
 0234 20911B00          lds R18,_rfSettings+27
 0238 0EE2              ldi R16,46
 023A 63DF              rcall _spiWriteReg
 023C                   .dbline 213
 023C           ;     
 023C           ;     // Set Syn Byte
 023C           ;     spiWriteReg(CC1100_SYNC1,  0x12);
 023C 22E1              ldi R18,18
 023E 04E0              ldi R16,4
 0240 60DF              rcall _spiWriteReg
 0242                   .dbline 214
 0242           ;     spiWriteReg(CC1100_SYNC0,  0x34);  
 0242 24E3              ldi R18,52
 0244 05E0              ldi R16,5
 0246 5DDF              rcall _spiWriteReg
 0248                   .dbline 215
 0248           ;     spiWriteBurstReg(CC1100_PATABLE, paTable, sizeof(paTable));                                                       
 0248 88E0              ldi R24,8
 024A 8883              std y+0,R24
 024C 20E0              ldi R18,<_paTable
 024E 30E0              ldi R19,>_paTable
 0250 0EE3              ldi R16,62
 0252 67DF              rcall _spiWriteBurstReg
 0254                   .dbline -2
 0254           L159:
 0254 2196              adiw R28,1
 0256                   .dbline 0 ; func end
 0256 0895              ret
 0258                   .dbend
 0258                   .dbfunc e spiSendPacket _spiSendPacket fV
 0258           ;         status -> R20
 0258           ;           size -> R22
 0258           ;       txBuffer -> R20,R21
                        .even
 0258           _spiSendPacket::
 0258 00D0              rcall push_gset2
 025A 622F              mov R22,R18
 025C A801              movw R20,R16
 025E 2197              sbiw R28,1
 0260                   .dbline -1
 0260                   .dbline 219
 0260           ; }
 0260           ; 
 0260           ; void spiSendPacket(BYTE *txBuffer, UINT8 size)
 0260           ; {
 0260                   .dbline 223
 0260           ;   BYTE status;  
 0260           ;       
 0260           ;       // 写发送缓冲区
 0260           ;   spiWriteBurstReg(CC1100_TXFIFO, txBuffer, size);
 0260 6883              std y+0,R22
 0262 9A01              movw R18,R20
 0264 0FE3              ldi R16,63
 0266 5DDF              rcall _spiWriteBurstReg
 0268                   .dbline 224
 0268           ;   spiStrobe(CC1100_STX);
 0268 05E3              ldi R16,53
 026A 3FDF              rcall _spiStrobe
 026C                   .dbline 226
 026C           ;   
 026C           ;   fCC1100 = SEND;
 026C 81E0              ldi R24,1
 026E 80930000          sts _fCC1100,R24
 0272 06C0              rjmp L189
 0274           L188:
 0274                   .dbline 230
 0274           ;   // 循环直到数据发送完成

⌨️ 快捷键说明

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