📄 lcd.lst
字号:
447 0158 8083 sbi 55-0x20,1
448 015a 8081 sbi 55-0x20,2
449 015c 8460 .LBB52:
450 015e 8083 .LBB53:
452 0162 8860 .LM34:
453 0164 8083 ldi r24,lo8(80)
454 0166 B99A out 45-0x20,r24
456 .LM35:
457 sbi 46-0x20,0
458 .LBE53:
459 .LBE52:
461 016c 8DB9 .LM36:
462 call lcdClrDisBuf
463 .LBB54:
464 016e 709A .LBB55:
465 .LBB56:
466 .LBB57:
468 .Ltext1:
470 .LM37:
471 ldi r24,lo8(30000)
472 ldi r25,hi8(30000)
473 movw r30,r24
474 /* #APP */
475 1: sbiw r30,1
1:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** /* Copyright (c) 2002, Marek Michalkiewicz
2:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** Copyright (c) 2007 Joerg Wunsch
3:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** All rights reserved.
4:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h ****
5:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** Redistribution and use in source and binary forms, with or without
6:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** modification, are permitted provided that the following conditions are met:
7:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h ****
8:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** * Redistributions of source code must retain the above copyright
9:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** notice, this list of conditions and the following disclaimer.
10:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h ****
11:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** * Redistributions in binary form must reproduce the above copyright
12:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** notice, this list of conditions and the following disclaimer in
13:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** the documentation and/or other materials provided with the
14:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** distribution.
15:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h ****
16:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** * Neither the name of the copyright holders nor the names of
17:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** contributors may be used to endorse or promote products derived
18:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** from this software without specific prior written permission.
19:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h ****
20:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
24:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** POSSIBILITY OF SUCH DAMAGE. */
31:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h ****
32:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** /* $Id: delay_basic.h,v 1.1 2007/05/13 21:23:20 joerg_wunsch Exp $ */
33:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h ****
34:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** #ifndef _UTIL_DELAY_BASIC_H_
35:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** #define _UTIL_DELAY_BASIC_H_ 1
36:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h ****
37:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** #include <inttypes.h>
38:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h ****
39:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** /** \file */
40:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** /** \defgroup util_delay_basic <util/delay_basic.h>: Basic busy-wait delay loops
41:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** \code
42:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** #include <util/delay_basic.h>
43:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** \endcode
44:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h ****
45:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** The functions in this header file implement simple delay loops
46:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** that perform a busy-waiting. They are typically used to
47:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** facilitate short delays in the program execution. They are
48:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** implemented as count-down loops with a well-known CPU cycle
49:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** count per loop iteration. As such, no other processing can
50:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** occur simultaneously. It should be kept in mind that the
51:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** functions described here do not disable interrupts.
52:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h ****
53:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** In general, for long delays, the use of hardware timers is
54:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** much preferrable, as they free the CPU, and allow for
55:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** concurrent processing of other events while the timer is
56:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** running. However, in particular for very short delays, the
57:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** overhead of setting up a hardware timer is too much compared
58:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** to the overall delay time.
59:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h ****
60:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** Two inline functions are provided for the actual delay algorithms.
61:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h ****
62:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** */
63:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h ****
64:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** #if !defined(__DOXYGEN__)
65:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** static inline void _delay_loop_1(uint8_t __count) __attribute__((always_inline));
66:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** static inline void _delay_loop_2(uint16_t __count) __attribute__((always_inline));
67:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** #endif
68:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h ****
69:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** /** \ingroup util_delay_basic
70:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h ****
71:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** Delay loop using an 8-bit counter \c __count, so up to 256
72:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** iterations are possible. (The value 256 would have to be passed
73:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** as 0.) The loop executes three CPU cycles per iteration, not
74:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** including the overhead the compiler needs to setup the counter
75:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** register.
76:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h ****
77:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** Thus, at a CPU speed of 1 MHz, delays of up to 768 microseconds
78:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** can be achieved.
79:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** */
80:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** void
81:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** _delay_loop_1(uint8_t __count)
82:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** {
83:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** __asm__ volatile (
84:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** "1: dec %0" "\n\t"
85:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** "brne 1b"
86:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** : "=r" (__count)
87:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** : "0" (__count)
88:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** );
89:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** }
90:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h ****
91:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** /** \ingroup util_delay_basic
92:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h ****
93:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** Delay loop using a 16-bit counter \c __count, so up to 65536
94:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** iterations are possible. (The value 65536 would have to be
95:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** passed as 0.) The loop executes four CPU cycles per iteration,
96:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** not including the overhead the compiler requires to setup the
97:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** counter register pair.
98:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h ****
99:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** Thus, at a CPU speed of 1 MHz, delays of up to about 262.1
100:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** milliseconds can be achieved.
101:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** */
102:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** void
103:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** _delay_loop_2(uint16_t __count)
104:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** {
105:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** __asm__ volatile (
476 Ltext1
477 .Ltext1:
479 0176 95E7 .LM37:
480 0178 FC01 ldi r24,lo8(30000)
481 ldi r25,hi8(30000)
482 017a 3197 movw r30,r24
483 017c 01F4 /* #APP */
484 1: sbiw r30,1
485 brne 1b
486 /* #NOAPP */
487 .LBE57:
488 .LBE56:
489 .LBE55:
490 .LBE54:
491 .LBB58:
492 .LBB59:
493 .LBB60:
494 017e 0197 .LBB61:
495 0180 01F4 /* #APP */
496 1: sbiw r24,1
497 brne 1b
498 /* #NOAPP */
499 .LBE61:
500 .LBE60:
501 .LBE59:
502 .LBE58:
504 .Ltext2:
506 0184 8081 .LM38:
507 0186 877F movw r30,r16
508 0188 8083 ld r24,Z
509 andi r24,lo8(-9)
510 st Z,r24
511 .LBB62:
512 .LBB63:
513 .LBB64:
514 .LBB65:
516 .Ltext3:
518 018c 97E0 .LM39:
519 ldi r24,lo8(2000)
520 018e 0197 ldi r25,hi8(2000)
521 0190 01F4 /* #APP */
522 1: sbiw r24,1
523 brne 1b
524 /* #NOAPP */
525 .LBE65:
526 .LBE64:
527 .LBE63:
528 .LBE62:
530 .Ltext4:
532 0194 8860 .LM40:
533 0196 8083 ld r24,Z
534 ori r24,lo8(8)
535 st Z,r24
536 .LBB66:
537 .LBB67:
538 .LBB68:
539 .LBB69:
541 .Ltext5:
543 .LM41:
544 019a 8A95 ldi r24,lo8(26)
545 019c 01F4 /* #APP */
546 1: dec r24
547 brne 1b
548 /* #NOAPP */
549 .LBE69:
550 .LBE68:
551 .LBE67:
552 .LBE66:
554 .Ltext6:
556 01a0 8B7F .LM42:
557 01a2 8083 ld r24,Z
558 andi r24,lo8(-5)
559 st Z,r24
561 01a6 0E94 0000 .LM43:
562 ldi r24,lo8(33)
563 call lcdWriteCmd
565 01ac 0E94 0000 .LM44:
566 ldi r24,lo8(-56)
567 call lcdWriteCmd
569 01b2 0E94 0000 .LM45:
570 ldi r24,lo8(6)
571 call lcdWriteCmd
573 01b8 0E94 0000 .LM46:
574 ldi r24,lo8(19)
575 call lcdWriteCmd
577 01be 0E94 0000 .LM47:
578 ldi r24,lo8(32)
579 call lcdWriteCmd
581 01c4 0E94 0000 .LM48:
582 ldi r24,lo8(12)
583 call lcdWriteCmd
585 .LM49:
586 call lcdUpdateDisplay
588 01ce 8081 .LM50:
589 01d0 8460 movw r30,r16
590 01d2 8083 ld r24,Z
591 ori r24,lo8(4)
592 01d4 1F91 st Z,r24
593 01d6 0F91 /* epilogue: frame size=0 */
594 01d8 0895 pop r17
595 pop r16
596 ret
597 /* epilogue end (size=3) */
598 /* function lcdInit size 93 (88) */
612 .Lscope8:
613 .comm disBuf,504,1
DEFINED SYMBOLS
*ABS*:00000000 LCD.c
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccJedvcN.s:2 *ABS*:0000003f __SREG__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccJedvcN.s:3 *ABS*:0000003e __SP_H__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccJedvcN.s:4 *ABS*:0000003d __SP_L__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccJedvcN.s:5 *ABS*:00000000 __tmp_reg__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccJedvcN.s:6 *ABS*:00000001 __zero_reg__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccJedvcN.s:90 .text:00000000 lcdSpiSpeedSet
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccJedvcN.s:113 .text:00000008 lcdWriteByte
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccJedvcN.s:137 .text:00000010 lcdWriteCmd
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccJedvcN.s:170 .text:0000002c lcdClrDisBuf
*COM*:000001f8 disBuf
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccJedvcN.s:200 .text:0000003e lcdUpdateDisplay
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccJedvcN.s:304 .text:000000a6 OnePixel
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccJedvcN.s:374 .text:000000f6 ReadPixel
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccJedvcN.s:419 .text:00000130 lcdInit
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -