📄 hal_rf_set_channel.lst
字号:
1 .file "hal_rf_set_channel.c"
2 .arch atmega128
3 __SREG__ = 0x3f
4 __SP_H__ = 0x3e
5 __SP_L__ = 0x3d
6 __tmp_reg__ = 0
7 __zero_reg__ = 1
8 .global __do_copy_data
9 .global __do_clear_bss
12 .text
13 .Ltext0:
91 .global halRfSetChannel
93 halRfSetChannel:
1:../../../lib/hal/hal_rf_set_channel.c **** /**************************************************************************************************
2:../../../lib/hal/hal_rf_set_channel.c **** *
3:../../../lib/hal/hal_rf_set_channel.c **** * **********
4:../../../lib/hal/hal_rf_set_channel.c **** * ************
5:../../../lib/hal/hal_rf_set_channel.c **** * *** ***
6:../../../lib/hal/hal_rf_set_channel.c **** * *** +++ ***
7:../../../lib/hal/hal_rf_set_channel.c **** * *** + + ***
8:../../../lib/hal/hal_rf_set_channel.c **** * *** + CHIPCON HARDWARE ABSTRACTION LIBRARY FOR THE CC2420
9:../../../lib/hal/hal_rf_set_channel.c **** * *** + + *** CC2420 channel selection
10:../../../lib/hal/hal_rf_set_channel.c **** * *** +++ ***
11:../../../lib/hal/hal_rf_set_channel.c **** * *** ***
12:../../../lib/hal/hal_rf_set_channel.c **** * ************
13:../../../lib/hal/hal_rf_set_channel.c **** * **********
14:../../../lib/hal/hal_rf_set_channel.c **** *
15:../../../lib/hal/hal_rf_set_channel.c **** **************************************************************************************************
16:../../../lib/hal/hal_rf_set_channel.c **** * The Chipcon Hardware Abstraction Library is a collection of functions, macros and constants, whi
17:../../../lib/hal/hal_rf_set_channel.c **** * can be used to ease access to the hardware on the CC2420 and the target microcontroller.
18:../../../lib/hal/hal_rf_set_channel.c **** *
19:../../../lib/hal/hal_rf_set_channel.c **** * This file contains a function that allows you to switch radio channels on the CC2420.
20:../../../lib/hal/hal_rf_set_channel.c **** *
21:../../../lib/hal/hal_rf_set_channel.c **** * EXAMPLE OF USAGE:
22:../../../lib/hal/hal_rf_set_channel.c **** * // Turn off RX...
23:../../../lib/hal/hal_rf_set_channel.c **** * DISABLE_GLOBAL_INT();
24:../../../lib/hal/hal_rf_set_channel.c **** * FASTSPI_STROBE(CC2420_SRFOFF);
25:../../../lib/hal/hal_rf_set_channel.c **** * ENABLE_GLOBAL_INT();
26:../../../lib/hal/hal_rf_set_channel.c **** *
27:../../../lib/hal/hal_rf_set_channel.c **** * // ... switch to the next channel in the loop ...
28:../../../lib/hal/hal_rf_set_channel.c **** * halRfSetChannel(channel++);
29:../../../lib/hal/hal_rf_set_channel.c **** * if (channel == 27) channel = 11;
30:../../../lib/hal/hal_rf_set_channel.c **** *
31:../../../lib/hal/hal_rf_set_channel.c **** * // ... and go back into RX
32:../../../lib/hal/hal_rf_set_channel.c **** * DISABLE_GLOBAL_INT();
33:../../../lib/hal/hal_rf_set_channel.c **** * FASTSPI_STROBE(CC2420_SRXON);
34:../../../lib/hal/hal_rf_set_channel.c **** * ENABLE_GLOBAL_INT();
35:../../../lib/hal/hal_rf_set_channel.c **** **************************************************************************************************
36:../../../lib/hal/hal_rf_set_channel.c **** * Compiler: AVR-GCC
37:../../../lib/hal/hal_rf_set_channel.c **** * Target platform: CC2420DB, CC2420 + any MCU with very few modifications required
38:../../../lib/hal/hal_rf_set_channel.c **** **************************************************************************************************
39:../../../lib/hal/hal_rf_set_channel.c **** * Revision history:
40:../../../lib/hal/hal_rf_set_channel.c **** * $Log: hal_rf_set_channel.c,v $
41:../../../lib/hal/hal_rf_set_channel.c **** * Revision 1.3 2004/03/30 14:59:35 mbr
42:../../../lib/hal/hal_rf_set_channel.c **** * Release for web
43:../../../lib/hal/hal_rf_set_channel.c **** *
44:../../../lib/hal/hal_rf_set_channel.c **** *
45:../../../lib/hal/hal_rf_set_channel.c **** *
46:../../../lib/hal/hal_rf_set_channel.c **** *
47:../../../lib/hal/hal_rf_set_channel.c **** **************************************************************************************************
48:../../../lib/hal/hal_rf_set_channel.c **** #include <include.h>
49:../../../lib/hal/hal_rf_set_channel.c ****
50:../../../lib/hal/hal_rf_set_channel.c ****
51:../../../lib/hal/hal_rf_set_channel.c ****
52:../../../lib/hal/hal_rf_set_channel.c ****
53:../../../lib/hal/hal_rf_set_channel.c **** //-------------------------------------------------------------------------------------------------
54:../../../lib/hal/hal_rf_set_channel.c **** // void halRfSetChannel(UINT8 Channel)
55:../../../lib/hal/hal_rf_set_channel.c **** //
56:../../../lib/hal/hal_rf_set_channel.c **** // DESCRIPTION:
57:../../../lib/hal/hal_rf_set_channel.c **** // Programs CC2420 for a given IEEE 802.15.4 channel.
58:../../../lib/hal/hal_rf_set_channel.c **** // Note that SRXON, STXON or STXONCCA must be run for the new channel selection to take full effec
59:../../../lib/hal/hal_rf_set_channel.c **** //
60:../../../lib/hal/hal_rf_set_channel.c **** // PARAMETERS:
61:../../../lib/hal/hal_rf_set_channel.c **** // UINT8 channel
62:../../../lib/hal/hal_rf_set_channel.c **** // The channel number (11-26)
63:../../../lib/hal/hal_rf_set_channel.c **** //-------------------------------------------------------------------------------------------------
64:../../../lib/hal/hal_rf_set_channel.c **** void halRfSetChannel(UINT8 channel) {
95 .LM1:
96 /* prologue: frame size=0 */
97 /* prologue end (size=0) */
65:../../../lib/hal/hal_rf_set_channel.c **** UINT16 f;
66:../../../lib/hal/hal_rf_set_channel.c ****
67:../../../lib/hal/hal_rf_set_channel.c **** // Derive frequency programming from the given channel number
68:../../../lib/hal/hal_rf_set_channel.c **** f = (UINT16) (channel - 11); // Subtract the base channel
99 .LM2:
100 0000 282F mov r18,r24
101 0002 3327 clr r19
102 0004 2B50 subi r18,lo8(-(-11))
103 0006 3040 sbci r19,hi8(-(-11))
69:../../../lib/hal/hal_rf_set_channel.c **** f = f + (f << 2); // Multiply with 5, which is the channel spacing
105 .LM3:
106 0008 C901 movw r24,r18
107 000a 880F lsl r24
108 000c 991F rol r25
109 000e 880F lsl r24
110 0010 991F rol r25
111 0012 280F add r18,r24
112 0014 391F adc r19,r25
70:../../../lib/hal/hal_rf_set_channel.c **** f = f + 357 + 0x4000; // 357 is 2405-2048, 0x4000 is LOCK_THR = 1
114 .LM4:
115 0016 2B59 subi r18,lo8(-(16741))
116 0018 3E4B sbci r19,hi8(-(16741))
71:../../../lib/hal/hal_rf_set_channel.c ****
72:../../../lib/hal/hal_rf_set_channel.c **** // Write it to the CC2420
73:../../../lib/hal/hal_rf_set_channel.c **** DISABLE_GLOBAL_INT();
118 .LM5:
119 /* #APP */
120 001a F894 cli
121
74:../../../lib/hal/hal_rf_set_channel.c **** FASTSPI_SETREG(CC2420_FSCTRL, f);
123 .LM6:
124 /* #NOAPP */
125 001c C098 cbi 56-0x20,0
126 001e 88E1 ldi r24,lo8(24)
127 0020 8FB9 out 47-0x20,r24
128 .L6:
130 .LM7:
131 0022 779B sbis 46-0x20,7
132 0024 FECF rjmp .L6
133 0026 832F mov r24,r19
134 0028 9927 clr r25
135 002a 8FB9 out 47-0x20,r24
136 .L11:
137 002c 779B sbis 46-0x20,7
138 002e FECF rjmp .L11
139 0030 2FB9 out 47-0x20,r18
140 .L16:
141 0032 779B sbis 46-0x20,7
142 0034 FECF rjmp .L16
143 0036 C09A sbi 56-0x20,0
75:../../../lib/hal/hal_rf_set_channel.c **** ENABLE_GLOBAL_INT();
145 .LM8:
146 /* #APP */
147 0038 7894 sei
148
149 /* #NOAPP */
150 /* epilogue: frame size=0 */
151 003a 0895 ret
152 /* epilogue end (size=1) */
153 /* function halRfSetChannel size 36 (35) */
156 .Lscope0:
158 .text
160 Letext:
161 /* File "../../../lib/hal/hal_rf_set_channel.c": code 36 = 0x0024 ( 35), prologues 0, epilogue
DEFINED SYMBOLS
*ABS*:00000000 hal_rf_set_channel.c
*ABS*:0000003f __SREG__
*ABS*:0000003e __SP_H__
*ABS*:0000003d __SP_L__
*ABS*:00000000 __tmp_reg__
*ABS*:00000001 __zero_reg__
C:\DOCUME~1\zx\LOCALS~1\Temp/cciyaaaa.s:93 .text:00000000 halRfSetChannel
C:\DOCUME~1\zx\LOCALS~1\Temp/cciyaaaa.s:160 .text:0000003c Letext
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -