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

📄 rf_blink_led.lst

📁 CC2420+pic,很好用的程序啊,适合初学者,绝对没有问题的,快来下载啊
💻 LST
📖 第 1 页 / 共 2 页
字号:
   1               		.file	"rf_blink_led.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	basicRfReceivePacket
  93               	basicRfReceivePacket:
   1:rf_blink_led.c **** /**************************************************************************************************
   2:rf_blink_led.c ****  *                                                                                                 
   3:rf_blink_led.c ****  *        **********                                                                               
   4:rf_blink_led.c ****  *       ************                                                                              
   5:rf_blink_led.c ****  *      ***        ***                                                                             
   6:rf_blink_led.c ****  *      ***   +++   ***                                                                            
   7:rf_blink_led.c ****  *      ***   + +   ***                                                                            
   8:rf_blink_led.c ****  *      ***   +                                   CHIPCON CC2420DBK EXAMPLES                       
   9:rf_blink_led.c ****  *      ***   + +   ***                  Simple wireless dimmer / RF range tester demo             
  10:rf_blink_led.c ****  *      ***   +++   ***                                                                            
  11:rf_blink_led.c ****  *      ***        ***                                                                             
  12:rf_blink_led.c ****  *       ************                                                                              
  13:rf_blink_led.c ****  *        **********                                                                               
  14:rf_blink_led.c ****  *                                                                                                 
  15:rf_blink_led.c ****  **************************************************************************************************
  16:rf_blink_led.c ****  * This program demonstrates the use of the CC2420DB library, including the basic RF library. The  
  17:rf_blink_led.c ****  * packet protocol being used is a small subset of the IEEE 802.15.4 standard. It uses an 802.15.4 
  18:rf_blink_led.c ****  * compatible frame format, but does not implement any other MAC functions/mechanisms (e.g. CSMA-CA
  19:rf_blink_led.c ****  * The basic RF library can thus not be used to communicate with compliant 802.15.4 networks.      
  20:rf_blink_led.c ****  *                                                                                                 
  21:rf_blink_led.c ****  * A pair of CC2420DBs running this program will establish a point-to-point RF link on channel 26, 
  22:rf_blink_led.c ****  * using the following node addresses:                                                             
  23:rf_blink_led.c ****  * - PAN ID: 0x2420 (both nodes)                                                                   
  24:rf_blink_led.c ****  * - Short address:                                                                                
  25:rf_blink_led.c ****  *		0x1234 if the joystick is moved in any direction at startup                                    
  26:rf_blink_led.c ****  *		0x5678 if the joystick button is pressed down at startup                                       
  27:rf_blink_led.c ****  *                                                                                                 
  28:rf_blink_led.c ****  * Please note that there is no so-called (PAN) coordinator.                                       
  29:rf_blink_led.c ****  *                                                                                                 
  30:rf_blink_led.c ****  * INSTRUCTIONS:                                                                                   
  31:rf_blink_led.c ****  * Data packets containing a 5-byte payload will be transmitted when the pot meter is turned, or S2
  32:rf_blink_led.c ****  * held down. The first byte of the payload contains the pot meter value, which is used to control 
  33:rf_blink_led.c ****  * PWM duty cycle on the receiving node. The other bytes are random (never initialized).           
  34:rf_blink_led.c ****  *                                                                                                 
  35:rf_blink_led.c ****  * LED indicators:                                                                                 
  36:rf_blink_led.c ****  *     - Red:    Transmission failed (acknowledgment not received)                                 
  37:rf_blink_led.c ****  *     - Yellow: Transmission OK (acknowledgment received)                                         
  38:rf_blink_led.c ****  *     - Orange: Remote controlled dimmer															   *
  39:rf_blink_led.c ****  *     - Green:  Packet received                                                                   
  40:rf_blink_led.c ****  **************************************************************************************************
  41:rf_blink_led.c ****  * Compiler: AVR-GCC                                                                               
  42:rf_blink_led.c ****  * Target platform: CC2420DB (can easily be ported to other platforms)                             
  43:rf_blink_led.c ****  **************************************************************************************************
  44:rf_blink_led.c ****  * Revision history:                                                                               
  45:rf_blink_led.c ****  * $Log: rf_blink_led.c,v $
  46:rf_blink_led.c ****  * Revision 1.5  2004/07/26 11:18:13  mbr
  47:rf_blink_led.c ****  * Changed PANID from 0xDEAD to 0x2420
  48:rf_blink_led.c ****  *
  49:rf_blink_led.c ****  * Revision 1.4  2004/04/05 08:25:52  mbr
  50:rf_blink_led.c ****  * Comments changed in header
  51:rf_blink_led.c ****  *
  52:rf_blink_led.c ****  * Revision 1.3  2004/03/30 14:58:27  mbr
  53:rf_blink_led.c ****  * Release for web
  54:rf_blink_led.c ****  *
  55:rf_blink_led.c ****  * 
  56:rf_blink_led.c ****  *
  57:rf_blink_led.c ****  *                                                                                                 
  58:rf_blink_led.c ****  *
  59:rf_blink_led.c ****  *
  60:rf_blink_led.c ****  **************************************************************************************************
  61:rf_blink_led.c **** #include <include.h>
  62:rf_blink_led.c **** 
  63:rf_blink_led.c **** 
  64:rf_blink_led.c **** //-------------------------------------------------------------------------------------------------
  65:rf_blink_led.c **** // Basic RF transmission and reception structures
  66:rf_blink_led.c **** BASIC_RF_RX_INFO rfRxInfo;
  67:rf_blink_led.c **** BASIC_RF_TX_INFO rfTxInfo;
  68:rf_blink_led.c **** BYTE pTxBuffer[BASIC_RF_MAX_PAYLOAD_SIZE];
  69:rf_blink_led.c **** BYTE pRxBuffer[BASIC_RF_MAX_PAYLOAD_SIZE];
  70:rf_blink_led.c **** //-------------------------------------------------------------------------------------------------
  71:rf_blink_led.c **** 
  72:rf_blink_led.c **** 
  73:rf_blink_led.c **** 
  74:rf_blink_led.c **** 
  75:rf_blink_led.c **** //-------------------------------------------------------------------------------------------------
  76:rf_blink_led.c **** //  BASIC_RF_RX_INFO* basicRfReceivePacket(BASIC_RF_RX_INFO *pRRI)
  77:rf_blink_led.c **** //
  78:rf_blink_led.c **** //  DESCRIPTION:
  79:rf_blink_led.c **** //      This function is a part of the basic RF library, but must be declared by the application. O
  80:rf_blink_led.c **** //		the application has turned on the receiver, using basicRfReceiveOn(), all incoming packets will
  81:rf_blink_led.c **** //		be received by the FIFOP interrupt service routine. When finished, the ISR will call the
  82:rf_blink_led.c **** //		basicRfReceivePacket() function. Please note that this function must return quickly, since the
  83:rf_blink_led.c **** //		next received packet will overwrite the active BASIC_RF_RX_INFO structure (pointed to by pRRI).
  84:rf_blink_led.c **** //
  85:rf_blink_led.c **** //  ARGUMENTS:
  86:rf_blink_led.c **** //		BASIC_RF_RX_INFO *pRRI
  87:rf_blink_led.c **** //	      	The reception structure, which contains all relevant info about the received packet.
  88:rf_blink_led.c **** //
  89:rf_blink_led.c **** //  RETURN VALUE:
  90:rf_blink_led.c **** //     BASIC_RF_RX_INFO*
  91:rf_blink_led.c **** //			The pointer to the next BASIC_RF_RX_INFO structure to be used by the FIFOP ISR. If there is
  92:rf_blink_led.c **** //			only one buffer, then return pRRI.
  93:rf_blink_led.c **** //-------------------------------------------------------------------------------------------------
  94:rf_blink_led.c **** BASIC_RF_RX_INFO* basicRfReceivePacket(BASIC_RF_RX_INFO *pRRI) {
  95               	.LM1:
  96               	/* prologue: frame size=0 */
  97 0000 0F93      		push r16
  98 0002 1F93      		push r17
  99 0004 CF93      		push r28
 100 0006 DF93      		push r29
 101               	/* prologue end (size=4) */
 102 0008 8C01      		movw r16,r24
  95:rf_blink_led.c **** 
  96:rf_blink_led.c ****     // Adjust the led brightness
  97:rf_blink_led.c ****     PWM0_SET_DUTY_CYCLE(pRRI->pPayload[0]);
 104               	.LM2:
 105 000a EC01      		movw r28,r24
 106 000c EE81      		ldd r30,Y+6
 107 000e FF81      		ldd r31,Y+7
 108 0010 8081      		ld r24,Z
 109 0012 81BF      		out 81-0x20,r24
  98:rf_blink_led.c **** 
  99:rf_blink_led.c ****     // Blink the green LED
 100:rf_blink_led.c ****     SET_GLED();
 111               	.LM3:
 112 0014 C79A      		sbi 56-0x20,7
 101:rf_blink_led.c ****     halWait(10000);
 114               	.LM4:
 115 0016 80E1      		ldi r24,lo8(10000)
 116 0018 97E2      		ldi r25,hi8(10000)
 117 001a 0E94 0000 		call halWait
 102:rf_blink_led.c ****     CLR_GLED();
 119               	.LM5:
 120 001e C798      		cbi 56-0x20,7
 103:rf_blink_led.c **** 
 104:rf_blink_led.c ****     // Continue using the (one and only) reception structure
 105:rf_blink_led.c ****     return pRRI;
 106:rf_blink_led.c **** 
 107:rf_blink_led.c **** } // basicRfReceivePacket
 122               	.LM6:
 123 0020 C801      		movw r24,r16
 124               	/* epilogue: frame size=0 */
 125 0022 DF91      		pop r29
 126 0024 CF91      		pop r28
 127 0026 1F91      		pop r17
 128 0028 0F91      		pop r16
 129 002a 0895      		ret
 130               	/* epilogue end (size=5) */
 131               	/* function basicRfReceivePacket size 22 (13) */
 133               	.Lscope0:
 136               	.global	main
 138               	main:
 108:rf_blink_led.c **** 
 109:rf_blink_led.c **** 
 110:rf_blink_led.c **** 
 111:rf_blink_led.c **** 
 112:rf_blink_led.c **** //-------------------------------------------------------------------------------------------------
 113:rf_blink_led.c **** //	void main (void)
 114:rf_blink_led.c **** //
 115:rf_blink_led.c **** //	DESCRIPTION:
 116:rf_blink_led.c **** //		Startup routine and main loop
 117:rf_blink_led.c **** //-------------------------------------------------------------------------------------------------
 118:rf_blink_led.c **** void main (void) {
 140               	.LM7:
 141               	/* prologue: frame size=0 */
 142 002c C0E0      		ldi r28,lo8(__stack - 0)
 143 002e D0E0      		ldi r29,hi8(__stack - 0)
 144 0030 DEBF      		out __SP_H__,r29
 145 0032 CDBF      		out __SP_L__,r28
 146               	/* prologue end (size=4) */
 119:rf_blink_led.c ****     UINT16 ledDutyCycle, dimmerDifference;
 120:rf_blink_led.c ****     UINT8 n;
 121:rf_blink_led.c **** 
 122:rf_blink_led.c ****     // Initalize ports for communication with CC2420 and other peripheral units
 123:rf_blink_led.c ****     PORT_INIT();
 148               	.LM8:
 149 0034 80B5      		in r24,64-0x20
 150 0036 8460      		ori r24,lo8(4)
 151 0038 80BD      		out 64-0x20,r24
 152 003a 87EF      		ldi r24,lo8(-9)
 153 003c 87BB      		out 55-0x20,r24
 154 003e 87E4      		ldi r24,lo8(71)
 155 0040 88BB      		out 56-0x20,r24
 156 0042 80E2      		ldi r24,lo8(32)
 157 0044 81BB      		out 49-0x20,r24
 158 0046 80EA      		ldi r24,lo8(-96)
 159 0048 82BB      		out 50-0x20,r24
 160 004a 88E1      		ldi r24,lo8(24)
 161 004c 82B9      		out 34-0x20,r24
 162 004e 13B8      		out 35-0x20,__zero_reg__
 124:rf_blink_led.c ****     SPI_INIT();
 164               	.LM9:
 165 0050 80E5      		ldi r24,lo8(80)
 166 0052 8DB9      		out 45-0x20,r24
 167 0054 81E0      		ldi r24,lo8(1)
 168 0056 8EB9      		out 46-0x20,r24
 125:rf_blink_led.c **** 
 126:rf_blink_led.c ****     // Initialize PWM0 with a period of CLK/1024
 127:rf_blink_led.c ****     PWM0_INIT(TIMER_CLK_DIV1024);
 170               	.LM10:
 171 0058 11BE      		out 81-0x20,__zero_reg__
 172 005a 80E7      		ldi r24,lo8(112)
 173 005c 83BF      		out 83-0x20,r24
 174 005e 83B7      		in r24,83-0x20
 175 0060 887F      		andi r24,lo8(-8)
 176 0062 8560      		ori r24,lo8(5)
 177 0064 83BF      		out 83-0x20,r24
 128:rf_blink_led.c **** 
 129:rf_blink_led.c ****     // Initialize and enable the ADC for reading the pot meter
 130:rf_blink_led.c ****     ADC_INIT();
 179               	.LM11:
 180 0066 83E2      		ldi r24,lo8(35)
 181 0068 86B9      		out 38-0x20,r24
 182 006a 80E4      		ldi r24,lo8(64)
 183 006c 87B9      		out 39-0x20,r24
 131:rf_blink_led.c ****     ADC_SET_CHANNEL(ADC_INPUT_0_POT_METER);
 185               	.LM12:
 186 006e 87B1      		in r24,39-0x20
 187 0070 807E      		andi r24,lo8(-32)
 188 0072 87B9      		out 39-0x20,r24

⌨️ 快捷键说明

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