529 lines
33 KiB
Plaintext
529 lines
33 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 .global uart_init
|
|
12 uart_init:
|
|
13 .LFB6:
|
|
14 .file 1 "main.c"
|
|
1:main.c **** #ifndef F_CPU
|
|
2:main.c **** #define F_CPU 8000000
|
|
3:main.c **** #endif
|
|
4:main.c ****
|
|
5:main.c **** #include <avr/io.h>
|
|
6:main.c **** #include <util/delay.h>
|
|
7:main.c **** #define BAUD 9600
|
|
8:main.c **** #define m168p
|
|
9:main.c **** #include <util/setbaud.h>
|
|
10:main.c ****
|
|
11:main.c **** /* Definizioni per il m168p */
|
|
12:main.c **** #ifdef m168p
|
|
13:main.c **** #define UCSRA UCSR0A
|
|
14:main.c **** #define UCSRB UCSR0B
|
|
15:main.c **** #define UCSRC UCSR0C
|
|
16:main.c **** #define UBRRH UBRR0H
|
|
17:main.c **** #define UBRRL UBRR0L
|
|
18:main.c **** #define U2X U2X0
|
|
19:main.c **** #define UDRE UDRE0
|
|
20:main.c **** #define UDR UDR0
|
|
21:main.c **** #endif
|
|
22:main.c **** /* fine definizioni per il m168p*/
|
|
23:main.c ****
|
|
24:main.c **** /* Inizializza la porta seriale */
|
|
25:main.c **** void uart_init(void)
|
|
26:main.c **** {
|
|
15 .loc 1 26 0
|
|
16 .cfi_startproc
|
|
17 /* prologue: function */
|
|
18 /* frame size = 0 */
|
|
19 /* stack size = 0 */
|
|
20 .L__stack_usage = 0
|
|
27:main.c **** UBRRH = UBRRH_VALUE;
|
|
21 .loc 1 27 0
|
|
22 0000 1092 C500 sts 197,__zero_reg__
|
|
28:main.c **** UBRRL = UBRRL_VALUE;
|
|
23 .loc 1 28 0
|
|
24 0004 83E3 ldi r24,lo8(51)
|
|
25 0006 8093 C400 sts 196,r24
|
|
29:main.c **** #if USE_2X0
|
|
30:main.c **** UCSRA |= (1 << U2X);
|
|
31:main.c **** #else
|
|
32:main.c **** UCSRA &= ~(1 << U2X);
|
|
26 .loc 1 32 0
|
|
27 000a E0EC ldi r30,lo8(-64)
|
|
28 000c F0E0 ldi r31,0
|
|
29 000e 8081 ld r24,Z
|
|
30 0010 8D7F andi r24,lo8(-3)
|
|
31 0012 8083 st Z,r24
|
|
33:main.c **** #endif
|
|
34:main.c ****
|
|
35:main.c **** UCSRC= _BV(UCSZ01) | _BV(UCSZ00); // 8 N 1
|
|
32 .loc 1 35 0
|
|
33 0014 86E0 ldi r24,lo8(6)
|
|
34 0016 8093 C200 sts 194,r24
|
|
36:main.c **** UCSRB= (1<<TXEN0);
|
|
35 .loc 1 36 0
|
|
36 001a 88E0 ldi r24,lo8(8)
|
|
37 001c 8093 C100 sts 193,r24
|
|
38 0020 0895 ret
|
|
39 .cfi_endproc
|
|
40 .LFE6:
|
|
42 .global uart_putc
|
|
44 uart_putc:
|
|
45 .LFB7:
|
|
37:main.c **** // UCSRB= (1<<RXEN0)|(1<<TXEN0);
|
|
38:main.c **** }
|
|
39:main.c ****
|
|
40:main.c **** /* uart_putc(): scrive un carattere sulla porta seriale*/
|
|
41:main.c **** int uart_putc(unsigned char c)
|
|
42:main.c **** {
|
|
46 .loc 1 42 0
|
|
47 .cfi_startproc
|
|
48 /* prologue: function */
|
|
49 /* frame size = 0 */
|
|
50 /* stack size = 0 */
|
|
51 .L__stack_usage = 0
|
|
52 .LVL0:
|
|
53 .L4:
|
|
43:main.c **** while (!(UCSRA & (1<<UDRE))) { /* warten bis Senden moeglich */
|
|
54 .loc 1 43 0 discriminator 1
|
|
55 0022 9091 C000 lds r25,192
|
|
56 0026 95FF sbrs r25,5
|
|
57 0028 00C0 rjmp .L4
|
|
44:main.c **** }
|
|
45:main.c **** UDR = c; /* sende Zeichen */
|
|
58 .loc 1 45 0
|
|
59 002a 8093 C600 sts 198,r24
|
|
46:main.c **** return 0;
|
|
47:main.c **** }
|
|
60 .loc 1 47 0
|
|
61 002e 80E0 ldi r24,0
|
|
62 0030 90E0 ldi r25,0
|
|
63 .LVL1:
|
|
64 0032 0895 ret
|
|
65 .cfi_endproc
|
|
66 .LFE7:
|
|
68 .global uart_puts
|
|
70 uart_puts:
|
|
71 .LFB8:
|
|
48:main.c ****
|
|
49:main.c **** /* uart_puts(): scrive una stringa sulla porta seriale*/
|
|
50:main.c **** void uart_puts (char *s)
|
|
51:main.c **** {
|
|
72 .loc 1 51 0
|
|
73 .cfi_startproc
|
|
74 .LVL2:
|
|
75 0034 CF93 push r28
|
|
76 .LCFI0:
|
|
77 .cfi_def_cfa_offset 3
|
|
78 .cfi_offset 28, -2
|
|
79 0036 DF93 push r29
|
|
80 .LCFI1:
|
|
81 .cfi_def_cfa_offset 4
|
|
82 .cfi_offset 29, -3
|
|
83 /* prologue: function */
|
|
84 /* frame size = 0 */
|
|
85 /* stack size = 2 */
|
|
86 .L__stack_usage = 2
|
|
87 0038 EC01 movw r28,r24
|
|
88 .LVL3:
|
|
89 .L7:
|
|
52:main.c **** while (*s) {
|
|
90 .loc 1 52 0 discriminator 1
|
|
91 003a 8991 ld r24,Y+
|
|
92 .LVL4:
|
|
93 003c 8823 tst r24
|
|
94 003e 01F0 breq .L9
|
|
53:main.c **** uart_putc(*s);
|
|
95 .loc 1 53 0
|
|
96 0040 0E94 0000 call uart_putc
|
|
97 .LVL5:
|
|
98 0044 00C0 rjmp .L7
|
|
99 .LVL6:
|
|
100 .L9:
|
|
101 /* epilogue start */
|
|
54:main.c **** s++;
|
|
55:main.c **** }
|
|
56:main.c **** }
|
|
102 .loc 1 56 0
|
|
103 0046 DF91 pop r29
|
|
104 0048 CF91 pop r28
|
|
105 .LVL7:
|
|
106 004a 0895 ret
|
|
107 .cfi_endproc
|
|
108 .LFE8:
|
|
110 .section .rodata.str1.1,"aMS",@progbits,1
|
|
111 .LC0:
|
|
112 0000 434C 00 .string "CL"
|
|
113 .LC1:
|
|
114 0003 4453 5300 .string "DSS"
|
|
115 .LC2:
|
|
116 0007 5454 2A20 .string "TT* Love Silvia *\n"
|
|
116 4C6F 7665
|
|
116 2020 5369
|
|
116 6C76 6961
|
|
116 202A 0A00
|
|
117 .LC3:
|
|
118 001b 5452 5400 .string "TRT"
|
|
119 .section .text.startup,"ax",@progbits
|
|
120 .global main
|
|
122 main:
|
|
123 .LFB9:
|
|
57:main.c ****
|
|
58:main.c **** /* Funzioni oer il display Digole */
|
|
59:main.c ****
|
|
60:main.c **** /* Main - Programma principale*/
|
|
61:main.c **** int main (void)
|
|
62:main.c **** {
|
|
124 .loc 1 62 0
|
|
125 .cfi_startproc
|
|
126 /* prologue: function */
|
|
127 /* frame size = 0 */
|
|
128 /* stack size = 0 */
|
|
129 .L__stack_usage = 0
|
|
63:main.c **** unsigned char zwischenspeicher;
|
|
64:main.c **** DDRC = 0b00000001;
|
|
130 .loc 1 64 0
|
|
131 0000 81E0 ldi r24,lo8(1)
|
|
132 0002 87B9 out 0x7,r24
|
|
65:main.c ****
|
|
66:main.c **** uart_init();
|
|
133 .loc 1 66 0
|
|
134 0004 0E94 0000 call uart_init
|
|
135 .LVL8:
|
|
136 .LBB6:
|
|
137 .LBB7:
|
|
138 .file 2 "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);
|
|
139 .loc 2 163 0
|
|
140 0008 2FEF ldi r18,lo8(4799999)
|
|
141 000a 3DE3 ldi r19,hi8(4799999)
|
|
142 000c 89E4 ldi r24,hlo8(4799999)
|
|
143 000e 2150 1: subi r18,1
|
|
144 0010 3040 sbci r19,0
|
|
145 0012 8040 sbci r24,0
|
|
146 0014 01F4 brne 1b
|
|
147 0016 00C0 rjmp .
|
|
148 0018 0000 nop
|
|
149 .LBE7:
|
|
150 .LBE6:
|
|
67:main.c **** _delay_ms(3000);
|
|
68:main.c **** uart_puts("CL");
|
|
151 .loc 1 68 0
|
|
152 001a 80E0 ldi r24,lo8(.LC0)
|
|
153 001c 90E0 ldi r25,hi8(.LC0)
|
|
154 001e 0E94 0000 call uart_puts
|
|
155 .LVL9:
|
|
69:main.c **** uart_puts("DSS");
|
|
156 .loc 1 69 0
|
|
157 0022 80E0 ldi r24,lo8(.LC1)
|
|
158 0024 90E0 ldi r25,hi8(.LC1)
|
|
159 0026 0E94 0000 call uart_puts
|
|
160 .LVL10:
|
|
70:main.c **** uart_putc(0);
|
|
161 .loc 1 70 0
|
|
162 002a 80E0 ldi r24,0
|
|
163 002c 0E94 0000 call uart_putc
|
|
164 .LVL11:
|
|
71:main.c **** uart_puts("TT* Love Silvia *\n");
|
|
165 .loc 1 71 0
|
|
166 0030 80E0 ldi r24,lo8(.LC2)
|
|
167 0032 90E0 ldi r25,hi8(.LC2)
|
|
168 0034 0E94 0000 call uart_puts
|
|
169 .LVL12:
|
|
72:main.c **** uart_puts("TRT");
|
|
170 .loc 1 72 0
|
|
171 0038 80E0 ldi r24,lo8(.LC3)
|
|
172 003a 90E0 ldi r25,hi8(.LC3)
|
|
173 003c 0E94 0000 call uart_puts
|
|
174 .LVL13:
|
|
73:main.c **** uart_puts("TT* Love Silvia *\n");
|
|
175 .loc 1 73 0
|
|
176 0040 80E0 ldi r24,lo8(.LC2)
|
|
177 0042 90E0 ldi r25,hi8(.LC2)
|
|
178 0044 0E94 0000 call uart_puts
|
|
179 .LVL14:
|
|
74:main.c **** uart_puts("TRT");
|
|
180 .loc 1 74 0
|
|
181 0048 80E0 ldi r24,lo8(.LC3)
|
|
182 004a 90E0 ldi r25,hi8(.LC3)
|
|
183 004c 0E94 0000 call uart_puts
|
|
184 .LVL15:
|
|
75:main.c **** uart_puts("TT* Love Silvia *\n");
|
|
185 .loc 1 75 0
|
|
186 0050 80E0 ldi r24,lo8(.LC2)
|
|
187 0052 90E0 ldi r25,hi8(.LC2)
|
|
188 0054 0E94 0000 call uart_puts
|
|
189 .LVL16:
|
|
76:main.c **** uart_puts("TRT");
|
|
190 .loc 1 76 0
|
|
191 0058 80E0 ldi r24,lo8(.LC3)
|
|
192 005a 90E0 ldi r25,hi8(.LC3)
|
|
193 005c 0E94 0000 call uart_puts
|
|
194 .LVL17:
|
|
77:main.c **** uart_puts("TT* Love Silvia *\n");
|
|
195 .loc 1 77 0
|
|
196 0060 80E0 ldi r24,lo8(.LC2)
|
|
197 0062 90E0 ldi r25,hi8(.LC2)
|
|
198 0064 0E94 0000 call uart_puts
|
|
199 .LVL18:
|
|
78:main.c **** uart_puts("TRT");
|
|
200 .loc 1 78 0
|
|
201 0068 80E0 ldi r24,lo8(.LC3)
|
|
202 006a 90E0 ldi r25,hi8(.LC3)
|
|
203 006c 0E94 0000 call uart_puts
|
|
204 .LVL19:
|
|
79:main.c **** uart_puts("TT* Love Silvia *\n");
|
|
205 .loc 1 79 0
|
|
206 0070 80E0 ldi r24,lo8(.LC2)
|
|
207 0072 90E0 ldi r25,hi8(.LC2)
|
|
208 0074 0E94 0000 call uart_puts
|
|
209 .LVL20:
|
|
80:main.c **** uart_puts("TRT");
|
|
210 .loc 1 80 0
|
|
211 0078 80E0 ldi r24,lo8(.LC3)
|
|
212 007a 90E0 ldi r25,hi8(.LC3)
|
|
213 007c 0E94 0000 call uart_puts
|
|
214 .LVL21:
|
|
81:main.c ****
|
|
82:main.c **** /*
|
|
83:main.c **** uart_puts("SF");
|
|
84:main.c **** uart_putc(6);
|
|
85:main.c **** uart_puts("TT12345678901234567890123456789012\n");
|
|
86:main.c ****
|
|
87:main.c **** uart_puts("SF");
|
|
88:main.c **** uart_putc(10);
|
|
89:main.c **** uart_puts("TRT");
|
|
90:main.c **** uart_puts("TT123456789012345678901\n");
|
|
91:main.c ****
|
|
92:main.c **** uart_puts("SF");
|
|
93:main.c **** uart_putc(0);
|
|
94:main.c **** uart_puts("TRT");
|
|
95:main.c **** uart_puts("TT1234567890123456\n");
|
|
96:main.c ****
|
|
97:main.c **** uart_puts("SF");
|
|
98:main.c **** uart_putc(18);
|
|
99:main.c **** uart_puts("TRT");
|
|
100:main.c **** uart_puts("TT12345678901234\n");
|
|
101:main.c **** */
|
|
102:main.c ****
|
|
103:main.c **** while(1) {
|
|
104:main.c **** zwischenspeicher = PORTC;
|
|
105:main.c **** zwischenspeicher = zwischenspeicher ^ 0b00000001;
|
|
215 .loc 1 105 0
|
|
216 0080 91E0 ldi r25,lo8(1)
|
|
217 .L11:
|
|
104:main.c **** zwischenspeicher = zwischenspeicher ^ 0b00000001;
|
|
218 .loc 1 104 0 discriminator 1
|
|
219 0082 88B1 in r24,0x8
|
|
220 .LVL22:
|
|
221 .loc 1 105 0 discriminator 1
|
|
222 0084 8927 eor r24,r25
|
|
223 .LVL23:
|
|
106:main.c **** PORTC = zwischenspeicher;
|
|
224 .loc 1 106 0 discriminator 1
|
|
225 0086 88B9 out 0x8,r24
|
|
226 .LVL24:
|
|
227 .LBB8:
|
|
228 .LBB9:
|
|
229 .loc 2 163 0 discriminator 1
|
|
230 0088 2FEF ldi r18,lo8(799999)
|
|
231 008a 34E3 ldi r19,hi8(799999)
|
|
232 008c 8CE0 ldi r24,hlo8(799999)
|
|
233 008e 2150 1: subi r18,1
|
|
234 0090 3040 sbci r19,0
|
|
235 0092 8040 sbci r24,0
|
|
236 0094 01F4 brne 1b
|
|
237 .LVL25:
|
|
238 0096 00C0 rjmp .
|
|
239 0098 0000 nop
|
|
240 009a 00C0 rjmp .L11
|
|
241 .LBE9:
|
|
242 .LBE8:
|
|
243 .cfi_endproc
|
|
244 .LFE9:
|
|
246 .text
|
|
247 .Letext0:
|
|
248 .file 3 "e:\\progs\\arduino-1.7.4\\hardware\\tools\\avr\\avr\\include\\stdint.h"
|
|
DEFINED SYMBOLS
|
|
*ABS*:00000000 main.c
|
|
C:\Users\q242695\AppData\Local\Temp\cc4MGEr5.s:2 *ABS*:0000003e __SP_H__
|
|
C:\Users\q242695\AppData\Local\Temp\cc4MGEr5.s:3 *ABS*:0000003d __SP_L__
|
|
C:\Users\q242695\AppData\Local\Temp\cc4MGEr5.s:4 *ABS*:0000003f __SREG__
|
|
C:\Users\q242695\AppData\Local\Temp\cc4MGEr5.s:5 *ABS*:00000000 __tmp_reg__
|
|
C:\Users\q242695\AppData\Local\Temp\cc4MGEr5.s:6 *ABS*:00000001 __zero_reg__
|
|
C:\Users\q242695\AppData\Local\Temp\cc4MGEr5.s:12 .text:00000000 uart_init
|
|
C:\Users\q242695\AppData\Local\Temp\cc4MGEr5.s:44 .text:00000022 uart_putc
|
|
C:\Users\q242695\AppData\Local\Temp\cc4MGEr5.s:70 .text:00000034 uart_puts
|
|
C:\Users\q242695\AppData\Local\Temp\cc4MGEr5.s:122 .text.startup:00000000 main
|
|
|
|
UNDEFINED SYMBOLS
|
|
__do_copy_data
|