📄 main.lss
字号:
digit = value / denom;
198: c8 01 movw r24, r16
19a: b7 01 movw r22, r14
19c: a6 01 movw r20, r12
19e: 95 01 movw r18, r10
1a0: 0e 94 35 03 call 0x66a <__udivmodsi4>
1a4: e9 01 movw r28, r18
if((digit_start == 1) || (digit != 0)) {
1a6: 81 e0 ldi r24, 0x01 ; 1
1a8: 78 16 cp r7, r24
1aa: 11 f0 breq .+4 ; 0x1b0 <intToAscii+0x62>
1ac: 23 2b or r18, r19
1ae: a1 f0 breq .+40 ; 0x1d8 <intToAscii+0x8a>
digit_start = 1;
1b0: 81 e0 ldi r24, 0x01 ; 1
1b2: 78 2e mov r7, r24
value %= denom;
1b4: c8 01 movw r24, r16
1b6: b7 01 movw r22, r14
1b8: a6 01 movw r20, r12
1ba: 95 01 movw r18, r10
1bc: 0e 94 35 03 call 0x66a <__udivmodsi4>
1c0: dc 01 movw r26, r24
1c2: cb 01 movw r24, r22
1c4: 7c 01 movw r14, r24
1c6: 8d 01 movw r16, r26
asciiString[j++] = (digit + '0');
1c8: e9 2d mov r30, r9
1ca: ff 27 eor r31, r31
1cc: eb 58 subi r30, 0x8B ; 139
1ce: fd 4f sbci r31, 0xFD ; 253
1d0: 8c 2f mov r24, r28
1d2: 80 5d subi r24, 0xD0 ; 208
1d4: 80 83 st Z, r24
1d6: 97 0c add r9, r7
}
denom /= 10;
1d8: c6 01 movw r24, r12
1da: b5 01 movw r22, r10
1dc: 2a e0 ldi r18, 0x0A ; 10
1de: 30 e0 ldi r19, 0x00 ; 0
1e0: 40 e0 ldi r20, 0x00 ; 0
1e2: 50 e0 ldi r21, 0x00 ; 0
1e4: 0e 94 35 03 call 0x66a <__udivmodsi4>
1e8: 59 01 movw r10, r18
1ea: 6a 01 movw r12, r20
1ec: 8a 94 dec r8
1ee: a1 f6 brne .-88 ; 0x198 <intToAscii+0x4a>
}
asciiString[j++] = NULL;
1f0: e9 2d mov r30, r9
1f2: ff 27 eor r31, r31
1f4: eb 58 subi r30, 0x8B ; 139
1f6: fd 4f sbci r31, 0xFD ; 253
1f8: 80 82 st Z, r8
1fa: df 91 pop r29
1fc: cf 91 pop r28
1fe: 1f 91 pop r17
200: 0f 91 pop r16
202: ff 90 pop r15
204: ef 90 pop r14
206: df 90 pop r13
208: cf 90 pop r12
20a: bf 90 pop r11
20c: af 90 pop r10
20e: 9f 90 pop r9
210: 8f 90 pop r8
212: 7f 90 pop r7
214: 08 95 ret
00000216 <main>:
216: cf ef ldi r28, 0xFF ; 255
218: d0 e1 ldi r29, 0x10 ; 16
21a: de bf out 0x3e, r29 ; 62
21c: cd bf out 0x3d, r28 ; 61
21e: aa 24 eor r10, r10
220: bb 24 eor r11, r11
222: 65 01 movw r12, r10
224: 33 e6 ldi r19, 0x63 ; 99
226: e3 2e mov r14, r19
228: f1 2c mov r15, r1
22a: 01 2d mov r16, r1
22c: 11 2d mov r17, r1
22e: 88 ec ldi r24, 0xC8 ; 200
230: 0e 94 2e 03 call 0x65c <halWait>
234: 08 94 sec
236: e1 08 sbc r14, r1
238: f1 08 sbc r15, r1
23a: 01 09 sbc r16, r1
23c: 11 09 sbc r17, r1
23e: 17 ff sbrs r17, 7
240: f6 cf rjmp .-20 ; 0x22e <main+0x18>
242: 0e 94 7e 00 call 0xfc <sysInit>
246: 86 e2 ldi r24, 0x26 ; 38
248: 91 e0 ldi r25, 0x01 ; 1
24a: 0e 94 77 00 call 0xee <writeln>
24e: 86 e3 ldi r24, 0x36 ; 54
250: 91 e0 ldi r25, 0x01 ; 1
252: 0e 94 77 00 call 0xee <writeln>
256: 86 e5 ldi r24, 0x56 ; 86
258: 91 e0 ldi r25, 0x01 ; 1
25a: 0e 94 77 00 call 0xee <writeln>
25e: 8e e7 ldi r24, 0x7E ; 126
260: 91 e0 ldi r25, 0x01 ; 1
262: 0e 94 77 00 call 0xee <writeln>
266: c0 9a sbi 0x18, 0 ; 24
268: 81 e0 ldi r24, 0x01 ; 1
26a: 0e 94 2e 03 call 0x65c <halWait>
26e: c0 98 cbi 0x18, 0 ; 24
270: 81 e0 ldi r24, 0x01 ; 1
272: 0e 94 2e 03 call 0x65c <halWait>
276: c0 9a sbi 0x18, 0 ; 24
278: 89 e2 ldi r24, 0x29 ; 41
27a: 0e 94 2e 03 call 0x65c <halWait>
27e: c0 98 cbi 0x18, 0 ; 24
280: b3 99 sbic 0x16, 3 ; 22
282: fe cf rjmp .-4 ; 0x280 <main+0x6a>
284: 80 e3 ldi r24, 0x30 ; 48
286: 8f b9 out 0x0f, r24 ; 15
288: 77 9b sbis 0x0e, 7 ; 14
28a: fe cf rjmp .-4 ; 0x288 <main+0x72>
28c: b3 99 sbic 0x16, 3 ; 22
28e: fe cf rjmp .-4 ; 0x28c <main+0x76>
290: c0 9a sbi 0x18, 0 ; 24
292: 88 e9 ldi r24, 0x98 ; 152
294: 91 e0 ldi r25, 0x01 ; 1
296: 0e 94 77 00 call 0xee <writeln>
29a: 81 e0 ldi r24, 0x01 ; 1
29c: 91 e0 ldi r25, 0x01 ; 1
29e: 0e 94 f1 01 call 0x3e2 <halRfWriteRfSettings>
2a2: 89 ea ldi r24, 0xA9 ; 169
2a4: 91 e0 ldi r25, 0x01 ; 1
2a6: 0e 94 77 00 call 0xee <writeln>
2aa: 41 e0 ldi r20, 0x01 ; 1
2ac: 60 e0 ldi r22, 0x00 ; 0
2ae: 71 e0 ldi r23, 0x01 ; 1
2b0: 8e e3 ldi r24, 0x3E ; 62
2b2: 0e 94 dc 01 call 0x3b8 <halSpiWriteBurstReg>
2b6: 8e eb ldi r24, 0xBE ; 190
2b8: 91 e0 ldi r25, 0x01 ; 1
2ba: 0e 94 77 00 call 0xee <writeln>
2be: 83 ed ldi r24, 0xD3 ; 211
2c0: 91 e0 ldi r25, 0x01 ; 1
2c2: 0e 94 77 00 call 0xee <writeln>
2c6: 60 e4 ldi r22, 0x40 ; 64
2c8: 80 e8 ldi r24, 0x80 ; 128
2ca: 92 e0 ldi r25, 0x02 ; 2
2cc: 0e 94 c6 02 call 0x58c <halRfReceivePacket>
2d0: 88 23 and r24, r24
2d2: c9 f3 breq .-14 ; 0x2c6 <main+0xb0>
2d4: 97 9a sbi 0x12, 7 ; 18
2d6: 08 94 sec
2d8: a1 1c adc r10, r1
2da: b1 1c adc r11, r1
2dc: c1 1c adc r12, r1
2de: d1 1c adc r13, r1
2e0: c6 01 movw r24, r12
2e2: b5 01 movw r22, r10
2e4: 0e 94 a7 00 call 0x14e <intToAscii>
2e8: 8c ee ldi r24, 0xEC ; 236
2ea: 91 e0 ldi r25, 0x01 ; 1
2ec: 0e 94 65 00 call 0xca <write>
2f0: 85 e7 ldi r24, 0x75 ; 117
2f2: 92 e0 ldi r25, 0x02 ; 2
2f4: 0e 94 65 00 call 0xca <write>
2f8: 87 ef ldi r24, 0xF7 ; 247
2fa: 91 e0 ldi r25, 0x01 ; 1
2fc: 0e 94 65 00 call 0xca <write>
300: 80 e8 ldi r24, 0x80 ; 128
302: 92 e0 ldi r25, 0x02 ; 2
304: 0e 94 77 00 call 0xee <writeln>
308: 97 98 cbi 0x12, 7 ; 18
30a: dd cf rjmp .-70 ; 0x2c6 <main+0xb0>
0000030c <halSpiReadReg>:
// Value of the accessed CCxxx0 register.
//-------------------------------------------------------------------------------------------------------
BYTE halSpiReadReg(BYTE addr) {
UINT8 x;
SPI_ENABLE();
30c: c0 98 cbi 0x18, 0 ; 24
NOP();
30e: 00 00 nop
while(MISO_1);
310: b3 99 sbic 0x16, 3 ; 22
312: fe cf rjmp .-4 ; 0x310 <halSpiReadReg+0x4>
NOP();
314: 00 00 nop
FASTSPI_TX(addr | READ_SINGLE);
316: 80 68 ori r24, 0x80 ; 128
318: 8f b9 out 0x0f, r24 ; 15
31a: 77 9b sbis 0x0e, 7 ; 14
31c: fe cf rjmp .-4 ; 0x31a <halSpiReadReg+0xe>
FASTSPI_RX(x);
31e: 1f b8 out 0x0f, r1 ; 15
320: 77 9b sbis 0x0e, 7 ; 14
322: fe cf rjmp .-4 ; 0x320 <halSpiReadReg+0x14>
324: 8f b1 in r24, 0x0f ; 15
NOP();
326: 00 00 nop
SPI_DISABLE();
328: c0 9a sbi 0x18, 0 ; 24
return x;
}// halSpiReadReg
32a: 99 27 eor r25, r25
32c: 08 95 ret
0000032e <halSpiReadStatus>:
//-------------------------------------------------------------------------------------------------------
// BYTE halSpiReadStatus(BYTE addr)
// 读CC1100 状态寄存器
// DESCRIPTION:
// This function reads a CCxxx0 status register.
//
// ARGUMENTS:
// BYTE addr
// Address of the CCxxx0 status register to be accessed.
//
// RETURN VALUE:
// BYTE
// Value of the accessed CCxxx0 status register.
//-------------------------------------------------------------------------------------------------------
BYTE halSpiReadStatus(BYTE addr) {
UINT8 x;
SPI_ENABLE();
32e: c0 98 cbi 0x18, 0 ; 24
NOP();
330: 00 00 nop
while(MISO_1);
332: b3 99 sbic 0x16, 3 ; 22
334: fe cf rjmp .-4 ; 0x332 <halSpiReadStatus+0x4>
NOP();
336: 00 00 nop
FASTSPI_TX(addr | READ_BURST);
338: 80 6c ori r24, 0xC0 ; 192
33a: 8f b9 out 0x0f, r24 ; 15
33c: 77 9b sbis 0x0e, 7 ; 14
33e: fe cf rjmp .-4 ; 0x33c <halSpiReadStatus+0xe>
FASTSPI_RX(x);
340: 1f b8 out 0x0f, r1 ; 15
342: 77 9b sbis 0x0e, 7 ; 14
344: fe cf rjmp .-4 ; 0x342 <halSpiReadStatus+0x14>
346: 8f b1 in r24, 0x0f ; 15
NOP();
348: 00 00 nop
SPI_DISABLE();
34a: c0 9a sbi 0x18, 0 ; 24
return x;
}// halSpiReadStatus
34c: 99 27 eor r25, r25
34e: 08 95 ret
00000350 <halSpiReadBurstReg>:
//-------------------------------------------------------------------------------------------------------
// void halSpiReadBurstReg(BYTE addr, BYTE *buffer, BYTE count)
// 连续读取缓冲区数据
// DESCRIPTION:
// This function reads multiple CCxxx0 register, using SPI burst access.
//
// ARGUMENTS:
// BYTE addr
// Address of the first CCxxx0 register to be accessed.
// BYTE *buffer
// Pointer to a byte array which stores the values read from a
// corresponding range of CCxxx0 registers.
// BYTE count
// Number of bytes to be written to the subsequent CCxxx0 registers.
//-------------------------------------------------------------------------------------------------------
void halSpiReadBurstReg(BYTE addr, BYTE *buffer, BYTE count) {
UINT8 i;
SPI_ENABLE();
350: c0 98 cbi 0x18, 0 ; 24
while(MISO_1);
352: b3 99 sbic 0x16, 3 ; 22
354: fe cf rjmp .-4 ; 0x352 <halSpiReadBurstReg+0x2>
NOP();
356: 00 00 nop
FASTSPI_TX(addr | READ_BURST);
358: 80 6c ori r24, 0xC0 ; 192
35a: 8f b9 out 0x0f, r24 ; 15
35c: 77 9b sbis 0x0e, 7 ; 14
35e: fe cf rjmp .-4 ; 0x35c <halSpiReadBurstReg+0xc>
for (i = 0; i < count; i++)
360: 20 e0 ldi r18, 0x00 ; 0
362: 24 17 cp r18, r20
364: 50 f4 brcc .+20 ; 0x37a <halSpiReadBurstReg+0x2a>
{
FASTSPI_RX(buffer[i]);
366: 1f b8 out 0x0f, r1 ; 15
368: 77 9b sbis 0x0e, 7 ; 14
36a: fe cf rjmp .-4 ; 0x368 <halSpiReadBurstReg+0x18>
36c: fb 01 movw r30, r22
36e: e2 0f add r30, r18
370: f1 1d adc r31, r1
372: 8f b1 in r24, 0x0f ; 15
374: 80 83 st Z, r24
376: 2f 5f subi r18, 0xFF ; 255
378: f4 cf rjmp .-24 ; 0x362 <halSpiReadBurstReg+0x12>
}
NOP();
37a: 00 00 nop
SPI_DISABLE();
37c: c0 9a sbi 0x18, 0 ; 24
writeln(buffer);
37e: cb 01 movw r24, r22
380: 0e 94 77 00 call 0xee <writeln>
384: 08 95 ret
00000386 <halSpiStrobe>:
}// halSpiReadBurstReg
//-------------------------------------------------------------------------------------------------------
// void halSpiStrobe(BYTE strobe)
// 发送命令字节
// DESCRIPTION:
// Function for writing a strobe command to the CCxxx0
//
// ARGUMENTS:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -