20131211-181002
This commit is contained in:
parent
64b1bd8c1b
commit
11933f0506
Binary file not shown.
@ -5,8 +5,8 @@
|
|||||||
:100040000C9453000C9453000C9453000C945300E4
|
:100040000C9453000C9453000C9453000C945300E4
|
||||||
:100050000C945300F80011241FBECFE5D4E0DEBF9E
|
:100050000C945300F80011241FBECFE5D4E0DEBF9E
|
||||||
:10006000CDBF10E0A0E6B0E0EAEDF7E002C00590F9
|
:10006000CDBF10E0A0E6B0E0EAEDF7E002C00590F9
|
||||||
:100070000D92AE37B107D9F720E0AEE7B0E001C08E
|
:100070000D92A038B107D9F720E0A0E8B0E001C0A8
|
||||||
:100080001D92A238B207E1F710E0C6E5D0E004C047
|
:100080001D92A438B207E1F710E0C6E5D0E004C045
|
||||||
:100090002297FE010E940401C435D107C9F70E94CE
|
:100090002297FE010E940401C435D107C9F70E94CE
|
||||||
:1000A00065000C94EB030C940000FC0103C05D9B05
|
:1000A00065000C94EB030C940000FC0103C05D9B05
|
||||||
:1000B000FECF8CB981918111FACF089585E083BF7D
|
:1000B000FECF8CB981918111FACF089585E083BF7D
|
||||||
@ -15,21 +15,21 @@
|
|||||||
:1000E000215030408040E1F700C00000F3CF1F9264
|
:1000E000215030408040E1F700C00000F3CF1F9264
|
||||||
:1000F0000F920FB60F9211240F931F932F933F93DC
|
:1000F0000F920FB60F9211240F931F932F933F93DC
|
||||||
:100100004F935F936F937F938F939F93AF93BF931F
|
:100100004F935F936F937F938F939F93AF93BF931F
|
||||||
:10011000EF93FF93CF93DF93CDB7DEB72C97DEBF7E
|
:10011000EF93FF93CF93DF93CDB7DEB72F97DEBF7B
|
||||||
:10012000CDBF80918100813220F48F5F8093810068
|
:10012000CDBF80918300813220F48F5F8093830064
|
||||||
:1001300044C01092810080917E001F928F93809125
|
:1001300044C010928300809180001F928F93809121
|
||||||
:100140007F001F928F93809160001F928F9381E6B2
|
:1001400081001F928F93809160001F928F9381E6B0
|
||||||
:1001500090E09F938F931F928CE08F938E010F5F9F
|
:1001500090E09F938F931F928FE08F938E010F5F9C
|
||||||
:100160001F4F1F930F930E940801C8010E94550062
|
:100160001F4F1F930F930E940801C8010E94550062
|
||||||
:1001700080917E008F5F0FB6F894DEBF0FBECDBFBB
|
:10017000809180008F5F0FB6F894DEBF0FBECDBFB9
|
||||||
:100180008C3318F480937E0007C010927E0080911B
|
:100180008C3318F48093800007C010928000809117
|
||||||
:100190007F008F5F80937F0080917F008C3338F0E9
|
:1001900081008F5F80938100809181008C3338F0E3
|
||||||
:1001A00010927F00809160008F5F8093600080914B
|
:1001A00010928100809160008F5F80936000809149
|
||||||
:1001B0006000883110F0109260002C960FB6F89411
|
:1001B0006000883110F0109260002F960FB6F8940E
|
||||||
:1001C000DEBF0FBECDBFDF91CF91FF91EF91BF9109
|
:1001C000DEBF0FBECDBFDF91CF91FF91EF91BF9109
|
||||||
:1001D000AF919F918F917F916F915F914F913F91DF
|
:1001D000AF919F918F917F916F915F914F913F91DF
|
||||||
:1001E0002F911F910F910F900FBE0F901F90189598
|
:1001E0002F911F910F910F900FBE0F901F90189598
|
||||||
:1001F00086E080BD539A10BC83E389B982E790E022
|
:1001F00086E080BD539A10BC83E389B983E790E021
|
||||||
:100200000C945500EE0FFF1F0590F491E02D09941A
|
:100200000C945500EE0FFF1F0590F491E02D09941A
|
||||||
:10021000AEE0B0E0EEE0F1E00C94C2030D891E897F
|
:10021000AEE0B0E0EEE0F1E00C94C2030D891E897F
|
||||||
:100220008F89988D26E02C831A83098397FF02C05B
|
:100220008F89988D26E02C831A83098397FF02C05B
|
||||||
@ -125,5 +125,5 @@
|
|||||||
:1007C000AA81B981CE0FD11D0FB6F894DEBF0FBE3E
|
:1007C000AA81B981CE0FD11D0FB6F894DEBF0FBE3E
|
||||||
:0A07D000CDBFED010895F894FFCFAE
|
:0A07D000CDBFED010895F894FFCFAE
|
||||||
:1007DA000C74253032643A253032643A253032645A
|
:1007DA000C74253032643A253032643A253032645A
|
||||||
:0E07EA000A005561727420646F6E65210A006A
|
:1007EA000D0A005561727420646F6E65210A00005B
|
||||||
:00000001FF
|
:00000001FF
|
||||||
|
@ -5,31 +5,31 @@ Sections:
|
|||||||
Idx Name Size VMA LMA File off Algn
|
Idx Name Size VMA LMA File off Algn
|
||||||
0 .text 000007da 00000000 00000000 00000094 2**1
|
0 .text 000007da 00000000 00000000 00000094 2**1
|
||||||
CONTENTS, ALLOC, LOAD, READONLY, CODE
|
CONTENTS, ALLOC, LOAD, READONLY, CODE
|
||||||
1 .data 0000001e 00800060 000007da 0000086e 2**0
|
1 .data 00000020 00800060 000007da 0000086e 2**0
|
||||||
CONTENTS, ALLOC, LOAD, DATA
|
CONTENTS, ALLOC, LOAD, DATA
|
||||||
2 .bss 00000004 0080007e 0080007e 0000088c 2**0
|
2 .bss 00000004 00800080 00800080 0000088e 2**0
|
||||||
ALLOC
|
ALLOC
|
||||||
3 .stab 00000c84 00000000 00000000 0000088c 2**2
|
3 .stab 00000c84 00000000 00000000 00000890 2**2
|
||||||
CONTENTS, READONLY, DEBUGGING
|
CONTENTS, READONLY, DEBUGGING
|
||||||
4 .stabstr 000001aa 00000000 00000000 00001510 2**0
|
4 .stabstr 000001aa 00000000 00000000 00001514 2**0
|
||||||
CONTENTS, READONLY, DEBUGGING
|
CONTENTS, READONLY, DEBUGGING
|
||||||
5 .comment 0000002f 00000000 00000000 000016ba 2**0
|
5 .comment 0000002f 00000000 00000000 000016be 2**0
|
||||||
CONTENTS, READONLY
|
CONTENTS, READONLY
|
||||||
6 .debug_aranges 000000a0 00000000 00000000 000016e9 2**0
|
6 .debug_aranges 000000a0 00000000 00000000 000016ed 2**0
|
||||||
CONTENTS, READONLY, DEBUGGING
|
CONTENTS, READONLY, DEBUGGING
|
||||||
7 .debug_info 00000f20 00000000 00000000 00001789 2**0
|
7 .debug_info 00000f20 00000000 00000000 0000178d 2**0
|
||||||
CONTENTS, READONLY, DEBUGGING
|
CONTENTS, READONLY, DEBUGGING
|
||||||
8 .debug_abbrev 0000078d 00000000 00000000 000026a9 2**0
|
8 .debug_abbrev 0000078d 00000000 00000000 000026ad 2**0
|
||||||
CONTENTS, READONLY, DEBUGGING
|
CONTENTS, READONLY, DEBUGGING
|
||||||
9 .debug_line 000007f9 00000000 00000000 00002e36 2**0
|
9 .debug_line 000007f9 00000000 00000000 00002e3a 2**0
|
||||||
CONTENTS, READONLY, DEBUGGING
|
CONTENTS, READONLY, DEBUGGING
|
||||||
10 .debug_frame 00000178 00000000 00000000 00003630 2**2
|
10 .debug_frame 00000178 00000000 00000000 00003634 2**2
|
||||||
CONTENTS, READONLY, DEBUGGING
|
CONTENTS, READONLY, DEBUGGING
|
||||||
11 .debug_str 00000510 00000000 00000000 000037a8 2**0
|
11 .debug_str 00000510 00000000 00000000 000037ac 2**0
|
||||||
CONTENTS, READONLY, DEBUGGING
|
CONTENTS, READONLY, DEBUGGING
|
||||||
12 .debug_loc 000007d2 00000000 00000000 00003cb8 2**0
|
12 .debug_loc 000007d2 00000000 00000000 00003cbc 2**0
|
||||||
CONTENTS, READONLY, DEBUGGING
|
CONTENTS, READONLY, DEBUGGING
|
||||||
13 .debug_ranges 00000060 00000000 00000000 0000448a 2**0
|
13 .debug_ranges 00000060 00000000 00000000 0000448e 2**0
|
||||||
CONTENTS, READONLY, DEBUGGING
|
CONTENTS, READONLY, DEBUGGING
|
||||||
|
|
||||||
Disassembly of section .text:
|
Disassembly of section .text:
|
||||||
@ -77,13 +77,13 @@ Disassembly of section .text:
|
|||||||
6c: 02 c0 rjmp .+4 ; 0x72 <__do_copy_data+0x10>
|
6c: 02 c0 rjmp .+4 ; 0x72 <__do_copy_data+0x10>
|
||||||
6e: 05 90 lpm r0, Z+
|
6e: 05 90 lpm r0, Z+
|
||||||
70: 0d 92 st X+, r0
|
70: 0d 92 st X+, r0
|
||||||
72: ae 37 cpi r26, 0x7E ; 126
|
72: a0 38 cpi r26, 0x80 ; 128
|
||||||
74: b1 07 cpc r27, r17
|
74: b1 07 cpc r27, r17
|
||||||
76: d9 f7 brne .-10 ; 0x6e <__do_copy_data+0xc>
|
76: d9 f7 brne .-10 ; 0x6e <__do_copy_data+0xc>
|
||||||
|
|
||||||
00000078 <__do_clear_bss>:
|
00000078 <__do_clear_bss>:
|
||||||
78: 20 e0 ldi r18, 0x00 ; 0
|
78: 20 e0 ldi r18, 0x00 ; 0
|
||||||
7a: ae e7 ldi r26, 0x7E ; 126
|
7a: a0 e8 ldi r26, 0x80 ; 128
|
||||||
7c: b0 e0 ldi r27, 0x00 ; 0
|
7c: b0 e0 ldi r27, 0x00 ; 0
|
||||||
7e: 01 c0 rjmp .+2 ; 0x82 <.do_clear_bss_start>
|
7e: 01 c0 rjmp .+2 ; 0x82 <.do_clear_bss_start>
|
||||||
|
|
||||||
@ -91,7 +91,7 @@ Disassembly of section .text:
|
|||||||
80: 1d 92 st X+, r1
|
80: 1d 92 st X+, r1
|
||||||
|
|
||||||
00000082 <.do_clear_bss_start>:
|
00000082 <.do_clear_bss_start>:
|
||||||
82: a2 38 cpi r26, 0x82 ; 130
|
82: a4 38 cpi r26, 0x84 ; 132
|
||||||
84: b2 07 cpc r27, r18
|
84: b2 07 cpc r27, r18
|
||||||
86: e1 f7 brne .-8 ; 0x80 <.do_clear_bss_loop>
|
86: e1 f7 brne .-8 ; 0x80 <.do_clear_bss_loop>
|
||||||
|
|
||||||
@ -247,24 +247,24 @@ ISR(TIMER0_OVF_vect) {
|
|||||||
116: df 93 push r29
|
116: df 93 push r29
|
||||||
118: cd b7 in r28, 0x3d ; 61
|
118: cd b7 in r28, 0x3d ; 61
|
||||||
11a: de b7 in r29, 0x3e ; 62
|
11a: de b7 in r29, 0x3e ; 62
|
||||||
11c: 2c 97 sbiw r28, 0x0c ; 12
|
11c: 2f 97 sbiw r28, 0x0f ; 15
|
||||||
11e: de bf out 0x3e, r29 ; 62
|
11e: de bf out 0x3e, r29 ; 62
|
||||||
120: cd bf out 0x3d, r28 ; 61
|
120: cd bf out 0x3d, r28 ; 61
|
||||||
if(timer++ > 32) {
|
if(timer++ > 32) {
|
||||||
122: 80 91 81 00 lds r24, 0x0081
|
122: 80 91 83 00 lds r24, 0x0083
|
||||||
126: 81 32 cpi r24, 0x21 ; 33
|
126: 81 32 cpi r24, 0x21 ; 33
|
||||||
128: 20 f4 brcc .+8 ; 0x132 <__vector_9+0x44>
|
128: 20 f4 brcc .+8 ; 0x132 <__vector_9+0x44>
|
||||||
12a: 8f 5f subi r24, 0xFF ; 255
|
12a: 8f 5f subi r24, 0xFF ; 255
|
||||||
12c: 80 93 81 00 sts 0x0081, r24
|
12c: 80 93 83 00 sts 0x0083, r24
|
||||||
130: 44 c0 rjmp .+136 ; 0x1ba <__vector_9+0xcc>
|
130: 44 c0 rjmp .+136 ; 0x1ba <__vector_9+0xcc>
|
||||||
timer = 0;
|
timer = 0;
|
||||||
132: 10 92 81 00 sts 0x0081, r1
|
132: 10 92 83 00 sts 0x0083, r1
|
||||||
char t[12];
|
char t[15];
|
||||||
snprintf(t, sizeof(t), "t%02d:%02d:%02d\n", h, m, s);
|
snprintf(t, sizeof(t), "t%02d:%02d:%02d\r\n", h, m, s);
|
||||||
136: 80 91 7e 00 lds r24, 0x007E
|
136: 80 91 80 00 lds r24, 0x0080
|
||||||
13a: 1f 92 push r1
|
13a: 1f 92 push r1
|
||||||
13c: 8f 93 push r24
|
13c: 8f 93 push r24
|
||||||
13e: 80 91 7f 00 lds r24, 0x007F
|
13e: 80 91 81 00 lds r24, 0x0081
|
||||||
142: 1f 92 push r1
|
142: 1f 92 push r1
|
||||||
144: 8f 93 push r24
|
144: 8f 93 push r24
|
||||||
146: 80 91 60 00 lds r24, 0x0060
|
146: 80 91 60 00 lds r24, 0x0060
|
||||||
@ -275,7 +275,7 @@ ISR(TIMER0_OVF_vect) {
|
|||||||
152: 9f 93 push r25
|
152: 9f 93 push r25
|
||||||
154: 8f 93 push r24
|
154: 8f 93 push r24
|
||||||
156: 1f 92 push r1
|
156: 1f 92 push r1
|
||||||
158: 8c e0 ldi r24, 0x0C ; 12
|
158: 8f e0 ldi r24, 0x0F ; 15
|
||||||
15a: 8f 93 push r24
|
15a: 8f 93 push r24
|
||||||
15c: 8e 01 movw r16, r28
|
15c: 8e 01 movw r16, r28
|
||||||
15e: 0f 5f subi r16, 0xFF ; 255
|
15e: 0f 5f subi r16, 0xFF ; 255
|
||||||
@ -287,7 +287,7 @@ ISR(TIMER0_OVF_vect) {
|
|||||||
16a: c8 01 movw r24, r16
|
16a: c8 01 movw r24, r16
|
||||||
16c: 0e 94 55 00 call 0xaa ; 0xaa <_ZN4UartILm9600EE4sendEPKc.isra.2>
|
16c: 0e 94 55 00 call 0xaa ; 0xaa <_ZN4UartILm9600EE4sendEPKc.isra.2>
|
||||||
s++;
|
s++;
|
||||||
170: 80 91 7e 00 lds r24, 0x007E
|
170: 80 91 80 00 lds r24, 0x0080
|
||||||
174: 8f 5f subi r24, 0xFF ; 255
|
174: 8f 5f subi r24, 0xFF ; 255
|
||||||
if(s >= 60) {
|
if(s >= 60) {
|
||||||
176: 0f b6 in r0, 0x3f ; 63
|
176: 0f b6 in r0, 0x3f ; 63
|
||||||
@ -299,26 +299,26 @@ ISR(TIMER0_OVF_vect) {
|
|||||||
182: 18 f4 brcc .+6 ; 0x18a <__vector_9+0x9c>
|
182: 18 f4 brcc .+6 ; 0x18a <__vector_9+0x9c>
|
||||||
if(timer++ > 32) {
|
if(timer++ > 32) {
|
||||||
timer = 0;
|
timer = 0;
|
||||||
char t[12];
|
char t[15];
|
||||||
snprintf(t, sizeof(t), "t%02d:%02d:%02d\n", h, m, s);
|
snprintf(t, sizeof(t), "t%02d:%02d:%02d\r\n", h, m, s);
|
||||||
u.send(t);
|
u.send(t);
|
||||||
s++;
|
s++;
|
||||||
184: 80 93 7e 00 sts 0x007E, r24
|
184: 80 93 80 00 sts 0x0080, r24
|
||||||
188: 07 c0 rjmp .+14 ; 0x198 <__vector_9+0xaa>
|
188: 07 c0 rjmp .+14 ; 0x198 <__vector_9+0xaa>
|
||||||
if(s >= 60) {
|
if(s >= 60) {
|
||||||
s = 0;
|
s = 0;
|
||||||
18a: 10 92 7e 00 sts 0x007E, r1
|
18a: 10 92 80 00 sts 0x0080, r1
|
||||||
m++;
|
m++;
|
||||||
18e: 80 91 7f 00 lds r24, 0x007F
|
18e: 80 91 81 00 lds r24, 0x0081
|
||||||
192: 8f 5f subi r24, 0xFF ; 255
|
192: 8f 5f subi r24, 0xFF ; 255
|
||||||
194: 80 93 7f 00 sts 0x007F, r24
|
194: 80 93 81 00 sts 0x0081, r24
|
||||||
}
|
}
|
||||||
if(m >= 60) {
|
if(m >= 60) {
|
||||||
198: 80 91 7f 00 lds r24, 0x007F
|
198: 80 91 81 00 lds r24, 0x0081
|
||||||
19c: 8c 33 cpi r24, 0x3C ; 60
|
19c: 8c 33 cpi r24, 0x3C ; 60
|
||||||
19e: 38 f0 brcs .+14 ; 0x1ae <__vector_9+0xc0>
|
19e: 38 f0 brcs .+14 ; 0x1ae <__vector_9+0xc0>
|
||||||
m = 0;
|
m = 0;
|
||||||
1a0: 10 92 7f 00 sts 0x007F, r1
|
1a0: 10 92 81 00 sts 0x0081, r1
|
||||||
h++;
|
h++;
|
||||||
1a4: 80 91 60 00 lds r24, 0x0060
|
1a4: 80 91 60 00 lds r24, 0x0060
|
||||||
1a8: 8f 5f subi r24, 0xFF ; 255
|
1a8: 8f 5f subi r24, 0xFF ; 255
|
||||||
@ -332,7 +332,7 @@ ISR(TIMER0_OVF_vect) {
|
|||||||
1b6: 10 92 60 00 sts 0x0060, r1
|
1b6: 10 92 60 00 sts 0x0060, r1
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
1ba: 2c 96 adiw r28, 0x0c ; 12
|
1ba: 2f 96 adiw r28, 0x0f ; 15
|
||||||
1bc: 0f b6 in r0, 0x3f ; 63
|
1bc: 0f b6 in r0, 0x3f ; 63
|
||||||
1be: f8 94 cli
|
1be: f8 94 cli
|
||||||
1c0: de bf out 0x3e, r29 ; 62
|
1c0: de bf out 0x3e, r29 ; 62
|
||||||
@ -379,7 +379,7 @@ class Uart {
|
|||||||
Uart() {
|
Uart() {
|
||||||
init();
|
init();
|
||||||
send("Uart done!\n");
|
send("Uart done!\n");
|
||||||
1fc: 82 e7 ldi r24, 0x72 ; 114
|
1fc: 83 e7 ldi r24, 0x73 ; 115
|
||||||
1fe: 90 e0 ldi r25, 0x00 ; 0
|
1fe: 90 e0 ldi r25, 0x00 ; 0
|
||||||
200: 0c 94 55 00 jmp 0xaa ; 0xaa <_ZN4UartILm9600EE4sendEPKc.isra.2>
|
200: 0c 94 55 00 jmp 0xaa ; 0xaa <_ZN4UartILm9600EE4sendEPKc.isra.2>
|
||||||
|
|
||||||
|
@ -393,7 +393,7 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8
|
|||||||
*(.fini0)
|
*(.fini0)
|
||||||
0x000007da _etext = .
|
0x000007da _etext = .
|
||||||
|
|
||||||
.data 0x00800060 0x1e load address 0x000007da
|
.data 0x00800060 0x20 load address 0x000007da
|
||||||
0x00800060 PROVIDE (__data_start, .)
|
0x00800060 PROVIDE (__data_start, .)
|
||||||
*(.data)
|
*(.data)
|
||||||
.data 0x00800060 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5/crtm16a.o
|
.data 0x00800060 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5/crtm16a.o
|
||||||
@ -416,32 +416,33 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8
|
|||||||
*(.rodata)
|
*(.rodata)
|
||||||
*(.rodata*)
|
*(.rodata*)
|
||||||
.rodata.str1.1
|
.rodata.str1.1
|
||||||
0x00800061 0x1d Mainboard.o
|
0x00800061 0x1e Mainboard.o
|
||||||
*(.gnu.linkonce.d*)
|
*(.gnu.linkonce.d*)
|
||||||
0x0080007e . = ALIGN (0x2)
|
0x00800080 . = ALIGN (0x2)
|
||||||
0x0080007e _edata = .
|
*fill* 0x0080007f 0x1
|
||||||
0x0080007e PROVIDE (__data_end, .)
|
0x00800080 _edata = .
|
||||||
|
0x00800080 PROVIDE (__data_end, .)
|
||||||
|
|
||||||
.bss 0x0080007e 0x4
|
.bss 0x00800080 0x4
|
||||||
0x0080007e PROVIDE (__bss_start, .)
|
0x00800080 PROVIDE (__bss_start, .)
|
||||||
*(.bss)
|
*(.bss)
|
||||||
.bss 0x0080007e 0x4 Mainboard.o
|
.bss 0x00800080 0x4 Mainboard.o
|
||||||
0x0080007e s
|
0x00800080 s
|
||||||
0x0080007f m
|
0x00800081 m
|
||||||
0x00800080 u
|
0x00800082 u
|
||||||
0x00800081 timer
|
0x00800083 timer
|
||||||
*(.bss*)
|
*(.bss*)
|
||||||
*(COMMON)
|
*(COMMON)
|
||||||
0x00800082 PROVIDE (__bss_end, .)
|
0x00800084 PROVIDE (__bss_end, .)
|
||||||
0x000007da __data_load_start = LOADADDR (.data)
|
0x000007da __data_load_start = LOADADDR (.data)
|
||||||
0x000007f8 __data_load_end = (__data_load_start + SIZEOF (.data))
|
0x000007fa __data_load_end = (__data_load_start + SIZEOF (.data))
|
||||||
|
|
||||||
.noinit 0x00800082 0x0
|
.noinit 0x00800084 0x0
|
||||||
0x00800082 PROVIDE (__noinit_start, .)
|
0x00800084 PROVIDE (__noinit_start, .)
|
||||||
*(.noinit*)
|
*(.noinit*)
|
||||||
0x00800082 PROVIDE (__noinit_end, .)
|
0x00800084 PROVIDE (__noinit_end, .)
|
||||||
0x00800082 _end = .
|
0x00800084 _end = .
|
||||||
0x00800082 PROVIDE (__heap_start, .)
|
0x00800084 PROVIDE (__heap_start, .)
|
||||||
|
|
||||||
.eeprom 0x00810000 0x0
|
.eeprom 0x00810000 0x0
|
||||||
*(.eeprom*)
|
*(.eeprom*)
|
||||||
|
@ -6,8 +6,8 @@ S11300300C9453000C9453000C9453000C945300F0
|
|||||||
S11300400C9453000C9453000C9453000C945300E0
|
S11300400C9453000C9453000C9453000C945300E0
|
||||||
S11300500C945300F80011241FBECFE5D4E0DEBF9A
|
S11300500C945300F80011241FBECFE5D4E0DEBF9A
|
||||||
S1130060CDBF10E0A0E6B0E0EAEDF7E002C00590F5
|
S1130060CDBF10E0A0E6B0E0EAEDF7E002C00590F5
|
||||||
S11300700D92AE37B107D9F720E0AEE7B0E001C08A
|
S11300700D92A038B107D9F720E0A0E8B0E001C0A4
|
||||||
S11300801D92A238B207E1F710E0C6E5D0E004C043
|
S11300801D92A438B207E1F710E0C6E5D0E004C041
|
||||||
S11300902297FE010E940401C435D107C9F70E94CA
|
S11300902297FE010E940401C435D107C9F70E94CA
|
||||||
S11300A065000C94EB030C940000FC0103C05D9B01
|
S11300A065000C94EB030C940000FC0103C05D9B01
|
||||||
S11300B0FECF8CB981918111FACF089585E083BF79
|
S11300B0FECF8CB981918111FACF089585E083BF79
|
||||||
@ -16,21 +16,21 @@ S11300D0A09A91E085B3892785BB2FEF31EE84E0A8
|
|||||||
S11300E0215030408040E1F700C00000F3CF1F9260
|
S11300E0215030408040E1F700C00000F3CF1F9260
|
||||||
S11300F00F920FB60F9211240F931F932F933F93D8
|
S11300F00F920FB60F9211240F931F932F933F93D8
|
||||||
S11301004F935F936F937F938F939F93AF93BF931B
|
S11301004F935F936F937F938F939F93AF93BF931B
|
||||||
S1130110EF93FF93CF93DF93CDB7DEB72C97DEBF7A
|
S1130110EF93FF93CF93DF93CDB7DEB72F97DEBF77
|
||||||
S1130120CDBF80918100813220F48F5F8093810064
|
S1130120CDBF80918300813220F48F5F8093830060
|
||||||
S113013044C01092810080917E001F928F93809121
|
S113013044C010928300809180001F928F9380911D
|
||||||
S11301407F001F928F93809160001F928F9381E6AE
|
S113014081001F928F93809160001F928F9381E6AC
|
||||||
S113015090E09F938F931F928CE08F938E010F5F9B
|
S113015090E09F938F931F928FE08F938E010F5F98
|
||||||
S11301601F4F1F930F930E940801C8010E9455005E
|
S11301601F4F1F930F930E940801C8010E9455005E
|
||||||
S113017080917E008F5F0FB6F894DEBF0FBECDBFB7
|
S1130170809180008F5F0FB6F894DEBF0FBECDBFB5
|
||||||
S11301808C3318F480937E0007C010927E00809117
|
S11301808C3318F48093800007C010928000809113
|
||||||
S11301907F008F5F80937F0080917F008C3338F0E5
|
S113019081008F5F80938100809181008C3338F0DF
|
||||||
S11301A010927F00809160008F5F80936000809147
|
S11301A010928100809160008F5F80936000809145
|
||||||
S11301B06000883110F0109260002C960FB6F8940D
|
S11301B06000883110F0109260002F960FB6F8940A
|
||||||
S11301C0DEBF0FBECDBFDF91CF91FF91EF91BF9105
|
S11301C0DEBF0FBECDBFDF91CF91FF91EF91BF9105
|
||||||
S11301D0AF919F918F917F916F915F914F913F91DB
|
S11301D0AF919F918F917F916F915F914F913F91DB
|
||||||
S11301E02F911F910F910F900FBE0F901F90189594
|
S11301E02F911F910F910F900FBE0F901F90189594
|
||||||
S11301F086E080BD539A10BC83E389B982E790E01E
|
S11301F086E080BD539A10BC83E389B983E790E01D
|
||||||
S11302000C945500EE0FFF1F0590F491E02D099416
|
S11302000C945500EE0FFF1F0590F491E02D099416
|
||||||
S1130210AEE0B0E0EEE0F1E00C94C2030D891E897B
|
S1130210AEE0B0E0EEE0F1E00C94C2030D891E897B
|
||||||
S11302208F89988D26E02C831A83098397FF02C057
|
S11302208F89988D26E02C831A83098397FF02C057
|
||||||
@ -126,5 +126,5 @@ S11307B0AA84B984C884DF80EE80FD800C811B810B
|
|||||||
S11307C0AA81B981CE0FD11D0FB6F894DEBF0FBE3A
|
S11307C0AA81B981CE0FD11D0FB6F894DEBF0FBE3A
|
||||||
S10D07D0CDBFED010895F894FFCFAA
|
S10D07D0CDBFED010895F894FFCFAA
|
||||||
S11307DA0C74253032643A253032643A2530326456
|
S11307DA0C74253032643A253032643A2530326456
|
||||||
S11107EA0A005561727420646F6E65210A0066
|
S11307EA0D0A005561727420646F6E65210A000057
|
||||||
S9030000FC
|
S9030000FC
|
||||||
|
@ -53,8 +53,8 @@ uint8_t s = 0;
|
|||||||
ISR(TIMER0_OVF_vect) {
|
ISR(TIMER0_OVF_vect) {
|
||||||
if(timer++ > 32) {
|
if(timer++ > 32) {
|
||||||
timer = 0;
|
timer = 0;
|
||||||
char t[12];
|
char t[15];
|
||||||
snprintf(t, sizeof(t), "t%02d:%02d:%02d\n", h, m, s);
|
snprintf(t, sizeof(t), "t%02d:%02d:%02d\r\n", h, m, s);
|
||||||
u.send(t);
|
u.send(t);
|
||||||
s++;
|
s++;
|
||||||
if(s >= 60) {
|
if(s >= 60) {
|
||||||
|
BIN
Zahl/Zahl.atsuo
BIN
Zahl/Zahl.atsuo
Binary file not shown.
@ -78,7 +78,7 @@ LIB_DEP+=
|
|||||||
./%.o: .././%.cpp
|
./%.o: .././%.cpp
|
||||||
@echo Building file: $<
|
@echo Building file: $<
|
||||||
@echo Invoking: AVR8/GNU C++ Compiler :
|
@echo Invoking: AVR8/GNU C++ Compiler :
|
||||||
$(QUOTE)C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.2.876\avr8-gnu-toolchain\bin\avr-g++.exe$(QUOTE) -funsigned-char -funsigned-bitfields -DDEBUG -Os -ffunction-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=attiny2313 -c -std=c++11 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o"$@" "$<"
|
$(QUOTE)C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.2.876\avr8-gnu-toolchain\bin\avr-g++.exe$(QUOTE) -funsigned-char -funsigned-bitfields -DDEBUG -O3 -ffunction-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=attiny2313 -c -std=c++11 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o"$@" "$<"
|
||||||
@echo Finished building: $<
|
@echo Finished building: $<
|
||||||
|
|
||||||
|
|
||||||
|
Binary file not shown.
@ -1,31 +1,46 @@
|
|||||||
:1000000013C035C034C033C032C031C054C02FC05B
|
:1000000013C035C034C033C032C031C041C086C017
|
||||||
:100010002EC02DC02CC02BC02AC029C028C027C08C
|
:100010002EC02DC02CC02BC02AC029C028C027C08C
|
||||||
:1000200026C025C024C09D0011241FBECFEDCDBF2A
|
:1000200026C025C024C00F0111241FBECFEDCDBFB7
|
||||||
:1000300010E0A0E6B0E0E4EAF1E002C005900D9225
|
:1000300010E0A0E6B0E0ECE8F2E002C005900D921E
|
||||||
:10004000A438B107D9F720E0A4E8B0E001C01D92C0
|
:10004000A439B107D9F720E0A4E9B0E001C01D92BE
|
||||||
:10005000A43AB207E1F710E0C8E2D0E003C022976B
|
:10005000A83BB207E1F710E0C8E2D0E003C0229766
|
||||||
:10006000FE019AD0C632D107D1F702D099C0C8CFCD
|
:10006000FE010ED1C632D107D1F702D00DC1C8CFE3
|
||||||
:100070007894109284008CEA8093850090E002C00E
|
:1000700078948091A7009091A6009093940080932B
|
||||||
:1000800080E0982FE0E7F0E003C05D9BFECF8CB9E5
|
:1000800095008FE493EC0197F1F700C00000F1CFE9
|
||||||
:1000900081918111FACF892F8F5F909384002FE790
|
:100090001F920F920FB60F9211242F933F934F93FD
|
||||||
:1000A00034E89EE1215030409040E1F700C000006C
|
:1000A0005F936F938F939F93EF93FF93809195004E
|
||||||
:1000B000803130F7E6CF1F920F920FB60F921124C6
|
:1000B000882399F080E0E0919400F0E0EC56FF4F47
|
||||||
:1000C0002F933F934F935F936F938F939F93EF93F0
|
:1000C000928198BB96E09A95F1F700C08F5F90916E
|
||||||
:1000D000FF9380E00CC0E0918400F0E0EC57FF4F0C
|
:1000D0009500891780F39F3F99F060E04FEF50E063
|
||||||
:1000E000928198BB96E09A95F1F700C08F5F90914E
|
:1000E00018BAE6E0EA95F1F700C06F5F262F30E01E
|
||||||
:1000F0008500891780F360E04FEF50E006C018BA22
|
:1000F00080919500FA01E81BF1092E173F0784F360
|
||||||
:10010000E6E0EA95F1F700C06F5F262F30E08091BE
|
:10010000FF91EF919F918F916F915F914F913F91EF
|
||||||
:100110008500FA01E81BF1092E173F0784F3FF91D0
|
:100110002F910F900FBE0F901F9018951F920F9266
|
||||||
:10012000EF919F918F916F915F914F913F912F919F
|
:100120000FB60F9211242F933F934F938F939F936A
|
||||||
:100130000F900FBE0F901F9018951092960010927E
|
:10013000EF93FF938CB18A3039F08D3029F0909194
|
||||||
:100140009700789486E083B988E08AB912B881E88C
|
:10014000A8009F3008F43FC08091A900843709F4CB
|
||||||
:1001500089B9E7E7F0E003C05D9BFECF8CB98191E0
|
:1001500060C08091A900843609F441C0EAE7F0E06C
|
||||||
:100160008111FACF109284001092850080E1E0E6C0
|
:1001600087E55D9BFECF8CB981918111FACF80919B
|
||||||
:10017000F0E0A6E8B0E001900D928A95E1F78FE7F4
|
:10017000A600805D5D9BFECF8CB9E1E7F0E080E2F8
|
||||||
:1001800087BB10BE83E083BF12BE16BE1CBE82E0DA
|
:100180005D9BFECF8CB981918111FACF8091A70040
|
||||||
:1001900089BF0895EE0FFF1F0590F491E02D09949B
|
:10019000805D5D9BFECF8CB9E2E9F0E08DE05D9B78
|
||||||
:0401A000F894FFCF01
|
:1001A000FECF8CB981918111FACF1092A800FF91F6
|
||||||
:1001A4007B036E4F175D7D0B7F5F3F7578677C3CEB
|
:1001B000EF919F918F914F913F912F910F900FBE93
|
||||||
:1001B400626C612E2E0A005561727420646F6E6544
|
:1001C0000F901F901895E091A800F0E0EA55FF4FBE
|
||||||
:0401C400210A00000C
|
:1001D00083838091A8008F5F8093A800E8CF30913F
|
||||||
|
:1001E000AA004091AB008091AC00805D232F220FCC
|
||||||
|
:1001F000230F922F9295990F907E920F930F890F54
|
||||||
|
:10020000942F990F990F940F990F890F8093A7003E
|
||||||
|
:10021000A5CF8091AB0080538093A6009ACF109217
|
||||||
|
:10022000A6001092A7001092A800789486E083B9E7
|
||||||
|
:1002300088E98AB912B881E889B9E8E8F0E085E58B
|
||||||
|
:100240005D9BFECF8CB981918111FACF1092940001
|
||||||
|
:100250001092950080E1E0E6F0E0A6E9B0E00190C0
|
||||||
|
:100260000D928A95E1F78FE787BB10BE83E083BFCD
|
||||||
|
:1002700012BE16BE1CBE82E089BF0895EE0FFF1F9E
|
||||||
|
:0C0280000590F491E02D0994F894FFCF54
|
||||||
|
:10028C007B036E4F175D7D0B7F5F3F7578677C3C02
|
||||||
|
:10029C00204C696768743A200057657274653A207F
|
||||||
|
:1002AC0054696D653A20005561727420646F6E65F7
|
||||||
|
:0402BC00210D0A0006
|
||||||
:00000001FF
|
:00000001FF
|
||||||
|
@ -3,33 +3,33 @@ Zahl.elf: file format elf32-avr
|
|||||||
|
|
||||||
Sections:
|
Sections:
|
||||||
Idx Name Size VMA LMA File off Algn
|
Idx Name Size VMA LMA File off Algn
|
||||||
0 .text 000001a4 00000000 00000000 00000094 2**1
|
0 .text 0000028c 00000000 00000000 00000094 2**1
|
||||||
CONTENTS, ALLOC, LOAD, READONLY, CODE
|
CONTENTS, ALLOC, LOAD, READONLY, CODE
|
||||||
1 .data 00000024 00800060 000001a4 00000238 2**0
|
1 .data 00000034 00800060 0000028c 00000320 2**0
|
||||||
CONTENTS, ALLOC, LOAD, DATA
|
CONTENTS, ALLOC, LOAD, DATA
|
||||||
2 .bss 00000020 00800084 00800084 0000025c 2**0
|
2 .bss 00000024 00800094 00800094 00000354 2**0
|
||||||
ALLOC
|
ALLOC
|
||||||
3 .stab 000006b4 00000000 00000000 0000025c 2**2
|
3 .stab 000006b4 00000000 00000000 00000354 2**2
|
||||||
CONTENTS, READONLY, DEBUGGING
|
CONTENTS, READONLY, DEBUGGING
|
||||||
4 .stabstr 00000082 00000000 00000000 00000910 2**0
|
4 .stabstr 00000082 00000000 00000000 00000a08 2**0
|
||||||
CONTENTS, READONLY, DEBUGGING
|
CONTENTS, READONLY, DEBUGGING
|
||||||
5 .comment 0000002f 00000000 00000000 00000992 2**0
|
5 .comment 0000002f 00000000 00000000 00000a8a 2**0
|
||||||
CONTENTS, READONLY
|
CONTENTS, READONLY
|
||||||
6 .debug_aranges 00000030 00000000 00000000 000009c1 2**0
|
6 .debug_aranges 00000038 00000000 00000000 00000ab9 2**0
|
||||||
CONTENTS, READONLY, DEBUGGING
|
CONTENTS, READONLY, DEBUGGING
|
||||||
7 .debug_info 00000961 00000000 00000000 000009f1 2**0
|
7 .debug_info 00000bac 00000000 00000000 00000af1 2**0
|
||||||
CONTENTS, READONLY, DEBUGGING
|
CONTENTS, READONLY, DEBUGGING
|
||||||
8 .debug_abbrev 00000333 00000000 00000000 00001352 2**0
|
8 .debug_abbrev 00000369 00000000 00000000 0000169d 2**0
|
||||||
CONTENTS, READONLY, DEBUGGING
|
CONTENTS, READONLY, DEBUGGING
|
||||||
9 .debug_line 00000230 00000000 00000000 00001685 2**0
|
9 .debug_line 00000285 00000000 00000000 00001a06 2**0
|
||||||
CONTENTS, READONLY, DEBUGGING
|
CONTENTS, READONLY, DEBUGGING
|
||||||
10 .debug_frame 0000007c 00000000 00000000 000018b8 2**2
|
10 .debug_frame 000000bc 00000000 00000000 00001c8c 2**2
|
||||||
CONTENTS, READONLY, DEBUGGING
|
CONTENTS, READONLY, DEBUGGING
|
||||||
11 .debug_str 00000441 00000000 00000000 00001934 2**0
|
11 .debug_str 00000498 00000000 00000000 00001d48 2**0
|
||||||
CONTENTS, READONLY, DEBUGGING
|
CONTENTS, READONLY, DEBUGGING
|
||||||
12 .debug_loc 00000299 00000000 00000000 00001d75 2**0
|
12 .debug_loc 000002b1 00000000 00000000 000021e0 2**0
|
||||||
CONTENTS, READONLY, DEBUGGING
|
CONTENTS, READONLY, DEBUGGING
|
||||||
13 .debug_ranges 00000020 00000000 00000000 0000200e 2**0
|
13 .debug_ranges 00000098 00000000 00000000 00002491 2**0
|
||||||
CONTENTS, READONLY, DEBUGGING
|
CONTENTS, READONLY, DEBUGGING
|
||||||
|
|
||||||
Disassembly of section .text:
|
Disassembly of section .text:
|
||||||
@ -41,8 +41,8 @@ Disassembly of section .text:
|
|||||||
6: 33 c0 rjmp .+102 ; 0x6e <__bad_interrupt>
|
6: 33 c0 rjmp .+102 ; 0x6e <__bad_interrupt>
|
||||||
8: 32 c0 rjmp .+100 ; 0x6e <__bad_interrupt>
|
8: 32 c0 rjmp .+100 ; 0x6e <__bad_interrupt>
|
||||||
a: 31 c0 rjmp .+98 ; 0x6e <__bad_interrupt>
|
a: 31 c0 rjmp .+98 ; 0x6e <__bad_interrupt>
|
||||||
c: 54 c0 rjmp .+168 ; 0xb6 <__vector_6>
|
c: 41 c0 rjmp .+130 ; 0x90 <__vector_6>
|
||||||
e: 2f c0 rjmp .+94 ; 0x6e <__bad_interrupt>
|
e: 86 c0 rjmp .+268 ; 0x11c <__vector_7>
|
||||||
10: 2e c0 rjmp .+92 ; 0x6e <__bad_interrupt>
|
10: 2e c0 rjmp .+92 ; 0x6e <__bad_interrupt>
|
||||||
12: 2d c0 rjmp .+90 ; 0x6e <__bad_interrupt>
|
12: 2d c0 rjmp .+90 ; 0x6e <__bad_interrupt>
|
||||||
14: 2c c0 rjmp .+88 ; 0x6e <__bad_interrupt>
|
14: 2c c0 rjmp .+88 ; 0x6e <__bad_interrupt>
|
||||||
@ -56,7 +56,7 @@ Disassembly of section .text:
|
|||||||
24: 24 c0 rjmp .+72 ; 0x6e <__bad_interrupt>
|
24: 24 c0 rjmp .+72 ; 0x6e <__bad_interrupt>
|
||||||
|
|
||||||
00000026 <__ctors_start>:
|
00000026 <__ctors_start>:
|
||||||
26: 9d 00 .word 0x009d ; ????
|
26: 0f 01 movw r0, r30
|
||||||
|
|
||||||
00000028 <__ctors_end>:
|
00000028 <__ctors_end>:
|
||||||
28: 11 24 eor r1, r1
|
28: 11 24 eor r1, r1
|
||||||
@ -68,18 +68,18 @@ Disassembly of section .text:
|
|||||||
30: 10 e0 ldi r17, 0x00 ; 0
|
30: 10 e0 ldi r17, 0x00 ; 0
|
||||||
32: a0 e6 ldi r26, 0x60 ; 96
|
32: a0 e6 ldi r26, 0x60 ; 96
|
||||||
34: b0 e0 ldi r27, 0x00 ; 0
|
34: b0 e0 ldi r27, 0x00 ; 0
|
||||||
36: e4 ea ldi r30, 0xA4 ; 164
|
36: ec e8 ldi r30, 0x8C ; 140
|
||||||
38: f1 e0 ldi r31, 0x01 ; 1
|
38: f2 e0 ldi r31, 0x02 ; 2
|
||||||
3a: 02 c0 rjmp .+4 ; 0x40 <__SREG__+0x1>
|
3a: 02 c0 rjmp .+4 ; 0x40 <__SREG__+0x1>
|
||||||
3c: 05 90 lpm r0, Z+
|
3c: 05 90 lpm r0, Z+
|
||||||
3e: 0d 92 st X+, r0
|
3e: 0d 92 st X+, r0
|
||||||
40: a4 38 cpi r26, 0x84 ; 132
|
40: a4 39 cpi r26, 0x94 ; 148
|
||||||
42: b1 07 cpc r27, r17
|
42: b1 07 cpc r27, r17
|
||||||
44: d9 f7 brne .-10 ; 0x3c <__do_copy_data+0xc>
|
44: d9 f7 brne .-10 ; 0x3c <__do_copy_data+0xc>
|
||||||
|
|
||||||
00000046 <__do_clear_bss>:
|
00000046 <__do_clear_bss>:
|
||||||
46: 20 e0 ldi r18, 0x00 ; 0
|
46: 20 e0 ldi r18, 0x00 ; 0
|
||||||
48: a4 e8 ldi r26, 0x84 ; 132
|
48: a4 e9 ldi r26, 0x94 ; 148
|
||||||
4a: b0 e0 ldi r27, 0x00 ; 0
|
4a: b0 e0 ldi r27, 0x00 ; 0
|
||||||
4c: 01 c0 rjmp .+2 ; 0x50 <.do_clear_bss_start>
|
4c: 01 c0 rjmp .+2 ; 0x50 <.do_clear_bss_start>
|
||||||
|
|
||||||
@ -87,7 +87,7 @@ Disassembly of section .text:
|
|||||||
4e: 1d 92 st X+, r1
|
4e: 1d 92 st X+, r1
|
||||||
|
|
||||||
00000050 <.do_clear_bss_start>:
|
00000050 <.do_clear_bss_start>:
|
||||||
50: a4 3a cpi r26, 0xA4 ; 164
|
50: a8 3b cpi r26, 0xB8 ; 184
|
||||||
52: b2 07 cpc r27, r18
|
52: b2 07 cpc r27, r18
|
||||||
54: e1 f7 brne .-8 ; 0x4e <.do_clear_bss_loop>
|
54: e1 f7 brne .-8 ; 0x4e <.do_clear_bss_loop>
|
||||||
|
|
||||||
@ -98,12 +98,12 @@ Disassembly of section .text:
|
|||||||
5c: 03 c0 rjmp .+6 ; 0x64 <__do_global_ctors+0xe>
|
5c: 03 c0 rjmp .+6 ; 0x64 <__do_global_ctors+0xe>
|
||||||
5e: 22 97 sbiw r28, 0x02 ; 2
|
5e: 22 97 sbiw r28, 0x02 ; 2
|
||||||
60: fe 01 movw r30, r28
|
60: fe 01 movw r30, r28
|
||||||
62: 9a d0 rcall .+308 ; 0x198 <__tablejump__>
|
62: 0e d1 rcall .+540 ; 0x280 <__tablejump__>
|
||||||
64: c6 32 cpi r28, 0x26 ; 38
|
64: c6 32 cpi r28, 0x26 ; 38
|
||||||
66: d1 07 cpc r29, r17
|
66: d1 07 cpc r29, r17
|
||||||
68: d1 f7 brne .-12 ; 0x5e <__do_global_ctors+0x8>
|
68: d1 f7 brne .-12 ; 0x5e <__do_global_ctors+0x8>
|
||||||
6a: 02 d0 rcall .+4 ; 0x70 <main>
|
6a: 02 d0 rcall .+4 ; 0x70 <main>
|
||||||
6c: 99 c0 rjmp .+306 ; 0x1a0 <_exit>
|
6c: 0d c1 rjmp .+538 ; 0x288 <_exit>
|
||||||
|
|
||||||
0000006e <__bad_interrupt>:
|
0000006e <__bad_interrupt>:
|
||||||
6e: c8 cf rjmp .-112 ; 0x0 <__vectors>
|
6e: c8 cf rjmp .-112 ; 0x0 <__vectors>
|
||||||
@ -116,297 +116,514 @@ int main(void)
|
|||||||
{
|
{
|
||||||
sei();
|
sei();
|
||||||
70: 78 94 sei
|
70: 78 94 sei
|
||||||
|
}
|
||||||
|
uint8_t getDig() {
|
||||||
|
return number;
|
||||||
|
}
|
||||||
|
uint8_t getDim() {
|
||||||
|
return dimmer;
|
||||||
|
72: 80 91 a7 00 lds r24, 0x00A7
|
||||||
public:
|
public:
|
||||||
Led() {
|
Led() {
|
||||||
init();
|
init();
|
||||||
}
|
}
|
||||||
void setNum(uint8_t number) {
|
void setNum(uint8_t number) {
|
||||||
this->diget = number;
|
this->diget = number;
|
||||||
72: 10 92 84 00 sts 0x0084, r1
|
76: 90 91 a6 00 lds r25, 0x00A6
|
||||||
|
7a: 90 93 94 00 sts 0x0094, r25
|
||||||
}
|
}
|
||||||
void setDim(uint8_t dimmer) {
|
void setDim(uint8_t dimmer) {
|
||||||
this->dim = dimmer;
|
this->dim = dimmer;
|
||||||
76: 8c ea ldi r24, 0xAC ; 172
|
7e: 80 93 95 00 sts 0x0095, r24
|
||||||
78: 80 93 85 00 sts 0x0085, r24
|
|
||||||
l.setNum(0);
|
|
||||||
l.setDim(0xAC);
|
|
||||||
uint8_t i = 0;
|
|
||||||
7c: 90 e0 ldi r25, 0x00 ; 0
|
|
||||||
7e: 02 c0 rjmp .+4 ; 0x84 <main+0x14>
|
|
||||||
{
|
|
||||||
u.send("bla..\n");
|
|
||||||
l.setNum(i++);
|
|
||||||
_delay_ms(500);
|
|
||||||
if(i > 15) {
|
|
||||||
i = 0;
|
|
||||||
80: 80 e0 ldi r24, 0x00 ; 0
|
|
||||||
82: 98 2f mov r25, r24
|
|
||||||
84: e0 e7 ldi r30, 0x70 ; 112
|
|
||||||
86: f0 e0 ldi r31, 0x00 ; 0
|
|
||||||
88: 03 c0 rjmp .+6 ; 0x90 <main+0x20>
|
|
||||||
UCSRB = /*(1<<RXEN1) | / (1<<RXCIE) | */ (1<<TXEN); //Enable TXEN im Register UCR TX-Data Enable
|
|
||||||
UBRRH = (uint8_t)(((F_CPU / 16 / baudrate) - 1)>>8);
|
|
||||||
UBRRL = (uint8_t)(F_CPU / 16 / baudrate) - 1; //Teiler wird gesetzt
|
|
||||||
}
|
|
||||||
uint8_t uart_putchar(uint8_t c) {
|
|
||||||
loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens
|
|
||||||
8a: 5d 9b sbis 0x0b, 5 ; 11
|
|
||||||
8c: fe cf rjmp .-4 ; 0x8a <main+0x1a>
|
|
||||||
UDR = c;
|
|
||||||
8e: 8c b9 out 0x0c, r24 ; 12
|
|
||||||
sei();
|
|
||||||
init();
|
|
||||||
send("Uart done!\n");
|
|
||||||
}
|
|
||||||
void send(const char *text) {
|
|
||||||
while (*text)
|
|
||||||
90: 81 91 ld r24, Z+
|
|
||||||
92: 81 11 cpse r24, r1
|
|
||||||
94: fa cf rjmp .-12 ; 0x8a <main+0x1a>
|
|
||||||
l.setDim(0xAC);
|
|
||||||
uint8_t i = 0;
|
|
||||||
while(1)
|
|
||||||
{
|
|
||||||
u.send("bla..\n");
|
|
||||||
l.setNum(i++);
|
|
||||||
96: 89 2f mov r24, r25
|
|
||||||
98: 8f 5f subi r24, 0xFF ; 255
|
|
||||||
public:
|
|
||||||
Led() {
|
|
||||||
init();
|
|
||||||
}
|
|
||||||
void setNum(uint8_t number) {
|
|
||||||
this->diget = number;
|
|
||||||
9a: 90 93 84 00 sts 0x0084, r25
|
|
||||||
#else
|
#else
|
||||||
//round up by default
|
//round up by default
|
||||||
__ticks_dc = (uint32_t)(ceil(fabs(__tmp)));
|
__ticks_dc = (uint32_t)(ceil(fabs(__tmp)));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
__builtin_avr_delay_cycles(__ticks_dc);
|
__builtin_avr_delay_cycles(__ticks_dc);
|
||||||
9e: 2f e7 ldi r18, 0x7F ; 127
|
82: 8f e4 ldi r24, 0x4F ; 79
|
||||||
a0: 34 e8 ldi r19, 0x84 ; 132
|
84: 93 ec ldi r25, 0xC3 ; 195
|
||||||
a2: 9e e1 ldi r25, 0x1E ; 30
|
86: 01 97 sbiw r24, 0x01 ; 1
|
||||||
a4: 21 50 subi r18, 0x01 ; 1
|
88: f1 f7 brne .-4 ; 0x86 <main+0x16>
|
||||||
a6: 30 40 sbci r19, 0x00 ; 0
|
8a: 00 c0 rjmp .+0 ; 0x8c <main+0x1c>
|
||||||
a8: 90 40 sbci r25, 0x00 ; 0
|
8c: 00 00 nop
|
||||||
aa: e1 f7 brne .-8 ; 0xa4 <main+0x34>
|
8e: f1 cf rjmp .-30 ; 0x72 <main+0x2>
|
||||||
ac: 00 c0 rjmp .+0 ; 0xae <main+0x3e>
|
|
||||||
ae: 00 00 nop
|
|
||||||
_delay_ms(500);
|
|
||||||
if(i > 15) {
|
|
||||||
b0: 80 31 cpi r24, 0x10 ; 16
|
|
||||||
b2: 30 f7 brcc .-52 ; 0x80 <main+0x10>
|
|
||||||
b4: e6 cf rjmp .-52 ; 0x82 <main+0x12>
|
|
||||||
|
|
||||||
000000b6 <__vector_6>:
|
00000090 <__vector_6>:
|
||||||
i = 0;
|
i = 0;
|
||||||
}
|
}*/
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ISR(TIMER0_OVF_vect) {
|
ISR(TIMER0_OVF_vect) {
|
||||||
b6: 1f 92 push r1
|
90: 1f 92 push r1
|
||||||
b8: 0f 92 push r0
|
92: 0f 92 push r0
|
||||||
ba: 0f b6 in r0, 0x3f ; 63
|
94: 0f b6 in r0, 0x3f ; 63
|
||||||
bc: 0f 92 push r0
|
96: 0f 92 push r0
|
||||||
be: 11 24 eor r1, r1
|
98: 11 24 eor r1, r1
|
||||||
c0: 2f 93 push r18
|
9a: 2f 93 push r18
|
||||||
c2: 3f 93 push r19
|
9c: 3f 93 push r19
|
||||||
c4: 4f 93 push r20
|
9e: 4f 93 push r20
|
||||||
c6: 5f 93 push r21
|
a0: 5f 93 push r21
|
||||||
c8: 6f 93 push r22
|
a2: 6f 93 push r22
|
||||||
ca: 8f 93 push r24
|
a4: 8f 93 push r24
|
||||||
cc: 9f 93 push r25
|
a6: 9f 93 push r25
|
||||||
ce: ef 93 push r30
|
a8: ef 93 push r30
|
||||||
d0: ff 93 push r31
|
aa: ff 93 push r31
|
||||||
// Timer(s)/Counter(s) Interrupt(s) initialization
|
// Timer(s)/Counter(s) Interrupt(s) initialization
|
||||||
TIMSK=(0<<TOIE1) | (0<<OCIE1A) | (0<<OCIE1B) | (0<<ICIE1) | (0<<OCIE0B) | (1<<TOIE0) | (0<<OCIE0A);
|
TIMSK=(0<<TOIE1) | (0<<OCIE1A) | (0<<OCIE1B) | (0<<ICIE1) | (0<<OCIE0B) | (1<<TOIE0) | (0<<OCIE0A);
|
||||||
}
|
}
|
||||||
/* TIMER0_OVF_vect */
|
/* TIMER0_OVF_vect */
|
||||||
void timer() {
|
void timer() {
|
||||||
for(uint8_t k=0;k<this->dim;k++) {
|
for(uint8_t k=0;k<this->dim;k++) {
|
||||||
d2: 80 e0 ldi r24, 0x00 ; 0
|
ac: 80 91 95 00 lds r24, 0x0095
|
||||||
d4: 0c c0 rjmp .+24 ; 0xee <__stack+0xf>
|
b0: 88 23 and r24, r24
|
||||||
|
b2: 99 f0 breq .+38 ; 0xda <__vector_6+0x4a>
|
||||||
|
b4: 80 e0 ldi r24, 0x00 ; 0
|
||||||
Port::port(segs[this->diget]);
|
Port::port(segs[this->diget]);
|
||||||
d6: e0 91 84 00 lds r30, 0x0084
|
b6: e0 91 94 00 lds r30, 0x0094
|
||||||
da: f0 e0 ldi r31, 0x00 ; 0
|
ba: f0 e0 ldi r31, 0x00 ; 0
|
||||||
dc: ec 57 subi r30, 0x7C ; 124
|
bc: ec 56 subi r30, 0x6C ; 108
|
||||||
de: ff 4f sbci r31, 0xFF ; 255
|
be: ff 4f sbci r31, 0xFF ; 255
|
||||||
e0: 92 81 ldd r25, Z+2 ; 0x02
|
c0: 92 81 ldd r25, Z+2 ; 0x02
|
||||||
namespace avrlib {
|
namespace avrlib {
|
||||||
|
|
||||||
struct portb
|
struct portb
|
||||||
{
|
{
|
||||||
static uint8_t port() { return PORTB; }
|
static uint8_t port() { return PORTB; }
|
||||||
static void port(uint8_t v) { PORTB = v; }
|
static void port(uint8_t v) { PORTB = v; }
|
||||||
e2: 98 bb out 0x18, r25 ; 24
|
c2: 98 bb out 0x18, r25 ; 24
|
||||||
#else
|
#else
|
||||||
//round up by default
|
//round up by default
|
||||||
__ticks_dc = (uint32_t)(ceil(fabs(__tmp)));
|
__ticks_dc = (uint32_t)(ceil(fabs(__tmp)));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
__builtin_avr_delay_cycles(__ticks_dc);
|
__builtin_avr_delay_cycles(__ticks_dc);
|
||||||
e4: 96 e0 ldi r25, 0x06 ; 6
|
c4: 96 e0 ldi r25, 0x06 ; 6
|
||||||
e6: 9a 95 dec r25
|
c6: 9a 95 dec r25
|
||||||
e8: f1 f7 brne .-4 ; 0xe6 <__stack+0x7>
|
c8: f1 f7 brne .-4 ; 0xc6 <__vector_6+0x36>
|
||||||
ea: 00 c0 rjmp .+0 ; 0xec <__stack+0xd>
|
ca: 00 c0 rjmp .+0 ; 0xcc <__vector_6+0x3c>
|
||||||
// Timer(s)/Counter(s) Interrupt(s) initialization
|
// Timer(s)/Counter(s) Interrupt(s) initialization
|
||||||
TIMSK=(0<<TOIE1) | (0<<OCIE1A) | (0<<OCIE1B) | (0<<ICIE1) | (0<<OCIE0B) | (1<<TOIE0) | (0<<OCIE0A);
|
TIMSK=(0<<TOIE1) | (0<<OCIE1A) | (0<<OCIE1B) | (0<<ICIE1) | (0<<OCIE0B) | (1<<TOIE0) | (0<<OCIE0A);
|
||||||
}
|
}
|
||||||
/* TIMER0_OVF_vect */
|
/* TIMER0_OVF_vect */
|
||||||
void timer() {
|
void timer() {
|
||||||
for(uint8_t k=0;k<this->dim;k++) {
|
for(uint8_t k=0;k<this->dim;k++) {
|
||||||
ec: 8f 5f subi r24, 0xFF ; 255
|
cc: 8f 5f subi r24, 0xFF ; 255
|
||||||
ee: 90 91 85 00 lds r25, 0x0085
|
ce: 90 91 95 00 lds r25, 0x0095
|
||||||
f2: 89 17 cp r24, r25
|
d2: 89 17 cp r24, r25
|
||||||
f4: 80 f3 brcs .-32 ; 0xd6 <__vector_6+0x20>
|
d4: 80 f3 brcs .-32 ; 0xb6 <__vector_6+0x26>
|
||||||
f6: 60 e0 ldi r22, 0x00 ; 0
|
|
||||||
Port::port(segs[this->diget]);
|
Port::port(segs[this->diget]);
|
||||||
_delay_us(1);
|
_delay_us(1);
|
||||||
}
|
}
|
||||||
for(uint8_t k=0;k<255-this->dim;k++) {
|
for(uint8_t k=0;k<255-this->dim;k++) {
|
||||||
f8: 4f ef ldi r20, 0xFF ; 255
|
d6: 9f 3f cpi r25, 0xFF ; 255
|
||||||
fa: 50 e0 ldi r21, 0x00 ; 0
|
d8: 99 f0 breq .+38 ; 0x100 <__stack+0x21>
|
||||||
fc: 06 c0 rjmp .+12 ; 0x10a <__stack+0x2b>
|
// Timer(s)/Counter(s) Interrupt(s) initialization
|
||||||
fe: 18 ba out 0x18, r1 ; 24
|
TIMSK=(0<<TOIE1) | (0<<OCIE1A) | (0<<OCIE1B) | (0<<ICIE1) | (0<<OCIE0B) | (1<<TOIE0) | (0<<OCIE0A);
|
||||||
100: e6 e0 ldi r30, 0x06 ; 6
|
}
|
||||||
102: ea 95 dec r30
|
/* TIMER0_OVF_vect */
|
||||||
104: f1 f7 brne .-4 ; 0x102 <__stack+0x23>
|
void timer() {
|
||||||
106: 00 c0 rjmp .+0 ; 0x108 <__stack+0x29>
|
for(uint8_t k=0;k<this->dim;k++) {
|
||||||
108: 6f 5f subi r22, 0xFF ; 255
|
da: 60 e0 ldi r22, 0x00 ; 0
|
||||||
10a: 26 2f mov r18, r22
|
Port::port(segs[this->diget]);
|
||||||
10c: 30 e0 ldi r19, 0x00 ; 0
|
_delay_us(1);
|
||||||
10e: 80 91 85 00 lds r24, 0x0085
|
}
|
||||||
112: fa 01 movw r30, r20
|
for(uint8_t k=0;k<255-this->dim;k++) {
|
||||||
114: e8 1b sub r30, r24
|
dc: 4f ef ldi r20, 0xFF ; 255
|
||||||
116: f1 09 sbc r31, r1
|
de: 50 e0 ldi r21, 0x00 ; 0
|
||||||
118: 2e 17 cp r18, r30
|
e0: 18 ba out 0x18, r1 ; 24
|
||||||
11a: 3f 07 cpc r19, r31
|
e2: e6 e0 ldi r30, 0x06 ; 6
|
||||||
11c: 84 f3 brlt .-32 ; 0xfe <__stack+0x1f>
|
e4: ea 95 dec r30
|
||||||
|
e6: f1 f7 brne .-4 ; 0xe4 <__stack+0x5>
|
||||||
|
e8: 00 c0 rjmp .+0 ; 0xea <__stack+0xb>
|
||||||
|
ea: 6f 5f subi r22, 0xFF ; 255
|
||||||
|
ec: 26 2f mov r18, r22
|
||||||
|
ee: 30 e0 ldi r19, 0x00 ; 0
|
||||||
|
f0: 80 91 95 00 lds r24, 0x0095
|
||||||
|
f4: fa 01 movw r30, r20
|
||||||
|
f6: e8 1b sub r30, r24
|
||||||
|
f8: f1 09 sbc r31, r1
|
||||||
|
fa: 2e 17 cp r18, r30
|
||||||
|
fc: 3f 07 cpc r19, r31
|
||||||
|
fe: 84 f3 brlt .-32 ; 0xe0 <__stack+0x1>
|
||||||
l.timer();
|
l.timer();
|
||||||
}
|
}
|
||||||
11e: ff 91 pop r31
|
100: ff 91 pop r31
|
||||||
120: ef 91 pop r30
|
102: ef 91 pop r30
|
||||||
122: 9f 91 pop r25
|
104: 9f 91 pop r25
|
||||||
124: 8f 91 pop r24
|
106: 8f 91 pop r24
|
||||||
126: 6f 91 pop r22
|
108: 6f 91 pop r22
|
||||||
128: 5f 91 pop r21
|
10a: 5f 91 pop r21
|
||||||
12a: 4f 91 pop r20
|
10c: 4f 91 pop r20
|
||||||
12c: 3f 91 pop r19
|
10e: 3f 91 pop r19
|
||||||
12e: 2f 91 pop r18
|
110: 2f 91 pop r18
|
||||||
130: 0f 90 pop r0
|
112: 0f 90 pop r0
|
||||||
132: 0f be out 0x3f, r0 ; 63
|
114: 0f be out 0x3f, r0 ; 63
|
||||||
134: 0f 90 pop r0
|
116: 0f 90 pop r0
|
||||||
136: 1f 90 pop r1
|
118: 1f 90 pop r1
|
||||||
138: 18 95 reti
|
11a: 18 95 reti
|
||||||
|
|
||||||
0000013a <_GLOBAL__sub_I_u>:
|
0000011c <__vector_7>:
|
||||||
|
|
||||||
|
ISR(USART_RX_vect) {
|
||||||
|
11c: 1f 92 push r1
|
||||||
|
11e: 0f 92 push r0
|
||||||
|
120: 0f b6 in r0, 0x3f ; 63
|
||||||
|
122: 0f 92 push r0
|
||||||
|
124: 11 24 eor r1, r1
|
||||||
|
126: 2f 93 push r18
|
||||||
|
128: 3f 93 push r19
|
||||||
|
12a: 4f 93 push r20
|
||||||
|
12c: 8f 93 push r24
|
||||||
|
12e: 9f 93 push r25
|
||||||
|
130: ef 93 push r30
|
||||||
|
132: ff 93 push r31
|
||||||
|
uart_putchar(text);
|
||||||
|
}
|
||||||
|
/* USART_RX_vect */
|
||||||
|
void interrupt() {
|
||||||
|
char nextChar;
|
||||||
|
nextChar = UDR;
|
||||||
|
134: 8c b1 in r24, 0x0c ; 12
|
||||||
|
|
||||||
|
if( nextChar != '\n' && nextChar != '\r' && uart_str_count < UART_MAXSTRLEN) {
|
||||||
|
136: 8a 30 cpi r24, 0x0A ; 10
|
||||||
|
138: 39 f0 breq .+14 ; 0x148 <__vector_7+0x2c>
|
||||||
|
13a: 8d 30 cpi r24, 0x0D ; 13
|
||||||
|
13c: 29 f0 breq .+10 ; 0x148 <__vector_7+0x2c>
|
||||||
|
13e: 90 91 a8 00 lds r25, 0x00A8
|
||||||
|
142: 9f 30 cpi r25, 0x0F ; 15
|
||||||
|
144: 08 f4 brcc .+2 ; 0x148 <__vector_7+0x2c>
|
||||||
|
146: 3f c0 rjmp .+126 ; 0x1c6 <__vector_7+0xaa>
|
||||||
|
uart_string[uart_str_count] = nextChar;
|
||||||
|
uart_str_count++;
|
||||||
|
//send(nextChar);
|
||||||
|
} else {
|
||||||
|
//send("\r\n");
|
||||||
|
if(uart_string[0] == 't') {
|
||||||
|
148: 80 91 a9 00 lds r24, 0x00A9
|
||||||
|
14c: 84 37 cpi r24, 0x74 ; 116
|
||||||
|
14e: 09 f4 brne .+2 ; 0x152 <__vector_7+0x36>
|
||||||
|
150: 60 c0 rjmp .+192 ; 0x212 <__vector_7+0xf6>
|
||||||
|
number = uart_string[diget]-0x30;
|
||||||
|
}
|
||||||
|
if(uart_string[0] == 'd') {
|
||||||
|
152: 80 91 a9 00 lds r24, 0x00A9
|
||||||
|
156: 84 36 cpi r24, 0x64 ; 100
|
||||||
|
158: 09 f4 brne .+2 ; 0x15c <__vector_7+0x40>
|
||||||
|
15a: 41 c0 rjmp .+130 ; 0x1de <__vector_7+0xc2>
|
||||||
|
15c: ea e7 ldi r30, 0x7A ; 122
|
||||||
|
15e: f0 e0 ldi r31, 0x00 ; 0
|
||||||
|
sei();
|
||||||
|
init();
|
||||||
|
send("Uart done!\r\n");
|
||||||
|
}
|
||||||
|
void send(const char *text) {
|
||||||
|
while (*text)
|
||||||
|
160: 87 e5 ldi r24, 0x57 ; 87
|
||||||
|
UCSRB = (1<<RXEN) | (1<<RXCIE) /* Recieve & Interrupt */ | (1<<TXEN) /* Send */; //Enable TXEN im Register UCR TX-Data Enable
|
||||||
|
UBRRH = (uint8_t)(((F_CPU / 16 / baudrate) - 1)>>8);
|
||||||
|
UBRRL = (uint8_t)(F_CPU / 16 / baudrate) - 1;
|
||||||
|
}
|
||||||
|
uint8_t uart_putchar(uint8_t c) {
|
||||||
|
loop_until_bit_is_set(UCSRA, UDRE); /* Data Register Empty */
|
||||||
|
162: 5d 9b sbis 0x0b, 5 ; 11
|
||||||
|
164: fe cf rjmp .-4 ; 0x162 <__vector_7+0x46>
|
||||||
|
UDR = c;
|
||||||
|
166: 8c b9 out 0x0c, r24 ; 12
|
||||||
|
sei();
|
||||||
|
init();
|
||||||
|
send("Uart done!\r\n");
|
||||||
|
}
|
||||||
|
void send(const char *text) {
|
||||||
|
while (*text)
|
||||||
|
168: 81 91 ld r24, Z+
|
||||||
|
16a: 81 11 cpse r24, r1
|
||||||
|
16c: fa cf rjmp .-12 ; 0x162 <__vector_7+0x46>
|
||||||
|
}
|
||||||
|
if(uart_string[0] == 'd') {
|
||||||
|
dimmer = (uart_string[1]-0x30)*100 + (uart_string[2]-0x30)*10 + (uart_string[3]-0x30)*1;
|
||||||
|
}
|
||||||
|
send("Werte: Time: ");
|
||||||
|
send(number+0x30);
|
||||||
|
16e: 80 91 a6 00 lds r24, 0x00A6
|
||||||
|
172: 80 5d subi r24, 0xD0 ; 208
|
||||||
|
UCSRB = (1<<RXEN) | (1<<RXCIE) /* Recieve & Interrupt */ | (1<<TXEN) /* Send */; //Enable TXEN im Register UCR TX-Data Enable
|
||||||
|
UBRRH = (uint8_t)(((F_CPU / 16 / baudrate) - 1)>>8);
|
||||||
|
UBRRL = (uint8_t)(F_CPU / 16 / baudrate) - 1;
|
||||||
|
}
|
||||||
|
uint8_t uart_putchar(uint8_t c) {
|
||||||
|
loop_until_bit_is_set(UCSRA, UDRE); /* Data Register Empty */
|
||||||
|
174: 5d 9b sbis 0x0b, 5 ; 11
|
||||||
|
176: fe cf rjmp .-4 ; 0x174 <__vector_7+0x58>
|
||||||
|
UDR = c;
|
||||||
|
178: 8c b9 out 0x0c, r24 ; 12
|
||||||
|
17a: e1 e7 ldi r30, 0x71 ; 113
|
||||||
|
17c: f0 e0 ldi r31, 0x00 ; 0
|
||||||
|
sei();
|
||||||
|
init();
|
||||||
|
send("Uart done!\r\n");
|
||||||
|
}
|
||||||
|
void send(const char *text) {
|
||||||
|
while (*text)
|
||||||
|
17e: 80 e2 ldi r24, 0x20 ; 32
|
||||||
|
UCSRB = (1<<RXEN) | (1<<RXCIE) /* Recieve & Interrupt */ | (1<<TXEN) /* Send */; //Enable TXEN im Register UCR TX-Data Enable
|
||||||
|
UBRRH = (uint8_t)(((F_CPU / 16 / baudrate) - 1)>>8);
|
||||||
|
UBRRL = (uint8_t)(F_CPU / 16 / baudrate) - 1;
|
||||||
|
}
|
||||||
|
uint8_t uart_putchar(uint8_t c) {
|
||||||
|
loop_until_bit_is_set(UCSRA, UDRE); /* Data Register Empty */
|
||||||
|
180: 5d 9b sbis 0x0b, 5 ; 11
|
||||||
|
182: fe cf rjmp .-4 ; 0x180 <__vector_7+0x64>
|
||||||
|
UDR = c;
|
||||||
|
184: 8c b9 out 0x0c, r24 ; 12
|
||||||
|
sei();
|
||||||
|
init();
|
||||||
|
send("Uart done!\r\n");
|
||||||
|
}
|
||||||
|
void send(const char *text) {
|
||||||
|
while (*text)
|
||||||
|
186: 81 91 ld r24, Z+
|
||||||
|
188: 81 11 cpse r24, r1
|
||||||
|
18a: fa cf rjmp .-12 ; 0x180 <__vector_7+0x64>
|
||||||
|
dimmer = (uart_string[1]-0x30)*100 + (uart_string[2]-0x30)*10 + (uart_string[3]-0x30)*1;
|
||||||
|
}
|
||||||
|
send("Werte: Time: ");
|
||||||
|
send(number+0x30);
|
||||||
|
send(" Light: ");
|
||||||
|
send(dimmer+0x30);
|
||||||
|
18c: 80 91 a7 00 lds r24, 0x00A7
|
||||||
|
190: 80 5d subi r24, 0xD0 ; 208
|
||||||
|
UCSRB = (1<<RXEN) | (1<<RXCIE) /* Recieve & Interrupt */ | (1<<TXEN) /* Send */; //Enable TXEN im Register UCR TX-Data Enable
|
||||||
|
UBRRH = (uint8_t)(((F_CPU / 16 / baudrate) - 1)>>8);
|
||||||
|
UBRRL = (uint8_t)(F_CPU / 16 / baudrate) - 1;
|
||||||
|
}
|
||||||
|
uint8_t uart_putchar(uint8_t c) {
|
||||||
|
loop_until_bit_is_set(UCSRA, UDRE); /* Data Register Empty */
|
||||||
|
192: 5d 9b sbis 0x0b, 5 ; 11
|
||||||
|
194: fe cf rjmp .-4 ; 0x192 <__vector_7+0x76>
|
||||||
|
UDR = c;
|
||||||
|
196: 8c b9 out 0x0c, r24 ; 12
|
||||||
|
198: e2 e9 ldi r30, 0x92 ; 146
|
||||||
|
19a: f0 e0 ldi r31, 0x00 ; 0
|
||||||
|
sei();
|
||||||
|
init();
|
||||||
|
send("Uart done!\r\n");
|
||||||
|
}
|
||||||
|
void send(const char *text) {
|
||||||
|
while (*text)
|
||||||
|
19c: 8d e0 ldi r24, 0x0D ; 13
|
||||||
|
UCSRB = (1<<RXEN) | (1<<RXCIE) /* Recieve & Interrupt */ | (1<<TXEN) /* Send */; //Enable TXEN im Register UCR TX-Data Enable
|
||||||
|
UBRRH = (uint8_t)(((F_CPU / 16 / baudrate) - 1)>>8);
|
||||||
|
UBRRL = (uint8_t)(F_CPU / 16 / baudrate) - 1;
|
||||||
|
}
|
||||||
|
uint8_t uart_putchar(uint8_t c) {
|
||||||
|
loop_until_bit_is_set(UCSRA, UDRE); /* Data Register Empty */
|
||||||
|
19e: 5d 9b sbis 0x0b, 5 ; 11
|
||||||
|
1a0: fe cf rjmp .-4 ; 0x19e <__vector_7+0x82>
|
||||||
|
UDR = c;
|
||||||
|
1a2: 8c b9 out 0x0c, r24 ; 12
|
||||||
|
sei();
|
||||||
|
init();
|
||||||
|
send("Uart done!\r\n");
|
||||||
|
}
|
||||||
|
void send(const char *text) {
|
||||||
|
while (*text)
|
||||||
|
1a4: 81 91 ld r24, Z+
|
||||||
|
1a6: 81 11 cpse r24, r1
|
||||||
|
1a8: fa cf rjmp .-12 ; 0x19e <__vector_7+0x82>
|
||||||
|
send("Werte: Time: ");
|
||||||
|
send(number+0x30);
|
||||||
|
send(" Light: ");
|
||||||
|
send(dimmer+0x30);
|
||||||
|
send("\r\n");
|
||||||
|
uart_str_count = 0;
|
||||||
|
1aa: 10 92 a8 00 sts 0x00A8, r1
|
||||||
|
u.interrupt();
|
||||||
|
1ae: ff 91 pop r31
|
||||||
|
1b0: ef 91 pop r30
|
||||||
|
1b2: 9f 91 pop r25
|
||||||
|
1b4: 8f 91 pop r24
|
||||||
|
1b6: 4f 91 pop r20
|
||||||
|
1b8: 3f 91 pop r19
|
||||||
|
1ba: 2f 91 pop r18
|
||||||
|
1bc: 0f 90 pop r0
|
||||||
|
1be: 0f be out 0x3f, r0 ; 63
|
||||||
|
1c0: 0f 90 pop r0
|
||||||
|
1c2: 1f 90 pop r1
|
||||||
|
1c4: 18 95 reti
|
||||||
|
void interrupt() {
|
||||||
|
char nextChar;
|
||||||
|
nextChar = UDR;
|
||||||
|
|
||||||
|
if( nextChar != '\n' && nextChar != '\r' && uart_str_count < UART_MAXSTRLEN) {
|
||||||
|
uart_string[uart_str_count] = nextChar;
|
||||||
|
1c6: e0 91 a8 00 lds r30, 0x00A8
|
||||||
|
1ca: f0 e0 ldi r31, 0x00 ; 0
|
||||||
|
1cc: ea 55 subi r30, 0x5A ; 90
|
||||||
|
1ce: ff 4f sbci r31, 0xFF ; 255
|
||||||
|
1d0: 83 83 std Z+3, r24 ; 0x03
|
||||||
|
uart_str_count++;
|
||||||
|
1d2: 80 91 a8 00 lds r24, 0x00A8
|
||||||
|
1d6: 8f 5f subi r24, 0xFF ; 255
|
||||||
|
1d8: 80 93 a8 00 sts 0x00A8, r24
|
||||||
|
1dc: e8 cf rjmp .-48 ; 0x1ae <__vector_7+0x92>
|
||||||
|
//send("\r\n");
|
||||||
|
if(uart_string[0] == 't') {
|
||||||
|
number = uart_string[diget]-0x30;
|
||||||
|
}
|
||||||
|
if(uart_string[0] == 'd') {
|
||||||
|
dimmer = (uart_string[1]-0x30)*100 + (uart_string[2]-0x30)*10 + (uart_string[3]-0x30)*1;
|
||||||
|
1de: 30 91 aa 00 lds r19, 0x00AA
|
||||||
|
1e2: 40 91 ab 00 lds r20, 0x00AB
|
||||||
|
1e6: 80 91 ac 00 lds r24, 0x00AC
|
||||||
|
1ea: 80 5d subi r24, 0xD0 ; 208
|
||||||
|
1ec: 23 2f mov r18, r19
|
||||||
|
1ee: 22 0f add r18, r18
|
||||||
|
1f0: 23 0f add r18, r19
|
||||||
|
1f2: 92 2f mov r25, r18
|
||||||
|
1f4: 92 95 swap r25
|
||||||
|
1f6: 99 0f add r25, r25
|
||||||
|
1f8: 90 7e andi r25, 0xE0 ; 224
|
||||||
|
1fa: 92 0f add r25, r18
|
||||||
|
1fc: 93 0f add r25, r19
|
||||||
|
1fe: 89 0f add r24, r25
|
||||||
|
200: 94 2f mov r25, r20
|
||||||
|
202: 99 0f add r25, r25
|
||||||
|
204: 99 0f add r25, r25
|
||||||
|
206: 94 0f add r25, r20
|
||||||
|
208: 99 0f add r25, r25
|
||||||
|
20a: 89 0f add r24, r25
|
||||||
|
20c: 80 93 a7 00 sts 0x00A7, r24
|
||||||
|
210: a5 cf rjmp .-182 ; 0x15c <__vector_7+0x40>
|
||||||
|
uart_str_count++;
|
||||||
|
//send(nextChar);
|
||||||
|
} else {
|
||||||
|
//send("\r\n");
|
||||||
|
if(uart_string[0] == 't') {
|
||||||
|
number = uart_string[diget]-0x30;
|
||||||
|
212: 80 91 ab 00 lds r24, 0x00AB
|
||||||
|
216: 80 53 subi r24, 0x30 ; 48
|
||||||
|
218: 80 93 a6 00 sts 0x00A6, r24
|
||||||
|
21c: 9a cf rjmp .-204 ; 0x152 <__vector_7+0x36>
|
||||||
|
|
||||||
|
0000021e <_GLOBAL__sub_I_u>:
|
||||||
#include <avr/interrupt.h>
|
#include <avr/interrupt.h>
|
||||||
|
|
||||||
template <uint32_t baudrate, uint8_t diget>
|
template <uint32_t baudrate, uint8_t diget>
|
||||||
class Uart {
|
class Uart {
|
||||||
public:
|
public:
|
||||||
Uart() {
|
Uart() {
|
||||||
13a: 10 92 96 00 sts 0x0096, r1
|
21e: 10 92 a6 00 sts 0x00A6, r1
|
||||||
13e: 10 92 97 00 sts 0x0097, r1
|
222: 10 92 a7 00 sts 0x00A7, r1
|
||||||
|
226: 10 92 a8 00 sts 0x00A8, r1
|
||||||
sei();
|
sei();
|
||||||
142: 78 94 sei
|
22a: 78 94 sei
|
||||||
uint8_t number = 0;
|
uint8_t dimmer = 0;
|
||||||
static const uint8_t UART_MAXSTRLEN = 12;
|
static const uint8_t UART_MAXSTRLEN = 15;
|
||||||
uint8_t uart_str_count = 0;
|
volatile uint8_t uart_str_count = 0;
|
||||||
uint8_t uart_string[UART_MAXSTRLEN];
|
volatile char uart_string[UART_MAXSTRLEN];
|
||||||
void init() {
|
void init() {
|
||||||
UCSRC = (1 << UCSZ1) | (1 << UCSZ0); //8N1
|
UCSRC = (1<<UCSZ1) | (1<<UCSZ0) /* 8-Bit */ | (0<<UPM1) | (0<<UPM0) /* No Parity */ | (0<<UMSEL) /* Asyncron */;
|
||||||
144: 86 e0 ldi r24, 0x06 ; 6
|
22c: 86 e0 ldi r24, 0x06 ; 6
|
||||||
146: 83 b9 out 0x03, r24 ; 3
|
22e: 83 b9 out 0x03, r24 ; 3
|
||||||
UCSRB = /*(1<<RXEN1) | / (1<<RXCIE) | */ (1<<TXEN); //Enable TXEN im Register UCR TX-Data Enable
|
UCSRB = (1<<RXEN) | (1<<RXCIE) /* Recieve & Interrupt */ | (1<<TXEN) /* Send */; //Enable TXEN im Register UCR TX-Data Enable
|
||||||
148: 88 e0 ldi r24, 0x08 ; 8
|
230: 88 e9 ldi r24, 0x98 ; 152
|
||||||
14a: 8a b9 out 0x0a, r24 ; 10
|
232: 8a b9 out 0x0a, r24 ; 10
|
||||||
UBRRH = (uint8_t)(((F_CPU / 16 / baudrate) - 1)>>8);
|
UBRRH = (uint8_t)(((F_CPU / 16 / baudrate) - 1)>>8);
|
||||||
14c: 12 b8 out 0x02, r1 ; 2
|
234: 12 b8 out 0x02, r1 ; 2
|
||||||
UBRRL = (uint8_t)(F_CPU / 16 / baudrate) - 1; //Teiler wird gesetzt
|
UBRRL = (uint8_t)(F_CPU / 16 / baudrate) - 1;
|
||||||
14e: 81 e8 ldi r24, 0x81 ; 129
|
236: 81 e8 ldi r24, 0x81 ; 129
|
||||||
150: 89 b9 out 0x09, r24 ; 9
|
238: 89 b9 out 0x09, r24 ; 9
|
||||||
152: e7 e7 ldi r30, 0x77 ; 119
|
23a: e8 e8 ldi r30, 0x88 ; 136
|
||||||
154: f0 e0 ldi r31, 0x00 ; 0
|
23c: f0 e0 ldi r31, 0x00 ; 0
|
||||||
156: 03 c0 rjmp .+6 ; 0x15e <_GLOBAL__sub_I_u+0x24>
|
|
||||||
}
|
|
||||||
uint8_t uart_putchar(uint8_t c) {
|
|
||||||
loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens
|
|
||||||
158: 5d 9b sbis 0x0b, 5 ; 11
|
|
||||||
15a: fe cf rjmp .-4 ; 0x158 <_GLOBAL__sub_I_u+0x1e>
|
|
||||||
UDR = c;
|
|
||||||
15c: 8c b9 out 0x0c, r24 ; 12
|
|
||||||
sei();
|
sei();
|
||||||
init();
|
init();
|
||||||
send("Uart done!\n");
|
send("Uart done!\r\n");
|
||||||
}
|
}
|
||||||
void send(const char *text) {
|
void send(const char *text) {
|
||||||
while (*text)
|
while (*text)
|
||||||
15e: 81 91 ld r24, Z+
|
23e: 85 e5 ldi r24, 0x55 ; 85
|
||||||
160: 81 11 cpse r24, r1
|
UCSRB = (1<<RXEN) | (1<<RXCIE) /* Recieve & Interrupt */ | (1<<TXEN) /* Send */; //Enable TXEN im Register UCR TX-Data Enable
|
||||||
162: fa cf rjmp .-12 ; 0x158 <_GLOBAL__sub_I_u+0x1e>
|
UBRRH = (uint8_t)(((F_CPU / 16 / baudrate) - 1)>>8);
|
||||||
|
UBRRL = (uint8_t)(F_CPU / 16 / baudrate) - 1;
|
||||||
|
}
|
||||||
|
uint8_t uart_putchar(uint8_t c) {
|
||||||
|
loop_until_bit_is_set(UCSRA, UDRE); /* Data Register Empty */
|
||||||
|
240: 5d 9b sbis 0x0b, 5 ; 11
|
||||||
|
242: fe cf rjmp .-4 ; 0x240 <_GLOBAL__sub_I_u+0x22>
|
||||||
|
UDR = c;
|
||||||
|
244: 8c b9 out 0x0c, r24 ; 12
|
||||||
|
sei();
|
||||||
|
init();
|
||||||
|
send("Uart done!\r\n");
|
||||||
|
}
|
||||||
|
void send(const char *text) {
|
||||||
|
while (*text)
|
||||||
|
246: 81 91 ld r24, Z+
|
||||||
|
248: 81 11 cpse r24, r1
|
||||||
|
24a: fa cf rjmp .-12 ; 0x240 <_GLOBAL__sub_I_u+0x22>
|
||||||
#include <util/delay.h>
|
#include <util/delay.h>
|
||||||
|
|
||||||
template <typename Port>
|
template <typename Port>
|
||||||
class Led {
|
class Led {
|
||||||
public:
|
public:
|
||||||
Led() {
|
Led() {
|
||||||
164: 10 92 84 00 sts 0x0084, r1
|
24c: 10 92 94 00 sts 0x0094, r1
|
||||||
168: 10 92 85 00 sts 0x0085, r1
|
250: 10 92 95 00 sts 0x0095, r1
|
||||||
16c: 80 e1 ldi r24, 0x10 ; 16
|
254: 80 e1 ldi r24, 0x10 ; 16
|
||||||
16e: e0 e6 ldi r30, 0x60 ; 96
|
256: e0 e6 ldi r30, 0x60 ; 96
|
||||||
170: f0 e0 ldi r31, 0x00 ; 0
|
258: f0 e0 ldi r31, 0x00 ; 0
|
||||||
172: a6 e8 ldi r26, 0x86 ; 134
|
25a: a6 e9 ldi r26, 0x96 ; 150
|
||||||
174: b0 e0 ldi r27, 0x00 ; 0
|
25c: b0 e0 ldi r27, 0x00 ; 0
|
||||||
176: 01 90 ld r0, Z+
|
25e: 01 90 ld r0, Z+
|
||||||
178: 0d 92 st X+, r0
|
260: 0d 92 st X+, r0
|
||||||
17a: 8a 95 dec r24
|
262: 8a 95 dec r24
|
||||||
17c: e1 f7 brne .-8 ; 0x176 <_GLOBAL__sub_I_u+0x3c>
|
264: e1 f7 brne .-8 ; 0x25e <_GLOBAL__sub_I_u+0x40>
|
||||||
|
|
||||||
static uint8_t pin() { return PINB; }
|
static uint8_t pin() { return PINB; }
|
||||||
static void pin(uint8_t v) { PINB = v; }
|
static void pin(uint8_t v) { PINB = v; }
|
||||||
|
|
||||||
static uint8_t dir() { return DDRB; }
|
static uint8_t dir() { return DDRB; }
|
||||||
static void dir(uint8_t v) { DDRB = v; }
|
static void dir(uint8_t v) { DDRB = v; }
|
||||||
17e: 8f e7 ldi r24, 0x7F ; 127
|
266: 8f e7 ldi r24, 0x7F ; 127
|
||||||
180: 87 bb out 0x17, r24 ; 23
|
268: 87 bb out 0x17, r24 ; 23
|
||||||
// Clock value: 312,500 kHz
|
// Clock value: 312,500 kHz
|
||||||
// Mode: Normal top=0xFF
|
// Mode: Normal top=0xFF
|
||||||
// OC0A output: Disconnected
|
// OC0A output: Disconnected
|
||||||
// OC0B output: Disconnected
|
// OC0B output: Disconnected
|
||||||
// Timer Period: 0,8192 ms
|
// Timer Period: 0,8192 ms
|
||||||
TCCR0A=(0<<COM0A1) | (0<<COM0A0) | (0<<COM0B1) | (0<<COM0B0) | (0<<WGM01) | (0<<WGM00);
|
TCCR0A=(0<<COM0A1) | (0<<COM0A0) | (0<<COM0B1) | (0<<COM0B0) | (0<<WGM01) | (0<<WGM00);
|
||||||
182: 10 be out 0x30, r1 ; 48
|
26a: 10 be out 0x30, r1 ; 48
|
||||||
TCCR0B=(0<<WGM02) | (0<<CS02) | (1<<CS01) | (1<<CS00);
|
TCCR0B=(0<<WGM02) | (0<<CS02) | (1<<CS01) | (1<<CS00);
|
||||||
184: 83 e0 ldi r24, 0x03 ; 3
|
26c: 83 e0 ldi r24, 0x03 ; 3
|
||||||
186: 83 bf out 0x33, r24 ; 51
|
26e: 83 bf out 0x33, r24 ; 51
|
||||||
TCNT0=0x00;
|
TCNT0=0x00;
|
||||||
188: 12 be out 0x32, r1 ; 50
|
270: 12 be out 0x32, r1 ; 50
|
||||||
OCR0A=0x00;
|
OCR0A=0x00;
|
||||||
18a: 16 be out 0x36, r1 ; 54
|
272: 16 be out 0x36, r1 ; 54
|
||||||
OCR0B=0x00;
|
OCR0B=0x00;
|
||||||
18c: 1c be out 0x3c, r1 ; 60
|
274: 1c be out 0x3c, r1 ; 60
|
||||||
|
|
||||||
// Timer(s)/Counter(s) Interrupt(s) initialization
|
// Timer(s)/Counter(s) Interrupt(s) initialization
|
||||||
TIMSK=(0<<TOIE1) | (0<<OCIE1A) | (0<<OCIE1B) | (0<<ICIE1) | (0<<OCIE0B) | (1<<TOIE0) | (0<<OCIE0A);
|
TIMSK=(0<<TOIE1) | (0<<OCIE1A) | (0<<OCIE1B) | (0<<ICIE1) | (0<<OCIE0B) | (1<<TOIE0) | (0<<OCIE0A);
|
||||||
18e: 82 e0 ldi r24, 0x02 ; 2
|
276: 82 e0 ldi r24, 0x02 ; 2
|
||||||
190: 89 bf out 0x39, r24 ; 57
|
278: 89 bf out 0x39, r24 ; 57
|
||||||
192: 08 95 ret
|
27a: 08 95 ret
|
||||||
|
|
||||||
00000194 <__tablejump2__>:
|
0000027c <__tablejump2__>:
|
||||||
194: ee 0f add r30, r30
|
27c: ee 0f add r30, r30
|
||||||
196: ff 1f adc r31, r31
|
27e: ff 1f adc r31, r31
|
||||||
|
|
||||||
00000198 <__tablejump__>:
|
00000280 <__tablejump__>:
|
||||||
198: 05 90 lpm r0, Z+
|
280: 05 90 lpm r0, Z+
|
||||||
19a: f4 91 lpm r31, Z
|
282: f4 91 lpm r31, Z
|
||||||
19c: e0 2d mov r30, r0
|
284: e0 2d mov r30, r0
|
||||||
19e: 09 94 ijmp
|
286: 09 94 ijmp
|
||||||
|
|
||||||
000001a0 <_exit>:
|
00000288 <_exit>:
|
||||||
1a0: f8 94 cli
|
288: f8 94 cli
|
||||||
|
|
||||||
000001a2 <__stop_program>:
|
0000028a <__stop_program>:
|
||||||
1a2: ff cf rjmp .-2 ; 0x1a2 <__stop_program>
|
28a: ff cf rjmp .-2 ; 0x28a <__stop_program>
|
||||||
|
@ -195,7 +195,7 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8
|
|||||||
.rela.plt
|
.rela.plt
|
||||||
*(.rela.plt)
|
*(.rela.plt)
|
||||||
|
|
||||||
.text 0x00000000 0x1a4
|
.text 0x00000000 0x28c
|
||||||
*(.vectors)
|
*(.vectors)
|
||||||
.vectors 0x00000000 0x26 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr25/tiny-stack/crttn2313.o
|
.vectors 0x00000000 0x26 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr25/tiny-stack/crttn2313.o
|
||||||
0x00000000 __vector_default
|
0x00000000 __vector_default
|
||||||
@ -261,7 +261,6 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8
|
|||||||
0x0000006e __vector_11
|
0x0000006e __vector_11
|
||||||
0x0000006e __vector_13
|
0x0000006e __vector_13
|
||||||
0x0000006e __vector_17
|
0x0000006e __vector_17
|
||||||
0x0000006e __vector_7
|
|
||||||
0x0000006e __vector_5
|
0x0000006e __vector_5
|
||||||
0x0000006e __vector_4
|
0x0000006e __vector_4
|
||||||
0x0000006e __vector_9
|
0x0000006e __vector_9
|
||||||
@ -275,21 +274,24 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8
|
|||||||
0x00000070 . = ALIGN (0x2)
|
0x00000070 . = ALIGN (0x2)
|
||||||
*(.text.*)
|
*(.text.*)
|
||||||
.text.startup.main
|
.text.startup.main
|
||||||
0x00000070 0x46 Zahl.o
|
0x00000070 0x20 Zahl.o
|
||||||
0x00000070 main
|
0x00000070 main
|
||||||
.text.__vector_6
|
.text.__vector_6
|
||||||
0x000000b6 0x84 Zahl.o
|
0x00000090 0x8c Zahl.o
|
||||||
0x000000b6 __vector_6
|
0x00000090 __vector_6
|
||||||
|
.text.__vector_7
|
||||||
|
0x0000011c 0x102 Zahl.o
|
||||||
|
0x0000011c __vector_7
|
||||||
.text.startup._GLOBAL__sub_I_u
|
.text.startup._GLOBAL__sub_I_u
|
||||||
0x0000013a 0x5a Zahl.o
|
0x0000021e 0x5e Zahl.o
|
||||||
.text.libgcc 0x00000194 0xc c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr25/tiny-stack\libgcc.a(_tablejump.o)
|
.text.libgcc 0x0000027c 0xc c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr25/tiny-stack\libgcc.a(_tablejump.o)
|
||||||
0x00000194 __tablejump2__
|
0x0000027c __tablejump2__
|
||||||
0x00000198 __tablejump__
|
0x00000280 __tablejump__
|
||||||
0x000001a0 . = ALIGN (0x2)
|
0x00000288 . = ALIGN (0x2)
|
||||||
*(.fini9)
|
*(.fini9)
|
||||||
.fini9 0x000001a0 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr25/tiny-stack\libgcc.a(_exit.o)
|
.fini9 0x00000288 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr25/tiny-stack\libgcc.a(_exit.o)
|
||||||
0x000001a0 _exit
|
0x00000288 _exit
|
||||||
0x000001a0 exit
|
0x00000288 exit
|
||||||
*(.fini9)
|
*(.fini9)
|
||||||
*(.fini8)
|
*(.fini8)
|
||||||
*(.fini8)
|
*(.fini8)
|
||||||
@ -308,11 +310,11 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8
|
|||||||
*(.fini1)
|
*(.fini1)
|
||||||
*(.fini1)
|
*(.fini1)
|
||||||
*(.fini0)
|
*(.fini0)
|
||||||
.fini0 0x000001a0 0x4 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr25/tiny-stack\libgcc.a(_exit.o)
|
.fini0 0x00000288 0x4 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr25/tiny-stack\libgcc.a(_exit.o)
|
||||||
*(.fini0)
|
*(.fini0)
|
||||||
0x000001a4 _etext = .
|
0x0000028c _etext = .
|
||||||
|
|
||||||
.data 0x00800060 0x24 load address 0x000001a4
|
.data 0x00800060 0x34 load address 0x0000028c
|
||||||
0x00800060 PROVIDE (__data_start, .)
|
0x00800060 PROVIDE (__data_start, .)
|
||||||
*(.data)
|
*(.data)
|
||||||
.data 0x00800060 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr25/tiny-stack/crttn2313.o
|
.data 0x00800060 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr25/tiny-stack/crttn2313.o
|
||||||
@ -327,31 +329,31 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8
|
|||||||
.rodata 0x00800060 0x10 Zahl.o
|
.rodata 0x00800060 0x10 Zahl.o
|
||||||
*(.rodata*)
|
*(.rodata*)
|
||||||
.rodata.str1.1
|
.rodata.str1.1
|
||||||
0x00800070 0x13 Zahl.o
|
0x00800070 0x24 Zahl.o
|
||||||
|
0x27 (size before relaxing)
|
||||||
*(.gnu.linkonce.d*)
|
*(.gnu.linkonce.d*)
|
||||||
0x00800084 . = ALIGN (0x2)
|
0x00800094 . = ALIGN (0x2)
|
||||||
*fill* 0x00800083 0x1
|
0x00800094 _edata = .
|
||||||
0x00800084 _edata = .
|
0x00800094 PROVIDE (__data_end, .)
|
||||||
0x00800084 PROVIDE (__data_end, .)
|
|
||||||
|
|
||||||
.bss 0x00800084 0x20
|
.bss 0x00800094 0x24
|
||||||
0x00800084 PROVIDE (__bss_start, .)
|
0x00800094 PROVIDE (__bss_start, .)
|
||||||
*(.bss)
|
*(.bss)
|
||||||
.bss 0x00800084 0x20 Zahl.o
|
.bss 0x00800094 0x24 Zahl.o
|
||||||
0x00800084 l
|
0x00800094 l
|
||||||
0x00800096 u
|
0x008000a6 u
|
||||||
*(.bss*)
|
*(.bss*)
|
||||||
*(COMMON)
|
*(COMMON)
|
||||||
0x008000a4 PROVIDE (__bss_end, .)
|
0x008000b8 PROVIDE (__bss_end, .)
|
||||||
0x000001a4 __data_load_start = LOADADDR (.data)
|
0x0000028c __data_load_start = LOADADDR (.data)
|
||||||
0x000001c8 __data_load_end = (__data_load_start + SIZEOF (.data))
|
0x000002c0 __data_load_end = (__data_load_start + SIZEOF (.data))
|
||||||
|
|
||||||
.noinit 0x008000a4 0x0
|
.noinit 0x008000b8 0x0
|
||||||
0x008000a4 PROVIDE (__noinit_start, .)
|
0x008000b8 PROVIDE (__noinit_start, .)
|
||||||
*(.noinit*)
|
*(.noinit*)
|
||||||
0x008000a4 PROVIDE (__noinit_end, .)
|
0x008000b8 PROVIDE (__noinit_end, .)
|
||||||
0x008000a4 _end = .
|
0x008000b8 _end = .
|
||||||
0x008000a4 PROVIDE (__heap_start, .)
|
0x008000b8 PROVIDE (__heap_start, .)
|
||||||
|
|
||||||
.eeprom 0x00810000 0x0
|
.eeprom 0x00810000 0x0
|
||||||
*(.eeprom*)
|
*(.eeprom*)
|
||||||
@ -409,39 +411,39 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8
|
|||||||
.debug_sfnames
|
.debug_sfnames
|
||||||
*(.debug_sfnames)
|
*(.debug_sfnames)
|
||||||
|
|
||||||
.debug_aranges 0x00000000 0x30
|
.debug_aranges 0x00000000 0x38
|
||||||
*(.debug_aranges)
|
*(.debug_aranges)
|
||||||
.debug_aranges
|
.debug_aranges
|
||||||
0x00000000 0x30 Zahl.o
|
0x00000000 0x38 Zahl.o
|
||||||
|
|
||||||
.debug_pubnames
|
.debug_pubnames
|
||||||
*(.debug_pubnames)
|
*(.debug_pubnames)
|
||||||
|
|
||||||
.debug_info 0x00000000 0x961
|
.debug_info 0x00000000 0xbac
|
||||||
*(.debug_info)
|
*(.debug_info)
|
||||||
.debug_info 0x00000000 0x961 Zahl.o
|
.debug_info 0x00000000 0xbac Zahl.o
|
||||||
*(.gnu.linkonce.wi.*)
|
*(.gnu.linkonce.wi.*)
|
||||||
|
|
||||||
.debug_abbrev 0x00000000 0x333
|
.debug_abbrev 0x00000000 0x369
|
||||||
*(.debug_abbrev)
|
*(.debug_abbrev)
|
||||||
.debug_abbrev 0x00000000 0x333 Zahl.o
|
.debug_abbrev 0x00000000 0x369 Zahl.o
|
||||||
|
|
||||||
.debug_line 0x00000000 0x230
|
.debug_line 0x00000000 0x285
|
||||||
*(.debug_line)
|
*(.debug_line)
|
||||||
.debug_line 0x00000000 0x230 Zahl.o
|
.debug_line 0x00000000 0x285 Zahl.o
|
||||||
|
|
||||||
.debug_frame 0x00000000 0x7c
|
.debug_frame 0x00000000 0xbc
|
||||||
*(.debug_frame)
|
*(.debug_frame)
|
||||||
.debug_frame 0x00000000 0x7c Zahl.o
|
.debug_frame 0x00000000 0xbc Zahl.o
|
||||||
|
|
||||||
.debug_str 0x00000000 0x441
|
.debug_str 0x00000000 0x498
|
||||||
*(.debug_str)
|
*(.debug_str)
|
||||||
.debug_str 0x00000000 0x441 Zahl.o
|
.debug_str 0x00000000 0x498 Zahl.o
|
||||||
0x47a (size before relaxing)
|
0x4d1 (size before relaxing)
|
||||||
|
|
||||||
.debug_loc 0x00000000 0x299
|
.debug_loc 0x00000000 0x2b1
|
||||||
*(.debug_loc)
|
*(.debug_loc)
|
||||||
.debug_loc 0x00000000 0x299 Zahl.o
|
.debug_loc 0x00000000 0x2b1 Zahl.o
|
||||||
|
|
||||||
.debug_macinfo
|
.debug_macinfo
|
||||||
*(.debug_macinfo)
|
*(.debug_macinfo)
|
||||||
@ -449,9 +451,9 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8
|
|||||||
.debug_pubtypes
|
.debug_pubtypes
|
||||||
*(.debug_pubtypes)
|
*(.debug_pubtypes)
|
||||||
|
|
||||||
.debug_ranges 0x00000000 0x20
|
.debug_ranges 0x00000000 0x98
|
||||||
*(.debug_ranges)
|
*(.debug_ranges)
|
||||||
.debug_ranges 0x00000000 0x20 Zahl.o
|
.debug_ranges 0x00000000 0x98 Zahl.o
|
||||||
|
|
||||||
.debug_macro
|
.debug_macro
|
||||||
*(.debug_macro)
|
*(.debug_macro)
|
||||||
|
@ -1,32 +1,47 @@
|
|||||||
S00C00005A61686C2E7372656389
|
S00C00005A61686C2E7372656389
|
||||||
S113000013C035C034C033C032C031C054C02FC057
|
S113000013C035C034C033C032C031C041C086C013
|
||||||
S11300102EC02DC02CC02BC02AC029C028C027C088
|
S11300102EC02DC02CC02BC02AC029C028C027C088
|
||||||
S113002026C025C024C09D0011241FBECFEDCDBF26
|
S113002026C025C024C00F0111241FBECFEDCDBFB3
|
||||||
S113003010E0A0E6B0E0E4EAF1E002C005900D9221
|
S113003010E0A0E6B0E0ECE8F2E002C005900D921A
|
||||||
S1130040A438B107D9F720E0A4E8B0E001C01D92BC
|
S1130040A439B107D9F720E0A4E9B0E001C01D92BA
|
||||||
S1130050A43AB207E1F710E0C8E2D0E003C0229767
|
S1130050A83BB207E1F710E0C8E2D0E003C0229762
|
||||||
S1130060FE019AD0C632D107D1F702D099C0C8CFC9
|
S1130060FE010ED1C632D107D1F702D00DC1C8CFDF
|
||||||
S11300707894109284008CEA8093850090E002C00A
|
S113007078948091A7009091A60090939400809327
|
||||||
S113008080E0982FE0E7F0E003C05D9BFECF8CB9E1
|
S113008095008FE493EC0197F1F700C00000F1CFE5
|
||||||
S113009081918111FACF892F8F5F909384002FE78C
|
S11300901F920F920FB60F9211242F933F934F93F9
|
||||||
S11300A034E89EE1215030409040E1F700C0000068
|
S11300A05F936F938F939F93EF93FF93809195004A
|
||||||
S11300B0803130F7E6CF1F920F920FB60F921124C2
|
S11300B0882399F080E0E0919400F0E0EC56FF4F43
|
||||||
S11300C02F933F934F935F936F938F939F93EF93EC
|
S11300C0928198BB96E09A95F1F700C08F5F90916A
|
||||||
S11300D0FF9380E00CC0E0918400F0E0EC57FF4F08
|
S11300D09500891780F39F3F99F060E04FEF50E05F
|
||||||
S11300E0928198BB96E09A95F1F700C08F5F90914A
|
S11300E018BAE6E0EA95F1F700C06F5F262F30E01A
|
||||||
S11300F08500891780F360E04FEF50E006C018BA1E
|
S11300F080919500FA01E81BF1092E173F0784F35C
|
||||||
S1130100E6E0EA95F1F700C06F5F262F30E08091BA
|
S1130100FF91EF919F918F916F915F914F913F91EB
|
||||||
S11301108500FA01E81BF1092E173F0784F3FF91CC
|
S11301102F910F900FBE0F901F9018951F920F9262
|
||||||
S1130120EF919F918F916F915F914F913F912F919B
|
S11301200FB60F9211242F933F934F938F939F9366
|
||||||
S11301300F900FBE0F901F9018951092960010927A
|
S1130130EF93FF938CB18A3039F08D3029F0909190
|
||||||
S11301409700789486E083B988E08AB912B881E888
|
S1130140A8009F3008F43FC08091A900843709F4C7
|
||||||
S113015089B9E7E7F0E003C05D9BFECF8CB98191DC
|
S113015060C08091A900843609F441C0EAE7F0E068
|
||||||
S11301608111FACF109284001092850080E1E0E6BC
|
S113016087E55D9BFECF8CB981918111FACF809197
|
||||||
S1130170F0E0A6E8B0E001900D928A95E1F78FE7F0
|
S1130170A600805D5D9BFECF8CB9E1E7F0E080E2F4
|
||||||
S113018087BB10BE83E083BF12BE16BE1CBE82E0D6
|
S11301805D9BFECF8CB981918111FACF8091A7003C
|
||||||
S113019089BF0895EE0FFF1F0590F491E02D099497
|
S1130190805D5D9BFECF8CB9E2E9F0E08DE05D9B74
|
||||||
S10701A0F894FFCFFD
|
S11301A0FECF8CB981918111FACF1092A800FF91F2
|
||||||
S11301A47B036E4F175D7D0B7F5F3F7578677C3CE7
|
S11301B0EF919F918F914F913F912F910F900FBE8F
|
||||||
S11301B4626C612E2E0A005561727420646F6E6540
|
S11301C00F901F901895E091A800F0E0EA55FF4FBA
|
||||||
S10701C4210A000008
|
S11301D083838091A8008F5F8093A800E8CF30913B
|
||||||
|
S11301E0AA004091AB008091AC00805D232F220FC8
|
||||||
|
S11301F0230F922F9295990F907E920F930F890F50
|
||||||
|
S1130200942F990F990F940F990F890F8093A7003A
|
||||||
|
S1130210A5CF8091AB0080538093A6009ACF109213
|
||||||
|
S1130220A6001092A7001092A800789486E083B9E3
|
||||||
|
S113023088E98AB912B881E889B9E8E8F0E085E587
|
||||||
|
S11302405D9BFECF8CB981918111FACF10929400FD
|
||||||
|
S11302501092950080E1E0E6F0E0A6E9B0E00190BC
|
||||||
|
S11302600D928A95E1F78FE787BB10BE83E083BFC9
|
||||||
|
S113027012BE16BE1CBE82E089BF0895EE0FFF1F9A
|
||||||
|
S10F02800590F491E02D0994F894FFCF50
|
||||||
|
S113028C7B036E4F175D7D0B7F5F3F7578677C3CFE
|
||||||
|
S113029C204C696768743A200057657274653A207B
|
||||||
|
S11302AC54696D653A20005561727420646F6E65F3
|
||||||
|
S10702BC210D0A0002
|
||||||
S9030000FC
|
S9030000FC
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
|
|
||||||
|
|
||||||
///////////////////////// UART ////////////////////////////////////
|
///////////////////////// UART ////////////////////////////////////
|
||||||
typedef Uart<9600, 9> uartclass;
|
typedef Uart<9600, 2> uartclass;
|
||||||
uartclass u;
|
uartclass u;
|
||||||
///////////////////////// LED /////////////////////////////////////
|
///////////////////////// LED /////////////////////////////////////
|
||||||
typedef Led<avrlib::portb> ledclass;
|
typedef Led<avrlib::portb> ledclass;
|
||||||
@ -23,15 +23,17 @@ int main(void)
|
|||||||
sei();
|
sei();
|
||||||
l.setNum(0);
|
l.setNum(0);
|
||||||
l.setDim(0xAC);
|
l.setDim(0xAC);
|
||||||
uint8_t i = 0;
|
//uint8_t i = 0;
|
||||||
while(1)
|
while(1)
|
||||||
{
|
{
|
||||||
u.send("bla..\n");
|
uint8_t t = u.getDig();
|
||||||
l.setNum(i++);
|
uint8_t d = u.getDim();
|
||||||
_delay_ms(500);
|
l.setNum(t);
|
||||||
if(i > 15) {
|
l.setDim(d);
|
||||||
|
_delay_ms(10);
|
||||||
|
/*if(i > 15) {
|
||||||
i = 0;
|
i = 0;
|
||||||
}
|
}*/
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -39,7 +41,6 @@ ISR(TIMER0_OVF_vect) {
|
|||||||
l.timer();
|
l.timer();
|
||||||
}
|
}
|
||||||
|
|
||||||
/*ISR(USART_RX_vect) {
|
ISR(USART_RX_vect) {
|
||||||
//u.interrupt();
|
u.interrupt();
|
||||||
PORTB ^= 0xFF;
|
}
|
||||||
}*/
|
|
@ -18,7 +18,8 @@
|
|||||||
<ToolchainFlavour>Native</ToolchainFlavour>
|
<ToolchainFlavour>Native</ToolchainFlavour>
|
||||||
<KeepTimersRunning>true</KeepTimersRunning>
|
<KeepTimersRunning>true</KeepTimersRunning>
|
||||||
<OverrideVtor>false</OverrideVtor>
|
<OverrideVtor>false</OverrideVtor>
|
||||||
<OverrideVtorValue>exception_table</OverrideVtorValue>
|
<OverrideVtorValue>
|
||||||
|
</OverrideVtorValue>
|
||||||
<eraseonlaunchrule>0</eraseonlaunchrule>
|
<eraseonlaunchrule>0</eraseonlaunchrule>
|
||||||
<ProgFlashFromRam>true</ProgFlashFromRam>
|
<ProgFlashFromRam>true</ProgFlashFromRam>
|
||||||
<RamSnippetAddress>0x20000000</RamSnippetAddress>
|
<RamSnippetAddress>0x20000000</RamSnippetAddress>
|
||||||
@ -138,7 +139,7 @@
|
|||||||
<Value>DEBUG</Value>
|
<Value>DEBUG</Value>
|
||||||
</ListValues>
|
</ListValues>
|
||||||
</avrgcccpp.compiler.symbols.DefSymbols>
|
</avrgcccpp.compiler.symbols.DefSymbols>
|
||||||
<avrgcccpp.compiler.optimization.level>Optimize for size (-Os)</avrgcccpp.compiler.optimization.level>
|
<avrgcccpp.compiler.optimization.level>Optimize most (-O3)</avrgcccpp.compiler.optimization.level>
|
||||||
<avrgcccpp.compiler.optimization.PackStructureMembers>True</avrgcccpp.compiler.optimization.PackStructureMembers>
|
<avrgcccpp.compiler.optimization.PackStructureMembers>True</avrgcccpp.compiler.optimization.PackStructureMembers>
|
||||||
<avrgcccpp.compiler.optimization.AllocateBytesNeededForEnum>True</avrgcccpp.compiler.optimization.AllocateBytesNeededForEnum>
|
<avrgcccpp.compiler.optimization.AllocateBytesNeededForEnum>True</avrgcccpp.compiler.optimization.AllocateBytesNeededForEnum>
|
||||||
<avrgcccpp.compiler.optimization.DebugLevel>Default (-g2)</avrgcccpp.compiler.optimization.DebugLevel>
|
<avrgcccpp.compiler.optimization.DebugLevel>Default (-g2)</avrgcccpp.compiler.optimization.DebugLevel>
|
||||||
|
@ -20,7 +20,7 @@ class Uart {
|
|||||||
Uart() {
|
Uart() {
|
||||||
sei();
|
sei();
|
||||||
init();
|
init();
|
||||||
send("Uart done!\n");
|
send("Uart done!\r\n");
|
||||||
}
|
}
|
||||||
void send(const char *text) {
|
void send(const char *text) {
|
||||||
while (*text)
|
while (*text)
|
||||||
@ -29,36 +29,54 @@ class Uart {
|
|||||||
text++;
|
text++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
void send(uint8_t text) {
|
||||||
|
uart_putchar(text);
|
||||||
|
}
|
||||||
/* USART_RX_vect */
|
/* USART_RX_vect */
|
||||||
void interrupt() {
|
void interrupt() {
|
||||||
uint8_t nextChar;
|
char nextChar;
|
||||||
nextChar = UDR;
|
nextChar = UDR;
|
||||||
if( nextChar != '\n' && nextChar != '\r' && uart_str_count < UART_MAXSTRLEN ) {
|
|
||||||
|
if( nextChar != '\n' && nextChar != '\r' && uart_str_count < UART_MAXSTRLEN) {
|
||||||
uart_string[uart_str_count] = nextChar;
|
uart_string[uart_str_count] = nextChar;
|
||||||
uart_str_count++;
|
uart_str_count++;
|
||||||
|
//send(nextChar);
|
||||||
} else {
|
} else {
|
||||||
|
//send("\r\n");
|
||||||
if(uart_string[0] == 't') {
|
if(uart_string[0] == 't') {
|
||||||
number = uart_string[diget];
|
number = uart_string[diget]-0x30;
|
||||||
}
|
}
|
||||||
|
if(uart_string[0] == 'd') {
|
||||||
|
dimmer = (uart_string[1]-0x30)*100 + (uart_string[2]-0x30)*10 + (uart_string[3]-0x30)*1;
|
||||||
|
}
|
||||||
|
send("Werte: Time: ");
|
||||||
|
send(number+0x30);
|
||||||
|
send(" Light: ");
|
||||||
|
send(dimmer+0x30);
|
||||||
|
send("\r\n");
|
||||||
uart_str_count = 0;
|
uart_str_count = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
uint8_t getDig() {
|
uint8_t getDig() {
|
||||||
return number;
|
return number;
|
||||||
}
|
}
|
||||||
|
uint8_t getDim() {
|
||||||
|
return dimmer;
|
||||||
|
}
|
||||||
private:
|
private:
|
||||||
uint8_t number = 0;
|
uint8_t number = 0;
|
||||||
static const uint8_t UART_MAXSTRLEN = 12;
|
uint8_t dimmer = 0;
|
||||||
uint8_t uart_str_count = 0;
|
static const uint8_t UART_MAXSTRLEN = 15;
|
||||||
uint8_t uart_string[UART_MAXSTRLEN];
|
volatile uint8_t uart_str_count = 0;
|
||||||
|
volatile char uart_string[UART_MAXSTRLEN];
|
||||||
void init() {
|
void init() {
|
||||||
UCSRC = (1 << UCSZ1) | (1 << UCSZ0); //8N1
|
UCSRC = (1<<UCSZ1) | (1<<UCSZ0) /* 8-Bit */ | (0<<UPM1) | (0<<UPM0) /* No Parity */ | (0<<UMSEL) /* Asyncron */;
|
||||||
UCSRB = /*(1<<RXEN1) | / (1<<RXCIE) | */ (1<<TXEN); //Enable TXEN im Register UCR TX-Data Enable
|
UCSRB = (1<<RXEN) | (1<<RXCIE) /* Recieve & Interrupt */ | (1<<TXEN) /* Send */; //Enable TXEN im Register UCR TX-Data Enable
|
||||||
UBRRH = (uint8_t)(((F_CPU / 16 / baudrate) - 1)>>8);
|
UBRRH = (uint8_t)(((F_CPU / 16 / baudrate) - 1)>>8);
|
||||||
UBRRL = (uint8_t)(F_CPU / 16 / baudrate) - 1; //Teiler wird gesetzt
|
UBRRL = (uint8_t)(F_CPU / 16 / baudrate) - 1;
|
||||||
}
|
}
|
||||||
uint8_t uart_putchar(uint8_t c) {
|
uint8_t uart_putchar(uint8_t c) {
|
||||||
loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens
|
loop_until_bit_is_set(UCSRA, UDRE); /* Data Register Empty */
|
||||||
UDR = c;
|
UDR = c;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user