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

📄 cc1000.lst

📁 adhoc信息节点程序源代码(点对多点)——for atmega128
💻 LST
📖 第 1 页 / 共 5 页
字号:
 547               	.LM46:
 548 029e CA01      		movw r24,r20
 549 02a0 AA27      		clr r26
 550 02a2 BB27      		clr r27
 551 02a4 8093 0000 		sts CC1000ControlM_gCurrentParameters+4,r24
 201:cc1000.c      **** 
 202:cc1000.c      ****       CC1000ControlM_gCurrentParameters[0x8] = (uint8_t )(FSep & 0xFF);
 553               	.LM47:
 554 02a8 3D8D      		ldd r19,Y+29
 555 02aa 3093 0000 		sts CC1000ControlM_gCurrentParameters+8,r19
 203:cc1000.c      ****       CC1000ControlM_gCurrentParameters[0x7] = (uint8_t )((FSep >> 8) & 0xFF);
 557               	.LM48:
 558 02ae 4D8D      		ldd r20,Y+29
 559 02b0 5E8D      		ldd r21,Y+30
 560 02b2 852F      		mov r24,r21
 561 02b4 9927      		clr r25
 562 02b6 8093 0000 		sts CC1000ControlM_gCurrentParameters+7,r24
 204:cc1000.c      **** 
 205:cc1000.c      ****       if (ActualChannel < 500000000) {
 564               	.LM49:
 565 02ba 8D81      		ldd r24,Y+5
 566 02bc 9E81      		ldd r25,Y+6
 567 02be AF81      		ldd r26,Y+7
 568 02c0 B885      		ldd r27,Y+8
 569 02c2 8030      		cpi r24,lo8(500000000)
 570 02c4 E5E6      		ldi r30,hi8(500000000)
 571 02c6 9E07      		cpc r25,r30
 572 02c8 EDEC      		ldi r30,hlo8(500000000)
 573 02ca AE07      		cpc r26,r30
 574 02cc EDE1      		ldi r30,hhi8(500000000)
 575 02ce BE07      		cpc r27,r30
 576 02d0 A8F4      		brsh .L14
 206:cc1000.c      ****           if (ActualChannel < 400000000) {
 578               	.LM50:
 579 02d2 8050      		subi r24,lo8(400000000)
 580 02d4 9448      		sbci r25,hi8(400000000)
 581 02d6 A74D      		sbci r26,hlo8(400000000)
 582 02d8 B741      		sbci r27,hhi8(400000000)
 583 02da 28F4      		brsh .L15
 207:cc1000.c      ****               CC1000ControlM_gCurrentParameters[0x9] = (8 << 4) | (1 << 2);
 585               	.LM51:
 586 02dc 84E8      		ldi r24,lo8(-124)
 587 02de 8093 0000 		sts CC1000ControlM_gCurrentParameters+9,r24
 208:cc1000.c      ****               CC1000ControlM_gCurrentParameters[0x1d] = (9 << 4) | (1 << 0);
 589               	.LM52:
 590 02e2 81E9      		ldi r24,lo8(-111)
 591 02e4 04C0      		rjmp .L20
 592               	.L15:
 209:cc1000.c      ****             }
 210:cc1000.c      ****           else {
 211:cc1000.c      ****               CC1000ControlM_gCurrentParameters[0x9] = (4 << 4) | (1 << 2);
 594               	.LM53:
 595 02e6 84E4      		ldi r24,lo8(68)
 596 02e8 8093 0000 		sts CC1000ControlM_gCurrentParameters+9,r24
 212:cc1000.c      ****               CC1000ControlM_gCurrentParameters[0x1d] = (8 << 4) | (1 << 0);
 598               	.LM54:
 599 02ec 81E8      		ldi r24,lo8(-127)
 600               	.L20:
 601 02ee 8093 0000 		sts CC1000ControlM_gCurrentParameters+29,r24
 213:cc1000.c      ****             }
 214:cc1000.c      ****           CC1000ControlM_gCurrentParameters[0xa] = 1 << 1;
 603               	.LM55:
 604 02f2 82E0      		ldi r24,lo8(2)
 605 02f4 8093 0000 		sts CC1000ControlM_gCurrentParameters+10,r24
 215:cc1000.c      ****           CC1000ControlM_gCurrentParameters[0x12] = 7 << 4;
 607               	.LM56:
 608 02f8 80E7      		ldi r24,lo8(112)
 609 02fa 0AC0      		rjmp .L21
 610               	.L14:
 216:cc1000.c      ****         }
 217:cc1000.c      ****       else {
 218:cc1000.c      ****           CC1000ControlM_gCurrentParameters[0x9] = (8 << 4) | (3 << 2);
 612               	.LM57:
 613 02fc 8CE8      		ldi r24,lo8(-116)
 614 02fe 8093 0000 		sts CC1000ControlM_gCurrentParameters+9,r24
 219:cc1000.c      ****           CC1000ControlM_gCurrentParameters[0x1d] = (15 << 4) | (3 << 0);
 616               	.LM58:
 617 0302 83EF      		ldi r24,lo8(-13)
 618 0304 8093 0000 		sts CC1000ControlM_gCurrentParameters+29,r24
 220:cc1000.c      ****           CC1000ControlM_gCurrentParameters[0xa] = ((1 << 5) | (2 << 3)) | (
 620               	.LM59:
 621 0308 82E3      		ldi r24,lo8(50)
 622 030a 8093 0000 		sts CC1000ControlM_gCurrentParameters+10,r24
 221:cc1000.c      ****           1 << 1);
 222:cc1000.c      ****           CC1000ControlM_gCurrentParameters[0x12] = 2 << 4;
 624               	.LM60:
 625 030e 80E2      		ldi r24,lo8(32)
 626               	.L21:
 627 0310 8093 0000 		sts CC1000ControlM_gCurrentParameters+18,r24
 223:cc1000.c      ****         }
 224:cc1000.c      ****       CC1000ControlM_gCurrentParameters[0xc] = RefDiv << 3;
 629               	.LM61:
 630 0314 2D89      		ldd r18,Y+21
 631 0316 220F      		lsl r18
 632 0318 220F      		lsl r18
 633 031a 220F      		lsl r18
 634 031c 2093 0000 		sts CC1000ControlM_gCurrentParameters+12,r18
 635               	.L13:
 225:cc1000.c      ****     }
 226:cc1000.c      ****   CC1000ControlM_gCurrentChannel = ActualChannel;
 637               	.LM62:
 638 0320 8D81      		ldd r24,Y+5
 639 0322 9E81      		ldd r25,Y+6
 640 0324 AF81      		ldd r26,Y+7
 641 0326 B885      		ldd r27,Y+8
 642 0328 8093 0000 		sts CC1000ControlM_gCurrentChannel,r24
 643 032c 9093 0000 		sts (CC1000ControlM_gCurrentChannel)+1,r25
 644 0330 A093 0000 		sts (CC1000ControlM_gCurrentChannel)+2,r26
 645 0334 B093 0000 		sts (CC1000ControlM_gCurrentChannel)+3,r27
 227:cc1000.c      ****   return ActualChannel;
 228:cc1000.c      **** }
 647               	.LM63:
 648 0338 BC01      		movw r22,r24
 649 033a CD01      		movw r24,r26
 650               	/* epilogue: frame size=30 */
 651 033c 6E96      		adiw r28,30
 652 033e 0FB6      		in __tmp_reg__,__SREG__
 653 0340 F894      		cli
 654 0342 DEBF      		out __SP_H__,r29
 655 0344 0FBE      		out __SREG__,__tmp_reg__
 656 0346 CDBF      		out __SP_L__,r28
 657 0348 DF91      		pop r29
 658 034a CF91      		pop r28
 659 034c 1F91      		pop r17
 660 034e 0F91      		pop r16
 661 0350 FF90      		pop r15
 662 0352 EF90      		pop r14
 663 0354 DF90      		pop r13
 664 0356 CF90      		pop r12
 665 0358 BF90      		pop r11
 666 035a AF90      		pop r10
 667 035c 9F90      		pop r9
 668 035e 8F90      		pop r8
 669 0360 7F90      		pop r7
 670 0362 6F90      		pop r6
 671 0364 5F90      		pop r5
 672 0366 4F90      		pop r4
 673 0368 3F90      		pop r3
 674 036a 2F90      		pop r2
 675 036c 0895      		ret
 676               	/* epilogue end (size=25) */
 677               	/* function CC1000ControlComputeFreq size 444 (393) */
 695               	.global	CC1000HPLInit
 697               	CC1000HPLInit:
 229:cc1000.c      **** 
 230:cc1000.c      **** uint32_t CC1000ControlTuneManual(uint32_t DesiredFreq)
 231:cc1000.c      **** {
 232:cc1000.c      **** 	uint32_t actualFreq;
 233:cc1000.c      **** 	
 234:cc1000.c      **** 	actualFreq = CC1000ControlComputeFreq(DesiredFreq);
 235:cc1000.c      **** 	
 236:cc1000.c      **** 	CC1000ControlCC1000SetFreq();
 237:cc1000.c      **** 	
 238:cc1000.c      **** 	return actualFreq;
 239:cc1000.c      **** }
 240:cc1000.c      **** 
 241:cc1000.c      **** void CC1000ControlCC1000SetModem(void)
 242:cc1000.c      **** {
 243:cc1000.c      **** 	CC1000HPLWrite(0x0F, CC1000ControlM_gCurrentParameters[0x0f]);
 244:cc1000.c      **** 	CC1000HPLWrite(0x10, CC1000ControlM_gCurrentParameters[0x10]);
 245:cc1000.c      **** 	CC1000HPLWrite(0x11, CC1000ControlM_gCurrentParameters[0x11]);
 246:cc1000.c      **** 	return;
 247:cc1000.c      **** }
 248:cc1000.c      **** 
 249:cc1000.c      **** result_t CC1000HPLInit(void)
 250:cc1000.c      **** {
 699               	.LM64:
 700               	/* prologue: frame size=0 */
 701               	/* prologue end (size=0) */
 251:cc1000.c      **** 	OSH_MAKE_CC_CHP_OUT_INPUT();
 703               	.LM65:
 704 036e 0E94 0000 		call OSH_MAKE_CC_CHP_OUT_INPUT
 252:cc1000.c      **** 	OSH_MAKE_CC_PALE_OUTPUT();
 706               	.LM66:
 707 0372 0E94 0000 		call OSH_MAKE_CC_PALE_OUTPUT
 253:cc1000.c      **** 	OSH_MAKE_CC_PCLK_OUTPUT();
 709               	.LM67:
 710 0376 0E94 0000 		call OSH_MAKE_CC_PCLK_OUTPUT
 254:cc1000.c      **** 	OSH_MAKE_CC_PDATA_OUTPUT();
 712               	.LM68:
 713 037a 0E94 0000 		call OSH_MAKE_CC_PDATA_OUTPUT
 255:cc1000.c      **** 	OSH_SET_CC_PALE_PIN();
 715               	.LM69:
 716 037e 0E94 0000 		call OSH_SET_CC_PALE_PIN
 256:cc1000.c      **** 	OSH_SET_CC_PDATA_PIN();
 718               	.LM70:
 719 0382 0E94 0000 		call OSH_SET_CC_PDATA_PIN
 257:cc1000.c      **** 	OSH_SET_CC_PCLK_PIN();
 721               	.LM71:
 722 0386 0E94 0000 		call OSH_SET_CC_PCLK_PIN
 258:cc1000.c      **** 	return SUCCESS;
 259:cc1000.c      **** }
 724               	.LM72:
 725 038a 81E0      		ldi r24,lo8(1)
 726 038c 90E0      		ldi r25,hi8(1)
 727               	/* epilogue: frame size=0 */
 728 038e 0895      		ret
 729               	/* epilogue end (size=1) */
 730               	/* function CC1000HPLInit size 17 (16) */
 735               	.global	CC1000HPLWrite
 737               	CC1000HPLWrite:
 260:cc1000.c      **** 
 261:cc1000.c      **** result_t CC1000ControlStdControlInit(void)
 262:cc1000.c      **** {
 263:cc1000.c      **** 	CC1000HPLInit();
 264:cc1000.c      **** 	CC1000HPLWrite(0x00, (((
 265:cc1000.c      **** 		1 << 5) | (1 << 4)) | (
 266:cc1000.c      **** 		1 << 3)) | (1 << 1));
 267:cc1000.c      **** 	CC1000HPLWrite(0x00, ((((
 268:cc1000.c      **** 		1 << 5) | (1 << 4)) | (
 269:cc1000.c      **** 		1 << 3)) | (1 << 1)) | (
 270:cc1000.c      **** 		1 << 0));
 271:cc1000.c      **** 	OSH_uwait(2000);
 272:cc1000.c      **** 	
 273:cc1000.c      **** 	//  CC1000ControlM_gCurrentParameters[0xb] = (8 << 4) | (0 << 0);
 274:cc1000.c      **** 	CC1000ControlM_gCurrentParameters[0xb] = 0xF0;
 275:cc1000.c      **** 	CC1000HPLWrite(0x0B, CC1000ControlM_gCurrentParameters[0xb]);
 276:cc1000.c      **** 	
 277:cc1000.c      **** 	CC1000ControlM_gCurrentParameters[0xd] = 9 << 4;
 278:cc1000.c      **** 	CC1000HPLWrite(4, CC1000ControlM_gCurrentParameters[0xd]);
 279:cc1000.c      **** 	
 280:cc1000.c      **** 	CC1000ControlM_gCurrentParameters[0xf] = 0;
 281:cc1000.c      **** 	
 282:cc1000.c      **** 	CC1000ControlM_gCurrentParameters[0x10] = (((3 << 5) | (1 << 3)) | (
 283:cc1000.c      **** 		3 << 1)) | (1 << 0);
 284:cc1000.c      **** 	
 285:cc1000.c      **** 	CC1000ControlM_gCurrentParameters[0x11] = ((5 << 4) | (1 << 2)) | (
 286:cc1000.c      **** 		1 << 0);
 287:cc1000.c      **** 	
 288:cc1000.c      **** 	CC1000ControlCC1000SetModem();
 289:cc1000.c      **** 	
 290:cc1000.c      **** 	CC1000ControlM_gCurrentParameters[0x13] = 1 << 0;
 291:cc1000.c      **** 	CC1000HPLWrite(0x13, CC1000ControlM_gCurrentParameters[0x13]);
 292:cc1000.c      **** 	
 293:cc1000.c      **** 	CC1000ControlM_gCurrentParameters[0x1e] = TRUE;
 294:cc1000.c      **** 	
 295:cc1000.c      **** 	CC1000ControlTuneManual(433300000);//914998000
 296:cc1000.c      **** 	
 297:cc1000.c      **** 	return SUCCESS;
 298:cc1000.c      **** }
 299:cc1000.c      **** 
 300:cc1000.c      **** 
 301:cc1000.c      **** result_t CC1000ControlBIASOn(void)
 302:cc1000.c      **** {
 303:cc1000.c      **** 	CC1000HPLWrite(0x00, (((
 304:cc1000.c      **** 		1 << 5) | (1 << 4)) | (
 305:cc1000.c      **** 		1 << 3)) | (
 306:cc1000.c      **** 		1 << 0));
 307:cc1000.c      **** 	
 308:cc1000.c      **** 	OSH_uwait(200);
 309:cc1000.c      **** 	return SUCCESS;
 310:cc1000.c      **** }
 311:cc1000.c      **** 
 312:cc1000.c      **** result_t CC1000ControlStdControlStart(void)
 313:cc1000.c      **** {
 314:cc1000.c      **** 	
 315:cc1000.c      **** 	CC1000HPLWrite(0x00, ((((
 316:cc1000.c      **** 		1 << 5) | (1 << 4)) | (
 317:cc1000.c      **** 		1 << 3)) | (1 << 1)) | (
 318:cc1000.c      **** 		1 << 0));
 319:cc1000.c      **** 	
 320:cc1000.c      **** 	OSH_uwait(2000);
 321:cc1000.c      **** 	return SUCCESS;
 322:cc1000.c      **** }
 323:cc1000.c      **** 
 324:cc1000.c      **** result_t CC1000ControlTxMode(void)
 325:cc1000.c      **** {
 326:cc1000.c      **** 	CC1000HPLWrite(0x00, (((
 327:cc1000.c      **** 		1 << 7) | (1 << 6)) | (1 << 5)) | (
 328:cc1000.c      **** 		1 << 0));
 329:cc1000.c      **** 	
 330:cc1000.c      **** 	CC1000HPLWrite(0x09, CC1000ControlM_gCurrentParameters[29]);
 331:cc1000.c      **** 	OSH_uwait(250);
 332:cc1000.c      **** 	CC1000HPLWrite(0x0B, CC1000ControlM_gCurrentParameters[0xb]);
 333:cc1000.c      **** 	OSH_uwait(20);
 334:cc1000.c      **** 	return SUCCESS;
 335:cc1000.c      **** }
 336:cc1000.c      **** 
 337:cc1000.c      **** result_t CC1000ControlRxMode(void)
 338:cc1000.c      **** {
 339:cc1000.c      **** 	CC1000HPLWrite(0x00, (
 340:cc1000.c      **** 		1 << 4) | (1 << 0));
 341:cc1000.c      **** 	
 342:cc1000.c      **** 	CC1000HPLWrite(0x09, CC1000ControlM_gCurrentParameters[0x09]);
 343:cc1000.c      **** 	CC1000HPLWrite(0x0B, 0x00);
 344:cc1000.c      **** 	OSH_uwait(250);
 345:cc1000.c      **** 	return SUCCESS;
 346:cc1000.c      **** }
 347:cc1000.c      **** 
 348:cc1000.c      **** result_t CC1000ControlStdControlStop(void)
 349:cc1000.c      **** {
 350:cc1000.c      **** 	CC1000HPLWrite(0x0B, 0x00);
 351:cc1000.c      **** 	CC1000HPLWrite(0x00, (((((
 352:cc1000.c      **** 		1 << 5) | (1 << 4)) | (
 353:cc1000.c      **** 		1 << 3)) | (1 << 2)) | (1 << 1)) | (
 354:cc1000.c      **** 		1 << 0));
 355:cc1000.c      **** 	
 356:cc1000.c      **** 	return SUCCESS;
 357:cc1000.c      **** }
 358:cc1000.c      **** 
 359:cc1000.c      **** result_t CC1000HPLWrite(uint8_t addr, uint8_t data)
 360:cc1000.c      **** {
 739               	.LM73:
 740               	/* prologue: frame size=0 */
 741 0390 0F93      		push r16
 742 0392 1F93      		push r17
 743 0394 CF93      		push r28
 744               	/* prologue end (size=3) */
 745 0396 062F      		mov r16,r22
 361:cc1000.c      **** 	char cnt = 0;
 362:cc1000.c      **** 	
 363:cc1000.c      **** 	addr <<= 1;
 747               	.LM74:
 748 0398 C82F      		mov r28,r24
 749 039a CC0F      		lsl r28
 364:cc1000.c      **** 	OSH_CLR_CC_PALE_PIN();
 751               	.LM75:
 752 039c 0E94 0000 		call OSH_CLR_CC_PALE_PIN

⌨️ 快捷键说明

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