📄 cc1000.lst
字号:
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 + -