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

📄 cc1000.lst

📁 adhoc信息节点程序源代码(点对多点)——for atmega128
💻 LST
📖 第 1 页 / 共 5 页
字号:
 247 00bc 1701      		movw r2,r14
 248 00be 2801      		movw r4,r16
 152:cc1000.c      ****       uint32_t TXCalc = 0;
 153:cc1000.c      ****       int32_t diff;
 154:cc1000.c      **** 
 155:cc1000.c      ****       NRef = ((desiredFreq + CC1000ControlM_IF) << 2) / FRef;
 250               	.LM16:
 251 00c0 72E0      		ldi r23,2
 252 00c2 220F      	1:	lsl r18
 253 00c4 331F      		rol r19
 254 00c6 441F      		rol r20
 255 00c8 551F      		rol r21
 256 00ca 7A95      		dec r23
 257 00cc D1F7      		brne 1b
 258 00ce CA01      		movw r24,r20
 259 00d0 B901      		movw r22,r18
 260 00d2 A601      		movw r20,r12
 261 00d4 9501      		movw r18,r10
 262 00d6 0E94 0000 		call __udivmodsi4
 156:cc1000.c      ****       if (NRef & 0x1) {
 264               	.LM17:
 265 00da DA01      		movw r26,r20
 266 00dc C901      		movw r24,r18
 267 00de 8170      		andi r24,lo8(1)
 268 00e0 9070      		andi r25,hi8(1)
 269 00e2 A070      		andi r26,hlo8(1)
 270 00e4 B070      		andi r27,hhi8(1)
 271 00e6 892B      		or r24,r25
 272 00e8 21F0      		breq .L6
 157:cc1000.c      ****           NRef++;
 274               	.LM18:
 275 00ea 2F5F      		subi r18,lo8(-(1))
 276 00ec 3F4F      		sbci r19,hi8(-(1))
 277 00ee 4F4F      		sbci r20,hlo8(-(1))
 278 00f0 5F4F      		sbci r21,hhi8(-(1))
 279               	.L6:
 158:cc1000.c      ****         }
 159:cc1000.c      **** 
 160:cc1000.c      ****       if (NRef & 0x2) {
 281               	.LM19:
 282 00f2 DA01      		movw r26,r20
 283 00f4 C901      		movw r24,r18
 284 00f6 B695      		lsr r27
 285 00f8 A795      		ror r26
 286 00fa 9795      		ror r25
 287 00fc 8795      		ror r24
 288 00fe 8170      		andi r24,lo8(1)
 289 0100 9070      		andi r25,hi8(1)
 290 0102 892B      		or r24,r25
 291 0104 59F0      		breq .L7
 161:cc1000.c      ****           RXCalc = 16384 >> 1;
 293               	.LM20:
 294 0106 212C      		mov r2,__zero_reg__
 295 0108 F0E2      		ldi r31,hi8(8192)
 296 010a 3F2E      		mov r3,r31
 297 010c 412C      		mov r4,__zero_reg__
 298 010e 512C      		mov r5,__zero_reg__
 162:cc1000.c      ****           Channel = FRef >> 1;
 300               	.LM21:
 301 0110 8601      		movw r16,r12
 302 0112 7501      		movw r14,r10
 303 0114 1695      		lsr r17
 304 0116 0795      		ror r16
 305 0118 F794      		ror r15
 306 011a E794      		ror r14
 307               	.L7:
 163:cc1000.c      ****         }
 164:cc1000.c      **** 
 165:cc1000.c      ****       NRef >>= 2;
 309               	.LM22:
 310 011c 72E0      		ldi r23,2
 311 011e 5695      	1:	lsr r21
 312 0120 4795      		ror r20
 313 0122 3795      		ror r19
 314 0124 2795      		ror r18
 315 0126 7A95      		dec r23
 316 0128 D1F7      		brne 1b
 166:cc1000.c      **** 
 167:cc1000.c      ****       RXCalc += NRef * 16384 - 8192;
 318               	.LM23:
 319 012a DA01      		movw r26,r20
 320 012c C901      		movw r24,r18
 321 012e 6EE0      		ldi r22,14
 322 0130 880F      	1:	lsl r24
 323 0132 991F      		rol r25
 324 0134 AA1F      		rol r26
 325 0136 BB1F      		rol r27
 326 0138 6A95      		dec r22
 327 013a D1F7      		brne 1b
 328 013c 820D      		add r24,r2
 329 013e 931D      		adc r25,r3
 330 0140 A41D      		adc r26,r4
 331 0142 B51D      		adc r27,r5
 332 0144 212C      		mov r2,__zero_reg__
 333 0146 F0EE      		ldi r31,hi8(-8192)
 334 0148 3F2E      		mov r3,r31
 335 014a FFEF      		ldi r31,hlo8(-8192)
 336 014c 4F2E      		mov r4,r31
 337 014e FFEF      		ldi r31,hhi8(-8192)
 338 0150 5F2E      		mov r5,r31
 339 0152 280E      		add r2,r24
 340 0154 391E      		adc r3,r25
 341 0156 4A1E      		adc r4,r26
 342 0158 5B1E      		adc r5,r27
 168:cc1000.c      ****       if (RXCalc < CC1000ControlM_FREQ_MIN || RXCalc > CC1000ControlM_FREQ_MAX) {
 344               	.LM24:
 345 015a 8050      		subi r24,lo8(-(-4202496))
 346 015c 9042      		sbci r25,hi8(-(-4202496))
 347 015e A044      		sbci r26,hlo8(-(-4202496))
 348 0160 B040      		sbci r27,hhi8(-(-4202496))
 349 0162 8050      		subi r24,lo8(12557312)
 350 0164 9C49      		sbci r25,hi8(12557312)
 351 0166 AF4B      		sbci r26,hlo8(12557312)
 352 0168 B040      		sbci r27,hhi8(12557312)
 353 016a 08F0      		brlo .+2
 354 016c 64C0      		rjmp .L5
 169:cc1000.c      ****         continue;
 170:cc1000.c      ****         }
 171:cc1000.c      ****       TXCalc = RXCalc - CC1000ControlM_CorTbl[i];
 356               	.LM25:
 357 016e A98D      		ldd r26,Y+25
 358 0170 BA8D      		ldd r27,Y+26
 359 0172 8D91      		ld r24,X+
 360 0174 9C91      		ld r25,X
 361 0176 AA27      		clr r26
 362 0178 BB27      		clr r27
 363 017a 4201      		movw r8,r4
 364 017c 3101      		movw r6,r2
 365 017e 681A      		sub r6,r24
 366 0180 790A      		sbc r7,r25
 367 0182 8A0A      		sbc r8,r26
 368 0184 9B0A      		sbc r9,r27
 172:cc1000.c      ****       if (TXCalc < CC1000ControlM_FREQ_MIN || TXCalc > CC1000ControlM_FREQ_MAX) {
 370               	.LM26:
 371 0186 D401      		movw r26,r8
 372 0188 C301      		movw r24,r6
 373 018a 8050      		subi r24,lo8(-(-4194304))
 374 018c 9040      		sbci r25,hi8(-(-4194304))
 375 018e A044      		sbci r26,hlo8(-(-4194304))
 376 0190 B040      		sbci r27,hhi8(-(-4194304))
 377 0192 8050      		subi r24,lo8(12557312)
 378 0194 9C49      		sbci r25,hi8(12557312)
 379 0196 AF4B      		sbci r26,hlo8(12557312)
 380 0198 B040      		sbci r27,hhi8(12557312)
 381 019a 08F0      		brlo .+2
 382 019c 4CC0      		rjmp .L5
 173:cc1000.c      ****         continue;
 174:cc1000.c      ****         }
 175:cc1000.c      ****       Channel += NRef * FRef;
 384               	.LM27:
 385 019e CA01      		movw r24,r20
 386 01a0 B901      		movw r22,r18
 387 01a2 A601      		movw r20,r12
 388 01a4 9501      		movw r18,r10
 389 01a6 0E94 0000 		call __mulsi3
 390 01aa DC01      		movw r26,r24
 391 01ac CB01      		movw r24,r22
 392 01ae E80E      		add r14,r24
 393 01b0 F91E      		adc r15,r25
 394 01b2 0A1F      		adc r16,r26
 395 01b4 1B1F      		adc r17,r27
 176:cc1000.c      ****       Channel -= CC1000ControlM_IF;
 397               	.LM28:
 398 01b6 20E1      		ldi r18,lo8(-150000)
 399 01b8 36EB      		ldi r19,hi8(-150000)
 400 01ba 4DEF      		ldi r20,hlo8(-150000)
 401 01bc 5FEF      		ldi r21,hhi8(-150000)
 402 01be E20E      		add r14,r18
 403 01c0 F31E      		adc r15,r19
 404 01c2 041F      		adc r16,r20
 405 01c4 151F      		adc r17,r21
 177:cc1000.c      **** 
 178:cc1000.c      ****       diff = Channel - desiredFreq;
 407               	.LM29:
 408 01c6 D801      		movw r26,r16
 409 01c8 C701      		movw r24,r14
 410 01ca 2981      		ldd r18,Y+1
 411 01cc 3A81      		ldd r19,Y+2
 412 01ce 4B81      		ldd r20,Y+3
 413 01d0 5C81      		ldd r21,Y+4
 414 01d2 821B      		sub r24,r18
 415 01d4 930B      		sbc r25,r19
 416 01d6 A40B      		sbc r26,r20
 417 01d8 B50B      		sbc r27,r21
 179:cc1000.c      ****       if (diff < 0) {
 419               	.LM30:
 420 01da B7FF      		sbrs r27,7
 421 01dc 07C0      		rjmp .L10
 180:cc1000.c      ****         diff = 0 - diff;
 423               	.LM31:
 424 01de B095      		com r27
 425 01e0 A095      		com r26
 426 01e2 9095      		com r25
 427 01e4 8195      		neg r24
 428 01e6 9F4F      		sbci r25,lo8(-1)
 429 01e8 AF4F      		sbci r26,lo8(-1)
 430 01ea BF4F      		sbci r27,lo8(-1)
 431               	.L10:
 181:cc1000.c      ****         }
 182:cc1000.c      ****       if (diff < Offset) {
 433               	.LM32:
 434 01ec 2989      		ldd r18,Y+17
 435 01ee 3A89      		ldd r19,Y+18
 436 01f0 4B89      		ldd r20,Y+19
 437 01f2 5C89      		ldd r21,Y+20
 438 01f4 8217      		cp r24,r18
 439 01f6 9307      		cpc r25,r19
 440 01f8 A407      		cpc r26,r20
 441 01fa B507      		cpc r27,r21
 442 01fc E4F4      		brge .L5
 183:cc1000.c      ****           RXFreq = RXCalc;
 444               	.LM33:
 445 01fe 2986      		std Y+9,r2
 446 0200 3A86      		std Y+10,r3
 447 0202 4B86      		std Y+11,r4
 448 0204 5C86      		std Y+12,r5
 184:cc1000.c      ****           TXFreq = TXCalc;
 450               	.LM34:
 451 0206 6D86      		std Y+13,r6
 452 0208 7E86      		std Y+14,r7
 453 020a 8F86      		std Y+15,r8
 454 020c 988A      		std Y+16,r9
 185:cc1000.c      ****           ActualChannel = Channel;
 456               	.LM35:
 457 020e ED82      		std Y+5,r14
 458 0210 FE82      		std Y+6,r15
 459 0212 0F83      		std Y+7,r16
 460 0214 1887      		std Y+8,r17
 186:cc1000.c      ****           FSep = CC1000ControlM_FSepTbl[i];
 462               	.LM36:
 463 0216 2B8D      		ldd r18,Y+27
 464 0218 3C8D      		ldd r19,Y+28
 465 021a 2050      		subi r18,lo8(-(CC1000ControlM_FSepTbl))
 466 021c 3040      		sbci r19,hi8(-(CC1000ControlM_FSepTbl))
 467 021e F901      		movw r30,r18
 468 0220 2081      		ld r18,Z
 469 0222 3181      		ldd r19,Z+1
 470 0224 2D8F      		std Y+29,r18
 471 0226 3E8F      		std Y+30,r19
 187:cc1000.c      ****           RefDiv = i + 6;
 473               	.LM37:
 474 0228 FE89      		ldd r31,Y+22
 475 022a FA5F      		subi r31,lo8(-(6))
 476 022c FD8B      		std Y+21,r31
 188:cc1000.c      ****           Offset = diff;
 478               	.LM38:
 479 022e 898B      		std Y+17,r24
 480 0230 9A8B      		std Y+18,r25
 481 0232 AB8B      		std Y+19,r26
 482 0234 BC8B      		std Y+20,r27
 483               	.L5:
 484               	.LBE2:
 486               	.LM39:
 487 0236 2E89      		ldd r18,Y+22
 488 0238 2F5F      		subi r18,lo8(-(1))
 489 023a 2E8B      		std Y+22,r18
 490 023c 4B8D      		ldd r20,Y+27
 491 023e 5C8D      		ldd r21,Y+28
 492 0240 4E5F      		subi r20,lo8(-(2))
 493 0242 5F4F      		sbci r21,hi8(-(2))
 494 0244 4B8F      		std Y+27,r20
 495 0246 5C8F      		std Y+28,r21
 496 0248 898D      		ldd r24,Y+25
 497 024a 9A8D      		ldd r25,Y+26
 498 024c 0296      		adiw r24,2
 499 024e 898F      		std Y+25,r24
 500 0250 9A8F      		std Y+26,r25
 501 0252 2930      		cpi r18,lo8(9)
 502 0254 08F4      		brsh .+2
 503 0256 1FCF      		rjmp .L12
 189:cc1000.c      ****         }
 190:cc1000.c      ****     }
 191:cc1000.c      **** 
 192:cc1000.c      ****   if (RefDiv != 0) {
 505               	.LM40:
 506 0258 9D89      		ldd r25,Y+21
 507 025a 9923      		tst r25
 508 025c 09F4      		brne .+2
 509 025e 60C0      		rjmp .L13
 193:cc1000.c      **** 
 194:cc1000.c      ****       CC1000ControlM_gCurrentParameters[0x3] = (uint8_t )(RXFreq & 0xFF);
 511               	.LM41:
 512 0260 A985      		ldd r26,Y+9
 513 0262 A093 0000 		sts CC1000ControlM_gCurrentParameters+3,r26
 195:cc1000.c      ****       CC1000ControlM_gCurrentParameters[0x2] = (uint8_t )((RXFreq >> 8) & 0xFF);
 515               	.LM42:
 516 0266 2985      		ldd r18,Y+9
 517 0268 3A85      		ldd r19,Y+10
 518 026a 4B85      		ldd r20,Y+11
 519 026c 5C85      		ldd r21,Y+12
 520 026e BB27      		clr r27
 521 0270 A52F      		mov r26,r21
 522 0272 942F      		mov r25,r20
 523 0274 832F      		mov r24,r19
 524 0276 8093 0000 		sts CC1000ControlM_gCurrentParameters+2,r24
 196:cc1000.c      ****       CC1000ControlM_gCurrentParameters[0x1] = (uint8_t )((RXFreq >> 16) & 0xFF);
 526               	.LM43:
 527 027a CA01      		movw r24,r20
 528 027c AA27      		clr r26
 529 027e BB27      		clr r27
 530 0280 8093 0000 		sts CC1000ControlM_gCurrentParameters+1,r24
 197:cc1000.c      **** 
 198:cc1000.c      ****       CC1000ControlM_gCurrentParameters[0x6] = (uint8_t )(TXFreq & 0xFF);
 532               	.LM44:
 533 0284 3D85      		ldd r19,Y+13
 534 0286 3093 0000 		sts CC1000ControlM_gCurrentParameters+6,r19
 199:cc1000.c      ****       CC1000ControlM_gCurrentParameters[0x5] = (uint8_t )((TXFreq >> 8) & 0xFF);
 536               	.LM45:
 537 028a 2D85      		ldd r18,Y+13
 538 028c 3E85      		ldd r19,Y+14
 539 028e 4F85      		ldd r20,Y+15
 540 0290 5889      		ldd r21,Y+16
 541 0292 BB27      		clr r27
 542 0294 A52F      		mov r26,r21
 543 0296 942F      		mov r25,r20
 544 0298 832F      		mov r24,r19
 545 029a 8093 0000 		sts CC1000ControlM_gCurrentParameters+5,r24
 200:cc1000.c      ****       CC1000ControlM_gCurrentParameters[0x4] = (uint8_t )((TXFreq >> 16) & 0xFF);

⌨️ 快捷键说明

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