📄 test_pc10_main.s
字号:
.dbline 416
; TIMSK = 0x00; //timer interrupt sources
out 0x37,R2
.dbline 417
; ETIMSK = 0x00; //extended timer interrupt sources
sts 125,R2
.dbline 418
; SEI(); //re-enable interrupts
sei
.dbline -2
.dbline 420
; //all peripherals are now initialized
; }
L74:
.dbline 0 ; func end
ret
.dbend
.dbfunc e test_motor_pwm _test_motor_pwm fV
.even
_test_motor_pwm::
.dbline -1
.dbline 422
; void test_motor_pwm(void)
; {
.dbline 423
; motor_pwm(12288,12288);
ldi R18,12288
ldi R19,48
ldi R16,12288
ldi R17,48
xcall _motor_pwm
L76:
.dbline 425
; do
; {
.dbline 427
;
; xy_set(0x01);
ldi R16,1
xcall _xy_set
.dbline 428
; printf_str(" inp value :");
ldi R16,<L79
ldi R17,>L79
xcall _printf_str
.dbline 429
; delay_nms(100);
ldi R16,100
ldi R17,0
xcall _delay_nms
.dbline 430
; xy_set(0x21);
ldi R16,33
xcall _xy_set
.dbline 431
; printf_str(" ");
ldi R16,<L80
ldi R17,>L80
xcall _printf_str
.dbline 432
; xy_set(0x21);
ldi R16,33
xcall _xy_set
.dbline 433
; left=scanf_int();
xcall _scanf_int
sts _left+1,R17
sts _left,R16
.dbline 434
; delay_nms(100);
ldi R16,100
ldi R17,0
xcall _delay_nms
.dbline 435
; xy_set(0x31);
ldi R16,49
xcall _xy_set
.dbline 436
; printf_str(" ");
ldi R16,<L80
ldi R17,>L80
xcall _printf_str
.dbline 437
; xy_set(0x31);
ldi R16,49
xcall _xy_set
.dbline 438
; delay_nms(100);
ldi R16,100
ldi R17,0
xcall _delay_nms
.dbline 439
; printf_int(left);
lds R16,_left
lds R17,_left+1
xcall _printf_int
.dbline 440
; right=left;
lds R2,_left
lds R3,_left+1
sts _right+1,R3
sts _right,R2
.dbline 441
; motor_pwm(right,left);
movw R18,R2
movw R16,R2
xcall _motor_pwm
.dbline 442
; }
L77:
.dbline 443
xjmp L76
X2:
.dbline -2
.dbline 446
; while (1);
;
;
; }
L75:
.dbline 0 ; func end
ret
.dbend
.dbfunc e test_isp_cnt _test_isp_cnt fV
.even
_test_isp_cnt::
.dbline -1
.dbline 448
; void test_isp_cnt()
; {
.dbline 449
; motor_pwm(12288,12288);
ldi R18,12288
ldi R19,48
ldi R16,12288
ldi R17,48
xcall _motor_pwm
.dbline 450
; xy_set(0x01);
ldi R16,1
xcall _xy_set
.dbline 451
; printf_str(" inp value :");
ldi R16,<L79
ldi R17,>L79
xcall _printf_str
.dbline 452
; delay_nms(100);
ldi R16,100
ldi R17,0
xcall _delay_nms
.dbline 453
; xy_set(0x21);
ldi R16,33
xcall _xy_set
.dbline 454
; printf_str(" ");
ldi R16,<L82
ldi R17,>L82
xcall _printf_str
.dbline 455
; xy_set(0x21);
ldi R16,33
xcall _xy_set
.dbline 456
; left=scanf_int();
xcall _scanf_int
sts _left+1,R17
sts _left,R16
.dbline 457
; delay_nms(100);
ldi R16,100
ldi R17,0
xcall _delay_nms
.dbline 458
; xy_set(0x31);
ldi R16,49
xcall _xy_set
.dbline 459
; printf_str(" ");
ldi R16,<L82
ldi R17,>L82
xcall _printf_str
.dbline 460
; xy_set(0x31);
ldi R16,49
xcall _xy_set
.dbline 461
; delay_nms(100);
ldi R16,100
ldi R17,0
xcall _delay_nms
.dbline 462
; printf_int(left);
lds R16,_left
lds R17,_left+1
xcall _printf_int
.dbline 463
; right=left;
lds R2,_left
lds R3,_left+1
sts _right+1,R3
sts _right,R2
.dbline 464
; motor_pwm(right,left);
movw R18,R2
movw R16,R2
xcall _motor_pwm
L83:
.dbline 467
;
; do
; {
.dbline 468
; spi_cnt(CH1);
ldi R16,1
ldi R17,0
xcall _spi_cnt
.dbline 469
; delay_nms(100);
ldi R16,100
ldi R17,0
xcall _delay_nms
.dbline 470
; xy_set(0x27);
ldi R16,39
xcall _xy_set
.dbline 471
; printf_str(" ");
ldi R16,<L80
ldi R17,>L80
xcall _printf_str
.dbline 472
; xy_set(0x27);
ldi R16,39
xcall _xy_set
.dbline 473
; len_test=len/7168;
ldi R24,0
ldi R25,28
ldi R26,0
ldi R27,0
lds R4,_len+2
lds R5,_len+2+1
lds R2,_len
lds R3,_len+1
st -y,R27
st -y,R26
st -y,R25
st -y,R24
movw R16,R2
movw R18,R4
xcall div32s
sts _len_test+1,R17
sts _len_test,R16
.dbline 474
; printf_int(len_test);
xcall _printf_int
.dbline 475
; xy_set(0x01);
ldi R16,1
xcall _xy_set
.dbline 476
; printf_hex(inp(0x250));
ldi R16,592
ldi R17,2
xcall _inp
xcall _printf_hex
.dbline 478
;
; delay_nms(100);
ldi R16,100
ldi R17,0
xcall _delay_nms
.dbline 479
; }
L84:
.dbline 480
xjmp L83
X3:
.dbline -2
.dbline 481
; while(1);
; }
L81:
.dbline 0 ; func end
ret
.dbend
.dbfunc e gogo _gogo fV
; k -> R22,R23
; j -> R20,R21
; speed -> y+2
; gowhere -> y+0
; i -> R10,R11
.even
_gogo::
xcall push_gset5
sbiw R28,4
.dbline -1
.dbline 484
;
; void gogo(void)
; {
.dbline 485
; int speed = 0;
clr R0
clr R1
std y+2,R0
std y+3,R1
.dbline 486
; int gowhere = 0;
std y+0,R0
std y+1,R1
.dbline 488
;
; int i=0,j=0,k=0;
clr R10
clr R11
.dbline 488
clr R20
clr R21
.dbline 488
clr R22
clr R23
.dbline 490
;
; init_lcd ();
xcall _init_lcd
.dbline 491
; xy_set(0x01);
ldi R16,1
xcall _xy_set
.dbline 492
; delay_nms(10);
ldi R16,10
ldi R17,0
xcall _delay_nms
.dbline 493
; printf_str(" inp speed :");
ldi R16,<L87
ldi R17,>L87
xcall _printf_str
.dbline 494
; delay_nms(10);
ldi R16,10
ldi R17,0
xcall _delay_nms
.dbline 495
; xy_set(0x21);
ldi R16,33
xcall _xy_set
.dbline 496
; printf_str(" ");
ldi R16,<L82
ldi R17,>L82
xcall _printf_str
.dbline 497
; xy_set(0x21);
ldi R16,33
xcall _xy_set
.dbline 498
; speed = scanf_int();
xcall _scanf_int
std y+2,R16
std y+3,R17
.dbline 499
; delay_nms(10);
ldi R16,10
ldi R17,0
xcall _delay_nms
.dbline 500
; xy_set(0x31);
ldi R16,49
xcall _xy_set
.dbline 501
; printf_str(" ");
ldi R16,<L82
ldi R17,>L82
xcall _printf_str
.dbline 502
; xy_set(0x31);
ldi R16,49
xcall _xy_set
.dbline 503
; delay_nms(10);
ldi R16,10
ldi R17,0
xcall _delay_nms
.dbline 504
; printf_int(speed);
ldd R16,y+2
ldd R17,y+3
xcall _printf_int
.dbline 505
; delay_nms(1000);
ldi R16,1000
ldi R17,3
xcall _delay_nms
.dbline 508
;
;
; init_lcd ();
xcall _init_lcd
.dbline 512
;
;
;
; xy_set(0x01);
ldi R16,1
xcall _xy_set
.dbline 513
; delay_nms(10);
ldi R16,10
ldi R17,0
xcall _delay_nms
.dbline 514
; printf_str(" inp len:");
ldi R16,<L88
ldi R17,>L88
xcall _printf_str
.dbline 515
; delay_nms(10);
ldi R16,10
ldi R17,0
xcall _delay_nms
.dbline 516
; xy_set(0x21);
ldi R16,33
xcall _xy_set
.dbline 517
; printf_str(" ");
ldi R16,<L80
ldi R17,>L80
xcall _printf_str
.dbline 518
; xy_set(0x21);
ldi R16,33
xcall _xy_set
.dbline 519
; gowhere = scanf_int();
xcall _scanf_int
std y+0,R16
std y+1,R17
.dbline 520
; delay_nms(10);
ldi R16,10
ldi R17,0
xcall _delay_nms
.dbline 521
; xy_set(0x31);
ldi R16,49
xcall _xy_set
.dbline 522
; printf_str(" ");
ldi R16,<L89
ldi R17,>L89
xcall _printf_str
.dbline 523
; xy_set(0x31);
ldi R16,49
xcall _xy_set
.dbline 524
; delay_nms(10);
ldi R16,10
ldi R17,0
xcall _delay_nms
.dbline 525
; printf_int(gowhere);
ldd R16,y+0
ldd R17,y+1
xcall _printf_int
.dbline 526
; delay_nms(1000);
ldi R16,1000
ldi R17,3
xcall _delay_nms
.dbline 528
;
; init_lcd ();
xcall _init_lcd
.dbline 532
;
; // speed = 13000;
; // gowhere = 3;
; motor_pwm(speed,speed);
ldd R18,y+2
ldd R19,y+3
ldd R16,y+2
ldd R17,y+3
xcall _motor_pwm
.dbline 533
; outp(0x250,0xff);
ldi R18,255
ldi R16,592
ldi R17,2
xcall _outp
.dbline 535
;
; for(i=0;i<5;i++)
L90:
.dbline 536
ldi R16,1
ldi R17,0
xcall _spi_cnt
L91:
.dbline 535
movw R24,R10
adiw R24,1
movw R10,R24
.dbline 535
cpi R24,5
ldi R30,0
cpc R25,R30
brlt L90
.dbline 537
; spi_cnt(CH1);
; j=0;
clr R20
clr R21
xjmp L95
L94:
.dbline 539
; while (1)
; {
.dbline 541
;
; spi_cnt(CH1);
ldi R16,1
ldi R17,0
xcall _spi_cnt
.dbline 542
; spi_cnt(CH1);
ldi R16,1
ldi R17,0
xcall _spi_cnt
.dbline 544
;
; len_test = len/7168;
ldi R24,0
ldi R25,28
ldi R26,0
ldi R27,0
lds R4,_len+2
lds R5,_len+2+1
lds R2,_len
lds R3,_len+1
st -y,R27
st -y,R26
st -y,R25
st -y,R24
movw R16,R2
movw R18,R4
xcall div32s
sts _len_test+1,R17
sts _len_test,R16
.dbline 546
;
; if (len_test >= gowhere)
ldd R0,y+0
ldd R1,y+1
cp R16,R0
cpc R17,R1
brlt L97
.dbline 547
; {
.dbline 549
;
; xy_set(0x31);
ldi R16,49
xcall _xy_set
.dbline 550
; printf_str(" stop ");
ldi R16,<L99
ldi R17,>L99
xcall _printf_str
.dbline 551
; printf_int(len_test);
lds R16,_len_test
lds R17,_len_test+1
xcall _printf_int
.dbline 552
; motor_pwm(12288,12288);
ldi R18,12288
ldi R19,48
ldi R16,12288
ldi R17,48
xcall _motor_pwm
.dbline 553
; }
xjmp L98
L97:
.dbline 555
; else
; {
.dbline 556
; xy_set(0x31);
ldi R16,49
xcall _xy_set
.dbline 557
; printf_str(" ");
ldi R16,<L100
ldi R17,>L100
xcall _printf_str
.dbline 558
; xy_set(0x31);
ldi R16,49
xcall _xy_set
.dbline 559
; printf_int(len_test);
lds R16,_len_test
lds R17,_len_test+1
xcall _printf_int
.dbline 560
; if(k==0)
cpi R22,0
cpc R22,R23
brne L101
X4:
.dbline 561
; motor_pwm(speed,speed);
ldd R18,y+2
ldd R19,y+3
ldd R16,y+2
ldd R17,y+3
xcall _motor_pwm
L101:
.dbline 562
; }
L98:
.dbline 564
;
; if((inp(0x250)&0x01)!=0)
ldi R16,592
ldi R17,2
xcall _inp
sbrs R16,0
rjmp L103
.dbline 565
; { delay_nms(1);
.dbline 565
ldi R16,1
ldi R17,0
xcall _delay_nms
.dbline 566
; if((inp(0x250)&0x01)!=0)
ldi R16,592
ldi R17,2
xcall _inp
sbrs R16,0
rjmp L105
.dbline 567
; {
.dbline 568
; xy_set(0x21);
ldi R16,33
xcall _xy_set
.dbline 569
; printf_str(" touched ");
ldi R16,<L107
ldi R17,>L107
xcall _printf_str
.dbline 570
; motor_pwm(12288,12288);
ldi R18,12288
ldi R19,48
ldi R16,12288
ldi R17,48
xcall _motor_pwm
.dbline 571
; k=1;
ldi R22,1
ldi R23,0
.dbline 572
; }
L105:
.dbline 574
;
; }
L103:
.dbline 578
;
;
;
; if ((inp(0x250)&0x80)!=0)
ldi R16,592
ldi R17,2
xcall _inp
sbrs R16,7
rjmp L108
.dbline 579
; { delay_nms(1);
.dbline 579
ldi R16,1
ldi R17,0
xcall _delay_nms
.dbline 580
; if ((inp(0x250)&0x80)!=0)
ldi R16,592
ldi R17,2
xcall _inp
sbrs R16,7
rjmp L109
.dbline 581
; {
.dbline 582
; xy_set(0x11);
ldi R16,17
xcall _xy_set
.dbline 583
; printf_str(" complete");
ldi R16,<L112
ldi R17,>L112
xcall _printf_str
.dbline 584
; outp(0x250,0x00);
clr R18
ldi R16,592
ldi R17,2
xcall _outp
.dbline 585
; j++;
subi R20,255 ; offset = 1
sbci R21,255
.dbline 586
; }
.dbline 587
; }
xjmp L109
L108:
.dbline 589
; else
; {
.dbline 590
; delay_nms(1);
ldi R16,1
ldi R17,0
xcall _delay_nms
.dbline 591
; if ((inp(0x250)&0x80)==0)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -