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

📄 main.lss

📁 AVR写的433M无线通信原代码.
💻 LSS
📖 第 1 页 / 共 5 页
字号:
 2d6:	c3 e6       	ldi	r28, 0x63	; 99
 2d8:	88 ec       	ldi	r24, 0xC8	; 200
 2da:	43 d2       	rcall	.+1158   	; 0x762 <halWait>
 2dc:	c1 50       	subi	r28, 0x01	; 1
 2de:	c7 ff       	sbrs	r28, 7
 2e0:	fb cf       	rjmp	.-10     	; 0x2d8 <main+0x148>
 2e2:	8b b7       	in	r24, 0x3b	; 59
 2e4:	8f 77       	andi	r24, 0x7F	; 127
 2e6:	8b bf       	out	0x3b, r24	; 59
 2e8:	08 94       	sec
 2ea:	e1 1c       	adc	r14, r1
 2ec:	f1 1c       	adc	r15, r1
 2ee:	01 1d       	adc	r16, r1
 2f0:	11 1d       	adc	r17, r1
 2f2:	88 ec       	ldi	r24, 0xC8	; 200
 2f4:	e8 16       	cp	r14, r24
 2f6:	f1 04       	cpc	r15, r1
 2f8:	01 05       	cpc	r16, r1
 2fa:	11 05       	cpc	r17, r1
 2fc:	b8 f2       	brcs	.-82     	; 0x2ac <main+0x11c>
 2fe:	80 91 b5 04 	lds	r24, 0x04B5
 302:	88 23       	and	r24, r24
 304:	e9 f0       	breq	.+58     	; 0x340 <main+0x1b0>
 306:	c3 e1       	ldi	r28, 0x13	; 19
 308:	88 ec       	ldi	r24, 0xC8	; 200
 30a:	2b d2       	rcall	.+1110   	; 0x762 <halWait>
 30c:	c1 50       	subi	r28, 0x01	; 1
 30e:	c7 ff       	sbrs	r28, 7
 310:	fb cf       	rjmp	.-10     	; 0x308 <main+0x178>
 312:	68 e5       	ldi	r22, 0x58	; 88
 314:	8d e5       	ldi	r24, 0x5D	; 93
 316:	92 e0       	ldi	r25, 0x02	; 2
 318:	2b d2       	rcall	.+1110   	; 0x770 <halRfSendPacket>
 31a:	08 94       	sec
 31c:	a1 1c       	adc	r10, r1
 31e:	b1 1c       	adc	r11, r1
 320:	c1 1c       	adc	r12, r1
 322:	d1 1c       	adc	r13, r1
 324:	c6 01       	movw	r24, r12
 326:	b5 01       	movw	r22, r10
 328:	d2 de       	rcall	.-604    	; 0xce <intToAscii>
 32a:	8f e1       	ldi	r24, 0x1F	; 31
 32c:	91 e0       	ldi	r25, 0x01	; 1
 32e:	96 de       	rcall	.-724    	; 0x5c <write>
 330:	86 e0       	ldi	r24, 0x06	; 6
 332:	92 e0       	ldi	r25, 0x02	; 2
 334:	93 de       	rcall	.-730    	; 0x5c <write>
 336:	86 e2       	ldi	r24, 0x26	; 38
 338:	91 e0       	ldi	r25, 0x01	; 1
 33a:	9b de       	rcall	.-714    	; 0x72 <writeln>
 33c:	10 92 b5 04 	sts	0x04B5, r1
 340:	10 92 0a 05 	sts	0x050A, r1
 344:	10 92 b8 04 	sts	0x04B8, r1
 348:	74 cf       	rjmp	.-280    	; 0x232 <main+0xa2>

0000034a <checkRfPacket>:
    }
}// intToAscii


