?? motor.lis
字號:
008C .dbline 0 ; func end
008C 0895 ret
008E .dbend
008E .dbfunc e motor_right_quick_stop _motor_right_quick_stop fV
.even
008E _motor_right_quick_stop::
008E .dbline -1
008E .dbline 96
008E ; }
008E ;
008E ; //右電機急停
008E ; void motor_right_quick_stop(void)
008E ; {
008E .dbline 97
008E ; motor_en1;
008E C19A sbi 0x18,1
0090 .dbline 98
0090 ; motor_en2;
0090 C29A sbi 0x18,2
0092 .dbline 99
0092 ; T2_UEN;
0092 89B7 in R24,0x39
0094 8F77 andi R24,127
0096 89BF out 0x39,R24
0098 .dbline -2
0098 L31:
0098 .dbline 0 ; func end
0098 0895 ret
009A .dbend
009A .dbfunc e straight _straight fV
.even
009A _straight::
009A .dbline -1
009A .dbline 105
009A ; }
009A ;
009A ; /**********************小車動作*****************************/
009A ;
009A ; void straight(void) //直行
009A ; {
009A .dbline 106
009A ; motor_left_forward(0xfe);
009A 0EEF ldi R16,254
009C B1DF xcall _motor_left_forward
009E .dbline 107
009E ; motor_right_forward(0xfe);
009E 0EEF ldi R16,254
00A0 D1DF xcall _motor_right_forward
00A2 .dbline -2
00A2 L32:
00A2 .dbline 0 ; func end
00A2 0895 ret
00A4 .dbend
00A4 .dbfunc e turn_left _turn_left fV
.even
00A4 _turn_left::
00A4 .dbline -1
00A4 .dbline 111
00A4 ; }
00A4 ;
00A4 ; void turn_left(void) //左轉
00A4 ; {
00A4 .dbline 112
00A4 ; motor_left_forward(0xfe);
00A4 0EEF ldi R16,254
00A6 ACDF xcall _motor_left_forward
00A8 .dbline 113
00A8 ; motor_right_forward(0x50);
00A8 00E5 ldi R16,80
00AA CCDF xcall _motor_right_forward
00AC .dbline -2
00AC L33:
00AC .dbline 0 ; func end
00AC 0895 ret
00AE .dbend
00AE .dbfunc e turn_right _turn_right fV
.even
00AE _turn_right::
00AE .dbline -1
00AE .dbline 117
00AE ; }
00AE ;
00AE ; void turn_right(void) //右轉
00AE ; {
00AE .dbline 118
00AE ; motor_left_forward(0x50);
00AE 00E5 ldi R16,80
00B0 A7DF xcall _motor_left_forward
00B2 .dbline 119
00B2 ; motor_right_forward(0xfe);
00B2 0EEF ldi R16,254
00B4 C7DF xcall _motor_right_forward
00B6 .dbline -2
00B6 L34:
00B6 .dbline 0 ; func end
00B6 0895 ret
00B8 .dbend
00B8 .dbfunc e straight_back _straight_back fV
.even
00B8 _straight_back::
00B8 .dbline -1
00B8 .dbline 123
00B8 ; }
00B8 ;
00B8 ; void straight_back(void) //直回
00B8 ; {
00B8 .dbline 124
00B8 ; motor_left_backward(0xfe);
00B8 0EEF ldi R16,254
00BA ABDF xcall _motor_left_backward
00BC .dbline 125
00BC ; motor_right_backward(0xfe);
00BC 0EEF ldi R16,254
00BE CEDF xcall _motor_right_backward
00C0 .dbline -2
00C0 L35:
00C0 .dbline 0 ; func end
00C0 0895 ret
00C2 .dbend
00C2 .dbfunc e stop _stop fV
.even
00C2 _stop::
00C2 .dbline -1
00C2 .dbline 129
00C2 ; }
00C2 ;
00C2 ; void stop(void) //急停
00C2 ; {
00C2 .dbline 130
00C2 ; motor_left_quick_stop();
00C2 BADF xcall _motor_left_quick_stop
00C4 .dbline 131
00C4 ; motor_right_quick_stop();
00C4 E4DF xcall _motor_right_quick_stop
00C6 .dbline -2
00C6 L36:
00C6 .dbline 0 ; func end
00C6 0895 ret
00C8 .dbend
00C8 .dbfunc e mic_turn_right _mic_turn_right fV
.even
00C8 _mic_turn_right::
00C8 .dbline -1
00C8 .dbline 135
00C8 ; }
00C8 ;
00C8 ; void mic_turn_right(void) //向右微調
00C8 ; {
00C8 .dbline 136
00C8 ; motor_left_forward(0xa0);
00C8 00EA ldi R16,160
00CA 9ADF xcall _motor_left_forward
00CC .dbline 137
00CC ; motor_right_forward(0xfe);
00CC 0EEF ldi R16,254
00CE BADF xcall _motor_right_forward
00D0 .dbline -2
00D0 L37:
00D0 .dbline 0 ; func end
00D0 0895 ret
00D2 .dbend
00D2 .dbfunc e mic_turn_left _mic_turn_left fV
.even
00D2 _mic_turn_left::
00D2 .dbline -1
00D2 .dbline 141
00D2 ; }
00D2 ;
00D2 ; void mic_turn_left(void) //向左微調
00D2 ; {
00D2 .dbline 142
00D2 ; motor_left_forward(0xFE);
00D2 0EEF ldi R16,254
00D4 95DF xcall _motor_left_forward
00D6 .dbline 143
00D6 ; motor_right_forward(0xa0);
00D6 00EA ldi R16,160
00D8 B5DF xcall _motor_right_forward
00DA .dbline -2
00DA L38:
00DA .dbline 0 ; func end
00DA 0895 ret
00DC .dbend
00DC .dbfunc e flag_test _flag_test fV
.area func_lit(rom, con, rel)
0000 L49:
0000 9E00 .word `L48
0002 8E00 .word `L44
0004 9200 .word `L45
0006 9A00 .word `L47
0008 9200 .word `L45
000A 9200 .word `L45
000C 8E00 .word `L44
000E 8E00 .word `L44
0010 8E00 .word `L44
0012 9200 .word `L45
0014 8E00 .word `L44
0016 9200 .word `L45
0018 9600 .word `L46
001A 9200 .word `L45
001C 8E00 .word `L44
001E 8A00 .word `L43
.area text(rom, con, rel)
00DC .dbfile D:\桌面\avr程序設計\循跡小車\motor.c
00DC ; temp -> R20
.even
00DC _flag_test::
00DC 0E940000 xcall push_gset1
00E0 .dbline -1
00E0 .dbline 147
00E0 ; }
00E0 ;
00E0 ; void flag_test(void) //測試小車狀態
00E0 ; {
00E0 .dbline 149
00E0 ; uint8 temp;
00E0 ; temp = PINA&0x0f; //PINA的低四位
00E0 49B3 in R20,0x19
00E2 4F70 andi R20,15
00E4 .dbline 150
00E4 ; switch(temp)
00E4 5527 clr R21
00E6 4030 cpi R20,0
00E8 E0E0 ldi R30,0
00EA 5E07 cpc R21,R30
00EC 54F1 brlt L41
00EE 8FE0 ldi R24,15
00F0 90E0 ldi R25,0
00F2 8417 cp R24,R20
00F4 9507 cpc R25,R21
00F6 2CF1 brlt L41
00F8 02E0 ldi R16,2
00FA 10E0 ldi R17,0
00FC 9A01 movw R18,R20
00FE 0E940000 xcall empy16s
0102 F801 movw R30,R16
0104 80E0 ldi R24,<L49
0106 90E0 ldi R25,>L49
0108 E80F add R30,R24
010A F91F adc R31,R25
010C 0590 lpm R0,Z+
010E 1490 lpm R1,Z
0110 F001 movw R30,R0
0112 0994 ijmp
0114 X0:
0114 .dbline 151
0114 ; {
0114 L43:
0114 .dbline 153
0114 ; case 0x0f:
0114 ; flag = 0; //未偏
0114 2224 clr R2
0116 20920000 sts _flag,R2
011A .dbline 154
011A ; break;
011A 13C0 xjmp L41
011C L44:
011C .dbline 161
011C ; case 0x01:
011C ; case 0x06:
011C ; case 0x07:
011C ; case 0x08:
011C ; case 0x0a:
011C ; case 0x0e:
011C ; flag = 1; //左偏
011C 81E0 ldi R24,1
011E 80930000 sts _flag,R24
0122 .dbline 162
0122 ; break;
0122 0FC0 xjmp L41
0124 L45:
0124 .dbline 169
0124 ; case 0x02:
0124 ; case 0x04:
0124 ; case 0x05:
0124 ; case 0x09:
0124 ; case 0x0b:
0124 ; case 0x0d:
0124 ; flag = 2; //右偏
0124 82E0 ldi R24,2
0126 80930000 sts _flag,R24
012A .dbline 170
012A ; break;
012A 0BC0 xjmp L41
012C L46:
012C .dbline 172
012C ; case 0x0c:
012C ; flag = 3; //前兩出線
012C 83E0 ldi R24,3
012E 80930000 sts _flag,R24
0132 .dbline 173
0132 ; break;
0132 07C0 xjmp L41
0134 L47:
0134 .dbline 175
0134 ; case 0x03:
0134 ; flag = 4; //后兩出線
0134 84E0 ldi R24,4
0136 80930000 sts _flag,R24
013A .dbline 176
013A ; break;
013A 03C0 xjmp L41
013C L48:
013C .dbline 178
013C 85E0 ldi R24,5
013E 80930000 sts _flag,R24
0142 .dbline 179
0142 .dbline 181
0142 L41:
0142 .dbline -2
0142 L39:
0142 0E940000 xcall pop_gset1
0146 .dbline 0 ; func end
0146 0895 ret
0148 .dbsym r temp 20 c
0148 .dbend
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -