Files
SyncHome/trunk/AVRProjects/ATTiny84/main.lst
2023-03-13 09:01:12 +00:00

537 lines
42 KiB
Plaintext

1 .file "main.c"
2 __SP_H__ = 0x3e
3 __SP_L__ = 0x3d
4 __SREG__ = 0x3f
5 __tmp_reg__ = 0
6 __zero_reg__ = 1
7 .text
8 .Ltext0:
9 .cfi_sections .debug_frame
10 .section .rodata.str1.1,"aMS",@progbits,1
11 .LC0:
12 0000 4C4F 5645 .string "LOVE"
12 00
13 .section .text.startup,"ax",@progbits
14 .global main
16 main:
17 .LFB6:
18 .file 1 "main.c"
1:main.c **** #define F_CPU 1000000L
2:main.c **** #define CONFIG_DISPLAY
3:main.c ****
4:main.c **** #define __DELAY_BACKWARD_COMPATIBLE__
5:main.c **** #include <avr/io.h>
6:main.c **** #include <util/delay.h>
7:main.c **** #include "../00_Lib/nokia_5110.h"
8:main.c ****
9:main.c ****
10:main.c **** int main (void)
11:main.c **** {
19 .loc 1 11 0
20 .cfi_startproc
21 /* prologue: function */
22 /* frame size = 0 */
23 /* stack size = 0 */
24 .L__stack_usage = 0
12:main.c **** unsigned char zwischenspeicher;
13:main.c **** DDRB = 0b00000001;
25 .loc 1 13 0
26 0000 81E0 ldi r24,lo8(1)
27 0002 87BB out 0x17,r24
14:main.c **** DDRA = 0b00011111;
28 .loc 1 14 0
29 0004 8FE1 ldi r24,lo8(31)
30 0006 8ABB out 0x1a,r24
15:main.c ****
16:main.c **** LCD_init(); //LCD initialization
31 .loc 1 16 0
32 0008 00D0 rcall LCD_init
33 .LVL0:
17:main.c **** LCD_clear(); //clear the LCD
34 .loc 1 17 0
35 000a 00D0 rcall LCD_clear
36 .LVL1:
18:main.c ****
19:main.c **** LCD_write_char('*');
37 .loc 1 19 0
38 000c 8AE2 ldi r24,lo8(42)
39 000e 00D0 rcall LCD_write_char
40 .LVL2:
20:main.c **** LCD_write_byte(0,1);
41 .loc 1 20 0
42 0010 61E0 ldi r22,lo8(1)
43 0012 80E0 ldi r24,0
44 0014 00D0 rcall LCD_write_byte
45 .LVL3:
21:main.c **** LCD_write_byte(0,1);
46 .loc 1 21 0
47 0016 61E0 ldi r22,lo8(1)
48 0018 80E0 ldi r24,0
49 001a 00D0 rcall LCD_write_byte
50 .LVL4:
22:main.c **** LCD_write_char('L');
51 .loc 1 22 0
52 001c 8CE4 ldi r24,lo8(76)
53 001e 00D0 rcall LCD_write_char
54 .LVL5:
23:main.c **** LCD_write_char('o');
55 .loc 1 23 0
56 0020 8FE6 ldi r24,lo8(111)
57 0022 00D0 rcall LCD_write_char
58 .LVL6:
24:main.c **** LCD_write_char('v');
59 .loc 1 24 0
60 0024 86E7 ldi r24,lo8(118)
61 0026 00D0 rcall LCD_write_char
62 .LVL7:
25:main.c **** LCD_write_char('e');
63 .loc 1 25 0
64 0028 85E6 ldi r24,lo8(101)
65 002a 00D0 rcall LCD_write_char
66 .LVL8:
26:main.c **** LCD_write_byte(0,1);
67 .loc 1 26 0
68 002c 61E0 ldi r22,lo8(1)
69 002e 80E0 ldi r24,0
70 0030 00D0 rcall LCD_write_byte
71 .LVL9:
27:main.c **** LCD_write_byte(0,1);
72 .loc 1 27 0
73 0032 61E0 ldi r22,lo8(1)
74 0034 80E0 ldi r24,0
75 0036 00D0 rcall LCD_write_byte
76 .LVL10:
28:main.c **** LCD_write_byte(0,1);
77 .loc 1 28 0
78 0038 61E0 ldi r22,lo8(1)
79 003a 80E0 ldi r24,0
80 003c 00D0 rcall LCD_write_byte
81 .LVL11:
29:main.c **** LCD_write_byte(0,1);
82 .loc 1 29 0
83 003e 61E0 ldi r22,lo8(1)
84 0040 80E0 ldi r24,0
85 0042 00D0 rcall LCD_write_byte
86 .LVL12:
30:main.c **** LCD_write_byte(0,1);
87 .loc 1 30 0
88 0044 61E0 ldi r22,lo8(1)
89 0046 80E0 ldi r24,0
90 0048 00D0 rcall LCD_write_byte
91 .LVL13:
31:main.c **** LCD_write_char('S');
92 .loc 1 31 0
93 004a 83E5 ldi r24,lo8(83)
94 004c 00D0 rcall LCD_write_char
95 .LVL14:
32:main.c **** LCD_write_char('i');
96 .loc 1 32 0
97 004e 89E6 ldi r24,lo8(105)
98 0050 00D0 rcall LCD_write_char
99 .LVL15:
33:main.c **** LCD_write_char('l');
100 .loc 1 33 0
101 0052 8CE6 ldi r24,lo8(108)
102 0054 00D0 rcall LCD_write_char
103 .LVL16:
34:main.c **** LCD_write_char('v');
104 .loc 1 34 0
105 0056 86E7 ldi r24,lo8(118)
106 0058 00D0 rcall LCD_write_char
107 .LVL17:
35:main.c **** LCD_write_char('i');
108 .loc 1 35 0
109 005a 89E6 ldi r24,lo8(105)
110 005c 00D0 rcall LCD_write_char
111 .LVL18:
36:main.c **** LCD_write_char('a');
112 .loc 1 36 0
113 005e 81E6 ldi r24,lo8(97)
114 0060 00D0 rcall LCD_write_char
115 .LVL19:
37:main.c **** LCD_write_byte(0,1);
116 .loc 1 37 0
117 0062 61E0 ldi r22,lo8(1)
118 0064 80E0 ldi r24,0
119 0066 00D0 rcall LCD_write_byte
120 .LVL20:
38:main.c **** LCD_write_byte(0,1);
121 .loc 1 38 0
122 0068 61E0 ldi r22,lo8(1)
123 006a 80E0 ldi r24,0
124 006c 00D0 rcall LCD_write_byte
125 .LVL21:
39:main.c **** LCD_write_char('*');
126 .loc 1 39 0
127 006e 8AE2 ldi r24,lo8(42)
128 0070 00D0 rcall LCD_write_char
129 .LVL22:
40:main.c ****
41:main.c **** LCD_write_english_string(0,1,"LOVE");
130 .loc 1 41 0
131 0072 40E0 ldi r20,lo8(.LC0)
132 0074 50E0 ldi r21,hi8(.LC0)
133 0076 61E0 ldi r22,lo8(1)
134 0078 80E0 ldi r24,0
135 007a 00D0 rcall LCD_write_english_string
136 .LVL23:
42:main.c ****
43:main.c **** while(1)
44:main.c **** {
45:main.c **** zwischenspeicher = PORTB;
46:main.c **** zwischenspeicher = zwischenspeicher ^ 0b00000001;
137 .loc 1 46 0
138 007c 41E0 ldi r20,lo8(1)
139 .LBB12:
140 .LBB13:
141 .LBB14:
142 .LBB15:
143 .file 2 "e:\\progs\\arduino-1.7.4\\hardware\\tools\\avr\\avr\\include\\util\\delay_basic.h"
1:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** /* Copyright (c) 2002, Marek Michalkiewicz
2:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** Copyright (c) 2007 Joerg Wunsch
3:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** All rights reserved.
4:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h ****
5:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** Redistribution and use in source and binary forms, with or without
6:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** modification, are permitted provided that the following conditions are met:
7:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h ****
8:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** * Redistributions of source code must retain the above copyright
9:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** notice, this list of conditions and the following disclaimer.
10:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h ****
11:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** * Redistributions in binary form must reproduce the above copyright
12:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** notice, this list of conditions and the following disclaimer in
13:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** the documentation and/or other materials provided with the
14:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** distribution.
15:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h ****
16:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** * Neither the name of the copyright holders nor the names of
17:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** contributors may be used to endorse or promote products derived
18:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** from this software without specific prior written permission.
19:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h ****
20:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
24:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** POSSIBILITY OF SUCH DAMAGE. */
31:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h ****
32:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** /* $Id$ */
33:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h ****
34:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** #ifndef _UTIL_DELAY_BASIC_H_
35:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** #define _UTIL_DELAY_BASIC_H_ 1
36:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h ****
37:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** #include <inttypes.h>
38:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h ****
39:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** #if !defined(__DOXYGEN__)
40:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** static inline void _delay_loop_1(uint8_t __count) __attribute__((always_inline));
41:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** static inline void _delay_loop_2(uint16_t __count) __attribute__((always_inline));
42:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** #endif
43:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h ****
44:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** /** \file */
45:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** /** \defgroup util_delay_basic <util/delay_basic.h>: Basic busy-wait delay loops
46:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** \code
47:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** #include <util/delay_basic.h>
48:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** \endcode
49:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h ****
50:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** The functions in this header file implement simple delay loops
51:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** that perform a busy-waiting. They are typically used to
52:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** facilitate short delays in the program execution. They are
53:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** implemented as count-down loops with a well-known CPU cycle
54:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** count per loop iteration. As such, no other processing can
55:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** occur simultaneously. It should be kept in mind that the
56:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** functions described here do not disable interrupts.
57:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h ****
58:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** In general, for long delays, the use of hardware timers is
59:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** much preferrable, as they free the CPU, and allow for
60:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** concurrent processing of other events while the timer is
61:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** running. However, in particular for very short delays, the
62:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** overhead of setting up a hardware timer is too much compared
63:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** to the overall delay time.
64:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h ****
65:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** Two inline functions are provided for the actual delay algorithms.
66:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h ****
67:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** */
68:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h ****
69:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** /** \ingroup util_delay_basic
70:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h ****
71:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** Delay loop using an 8-bit counter \c __count, so up to 256
72:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** iterations are possible. (The value 256 would have to be passed
73:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** as 0.) The loop executes three CPU cycles per iteration, not
74:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** including the overhead the compiler needs to setup the counter
75:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** register.
76:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h ****
77:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** Thus, at a CPU speed of 1 MHz, delays of up to 768 microseconds
78:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** can be achieved.
79:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** */
80:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** void
81:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** _delay_loop_1(uint8_t __count)
82:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** {
83:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** __asm__ volatile (
84:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** "1: dec %0" "\n\t"
85:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** "brne 1b"
86:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** : "=r" (__count)
87:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** : "0" (__count)
88:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** );
89:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** }
90:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h ****
91:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** /** \ingroup util_delay_basic
92:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h ****
93:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** Delay loop using a 16-bit counter \c __count, so up to 65536
94:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** iterations are possible. (The value 65536 would have to be
95:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** passed as 0.) The loop executes four CPU cycles per iteration,
96:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** not including the overhead the compiler requires to setup the
97:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** counter register pair.
98:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h ****
99:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** Thus, at a CPU speed of 1 MHz, delays of up to about 262.1
100:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** milliseconds can be achieved.
101:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** */
102:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** void
103:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** _delay_loop_2(uint16_t __count)
104:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** {
105:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h **** __asm__ volatile (
144 .loc 2 105 0
145 007e 29E1 ldi r18,lo8(25)
146 0080 30E0 ldi r19,0
147 .L3:
148 .LBE15:
149 .LBE14:
150 .LBE13:
151 .LBE12:
45:main.c **** zwischenspeicher = zwischenspeicher ^ 0b00000001;
152 .loc 1 45 0 discriminator 1
153 0082 88B3 in r24,0x18
154 .LVL24:
155 .loc 1 46 0 discriminator 1
156 0084 8427 eor r24,r20
157 .LVL25:
47:main.c **** PORTB = zwischenspeicher;
158 .loc 1 47 0 discriminator 1
159 0086 88BB out 0x18,r24
160 .LVL26:
161 0088 88E8 ldi r24,lo8(-120)
162 008a 93E1 ldi r25,lo8(19)
163 .LVL27:
164 .L4:
165 .LBB19:
166 .LBB18:
167 .LBB17:
168 .LBB16:
169 .loc 2 105 0
170 008c F901 movw r30,r18
171 /* #APP */
172 ; 105 "e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay_basic.h" 1
173 008e 3197 1: sbiw r30,1
174 0090 01F4 brne 1b
175 ; 0 "" 2
176 .LVL28:
177 /* #NOAPP */
178 0092 0197 sbiw r24,1
179 .LVL29:
180 .LBE16:
181 .LBE17:
182 .file 3 "e:\\progs\\arduino-1.7.4\\hardware\\tools\\avr\\avr\\include\\util\\delay.h"
1:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** /* Copyright (c) 2002, Marek Michalkiewicz
2:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** Copyright (c) 2004,2005,2007 Joerg Wunsch
3:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** Copyright (c) 2007 Florin-Viorel Petrov
4:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** All rights reserved.
5:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h ****
6:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** Redistribution and use in source and binary forms, with or without
7:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** modification, are permitted provided that the following conditions are met:
8:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h ****
9:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** * Redistributions of source code must retain the above copyright
10:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** notice, this list of conditions and the following disclaimer.
11:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h ****
12:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** * Redistributions in binary form must reproduce the above copyright
13:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** notice, this list of conditions and the following disclaimer in
14:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** the documentation and/or other materials provided with the
15:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** distribution.
16:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h ****
17:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** * Neither the name of the copyright holders nor the names of
18:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** contributors may be used to endorse or promote products derived
19:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** from this software without specific prior written permission.
20:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h ****
21:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
22:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
25:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
26:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
27:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
28:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
29:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
30:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
31:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** POSSIBILITY OF SUCH DAMAGE. */
32:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h ****
33:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** /* $Id$ */
34:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h ****
35:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** #ifndef _UTIL_DELAY_H_
36:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** #define _UTIL_DELAY_H_ 1
37:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h ****
38:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** #ifndef __HAS_DELAY_CYCLES
39:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** #define __HAS_DELAY_CYCLES 1
40:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** #endif
41:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h ****
42:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** #include <inttypes.h>
43:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** #include <util/delay_basic.h>
44:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** #include <math.h>
45:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h ****
46:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** /** \file */
47:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** /** \defgroup util_delay <util/delay.h>: Convenience functions for busy-wait delay loops
48:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** \code
49:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** #define F_CPU 1000000UL // 1 MHz
50:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** //#define F_CPU 14.7456E6
51:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** #include <util/delay.h>
52:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** \endcode
53:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h ****
54:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** \note As an alternative method, it is possible to pass the
55:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** F_CPU macro down to the compiler from the Makefile.
56:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** Obviously, in that case, no \c \#define statement should be
57:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** used.
58:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h ****
59:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** The functions in this header file are wrappers around the basic
60:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** busy-wait functions from <util/delay_basic.h>. They are meant as
61:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** convenience functions where actual time values can be specified
62:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** rather than a number of cycles to wait for. The idea behind is
63:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** that compile-time constant expressions will be eliminated by
64:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** compiler optimization so floating-point expressions can be used
65:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** to calculate the number of delay cycles needed based on the CPU
66:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** frequency passed by the macro F_CPU.
67:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h ****
68:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** \note In order for these functions to work as intended, compiler
69:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** optimizations <em>must</em> be enabled, and the delay time
70:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** <em>must</em> be an expression that is a known constant at
71:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** compile-time. If these requirements are not met, the resulting
72:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** delay will be much longer (and basically unpredictable), and
73:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** applications that otherwise do not use floating-point calculations
74:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** will experience severe code bloat by the floating-point library
75:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** routines linked into the application.
76:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h ****
77:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** The functions available allow the specification of microsecond, and
78:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** millisecond delays directly, using the application-supplied macro
79:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** F_CPU as the CPU clock frequency (in Hertz).
80:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h ****
81:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** */
82:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h ****
83:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** #if !defined(__DOXYGEN__)
84:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** static inline void _delay_us(double __us) __attribute__((always_inline));
85:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** static inline void _delay_ms(double __ms) __attribute__((always_inline));
86:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** #endif
87:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h ****
88:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** #ifndef F_CPU
89:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** /* prevent compiler error by supplying a default */
90:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** # warning "F_CPU not defined for <util/delay.h>"
91:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** # define F_CPU 1000000UL
92:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** #endif
93:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h ****
94:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** #ifndef __OPTIMIZE__
95:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** # warning "Compiler optimizations disabled; functions from <util/delay.h> won't work as designed"
96:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** #endif
97:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h ****
98:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** #if __HAS_DELAY_CYCLES && defined(__OPTIMIZE__) && \
99:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** !defined(__DELAY_BACKWARD_COMPATIBLE__) && \
100:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** __STDC_HOSTED__
101:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** # include <math.h>
102:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** #endif
103:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h ****
104:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** /**
105:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** \ingroup util_delay
106:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h ****
107:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** Perform a delay of \c __ms milliseconds, using _delay_loop_2().
108:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h ****
109:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** The macro F_CPU is supposed to be defined to a
110:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** constant defining the CPU clock frequency (in Hertz).
111:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h ****
112:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** The maximal possible delay is 262.14 ms / F_CPU in MHz.
113:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h ****
114:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** When the user request delay which exceed the maximum possible one,
115:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** _delay_ms() provides a decreased resolution functionality. In this
116:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** mode _delay_ms() will work with a resolution of 1/10 ms, providing
117:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** delays up to 6.5535 seconds (independent from CPU frequency). The
118:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** user will not be informed about decreased resolution.
119:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h ****
120:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** If the avr-gcc toolchain has __builtin_avr_delay_cycles(unsigned long)
121:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** support, maximal possible delay is 4294967.295 ms/ F_CPU in MHz. For
122:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** values greater than the maximal possible delay, overflows results in
123:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** no delay i.e., 0ms.
124:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h ****
125:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** Conversion of __us into clock cycles may not always result in integer.
126:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** By default, the clock cycles rounded up to next integer. This ensures that
127:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** the user gets atleast __us microseconds of delay.
128:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h ****
129:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** Alternatively, user can define __DELAY_ROUND_DOWN__ and __DELAY_ROUND_CLOSEST__
130:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** to round down and round to closest integer.
131:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h ****
132:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** Note: The new implementation of _delay_ms(double __ms) with
133:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** __builtin_avr_delay_cycles(unsigned long) support is not backward compatible.
134:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** User can define __DELAY_BACKWARD_COMPATIBLE__ to get a backward compatible delay.
135:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** Also, the backward compatible
136:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** algorithm will be chosen if the code is compiled in a <em>freestanding
137:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** environment</em> (GCC option \c -ffreestanding), as the math functions
138:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** required for rounding are not available to the compiler then.
139:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h ****
140:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** */
141:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** void
142:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** _delay_ms(double __ms)
143:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** {
144:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** double __tmp ;
145:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** #if __HAS_DELAY_CYCLES && defined(__OPTIMIZE__) && \
146:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** !defined(__DELAY_BACKWARD_COMPATIBLE__) && \
147:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** __STDC_HOSTED__
148:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** uint32_t __ticks_dc;
149:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** extern void __builtin_avr_delay_cycles(unsigned long);
150:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** __tmp = ((F_CPU) / 1e3) * __ms;
151:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h ****
152:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** #if defined(__DELAY_ROUND_DOWN__)
153:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** __ticks_dc = (uint32_t)fabs(__tmp);
154:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h ****
155:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** #elif defined(__DELAY_ROUND_CLOSEST__)
156:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** __ticks_dc = (uint32_t)(fabs(__tmp)+0.5);
157:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h ****
158:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** #else
159:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** //round up by default
160:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** __ticks_dc = (uint32_t)(ceil(fabs(__tmp)));
161:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** #endif
162:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h ****
163:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** __builtin_avr_delay_cycles(__ticks_dc);
164:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h ****
165:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** #else
166:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** uint16_t __ticks;
167:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** __tmp = ((F_CPU) / 4e3) * __ms;
168:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** if (__tmp < 1.0)
169:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** __ticks = 1;
170:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** else if (__tmp > 65535)
171:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** {
172:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** // __ticks = requested delay in 1/10 ms
173:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** __ticks = (uint16_t) (__ms * 10.0);
174:e:\progs\arduino-1.7.4\hardware\tools\avr\avr\include\util\delay.h **** while(__ticks)
183 .loc 3 174 0
184 0094 01F4 brne .L4
185 0096 00C0 rjmp .L3
186 .LBE18:
187 .LBE19:
188 .cfi_endproc
189 .LFE6:
191 .text
192 .Letext0:
193 .file 4 "e:\\progs\\arduino-1.7.4\\hardware\\tools\\avr\\avr\\include\\stdint.h"
194 .file 5 "../00_Lib/nokia_5110.h"
DEFINED SYMBOLS
*ABS*:00000000 main.c
C:\Users\q242695\AppData\Local\Temp\ccq6mhBU.s:2 *ABS*:0000003e __SP_H__
C:\Users\q242695\AppData\Local\Temp\ccq6mhBU.s:3 *ABS*:0000003d __SP_L__
C:\Users\q242695\AppData\Local\Temp\ccq6mhBU.s:4 *ABS*:0000003f __SREG__
C:\Users\q242695\AppData\Local\Temp\ccq6mhBU.s:5 *ABS*:00000000 __tmp_reg__
C:\Users\q242695\AppData\Local\Temp\ccq6mhBU.s:6 *ABS*:00000001 __zero_reg__
C:\Users\q242695\AppData\Local\Temp\ccq6mhBU.s:16 .text.startup:00000000 main
UNDEFINED SYMBOLS
LCD_init
LCD_clear
LCD_write_char
LCD_write_byte
LCD_write_english_string
__do_copy_data