📄 main.lss
字号:
// 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 + -