📄 steper.lst
字号:
314 011e 0F92 out 78-32,__zero_reg__
315 0120 0FB6 cbi 50-32,3
316 0122 0F92 in r24,53-32
317 0124 1124 andi r24,lo8(-13)
318 0126 8F93 out 53-32,r24
320 .LM17:
111:steper.c **** cli();
321 32
322 andi r24,lo8(48)
323 sts key_limit,r24
325 0128 F894 .LM18:
326 lds r24,key_limit
112:steper.c **** StepperStop();
327 24,lo8(32)
328 brne .L27
330 012a 1EBC .LM19:
331 012c 9398 ldi r24,lo8(1)
332 012e 85B3 sts Direction,r24
334 0132 85BB .LM20:
113:steper.c **** key_limit=(PINB & 0X30);
335 it,__zero_reg__
336 rjmp .L28
337 0134 86B3 .L27:
339 0138 8093 0000 .LM21:
114:steper.c **** if(key_limit==0x20) //前限位
340 r24,key_limit
341 cpi r24,lo8(16)
342 013c 8091 0000 brne .L28
344 0142 01F4 .LM22:
115:steper.c **** {
116:steper.c **** Direction=1;
345 Direction,__zero_reg__
347 0144 81E0 .LM23:
348 0146 8093 0000 ldi r24,lo8(1)
117:steper.c **** Limit=0;
349 Limit,r24
350 .L28:
352 014e 00C0 .LM24:
353 ldi r24,lo8(1)
118:steper.c **** }
119:steper.c **** else if(key_limit==0x10) //后限位
354 Pflag,r24
356 0150 8091 0000 .LM25:
357 0154 8031 sts (Pcnt)+1,__zero_reg__
358 0156 01F4 sts Pcnt,__zero_reg__
120:steper.c **** {
121:steper.c **** Direction=0;
359 bn 68,0,126,.LM26-.LFBB4
360 .LM26:
361 0158 1092 0000 sbi 50-32,3
122:steper.c **** Limit=1;
362 i r24,lo8(5)
363 out 78-32,r24
364 015c 81E0 in r24,89-32
365 015e 8093 0000 ori r24,lo8(4)
366 out 89-32,r24
123:steper.c **** }
124:steper.c **** Pflag=1;
367 bn 68,0,127,.LM27-.LFBB4
368 .LM27:
369 0162 81E0 /* #APP */
370 0164 8093 0000 ; 127 "steper.c" 1
125:steper.c **** Pcnt=0;
371
372 ; 0 "" 2
373 0168 1092 0000 /* epilogue start */
126:steper.c **** StepperStart();
375 28:
376 /* #NOAPP */
377 0170 939A pop r24
378 0172 85E0 pop r0
379 0174 8EBD out __SREG__,r0
380 0176 89B7 pop r0
381 0178 8460 pop __zero_reg__
382 017a 89BF reti
127:steper.c **** sei();
383 _vector_1, .-__vector_1
384 .Lscope4:
386 .global __vector_9
388 __vector_9:
128:steper.c **** }
390 .LFBB5:
391 push __zero_reg__
392 push r0
393 017e 8F91 in r0,__SREG__
394 0180 0F90 push r0
395 0182 0FBE clr __zero_reg__
396 0184 0F90 push r22
397 0186 1F90 push r23
398 0188 1895 push r24
399 push r25
400 /* prologue: Signal */
401 /* frame size = 0 */
403 .LM30:
404 ldi r24,lo8(100)
129:steper.c **** ISR(SIG_OVERFLOW0)
130:steper.c **** {
406 .LM31:
407 in r24,54-32
408 018a 1F92 andi r24,lo8(15)
409 018c 0F92 sts CurKey,r24
411 0190 0F92 .LM32:
412 0192 1124 lds r25,CurKey
413 0194 6F93 lds r24,LastKey
414 0196 7F93 cp r25,r24
415 0198 8F93 brne .L31
417 .LM33:
418 lds r24,keytimes
131:steper.c **** TCNT0=0x64;
419 -(1))
420 sts keytimes,r24
422 019e 82BF .LM34:
132:steper.c ****
133:steper.c **** CurKey=(PINB & 0X0F);
423 r24,keytimes
424 ldi r22,lo8(5)
425 01a0 86B3 rcall __udivmodqi4
426 01a2 8F70 tst r25
427 01a4 8093 0000 brne .L32
134:steper.c **** if(CurKey==LastKey)
428 bn 68,0,139,.LM35-.LFBB5
429 .LM35:
430 01a8 9091 0000 lds r24,CurKey
431 01ac 8091 0000 ori r24,lo8(64)
432 01b0 9817 rjmp .L36
433 01b2 01F4 .L32:
135:steper.c **** {
136:steper.c **** keytimes++;
434 n 68,0,141,.LM36-.LFBB5
435 .LM36:
436 01b4 8091 0000 lds r24,keytimes
437 01b8 8F5F cpi r24,lo8(101)
438 01ba 8093 0000 brlo .L35
137:steper.c **** if(keytimes%5==0)//短按
439 bn 68,0,143,.LM37-.LFBB5
440 .LM37:
441 01be 8091 0000 ldi r24,lo8(101)
442 01c2 65E0 sts keytimes,r24
444 01c6 9923 .LM38:
445 01c8 01F4 lds r24,CurKey
138:steper.c **** {
139:steper.c **** keycode=(ShortPush|CurKey);
446 4,lo8(-128)
447 .L36:
448 01ca 8091 0000 sts keycode,r24
449 01ce 8064 rjmp .L35
450 01d0 00C0 .L31:
140:steper.c **** }
141:steper.c **** else if(keytimes>100) //长按
452
453 lds r25,CurKey
454 01d2 8091 0000 lds r24,LastKey
455 01d6 8536 cp r25,r24
456 01d8 00F0 breq .L34
142:steper.c **** {
143:steper.c **** keytimes=101;
457 abn 68,0,149,.LM40-.LFBB5
458 .LM40:
459 01da 85E6 lds r24,CurKey
460 01dc 8093 0000 sts LastKey,r24
144:steper.c **** keycode=(LongPush|CurKey);
461 :
463 01e0 8091 0000 .LM41:
464 01e4 8068 sts keytimes,__zero_reg__
465 .L35:
466 01e6 8093 0000 /* epilogue start */
468 .LM42:
145:steper.c **** }
146:steper.c **** }
147:steper.c **** else if(CurKey!=LastKey)
469
470 pop r24
471 01ec 9091 0000 pop r23
472 01f0 8091 0000 pop r22
473 01f4 9817 pop r0
474 01f6 01F0 out __SREG__,r0
148:steper.c **** {
149:steper.c **** LastKey=CurKey;
475 r0
476 pop __zero_reg__
477 01f8 8091 0000 reti
479 .Lscope5:
150:steper.c **** keytimes=0x00;
151:steper.c **** }
152:steper.c **** else //无键按下或已释放
153:steper.c **** {
154:steper.c **** keytimes=0x00;
480 bs "Timer0_init:F(0,15)",36,0,0,Timer0_init
481 .global Timer0_init
483 Timer0_init:
155:steper.c **** }
156:steper.c ****
157:steper.c **** }
485 :
486 .LFBB6:
487 0204 9F91 /* prologue: function */
488 0206 8F91 /* frame size = 0 */
490 020a 6F91 .LM44:
491 020c 0F90 out 83-32,__zero_reg__
493 0210 0F90 .LM45:
494 0212 1F90 ldi r24,lo8(100)
495 0214 1895 out 82-32,r24
497 .LM46:
498 ldi r24,lo8(5)
499 out 83-32,r24
501 .LM47:
158:steper.c ****
159:steper.c **** void Timer0_init()
160:steper.c **** {
502
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -