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

📄 main.lss

📁 基于CC1100和ATMEGA128开发的无线机器人控制程序
💻 LSS
📖 第 1 页 / 共 4 页
字号:
            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 + -