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

📄 main.lss

📁 基于CC1100和ATMEGA128开发的无线机器人控制程序
💻 LSS
📖 第 1 页 / 共 4 页
字号:
//      BYTE strobe
//          Strobe command
//-------------------------------------------------------------------------------------------------------
void halSpiStrobe(BYTE strobe) {
	
	 			SPI_ENABLE(); 
 386:	c0 98       	cbi	0x18, 0	; 24
	 			NOP();
 388:	00 00       	nop
 				while(MISO_1);
 38a:	b3 99       	sbic	0x16, 3	; 22
 38c:	fe cf       	rjmp	.-4      	; 0x38a <halSpiStrobe+0x4>
 				NOP();
 38e:	00 00       	nop
        FASTSPI_TX(strobe); 
 390:	8f b9       	out	0x0f, r24	; 15
 392:	77 9b       	sbis	0x0e, 7	; 14
 394:	fe cf       	rjmp	.-4      	; 0x392 <halSpiStrobe+0xc>
				NOP();
 396:	00 00       	nop
        SPI_DISABLE(); 
 398:	c0 9a       	sbi	0x18, 0	; 24
 39a:	08 95       	ret

0000039c <halSpiWriteReg>:
 //  FASTSPI_STROBE(strobe);
}// halSpiStrobe


//-------------------------------------------------------------------------------------------------------
//  void halSpiWriteReg(BYTE addr, BYTE value)
// 写单个寄存器
//  DESCRIPTION:
//      Function for writing to a single CCxxx0 register
//
//  ARGUMENTS:
//      BYTE addr
//          Address of a specific CCxxx0 register to accessed.
//      BYTE value
//          Value to be written to the specified CCxxx0 register.
//-------------------------------------------------------------------------------------------------------


void halSpiWriteReg(BYTE addr, BYTE value) {
 				SPI_ENABLE(); 
 39c:	c0 98       	cbi	0x18, 0	; 24
 				NOP();
 39e:	00 00       	nop
 				while(MISO_1);
 3a0:	b3 99       	sbic	0x16, 3	; 22
 3a2:	fe cf       	rjmp	.-4      	; 0x3a0 <halSpiWriteReg+0x4>
        NOP(); 
 3a4:	00 00       	nop
        FASTSPI_TX(addr); 
 3a6:	8f b9       	out	0x0f, r24	; 15
 3a8:	77 9b       	sbis	0x0e, 7	; 14
 3aa:	fe cf       	rjmp	.-4      	; 0x3a8 <halSpiWriteReg+0xc>
        FASTSPI_TX(value);
 3ac:	6f b9       	out	0x0f, r22	; 15
 3ae:	77 9b       	sbis	0x0e, 7	; 14
 3b0:	fe cf       	rjmp	.-4      	; 0x3ae <halSpiWriteReg+0x12>
        NOP(); 
 3b2:	00 00       	nop
        SPI_DISABLE(); 
 3b4:	c0 9a       	sbi	0x18, 0	; 24
 3b6:	08 95       	ret

000003b8 <halSpiWriteBurstReg>:
}// halSpiWriteReg


//-------------------------------------------------------------------------------------------------------
//  void RfWriteRfSettings(RF_SETTINGS *pRfSettings)
// 设置寄存器
//  DESCRIPTION:
//      This function is used to configure the CC2500 based on a given rf setting
//
//  ARGUMENTS:
//      RF_SETTINGS *pRfSettings
//          Pointer to a struct containing rf register settings
//-------------------------------------------------------------------------------------------------------
void halRfWriteRfSettings(RF_SETTINGS *pRfSettings) {

    // Write register settings
    halSpiWriteReg(CCxxx0_FSCTRL1,  pRfSettings->FSCTRL1);
    halSpiWriteReg(CCxxx0_FSCTRL0,  pRfSettings->FSCTRL0);
    halSpiWriteReg(CCxxx0_FREQ2,    pRfSettings->FREQ2);
    halSpiWriteReg(CCxxx0_FREQ1,    pRfSettings->FREQ1);
    halSpiWriteReg(CCxxx0_FREQ0,    pRfSettings->FREQ0);
    halSpiWriteReg(CCxxx0_MDMCFG4,  pRfSettings->MDMCFG4);
    halSpiWriteReg(CCxxx0_MDMCFG3,  pRfSettings->MDMCFG3);
    halSpiWriteReg(CCxxx0_MDMCFG2,  pRfSettings->MDMCFG2);
    halSpiWriteReg(CCxxx0_MDMCFG1,  pRfSettings->MDMCFG1);
    halSpiWriteReg(CCxxx0_MDMCFG0,  pRfSettings->MDMCFG0);
    halSpiWriteReg(CCxxx0_CHANNR,   pRfSettings->CHANNR);
    halSpiWriteReg(CCxxx0_DEVIATN,  pRfSettings->DEVIATN);
    halSpiWriteReg(CCxxx0_FREND1,   pRfSettings->FREND1);
    halSpiWriteReg(CCxxx0_FREND0,   pRfSettings->FREND0);
      
    halSpiWriteReg(CCxxx0_MCSM0 ,   pRfSettings->MCSM0 );
    halSpiWriteReg(CCxxx0_FOCCFG,   pRfSettings->FOCCFG);
    halSpiWriteReg(CCxxx0_BSCFG,    pRfSettings->BSCFG);
    halSpiWriteReg(CCxxx0_AGCCTRL2, pRfSettings->AGCCTRL2);
	halSpiWriteReg(CCxxx0_AGCCTRL1, pRfSettings->AGCCTRL1);
    halSpiWriteReg(CCxxx0_AGCCTRL0, pRfSettings->AGCCTRL0);
    halSpiWriteReg(CCxxx0_FSCAL3,   pRfSettings->FSCAL3);
    halSpiWriteReg(CCxxx0_FSCAL2,   pRfSettings->FSCAL2);
	halSpiWriteReg(CCxxx0_FSCAL1,   pRfSettings->FSCAL1);
    halSpiWriteReg(CCxxx0_FSCAL0,   pRfSettings->FSCAL0);
    halSpiWriteReg(CCxxx0_FSTEST,   pRfSettings->FSTEST);
    halSpiWriteReg(CCxxx0_TEST2,    pRfSettings->TEST2);
    halSpiWriteReg(CCxxx0_TEST1,    pRfSettings->TEST1);
    halSpiWriteReg(CCxxx0_TEST0,    pRfSettings->TEST0);
    halSpiWriteReg(CCxxx0_IOCFG2,   pRfSettings->IOCFG2);
    halSpiWriteReg(CCxxx0_IOCFG0,   pRfSettings->IOCFG0);    
    halSpiWriteReg(CCxxx0_PKTCTRL1, pRfSettings->PKTCTRL1);
    halSpiWriteReg(CCxxx0_PKTCTRL0, pRfSettings->PKTCTRL0);
    halSpiWriteReg(CCxxx0_ADDR,     pRfSettings->ADDR);
    halSpiWriteReg(CCxxx0_PKTLEN,   pRfSettings->PKTLEN);
    
    // Set Syn Byte
    halSpiWriteReg(CCxxx0_SYNC1,  0x12);
  	halSpiWriteReg(CCxxx0_SYNC0,  0x34);
    
   	halSpiWriteBurstReg(CCxxx0_PATABLE, paTable, sizeof(paTable));
							
}// halRfWriteRfSettings



//-------------------------------------------------------------------------------------------------------
//  void halSpiWriteBurstReg(BYTE addr, BYTE *buffer, BYTE count)
// 	写多个寄存器
//  DESCRIPTION:
//      This function writes to multiple CCxxx0 register, using SPI burst access.
//
//  ARGUMENTS:
//      BYTE addr
//          Address of the first CCxxx0 register to be accessed.
//      BYTE *buffer
//          Array of bytes to be written into a corresponding range of
//          CCxx00 registers, starting by the address specified in _addr_.
//      BYTE count
//          Number of bytes to be written to the subsequent CCxxx0 registers.   
//-------------------------------------------------------------------------------------------------------

void halSpiWriteBurstReg(BYTE addr, BYTE *buffer, BYTE count) {
    UINT8 i;
     
    SPI_ENABLE(); 
 3b8:	c0 98       	cbi	0x18, 0	; 24
    while((MISO_1));
 3ba:	b3 99       	sbic	0x16, 3	; 22
 3bc:	fe cf       	rjmp	.-4      	; 0x3ba <halSpiWriteBurstReg+0x2>
    FASTSPI_TX(addr | WRITE_BURST); 
 3be:	80 64       	ori	r24, 0x40	; 64
 3c0:	8f b9       	out	0x0f, r24	; 15
 3c2:	77 9b       	sbis	0x0e, 7	; 14
 3c4:	fe cf       	rjmp	.-4      	; 0x3c2 <halSpiWriteBurstReg+0xa>
    for (i = 0; i < count; i++) {
 3c6:	90 e0       	ldi	r25, 0x00	; 0
 3c8:	94 17       	cp	r25, r20
 3ca:	48 f4       	brcc	.+18     	; 0x3de <halSpiWriteBurstReg+0x26>
         FASTSPI_TX(buffer[i]);
 3cc:	fb 01       	movw	r30, r22
 3ce:	e9 0f       	add	r30, r25
 3d0:	f1 1d       	adc	r31, r1
 3d2:	80 81       	ld	r24, Z
 3d4:	8f b9       	out	0x0f, r24	; 15
 3d6:	77 9b       	sbis	0x0e, 7	; 14
 3d8:	fe cf       	rjmp	.-4      	; 0x3d6 <halSpiWriteBurstReg+0x1e>
 3da:	9f 5f       	subi	r25, 0xFF	; 255
 3dc:	f5 cf       	rjmp	.-22     	; 0x3c8 <halSpiWriteBurstReg+0x10>
          }
      
    SPI_DISABLE();
 3de:	c0 9a       	sbi	0x18, 0	; 24
 3e0:	08 95       	ret

000003e2 <halRfWriteRfSettings>:
 3e2:	0f 93       	push	r16
 3e4:	1f 93       	push	r17
 3e6:	8c 01       	movw	r16, r24
 3e8:	fc 01       	movw	r30, r24
 3ea:	60 81       	ld	r22, Z
 3ec:	8b e0       	ldi	r24, 0x0B	; 11
 3ee:	0e 94 ce 01 	call	0x39c <halSpiWriteReg>
 3f2:	f8 01       	movw	r30, r16
 3f4:	61 81       	ldd	r22, Z+1	; 0x01
 3f6:	8c e0       	ldi	r24, 0x0C	; 12
 3f8:	0e 94 ce 01 	call	0x39c <halSpiWriteReg>
 3fc:	f8 01       	movw	r30, r16
 3fe:	62 81       	ldd	r22, Z+2	; 0x02
 400:	8d e0       	ldi	r24, 0x0D	; 13
 402:	0e 94 ce 01 	call	0x39c <halSpiWriteReg>
 406:	f8 01       	movw	r30, r16
 408:	63 81       	ldd	r22, Z+3	; 0x03
 40a:	8e e0       	ldi	r24, 0x0E	; 14
 40c:	0e 94 ce 01 	call	0x39c <halSpiWriteReg>
 410:	f8 01       	movw	r30, r16
 412:	64 81       	ldd	r22, Z+4	; 0x04
 414:	8f e0       	ldi	r24, 0x0F	; 15
 416:	0e 94 ce 01 	call	0x39c <halSpiWriteReg>
 41a:	f8 01       	movw	r30, r16
 41c:	65 81       	ldd	r22, Z+5	; 0x05
 41e:	80 e1       	ldi	r24, 0x10	; 16
 420:	0e 94 ce 01 	call	0x39c <halSpiWriteReg>
 424:	f8 01       	movw	r30, r16
 426:	66 81       	ldd	r22, Z+6	; 0x06
 428:	81 e1       	ldi	r24, 0x11	; 17
 42a:	0e 94 ce 01 	call	0x39c <halSpiWriteReg>
 42e:	f8 01       	movw	r30, r16
 430:	67 81       	ldd	r22, Z+7	; 0x07
 432:	82 e1       	ldi	r24, 0x12	; 18
 434:	0e 94 ce 01 	call	0x39c <halSpiWriteReg>
 438:	f8 01       	movw	r30, r16
 43a:	60 85       	ldd	r22, Z+8	; 0x08
 43c:	83 e1       	ldi	r24, 0x13	; 19
 43e:	0e 94 ce 01 	call	0x39c <halSpiWriteReg>
 442:	f8 01       	movw	r30, r16
 444:	61 85       	ldd	r22, Z+9	; 0x09
 446:	84 e1       	ldi	r24, 0x14	; 20
 448:	0e 94 ce 01 	call	0x39c <halSpiWriteReg>
 44c:	f8 01       	movw	r30, r16
 44e:	62 85       	ldd	r22, Z+10	; 0x0a
 450:	8a e0       	ldi	r24, 0x0A	; 10
 452:	0e 94 ce 01 	call	0x39c <halSpiWriteReg>
 456:	f8 01       	movw	r30, r16
 458:	63 85       	ldd	r22, Z+11	; 0x0b
 45a:	85 e1       	ldi	r24, 0x15	; 21
 45c:	0e 94 ce 01 	call	0x39c <halSpiWriteReg>
 460:	f8 01       	movw	r30, r16
 462:	64 85       	ldd	r22, Z+12	; 0x0c
 464:	81 e2       	ldi	r24, 0x21	; 33
 466:	0e 94 ce 01 	call	0x39c <halSpiWriteReg>
 46a:	f8 01       	movw	r30, r16
 46c:	65 85       	ldd	r22, Z+13	; 0x0d
 46e:	82 e2       	ldi	r24, 0x22	; 34
 470:	0e 94 ce 01 	call	0x39c <halSpiWriteReg>
 474:	f8 01       	movw	r30, r16
 476:	66 85       	ldd	r22, Z+14	; 0x0e
 478:	88 e1       	ldi	r24, 0x18	; 24
 47a:	0e 94 ce 01 	call	0x39c <halSpiWriteReg>
 47e:	f8 01       	movw	r30, r16
 480:	67 85       	ldd	r22, Z+15	; 0x0f
 482:	89 e1       	ldi	r24, 0x19	; 25
 484:	0e 94 ce 01 	call	0x39c <halSpiWriteReg>
 488:	f8 01       	movw	r30, r16
 48a:	60 89       	ldd	r22, Z+16	; 0x10
 48c:	8a e1       	ldi	r24, 0x1A	; 26
 48e:	0e 94 ce 01 	call	0x39c <halSpiWriteReg>
 492:	f8 01       	movw	r30, r16
 494:	61 89       	ldd	r22, Z+17	; 0x11
 496:	8b e1       	ldi	r24, 0x1B	; 27
 498:	0e 94 ce 01 	call	0x39c <halSpiWriteReg>
 49c:	f8 01       	movw	r30, r16
 49e:	62 89       	ldd	r22, Z+18	; 0x12
 4a0:	8c e1       	ldi	r24, 0x1C	; 28
 4a2:	0e 94 ce 01 	call	0x39c <halSpiWriteReg>
 4a6:	f8 01       	movw	r30, r16
 4a8:	63 89       	ldd	r22, Z+19	; 0x13
 4aa:	8d e1       	ldi	r24, 0x1D	; 29
 4ac:	0e 94 ce 01 	call	0x39c <halSpiWriteReg>
 4b0:	f8 01       	movw	r30, r16
 4b2:	64 89       	ldd	r22, Z+20	; 0x14
 4b4:	83 e2       	ldi	r24, 0x23	; 35
 4b6:	0e 94 ce 01 	call	0x39c <halSpiWriteReg>
 4ba:	f8 01       	movw	r30, r16
 4bc:	65 89       	ldd	r22, Z+21	; 0x15
 4be:	84 e2       	ldi	r24, 0x24	; 36
 4c0:	0e 94 ce 01 	call	0x39c <halSpiWriteReg>
 4c4:	f8 01       	movw	r30, r16
 4c6:	66 89       	ldd	r22, Z+22	; 0x16
 4c8:	85 e2       	ldi	r24, 0x25	; 37
 4ca:	0e 94 ce 01 	call	0x39c <halSpiWriteReg>
 4ce:	f8 01       	movw	r30, r16
 4d0:	67 89       	ldd	r22, Z+23	; 0x17
 4d2:	86 e2       	ldi	r24, 0x26	; 38
 4d4:	0e 94 ce 01 	call	0x39c <halSpiWriteReg>
 4d8:	f8 01       	movw	r30, r16
 4da:	60 8d       	ldd	r22, Z+24	; 0x18
 4dc:	89 e2       	ldi	r24, 0x29	; 41
 4de:	0e 94 ce 01 	call	0x39c <halSpiWriteReg>
 4e2:	f8 01       	movw	r30, r16
 4e4:	61 8d       	ldd	r22, Z+25	; 0x19
 4e6:	8c e2       	ldi	r24, 0x2C	; 44
 4e8:	0e 94 ce 01 	call	0x39c <halSpiWriteReg>
 4ec:	f8 01       	movw	r30, r16
 4ee:	62 8d       	ldd	r22, Z+26	; 0x1a
 4f0:	8d e2       	ldi	r24, 0x2D	; 45
 4f2:	0e 94 ce 01 	call	0x39c <halSpiWriteReg>
 4f6:	f8 01       	movw	r30, r16
 4f8:	63 8d       	ldd	r22, Z+27	; 0x1b
 4fa:	8e e2       	ldi	r24, 0x2E	; 46
 4fc:	0e 94 ce 01 	call	0x39c <halSpiWriteReg>
 500:	f8 01       	movw	r30, r16
 502:	64 8d       	ldd	r22, Z+28	; 0x1c
 504:	80 e0       	ldi	r24, 0x00	; 0
 506:	0e 94 ce 01 	call	0x39c <halSpiWriteReg>
 50a:	f8 01       	movw	r30, r16
 50c:	65 8d       	ldd	r22, Z+29	; 0x1d
 50e:	82 e0       	ldi	r24, 0x02	; 2
 510:	0e 94 ce 01 	call	0x39c <halSpiWriteReg>
 514:	f8 01       	movw	r30, r16
 516:	66 8d       	ldd	r22, Z+30	; 0x1e
 518:	87 e0       	ldi	r24, 0x07	; 7
 51a:	0e 94 ce 01 	call	0x39c <halSpiWriteReg>
 51e:	f8 01       	movw	r30, r16
 520:	67 8d       	ldd	r22, Z+31	; 0x1f
 522:	88 e0       	ldi	r24, 0x08	; 8
 524:	0e 94 ce 01 	call	0x39c <halSpiWriteReg>
 528:	f8 01       	movw	r30, r16
 52a:	60 a1       	ldd	r22, Z+32	; 0x20
 52c:	89 e0       	ldi	r24, 0x09	; 9
 52e:	0e 94 ce 01 	call	0x39c <halSpiWriteReg>
 532:	f8 01       	movw	r30, r16
 534:	61 a1       	ldd	r22, Z+33	; 0x21
 536:	86 e0       	ldi	r24, 0x06	; 6
 538:	0e 94 ce 01 	call	0x39c <halSpiWriteReg>
 53c:	62 e1       	ldi	r22, 0x12	; 18
 53e:	84 e0       	ldi	r24, 0x04	; 4
 540:	0e 94 ce 01 	call	0x39c <halSpiWriteReg>
 544:	64 e3       	ldi	r22, 0x34	; 52
 546:	85 e0       	ldi	r24, 0x05	; 5
 548:	0e 94 ce 01 	call	0x39c <halSpiWriteReg>
 54c:	41 e0       	ldi	r20, 0x01	; 1
 54e:	60 e0       	ldi	r22, 0x00	; 0
 550:	71 e0       	ldi	r23, 0x01	; 1

⌨️ 快捷键说明

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