void wor_ctr(void)
{
	unsigned int i;
			DISABLE_PATTERN_INT(); // u mst call it for close syn int before send any command to rfmodule by spi
			halSpiStrobe(CCxxx0_SRX);	
			// _WOR_3S_
			#warning	"WOR_3S defined!!!"
			/* prepare force rf module to sleep mode start*/
			halSpiWriteReg(CCxxx0_WORCTRL, 0x79);	// WOR_RES=1 open rfmodule counter to force rfmodule enter into sleep mode
													// enable counter
				halSpiStrobe(CCxxx0_SFRX); //clear rec buffer
				halSpiStrobe(CCxxx0_SIDLE); //
				// power down RF transceiver
				halSpiStrobe(CCxxx0_SPWD);
				
				halSpiStrobe(CCxxx0_SWORRST);
				//halSpiStrobe(CCxxx0_SIDLE );
			/* prepare force rf module to sleep mode end*/

				halSpiStrobe(CCxxx0_SWOR); /* prepare force rf module to sleep mode */

				//ucWakeup = 0;
				
				//DDRB  = BM(MOSI) | BM(SCK) | BM(CSN);				
				ENABLE_PATTERN_INT();
				
				ENABLE_GLOBAL_INT();	// Enable all interrupts
//				rxMsgFlag = 0;		
//				wdt_disable();
				sleep_enable(); //cpu to sleep
				set_sleep_mode(SLEEP_MODE_PWR_DOWN);	// Select powerdown sleep mode 
				sleep_mode();	// Sleep mode
				/*
					sleep & waiting for rfmodule calling me
				*/
				//wakeup
				sleep_disable();
				//DISABLE_PATTERN_INT();
				
				//for (i=0;i<2000 && (!sleepflag);i++)
					for (i=0;i<2000 && (!ucSleepFlag) ;i++)
										halWait(200);
										
				ucSleepFlag =0;
//				wdt_reset();

}



void checkRfPacket(unsigned char length)
{
 34a:	1f 93       	push	r17
 34c:	cf 93       	push	r28
 34e:	18 2f       	mov	r17, r24
	unsigned char i;
	
	
	switch (ucRF_RX.ucDir)
 350:	80 91 61 01 	lds	r24, 0x0161
 354:	99 27       	eor	r25, r25
 356:	82 30       	cpi	r24, 0x02	; 2
 358:	91 05       	cpc	r25, r1
 35a:	59 f0       	breq	.+22     	; 0x372 <checkRfPacket+0x28>
 35c:	83 30       	cpi	r24, 0x03	; 3
 35e:	91 05       	cpc	r25, r1
 360:	bc f0       	brlt	.+46     	; 0x390 <checkRfPacket+0x46>
 362:	83 30       	cpi	r24, 0x03	; 3
 364:	91 05       	cpc	r25, r1
 366:	81 f0       	breq	.+32     	; 0x388 <checkRfPacket+0x3e>
 368:	80 3a       	cpi	r24, 0xA0	; 160
 36a:	91 05       	cpc	r25, r1
 36c:	09 f4       	brne	.+2      	; 0x370 <checkRfPacket+0x26>
 36e:	42 c0       	rjmp	.+132    	; 0x3f4 <checkRfPacket+0xaa>
 370:	44 c0       	rjmp	.+136    	; 0x3fa <checkRfPacket+0xb0>
 372:	c3 e1       	ldi	r28, 0x13	; 19
	{
		case	 0x02:		// wake up syn byes?
					//send ack packet
											// wait a while for slave echo back;
					for (i=0;i<20;i++)
									halWait(200);
 374:	88 ec       	ldi	r24, 0xC8	; 200
 376:	f5 d1       	rcall	.+1002   	; 0x762 <halWait>
 378:	c1 50       	subi	r28, 0x01	; 1
 37a:	c7 ff       	sbrs	r28, 7
 37c:	fb cf       	rjmp	.-10     	; 0x374 <checkRfPacket+0x2a>
									
					halRfSendPacket(ucSynAck,sizeof(ucSynAck));	// 4 bytes Syn
 37e:	64 e0       	ldi	r22, 0x04	; 4
 380:	80 e6       	ldi	r24, 0x60	; 96
 382:	90 e0       	ldi	r25, 0x00	; 0
 384:	f5 d1       	rcall	.+1002   	; 0x770 <halRfSendPacket>
 386:	33 c0       	rjmp	.+102    	; 0x3ee <checkRfPacket+0xa4>
					ucAckFlag = 0;
					//UART0_WAIT_AND_SEND('A');
			break;
	
		case	0x03:		// wake up ack byte?
				//set ackflag
				ucAckFlag = 1;
 388:	81 e0       	ldi	r24, 0x01	; 1
 38a:	80 93 b5 04 	sts	0x04B5, r24
				//UART0_WAIT_AND_SEND('B');
			break;
 38e:	35 c0       	rjmp	.+106    	; 0x3fa <checkRfPacket+0xb0>
	
		case 0x00:
		case 0x01:
				// normal data packet; forward it to RS232
					SET_LED_RDY();
 390:	97 9a       	sbi	0x12, 7	; 18
          
          #if 1
          intToAscii(++packetsReceived);
 392:	80 91 5c 01 	lds	r24, 0x015C
 396:	90 91 5d 01 	lds	r25, 0x015D
 39a:	a0 91 5e 01 	lds	r26, 0x015E
 39e:	b0 91 5f 01 	lds	r27, 0x015F
 3a2:	01 96       	adiw	r24, 0x01	; 1
 3a4:	a1 1d       	adc	r26, r1
 3a6:	b1 1d       	adc	r27, r1
 3a8:	80 93 5c 01 	sts	0x015C, r24
 3ac:	90 93 5d 01 	sts	0x015D, r25
 3b0:	a0 93 5e 01 	sts	0x015E, r26
 3b4:	b0 93 5f 01 	sts	0x015F, r27
 3b8:	bc 01       	movw	r22, r24
 3ba:	cd 01       	movw	r24, r26
 3bc:	88 de       	rcall	.-752    	; 0xce <intToAscii>
          write("Received: ");
 3be:	87 e3       	ldi	r24, 0x37	; 55
 3c0:	91 e0       	ldi	r25, 0x01	; 1
 3c2:	4c de       	rcall	.-872    	; 0x5c <write>
          write(asciiString);
 3c4:	86 e0       	ldi	r24, 0x06	; 6
 3c6:	92 e0       	ldi	r25, 0x02	; 2
 3c8:	49 de       	rcall	.-878    	; 0x5c <write>
          write("  -  ");
 3ca:	82 e4       	ldi	r24, 0x42	; 66
 3cc:	91 e0       	ldi	r25, 0x01	; 1
 3ce:	46 de       	rcall	.-884    	; 0x5c <write>
          for(i =0; i<length; i++)
 3d0:	c0 e0       	ldi	r28, 0x00	; 0
 3d2:	c1 17       	cp	r28, r17
 3d4:	58 f4       	brcc	.+22     	; 0x3ec <checkRfPacket+0xa2>
          {
          	UART0_WAIT_AND_SEND(ucRF_RX.val[i]);
 3d6:	5d 9b       	sbis	0x0b, 5	; 11
 3d8:	fe cf       	rjmp	.-4      	; 0x3d6 <checkRfPacket+0x8c>
 3da:	5d 98       	cbi	0x0b, 5	; 11
 3dc:	ec 2f       	mov	r30, r28
 3de:	ff 27       	eor	r31, r31
 3e0:	e0 5a       	subi	r30, 0xA0	; 160
 3e2:	fe 4f       	sbci	r31, 0xFE	; 254
 3e4:	80 81       	ld	r24, Z
 3e6:	8c b9       	out	0x0c, r24	; 12
 3e8:	cf 5f       	subi	r28, 0xFF	; 255
 3ea:	f3 cf       	rjmp	.-26     	; 0x3d2 <checkRfPacket+0x88>
          }
          //writeln(rxBuffer);
          #endif
          
          CLR_LED_RDY();
 3ec:	97 98       	cbi	0x12, 7	; 18
          ucAckFlag = 0;
 3ee:	10 92 b5 04 	sts	0x04B5, r1
			
			break;
 3f2:	03 c0       	rjmp	.+6      	; 0x3fa <checkRfPacket+0xb0>
			
			// sleep command: |0x68|0xA0|0x16|
	 case 0xA0:
	 			 ucSleepFlag =1;
 3f4:	81 e0       	ldi	r24, 0x01	; 1
 3f6:	80 93 b6 04 	sts	0x04B6, r24
 3fa:	cf 91       	pop	r28
 3fc:	1f 91       	pop	r17
 3fe:	08 95       	ret

00000400 <__vector_2>:
 400:	1f 92       	push	r1
 402:	0f 92       	push	r0
 404:	0f b6       	in	r0, 0x3f	; 63
 406:	0f 92       	push	r0
 408:	11 24       	eor	r1, r1
 40a:	2f 93       	push	r18
 40c:	3f 93       	push	r19
 40e:	4f 93       	push	r20
 410:	5f 93       	push	r21
 412:	6f 93       	push	r22
 414:	7f 93       	push	r23
 416:	8f 93       	push	r24
 418:	9f 93       	push	r25
 41a:	af 93       	push	r26
 41c:	bf 93       	push	r27
 41e:	cf 93       	push	r28
 420:	df 93       	push	r29
 422:	ef 93       	push	r30
 424:	ff 93       	push	r31
 426:	8b b7       	in	r24, 0x3b	; 59
 428:	8f 77       	andi	r24, 0x7F	; 127
 42a:	8b bf       	out	0x3b, r24	; 59
 42c:	83 99       	sbic	0x10, 3	; 16
 42e:	08 c0       	rjmp	.+16     	; 0x440 <__vector_2+0x40>
 430:	c7 ee       	ldi	r28, 0xE7	; 231
 432:	d3 e0       	ldi	r29, 0x03	; 3
 434:	84 e6       	ldi	r24, 0x64	; 100
 436:	95 d1       	rcall	.+810    	; 0x762 <halWait>
 438:	83 99       	sbic	0x10, 3	; 16
 43a:	02 c0       	rjmp	.+4      	; 0x440 <__vector_2+0x40>
 43c:	21 97       	sbiw	r28, 0x01	; 1
 43e:	d1 f7       	brne	.-12     	; 0x434 <__vector_2+0x34>
 440:	88 ec       	ldi	r24, 0xC8	; 200
 442:	8f d1       	rcall	.+798    	; 0x762 <halWait>
 444:	5d 9b       	sbis	0x0b, 5	; 11
 446:	fe cf       	rjmp	.-4      	; 0x444 <__vector_2+0x44>
 448:	5d 98       	cbi	0x0b, 5	; 11
 44a:	89 e5       	ldi	r24, 0x59	; 89
 44c:	8c b9       	out	0x0c, r24	; 12
 44e:	60 e4       	ldi	r22, 0x40	; 64
 450:	81 e1       	ldi	r24, 0x11	; 17
 452:	92 e0       	ldi	r25, 0x02	; 2
 454:	a7 d1       	rcall	.+846    	; 0x7a4 <halRfReceivePacket>
 456:	88 23       	and	r24, r24
 458:	c1 f0       	breq	.+48     	; 0x48a <__stack+0x2b>
 45a:	c1 e0       	ldi	r28, 0x01	; 1
 45c:	d0 e0       	ldi	r29, 0x00	; 0
 45e:	80 91 11 02 	lds	r24, 0x0211
 462:	28 2f       	mov	r18, r24
 464:	33 27       	eor	r19, r19
 466:	2c 0f       	add	r18, r28
 468:	3d 1f       	adc	r19, r29
 46a:	c2 17       	cp	r28, r18
 46c:	d3 07       	cpc	r29, r19
 46e:	50 f4       	brcc	.+20     	; 0x484 <__stack+0x25>
 470:	a0 e6       	ldi	r26, 0x60	; 96
 472:	b1 e0       	ldi	r27, 0x01	; 1
 474:	e2 e1       	ldi	r30, 0x12	; 18
 476:	f2 e0       	ldi	r31, 0x02	; 2
 478:	81 91       	ld	r24, Z+
 47a:	8d 93       	st	X+, r24
 47c:	21 96       	adiw	r28, 0x01	; 1
 47e:	c2 17       	cp	r28, r18
 480:	d3 07       	cpc	r29, r19
 482:	d0 f3       	brcs	.-12     	; 0x478 <__stack+0x19>
 484:	80 91 11 02 	lds	r24, 0x0211
 488:	60 df       	rcall	.-320    	; 0x34a <checkRfPacket>
 48a:	8a e3       	ldi	r24, 0x3A	; 58
 48c:	a0 d0       	rcall	.+320    	; 0x5ce <halSpiStrobe>
 48e:	86 e3       	ldi	r24, 0x36	; 54
 490:	9e d0       	rcall	.+316    	; 0x5ce <halSpiStrobe>
 492:	c4 e0       	ldi	r28, 0x04	; 4
 494:	d0 e0       	ldi	r29, 0x00	; 0
 496:	88 ec       	ldi	r24, 0xC8	; 200
 498:	64 d1       	rcall	.+712    	; 0x762 <halWait>
 49a:	21 97       	sbiw	r28, 0x01	; 1
 49c:	d7 ff       	sbrs	r29, 7
 49e:	fb cf       	rjmp	.-10     	; 0x496 <__stack+0x37>
 4a0:	84 e3       	ldi	r24, 0x34	; 52
 4a2:	95 d0       	rcall	.+298    	; 0x5ce <halSpiStrobe>
 4a4:	c4 e0       	ldi	r28, 0x04	; 4
 4a6:	d0 e0       	ldi	r29, 0x00	; 0
 4a8:	88 ec       	ldi	r24, 0xC8	; 200
 4aa:	5b d1       	rcall	.+694    	; 0x762 <halWait>
 4ac:	21 97       	sbiw	r28, 0x01	; 1
 4ae:	d7 ff       	sbrs	r29, 7
 4b0:	fb cf       	rjmp	.-10     	; 0x4a8 <__stack+0x49>
 4b2:	ff 91       	pop	r31
 4b4:	ef 91       	pop	r30
 4b6:	df 91       	pop	r29
 4b8:	cf 91       	pop	r28
 4ba:	bf 91       	pop	r27
 4bc:	af 91       	pop	r26
 4be:	9f 91       	pop	r25
 4c0:	8f 91       	pop	r24
 4c2:	7f 91       	pop	r23
 4c4:	6f 91       	pop	r22
 4c6:	5f 91       	pop	r21
 4c8:	4f 91       	pop	r20
 4ca:	3f 91       	pop	r19
 4cc:	2f 91       	pop	r18
 4ce:	0f 90       	pop	r0
 4d0:	0f be       	out	0x3f, r0	; 63
 4d2:	0f 90       	pop	r0
 4d4:	1f 90       	pop	r1
 4d6:	18 95       	reti

000004d8 <wor_ctr>:
 4d8:	cf 93       	push	r28
 4da:	df 93       	push	r29
 4dc:	8b b7       	in	r24, 0x3b	; 59
 4de:	8f 77       	andi	r24, 0x7F	; 127
 4e0:	8b bf       	out	0x3b, r24	; 59
 4e2:	84 e3       	ldi	r24, 0x34	; 52
 4e4:	74 d0       	rcall	.+232    	; 0x5ce <halSpiStrobe>
 4e6:	69 e7       	ldi	r22, 0x79	; 121
 4e8:	80 e2       	ldi	r24, 0x20	; 32
 4ea:	7c d0       	rcall	.+248    	; 0x5e4 <halSpiWriteReg>
 4ec:	8a e3       	ldi	r24, 0x3A	; 58
 4ee:	6f d0       	rcall	.+222    	; 0x5ce <halSpiStrobe>
 4f0:	86 e3       	ldi	r24, 0x36	; 54
 4f2:	6d d0       	rcall	.+218    	; 0x5ce <halSpiStrobe>
 4f4:	89 e3       	ldi	r24, 0x39	; 57
 4f6:	6b d0       	rcall	.+214    	; 0x5ce <halSpiStrobe>
 4f8:	8c e3       	ldi	r24, 0x3C	; 60
 4fa:	69 d0       	rcall	.+210    	; 0x5ce <halSpiStrobe>
 4fc:	88 e3       	ldi	r24, 0x38	; 56
 4fe:	67 d0       	rcall	.+206    	; 0x5ce <halSpiStrobe>
 500:	80 e8       	ldi	r24, 0x80	; 128
 502:	8a bf       	out	0x3a, r24	; 58
 504:	8b b7       	in	r24, 0x3b	; 59
 506:	80 68       	ori	r24, 0x80	; 128
 508:	8b bf       	out	0x3b, r24	; 59
 50a:	78 94       	sei
 50c:	85 b7       	in	r24, 0x35	; 53
 50e:	80 68       	ori	r24, 0x80	; 128
 510:	85 bf       	out	0x35, r24	; 53
 512:	85 b7       	in	r24, 0x35	; 53
 514:	8f 78       	andi	r24, 0x8F	; 143
 516:	80 62       	ori	r24, 0x20	; 32
 518:	85 bf       	out	0x35, r24	; 53
 51a:	85 b7       	in	r24, 0x35	; 53
 51c:	80 68       	ori	r24, 0x80	; 128
 51e:	85 bf       	out	0x35, r24	; 53
 520:	88 95       	sleep
 522:	85 b7       	in	r24, 0x35	; 53
 524:	8f 77       	andi	r24, 0x7F	; 127

⌨️ 快捷键说明

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