📄 test_pc10_main.lis
字号:
0466 .dbline 382
0466 ; TCCR3A = 0xA8;
0466 88EA ldi R24,168
0468 80938B00 sts 139,R24
046C .dbline 383
046C ; TCCR3B = 0x12;
046C 82E1 ldi R24,18
046E 80938A00 sts 138,R24
0472 .dbline 384
0472 ; ICR3 = frequ;
0472 50938100 sts 128+1,R21
0476 40938000 sts 128,R20
047A .dbline 385
047A ; OCR3A = frequ/2;
047A 22E0 ldi R18,2
047C 30E0 ldi R19,0
047E 8A01 movw R16,R20
0480 0E940000 xcall div16s
0484 10938700 sts 134+1,R17
0488 00938600 sts 134,R16
048C .dbline 386
048C ; OCR3B = frequ/2;
048C 22E0 ldi R18,2
048E 30E0 ldi R19,0
0490 8A01 movw R16,R20
0492 0E940000 xcall div16s
0496 10938500 sts 132+1,R17
049A 00938400 sts 132,R16
049E .dbline 387
049E ; OCR3C = frequ/2;
049E 22E0 ldi R18,2
04A0 30E0 ldi R19,0
04A2 8A01 movw R16,R20
04A4 0E940000 xcall div16s
04A8 10938300 sts 130+1,R17
04AC 00938200 sts 130,R16
04B0 .dbline -2
04B0 .dbline 389
04B0 ;
04B0 ; }
04B0 L73:
04B0 0E940000 xcall pop_gset1
04B4 .dbline 0 ; func end
04B4 0895 ret
04B6 .dbsym r frequ 20 I
04B6 .dbend
04B6 .dbfunc e init_devices _init_devices fV
.even
04B6 _init_devices::
04B6 .dbline -1
04B6 .dbline 403
04B6 ; //////////////////////////////////////////////////////////////////////////////
04B6 ; //
04B6 ; //
04B6 ; /////////////////////////////////////////////////////////////////////////////////
04B6 ;
04B6 ;
04B6 ;
04B6 ;
04B6 ;
04B6 ;
04B6 ;
04B6 ; //call this routine to initialize all peripherals
04B6 ; void init_devices(void)
04B6 ; {
04B6 .dbline 405
04B6 ; //stop errant interrupts until set up
04B6 ; CLI(); //disable all interrupts
04B6 F894 cli
04B8 .dbline 406
04B8 ; XDIV = 0x00; //xtal divider
04B8 2224 clr R2
04BA 2CBE out 0x3c,R2
04BC .dbline 407
04BC ; XMCRA = 0x00; //external memory
04BC 20926D00 sts 109,R2
04C0 .dbline 408
04C0 ; init_isp_devices();
04C0 0E940000 xcall _init_isp_devices
04C4 .dbline 409
04C4 ; init_gyro();
04C4 DCDE xcall _init_gyro
04C6 .dbline 410
04C6 ; uart0_init();
04C6 C9DD xcall _uart0_init
04C8 .dbline 411
04C8 ; uart1_init();
04C8 D9DD xcall _uart1_init
04CA .dbline 412
04CA ; MCUCR = 0x80;
04CA 80E8 ldi R24,128
04CC 85BF out 0x35,R24
04CE .dbline 413
04CE ; EICRA = 0x00; //extended ext ints
04CE 2224 clr R2
04D0 20926A00 sts 106,R2
04D4 .dbline 414
04D4 ; EICRB = 0x00; //extended ext ints
04D4 2ABE out 0x3a,R2
04D6 .dbline 415
04D6 ; EIMSK = 0x00;
04D6 29BE out 0x39,R2
04D8 .dbline 416
04D8 ; TIMSK = 0x00; //timer interrupt sources
04D8 27BE out 0x37,R2
04DA .dbline 417
04DA ; ETIMSK = 0x00; //extended timer interrupt sources
04DA 20927D00 sts 125,R2
04DE .dbline 418
04DE ; SEI(); //re-enable interrupts
04DE 7894 sei
04E0 .dbline -2
04E0 .dbline 420
04E0 ; //all peripherals are now initialized
04E0 ; }
04E0 L74:
04E0 .dbline 0 ; func end
04E0 0895 ret
04E2 .dbend
04E2 .dbfunc e test_motor_pwm _test_motor_pwm fV
.even
04E2 _test_motor_pwm::
04E2 .dbline -1
04E2 .dbline 422
04E2 ; void test_motor_pwm(void)
04E2 ; {
04E2 .dbline 423
04E2 ; motor_pwm(12288,12288);
04E2 20E0 ldi R18,12288
04E4 30E3 ldi R19,48
04E6 00E0 ldi R16,12288
04E8 10E3 ldi R17,48
04EA 83DF xcall _motor_pwm
04EC L76:
04EC .dbline 425
04EC ; do
04EC ; {
04EC .dbline 427
04EC ;
04EC ; xy_set(0x01);
04EC 01E0 ldi R16,1
04EE 22DE xcall _xy_set
04F0 .dbline 428
04F0 ; printf_str(" inp value :");
04F0 00E0 ldi R16,<L79
04F2 10E0 ldi R17,>L79
04F4 94DE xcall _printf_str
04F6 .dbline 429
04F6 ; delay_nms(100);
04F6 04E6 ldi R16,100
04F8 10E0 ldi R17,0
04FA A0DD xcall _delay_nms
04FC .dbline 430
04FC ; xy_set(0x21);
04FC 01E2 ldi R16,33
04FE 1ADE xcall _xy_set
0500 .dbline 431
0500 ; printf_str(" ");
0500 00E0 ldi R16,<L80
0502 10E0 ldi R17,>L80
0504 8CDE xcall _printf_str
0506 .dbline 432
0506 ; xy_set(0x21);
0506 01E2 ldi R16,33
0508 15DE xcall _xy_set
050A .dbline 433
050A ; left=scanf_int();
050A F1DD xcall _scanf_int
050C 10930700 sts _left+1,R17
0510 00930600 sts _left,R16
0514 .dbline 434
0514 ; delay_nms(100);
0514 04E6 ldi R16,100
0516 10E0 ldi R17,0
0518 91DD xcall _delay_nms
051A .dbline 435
051A ; xy_set(0x31);
051A 01E3 ldi R16,49
051C 0BDE xcall _xy_set
051E .dbline 436
051E ; printf_str(" ");
051E 00E0 ldi R16,<L80
0520 10E0 ldi R17,>L80
0522 7DDE xcall _printf_str
0524 .dbline 437
0524 ; xy_set(0x31);
0524 01E3 ldi R16,49
0526 06DE xcall _xy_set
0528 .dbline 438
0528 ; delay_nms(100);
0528 04E6 ldi R16,100
052A 10E0 ldi R17,0
052C 87DD xcall _delay_nms
052E .dbline 439
052E ; printf_int(left);
052E 00910600 lds R16,_left
0532 10910700 lds R17,_left+1
0536 64DE xcall _printf_int
0538 .dbline 440
0538 ; right=left;
0538 20900600 lds R2,_left
053C 30900700 lds R3,_left+1
0540 30920500 sts _right+1,R3
0544 20920400 sts _right,R2
0548 .dbline 441
0548 ; motor_pwm(right,left);
0548 9101 movw R18,R2
054A 8101 movw R16,R2
054C 52DF xcall _motor_pwm
054E .dbline 442
054E ; }
054E L77:
054E .dbline 443
054E CECF xjmp L76
0550 X2:
0550 .dbline -2
0550 .dbline 446
0550 ; while (1);
0550 ;
0550 ;
0550 ; }
0550 L75:
0550 .dbline 0 ; func end
0550 0895 ret
0552 .dbend
0552 .dbfunc e test_isp_cnt _test_isp_cnt fV
.even
0552 _test_isp_cnt::
0552 .dbline -1
0552 .dbline 448
0552 ; void test_isp_cnt()
0552 ; {
0552 .dbline 449
0552 ; motor_pwm(12288,12288);
0552 20E0 ldi R18,12288
0554 30E3 ldi R19,48
0556 00E0 ldi R16,12288
0558 10E3 ldi R17,48
055A 4BDF xcall _motor_pwm
055C .dbline 450
055C ; xy_set(0x01);
055C 01E0 ldi R16,1
055E EADD xcall _xy_set
0560 .dbline 451
0560 ; printf_str(" inp value :");
0560 00E0 ldi R16,<L79
0562 10E0 ldi R17,>L79
0564 5CDE xcall _printf_str
0566 .dbline 452
0566 ; delay_nms(100);
0566 04E6 ldi R16,100
0568 10E0 ldi R17,0
056A 68DD xcall _delay_nms
056C .dbline 453
056C ; xy_set(0x21);
056C 01E2 ldi R16,33
056E E2DD xcall _xy_set
0570 .dbline 454
0570 ; printf_str(" ");
0570 00E0 ldi R16,<L82
0572 10E0 ldi R17,>L82
0574 54DE xcall _printf_str
0576 .dbline 455
0576 ; xy_set(0x21);
0576 01E2 ldi R16,33
0578 DDDD xcall _xy_set
057A .dbline 456
057A ; left=scanf_int();
057A B9DD xcall _scanf_int
057C 10930700 sts _left+1,R17
0580 00930600 sts _left,R16
0584 .dbline 457
0584 ; delay_nms(100);
0584 04E6 ldi R16,100
0586 10E0 ldi R17,0
0588 59DD xcall _delay_nms
058A .dbline 458
058A ; xy_set(0x31);
058A 01E3 ldi R16,49
058C D3DD xcall _xy_set
058E .dbline 459
058E ; printf_str(" ");
058E 00E0 ldi R16,<L82
0590 10E0 ldi R17,>L82
0592 45DE xcall _printf_str
0594 .dbline 460
0594 ; xy_set(0x31);
0594 01E3 ldi R16,49
0596 CEDD xcall _xy_set
0598 .dbline 461
0598 ; delay_nms(100);
0598 04E6 ldi R16,100
059A 10E0 ldi R17,0
059C 4FDD xcall _delay_nms
059E .dbline 462
059E ; printf_int(left);
059E 00910600 lds R16,_left
05A2 10910700 lds R17,_left+1
05A6 2CDE xcall _printf_int
05A8 .dbline 463
05A8 ; right=left;
05A8 20900600 lds R2,_left
05AC 30900700 lds R3,_left+1
05B0 30920500 sts _right+1,R3
05B4 20920400 sts _right,R2
05B8 .dbline 464
05B8 ; motor_pwm(right,left);
05B8 9101 movw R18,R2
05BA 8101 movw R16,R2
05BC 1ADF xcall _motor_pwm
05BE L83:
05BE .dbline 467
05BE ;
05BE ; do
05BE ; {
05BE .dbline 468
05BE ; spi_cnt(CH1);
05BE 01E0 ldi R16,1
05C0 10E0 ldi R17,0
05C2 0E940000 xcall _spi_cnt
05C6 .dbline 469
05C6 ; delay_nms(100);
05C6 04E6 ldi R16,100
05C8 10E0 ldi R17,0
05CA 38DD xcall _delay_nms
05CC .dbline 470
05CC ; xy_set(0x27);
05CC 07E2 ldi R16,39
05CE B2DD xcall _xy_set
05D0 .dbline 471
05D0 ; printf_str(" ");
05D0 00E0 ldi R16,<L80
05D2 10E0 ldi R17,>L80
05D4 24DE xcall _printf_str
05D6 .dbline 472
05D6 ; xy_set(0x27);
05D6 07E2 ldi R16,39
05D8 ADDD xcall _xy_set
05DA .dbline 473
05DA ; len_test=len/7168;
05DA 80E0 ldi R24,0
05DC
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -