📄 cc1100.lis
字号:
02BA ; value -> R20
02BA ; addr -> R20
.even
02BA _halSpiReadReg::
02BA 0E940000 xcall push_gset1
02BE 402F mov R20,R16
02C0 ; }// halRfSendPacket
02C0 ; /*******************************************/
02C0 ; /*
02C0 ; void TxCCxx00()
02C0 ; {
02C0 ; unsigned char i;
02C0 ; halSpiWriteReg(CCxxx0_FREND0, 0x10); //CC1100:POWER=10DBM;CC2500:1DBM
02C0 ; Dly1mS(25);;
02C0 ; for(i=0;i<4;i++) //发四次
02C0 ; {
02C0 ; halRfSendPacket(txBuffer_CCxx00, sizeof(txBuffer_CCxx00));
02C0 ; Dly1mS(50);
02C0 ; }
02C0 ; halSpiWriteReg(CCxxx0_FREND0, 0x15); //CC1100太近会收不到,将发射功率降低到-10DBM //#define CCxxx0_FREND0 0x22
02C0 ; Dly1mS(50);
02C0 ; halRfSendPacket(txBuffer_CCxx00, sizeof(txBuffer_CCxx00));
02C0 ; Dly1mS(100);
02C0 ; }
02C0 ; */
02C0 ; /*********************************************************/
02C0 ; unsigned char halSpiReadReg(unsigned char addr)
02C0 ; {
02C0 ; unsigned char value;
02C0 ; CLEAR_CLOCK();
02C0 A5DE xcall _CLEAR_CLOCK
02C2 ; Dly10us();Dly10us();
02C2 CADE xcall _Dly10us
02C4 C9DE xcall _Dly10us
02C6 ; CLEAR_CSN(); // CSn=0
02C6 B6DE xcall _CLEAR_CSN
02C8 ; addr|=READ_SINGLE;
02C8 4068 ori R20,128
02CA ; SPI_write(addr);
02CA 042F mov R16,R20
02CC F4DE xcall _SPI_write
02CE ; CLEAR_IN();
02CE AADE xcall _CLEAR_IN
02D0 ; Dly10us();Dly10us();Dly10us();Dly10us();Dly10us();
02D0 C3DE xcall _Dly10us
02D2 C2DE xcall _Dly10us
02D4 C1DE xcall _Dly10us
02D6 C0DE xcall _Dly10us
02D8 BFDE xcall _Dly10us
02DA ; value=0;
02DA 4427 clr R20
02DC ; value=SPI_read();
02DC 1DDF xcall _SPI_read
02DE 402F mov R20,R16
02E0 ; Dly10us();Dly10us();Dly10us();
02E0 BBDE xcall _Dly10us
02E2 BADE xcall _Dly10us
02E4 B9DE xcall _Dly10us
02E6 ; CLEAR_CLOCK();
02E6 92DE xcall _CLEAR_CLOCK
02E8 ; CLEAR_IN();
02E8 9DDE xcall _CLEAR_IN
02EA ; SET_CSN(); // CSn=0 P_CSn=0;
02EA A2DE xcall _SET_CSN
02EC ; return value;
02EC 042F mov R16,R20
02EE L87:
02EE 0E940000 xcall pop_gset1
02F2 .dbline 0 ; func end
02F2 0895 ret
02F4 ; value -> R20
02F4 ; i -> R22
02F4 ; count -> R10
02F4 ; buffer -> R12,R13
02F4 ; addr -> R20
.even
02F4 _halSpiReadBurstReg::
02F4 0E940000 xcall push_gset4
02F8 6901 movw R12,R18
02FA 402F mov R20,R16
02FC A884 ldd R10,y+8
02FE ; }
02FE ; /**************************************************/
02FE ; void halSpiReadBurstReg(unsigned char addr, unsigned char *buffer, unsigned char count)
02FE ; {
02FE ; unsigned char i,value;
02FE ; CLEAR_CLOCK();
02FE 86DE xcall _CLEAR_CLOCK
0300 ; Dly10us();Dly10us();
0300 ABDE xcall _Dly10us
0302 AADE xcall _Dly10us
0304 ; CLEAR_CSN(); // CSn=0 P_CSn=0;
0304 97DE xcall _CLEAR_CSN
0306 ; addr|=READ_BURST;
0306 406C ori R20,192
0308 ; SPI_write(addr);
0308 042F mov R16,R20
030A D5DE xcall _SPI_write
030C ; CLEAR_IN();
030C 8BDE xcall _CLEAR_IN
030E ; Dly10us();Dly10us();Dly10us();Dly10us();Dly10us();
030E A4DE xcall _Dly10us
0310 A3DE xcall _Dly10us
0312 A2DE xcall _Dly10us
0314 A1DE xcall _Dly10us
0316 A0DE xcall _Dly10us
0318 ; value=0;
0318 4427 clr R20
031A ; for(i=0;i<count;i++)
031A 6627 clr R22
031C 08C0 xjmp L92
031E L89:
031E FCDE xcall _SPI_read
0320 402F mov R20,R16
0322 E62F mov R30,R22
0324 FF27 clr R31
0326 EC0D add R30,R12
0328 FD1D adc R31,R13
032A 4083 std z+0,R20
032C L90:
032C 6395 inc R22
032E L92:
032E 6A15 cp R22,R10
0330 B0F3 brlo L89
0332 ; {
0332 ; value=SPI_read();
0332 ; buffer[i]=value;
0332 ; }
0332 ; Dly10us();Dly10us();Dly10us();
0332 92DE xcall _Dly10us
0334 91DE xcall _Dly10us
0336 90DE xcall _Dly10us
0338 ; CLEAR_CLOCK();
0338 69DE xcall _CLEAR_CLOCK
033A ; CLEAR_IN();
033A 74DE xcall _CLEAR_IN
033C ; SET_CSN(); // CSn=0 P_CSn=0;
033C 79DE xcall _SET_CSN
033E L88:
033E 0E940000 xcall pop_gset4
0342 .dbline 0 ; func end
0342 0895 ret
0344 ; rd_pin -> <dead>
0344 ; value -> R22
0344 ; addr -> R20
.even
0344 _halSpiReadStatus::
0344 0E940000 xcall push_gset2
0348 402F mov R20,R16
034A ; }
034A ; /**************************************************/
034A ; unsigned char halSpiReadStatus(unsigned char addr)
034A ; {
034A ; unsigned char value,rd_pin;
034A ; CLEAR_CSN(); // CSn=0 P_CSn=0;
034A 74DE xcall _CLEAR_CSN
034C L94:
034C L95:
034C ; while(GET_OUT());
034C 75DE xcall _GET_OUT
034E 0023 tst R16
0350 E9F7 brne L94
0352 ; CLEAR_CLOCK(); //SCLK=0 //P_SCLK=0;
0352 5CDE xcall _CLEAR_CLOCK
0354 ; addr|=READ_BURST;
0354 406C ori R20,192
0356 ; SPI_write(addr);
0356 042F mov R16,R20
0358 AEDE xcall _SPI_write
035A ; value=SPI_read();
035A DEDE xcall _SPI_read
035C 602F mov R22,R16
035E ; CLEAR_CLOCK(); //SCLK=0 //P_SCLK=0;
035E 56DE xcall _CLEAR_CLOCK
0360 ; CLEAR_IN(); // SI=0 P_SI=0;
0360 61DE xcall _CLEAR_IN
0362 ; SET_CSN(); //CSn=1 P_CSn=1;
0362 66DE xcall _SET_CSN
0364 ; return value;
0364 062F mov R16,R22
0366 L93:
0366 0E940000 xcall pop_gset2
036A .dbline 0 ; func end
036A 0895 ret
.even
036C _halRfWriteRfSettings::
036C ; }// halSpiReadStatus
036C ; /**************************************************/
036C ; void halRfWriteRfSettings()
036C ; {
036C L98:
036C ; l_setCC1100:
036C ; halSpiWriteReg(CCxxx0_FSCTRL1, 0x0C);
036C 2CE0 ldi R18,12
036E 0BE0 ldi R16,11
0370 0BDF xcall _halSpiWriteReg
0372 ; halSpiWriteReg(CCxxx0_FSCTRL0, 0x00);
0372 2227 clr R18
0374 0CE0 ldi R16,12
0376 08DF xcall _halSpiWriteReg
0378 ; halSpiWriteReg(CCxxx0_FREQ2, 0x10);
0378 20E1 ldi R18,16
037A 0DE0 ldi R16,13
037C 05DF xcall _halSpiWriteReg
037E ; halSpiWriteReg(CCxxx0_FREQ1, 0x09);
037E 29E0 ldi R18,9
0380 0EE0 ldi R16,14
0382 02DF xcall _halSpiWriteReg
0384 ; halSpiWriteReg(CCxxx0_FREQ0, 0x7B);
0384 2BE7 ldi R18,123
0386 0FE0 ldi R16,15
0388 FFDE xcall _halSpiWriteReg
038A ; halSpiWriteReg(CCxxx0_MDMCFG4, 0xC6);
038A 26EC ldi R18,198
038C 00E1 ldi R16,16
038E FCDE xcall _halSpiWriteReg
0390 ; halSpiWriteReg(CCxxx0_MDMCFG3, 0x83);
0390 23E8 ldi R18,131
0392 01E1 ldi R16,17
0394 F9DE xcall _halSpiWriteReg
0396 ; halSpiWriteReg(CCxxx0_MDMCFG2, 0x02);
0396 22E0 ldi R18,2
0398 02E1 ldi R16,18
039A F6DE xcall _halSpiWriteReg
039C ; halSpiWriteReg(CCxxx0_MDMCFG1, 0x22);
039C 22E2 ldi R18,34
039E 03E1 ldi R16,19
03A0 F3DE xcall _halSpiWriteReg
03A2 ; halSpiWriteReg(CCxxx0_MDMCFG0, 0xF8);
03A2 28EF ldi R18,248
03A4 04E1 ldi R16,20
03A6 F0DE xcall _halSpiWriteReg
03A8 ; halSpiWriteReg(CCxxx0_CHANNR, 0x05);
03A8 25E0 ldi R18,5
03AA 0AE0 ldi R16,10
03AC EDDE xcall _halSpiWriteReg
03AE ; halSpiWriteReg(CCxxx0_DEVIATN, 0x30);
03AE 20E3 ldi R18,48
03B0 05E1 ldi R16,21
03B2 EADE xcall _halSpiWriteReg
03B4 ; halSpiWriteReg(CCxxx0_FREND1, 0x56);
03B4 26E5 ldi R18,86
03B6 01E2 ldi R16,33
03B8 E7DE xcall _halSpiWriteReg
03BA ; halSpiWriteReg(CCxxx0_FREND0, 0x10);
03BA 20E1 ldi R18,16
03BC 02E2 ldi R16,34
03BE E4DE xcall _halSpiWriteReg
03C0 ;
03C0 ;
03C0 ; halSpiWriteReg(CCxxx0_MCSM0, 0x18);
03C0 28E1 ldi R18,24
03C2 08E1 ldi R16,24
03C4 E1DE xcall _halSpiWriteReg
03C6 ; halSpiWriteReg(CCxxx0_FOCCFG, 0x15);
03C6 25E1 ldi R18,21
03C8 09E1 ldi R16,25
03CA DEDE xcall _halSpiWriteReg
03CC ; halSpiWriteReg(CCxxx0_BSCFG, 0x6C);
03CC 2CE6 ldi R18,108
03CE 0AE1 ldi R16,26
03D0 DBDE xcall _halSpiWriteReg
03D2 ; halSpiWriteReg(CCxxx0_AGCCTRL2, 0x03);
03D2 23E0 ldi R18,3
03D4 0BE1 ldi R16,27
03D6 D8DE xcall _halSpiWriteReg
03D8 ; halSpiWriteReg(CCxxx0_AGCCTRL0, 0x91);
03D8 21E9 ldi R18,145
03DA 0DE1 ldi R16,29
03DC D5DE xcall _halSpiWriteReg
03DE ; halSpiWriteReg(CCxxx0_FSCAL3, 0xA9);
03DE 29EA ldi R18,169
03E0 03E2 ldi R16,35
03E2 D2DE xcall _halSpiWriteReg
03E4 ; halSpiWriteReg(CCxxx0_FSCAL2, 0x2A);
03E4 2AE2 ldi R18,42
03E6 04E2 ldi R16,36
03E8 CFDE xcall _halSpiWriteReg
03EA ; halSpiWriteReg(CCxxx0_FSCAL0, 0x0D);
03EA 2DE0 ldi R18,13
03EC 06E2 ldi R16,38
03EE CCDE xcall _halSpiWriteReg
03F0 ; halSpiWriteReg(CCxxx0_FSTEST, 0x59);
03F0 29E5 ldi R18,89
03F2 09E2 ldi R16,41
03F4 C9DE xcall _halSpiWriteReg
03F6 ; halSpiWriteReg(CCxxx0_TEST2, 0x86);
03F6 26E8 ldi R18,134
03F8 0CE2 ldi R16,44
03FA C6DE xcall _halSpiWriteReg
03FC ; halSpiWriteReg(CCxxx0_TEST1, 0x3D);
03FC 2DE3 ldi R18,61
03FE 0DE2 ldi R16,45
0400 C3DE xcall _halSpiWriteReg
0402 ; halSpiWriteReg(CCxxx0_TEST0, 0x09);
0402 29E0 ldi R18,9
0404 0EE2 ldi R16,46
0406 C0DE xcall _halSpiWriteReg
0408 ;
0408 ;
0408 ; halSpiWriteReg(CCxxx0_IOCFG2, 0x24);
0408 24E2 ldi R18,36
040A 0027 clr R16
040C BDDE xcall _halSpiWriteReg
040E ;
040E ; halSpiWriteReg(CCxxx0_IOCFG0, 0x06);
040E 26E0 ldi R18,6
0410 02E0 ldi R16,2
0412 BADE xcall _halSpiWriteReg
0414 ; halSpiWriteReg(CCxxx0_PKTCTRL1, 0x04);
0414 24E0 ldi R18,4
0416 07E0 ldi R16,7
0418 B7DE xcall _halSpiWriteReg
041A ; halSpiWriteReg(CCxxx0_PKTCTRL0, 0x05);
041A 25E0 ldi R18,5
041C 08E0 ldi R16,8
041E B4DE xcall _halSpiWriteReg
0420 ; halSpiWriteReg(CCxxx0_ADDR, 0x00);
0420 2227 clr R18
0422 09E0 ldi R16,9
0424 B1DE xcall _halSpiWriteReg
0426 ;
0426 ; halSpiWriteReg(CCxxx0_PKTLEN, 0x1F); // hejie ,接收数据长度
0426 2FE1 ldi R18,31
0428 06E0 ldi R16,6
042A AEDE xcall _halSpiWriteReg
042C ; //halSpiWriteReg(CCxxx0_PKTLEN, 0xFF);
042C ;
042C ; halSpiWriteReg(CCxxx0_MCSM2, 0x08); // CCxxx0_MCSM2 修改限制时间 默认为07 修改为00
042C 28E0 ldi R18,8
042E 06E1 ldi R16,22
0430 ABDE xcall _halSpiWriteReg
0432 ; //halSpiWriteReg(CCxxx0_FIFOTHR, 0x07);
0432 ;
0432 ;
0432 ; //CCxxx0_MCSM1
0432 ; //halSpiWriteReg(CCxxx0_MCSM0, 0x14); // 状态切换时候 校准频率 。
0432 ; /*halSpiWriteReg(CCxxx0_FSCTRL1, 0x08);
0432 ; halSpiWriteReg(CCxxx0_FSCTRL0, 0x00);
0432 ; halSpiWriteReg(CCxxx0_FREQ2, 0x10);
0432 ; halSpiWriteReg(CCxxx0_FREQ1, 0x12);
0432 ; halSpiWriteReg(CCxxx0_FREQ0, 0x34);
0432 ; halSpiWriteReg(CCxxx0_MDMCFG4, 0xf6);
0432 ; halSpiWriteReg(CCxxx0_MDMCFG3, 0x75);
0432 ; halSpiWriteReg(CCxxx0_MDMCFG2, 0x13);
0432 ; halSpiWriteReg(CCxxx0_MDMCFG1, 0x22);
0432 ; halSpiWriteReg(CCxxx0_MDMCFG0, 0xe5);
0432 ; halSpiWriteReg(CCxxx0_CHANNR, 0x00);
0432 ; halSpiWriteReg(CCxxx0_DEVIATN, 0x14);
0432 ; halSpiWriteReg(CCxxx0_FREND1, 0x56);
0432 ; halSpiWriteReg(CCxxx0_FREND0, 0x10);
0432 ; halSpiWriteReg(CCxxx0_MCSM0, 0x18);
0432 ; halSpiWriteReg(CCxxx0_FOCCFG, 0x16);
0432 ; halSpiWriteReg(CCxxx0_BSCFG, 0x6C);
0432 ; halSpiWriteReg(CCxxx0_AGCCTRL2, 0x03);
0432 ; halSpiWriteReg(CCxxx0_AGCCTRL1, 0x40);
0432 ; halSpiWriteReg(CCxxx0_AGCCTRL0, 0x91);
0432 ; halSpiWriteReg(CCxxx0_FSCAL3, 0xA9);
0432 ; halSpiWriteReg(CCxxx0_FSCAL2, 0x2A);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -