📄 cc1100.lis
字号:
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 + -