20131213-093359

This commit is contained in:
BlubbFish 2013-12-13 08:34:02 +00:00
parent 11933f0506
commit 1ad669004c
7 changed files with 302 additions and 407 deletions

Binary file not shown.

View File

@ -1,46 +1,41 @@
:1000000013C035C034C033C032C031C041C086C017 :1000000013C035C034C033C032C031C041C086C017
:100010002EC02DC02CC02BC02AC029C028C027C08C :100010002EC02DC02CC02BC02AC029C028C027C08C
:1000200026C025C024C00F0111241FBECFEDCDBFB7 :1000200026C025C024C0F40011241FBECFEDCDBFD3
:1000300010E0A0E6B0E0ECE8F2E002C005900D921E :1000300010E0A0E6B0E0E8E5F2E002C005900D9225
:10004000A439B107D9F720E0A4E9B0E001C01D92BE :10004000AE37B107D9F720E0AEE7B0E001C01D92AE
:10005000A83BB207E1F710E0C8E2D0E003C0229766 :10005000A23AB207E1F710E0C8E2D0E003C022976D
:10006000FE010ED1C632D107D1F702D00DC1C8CFE3 :10006000FE01F4D0C632D107D1F702D0F3C0C8CF19
:1000700078948091A7009091A6009093940080932B :100070007894809191009091900090937E0080936D
:1000800095008FE493EC0197F1F700C00000F1CFE9 :100080007F008FE493EC0197F1F700C00000F1CFFF
:100090001F920F920FB60F9211242F933F934F93FD :100090001F920F920FB60F9211242F933F934F93FD
:1000A0005F936F938F939F93EF93FF93809195004E :1000A0005F936F938F939F93EF93FF9380917F0064
:1000B000882399F080E0E0919400F0E0EC56FF4F47 :1000B000882399F080E0E0917E00F0E0E258FF4F65
:1000C000928198BB96E09A95F1F700C08F5F90916E :1000C000928198BB96E09A95F1F700C08F5F90916E
:1000D0009500891780F39F3F99F060E04FEF50E063 :1000D0007F00891780F39F3F99F060E04FEF50E079
:1000E00018BAE6E0EA95F1F700C06F5F262F30E01E :1000E00018BAE6E0EA95F1F700C06F5F262F30E01E
:1000F00080919500FA01E81BF1092E173F0784F360 :1000F00080917F00FA01E81BF1092E173F0784F376
:10010000FF91EF919F918F916F915F914F913F91EF :10010000FF91EF919F918F916F915F914F913F91EF
:100110002F910F900FBE0F901F9018951F920F9266 :100110002F910F900FBE0F901F9018951F920F9266
:100120000FB60F9211242F933F934F938F939F936A :100120000FB60F9211242F933F934F938F939F936A
:10013000EF93FF938CB18A3039F08D3029F0909194 :10013000EF93FF938CB18A30A9F08D3099F09091B4
:10014000A8009F3008F43FC08091A900843709F4CB :1001400092009F3078F4E0919200F0E0E057FF4F8A
:1001500060C08091A900843609F441C0EAE7F0E06C :100150008383909192009F5F909392005D9BFECF6E
:1001600087E55D9BFECF8CB981918111FACF80919B :100160008CB913C0EBE7F0E08DE05D9BFECF8CB95E
:10017000A600805D5D9BFECF8CB9E1E7F0E080E2F8 :1001700081918111FACF80919300843791F0809121
:100180005D9BFECF8CB981918111FACF8091A70040 :1001800093008436B9F010929200FF91EF919F9105
:10019000805D5D9BFECF8CB9E2E9F0E08DE05D9B78 :100190008F914F913F912F910F900FBE0F901F9015
:1001A000FECF8CB981918111FACF1092A800FF91F6 :1001A00018958091940080538093900080919300E3
:1001B000EF919F918F914F913F912F910F900FBE93 :1001B000843649F7309194004091950080919600E3
:1001C0000F901F901895E091A800F0E0EA55FF4FBE :1001C000805D232F220F230F922F9295990F907EFF
:1001D00083838091A8008F5F8093A800E8CF30913F :1001D000920F930F890F942F990F990F940F990FE6
:1001E000AA004091AB008091AC00805D232F220FCC :1001E000890F80939100CFCF1092900082E380938B
:1001F000230F922F9295990F907E920F930F890F54 :1001F000910010929200789486E083B988E98AB9D8
:10020000942F990F990F940F990F890F8093A7003E :1002000012B881E889B9E1E7F0E085E55D9BFECFB2
:10021000A5CF8091AB0080538093A6009ACF109217 :100210008CB981918111FACF10927E0010927F00EB
:10022000A6001092A7001092A800789486E083B9E7 :1002200080E1E0E6F0E0A0E8B0E001900D928A9570
:1002300088E98AB912B881E889B9E8E8F0E085E58B :10023000E1F78FE787BB10BE83E083BF12BE16BE17
:100240005D9BFECF8CB981918111FACF1092940001 :100240001CBE82E089BF0895EE0FFF1F0590F49158
:100250001092950080E1E0E6F0E0A6E9B0E00190C0 :08025000E02D0994F894FFCFA2
:100260000D928A95E1F78FE787BB10BE83E083BFCD :100258007B036E4F175D7D0B7F5F3F7578677C3C36
:1002700012BE16BE1CBE82E089BF0895EE0FFF1F9E :0E0268005561727420646F6E65210D0A0000EE
:0C0280000590F491E02D0994F894FFCF54
:10028C007B036E4F175D7D0B7F5F3F7578677C3C02
:10029C00204C696768743A200057657274653A207F
:1002AC0054696D653A20005561727420646F6E65F7
:0402BC00210D0A0006
:00000001FF :00000001FF

View File

@ -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 0000028c 00000000 00000000 00000094 2**1 0 .text 00000258 00000000 00000000 00000094 2**1
CONTENTS, ALLOC, LOAD, READONLY, CODE CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .data 00000034 00800060 0000028c 00000320 2**0 1 .data 0000001e 00800060 00000258 000002ec 2**0
CONTENTS, ALLOC, LOAD, DATA CONTENTS, ALLOC, LOAD, DATA
2 .bss 00000024 00800094 00800094 00000354 2**0 2 .bss 00000024 0080007e 0080007e 0000030a 2**0
ALLOC ALLOC
3 .stab 000006b4 00000000 00000000 00000354 2**2 3 .stab 000006b4 00000000 00000000 0000030c 2**2
CONTENTS, READONLY, DEBUGGING CONTENTS, READONLY, DEBUGGING
4 .stabstr 00000082 00000000 00000000 00000a08 2**0 4 .stabstr 00000082 00000000 00000000 000009c0 2**0
CONTENTS, READONLY, DEBUGGING CONTENTS, READONLY, DEBUGGING
5 .comment 0000002f 00000000 00000000 00000a8a 2**0 5 .comment 0000002f 00000000 00000000 00000a42 2**0
CONTENTS, READONLY CONTENTS, READONLY
6 .debug_aranges 00000038 00000000 00000000 00000ab9 2**0 6 .debug_aranges 00000038 00000000 00000000 00000a71 2**0
CONTENTS, READONLY, DEBUGGING CONTENTS, READONLY, DEBUGGING
7 .debug_info 00000bac 00000000 00000000 00000af1 2**0 7 .debug_info 00000ac4 00000000 00000000 00000aa9 2**0
CONTENTS, READONLY, DEBUGGING CONTENTS, READONLY, DEBUGGING
8 .debug_abbrev 00000369 00000000 00000000 0000169d 2**0 8 .debug_abbrev 00000369 00000000 00000000 0000156d 2**0
CONTENTS, READONLY, DEBUGGING CONTENTS, READONLY, DEBUGGING
9 .debug_line 00000285 00000000 00000000 00001a06 2**0 9 .debug_line 0000026b 00000000 00000000 000018d6 2**0
CONTENTS, READONLY, DEBUGGING CONTENTS, READONLY, DEBUGGING
10 .debug_frame 000000bc 00000000 00000000 00001c8c 2**2 10 .debug_frame 000000bc 00000000 00000000 00001b44 2**2
CONTENTS, READONLY, DEBUGGING CONTENTS, READONLY, DEBUGGING
11 .debug_str 00000498 00000000 00000000 00001d48 2**0 11 .debug_str 00000498 00000000 00000000 00001c00 2**0
CONTENTS, READONLY, DEBUGGING CONTENTS, READONLY, DEBUGGING
12 .debug_loc 000002b1 00000000 00000000 000021e0 2**0 12 .debug_loc 0000026f 00000000 00000000 00002098 2**0
CONTENTS, READONLY, DEBUGGING CONTENTS, READONLY, DEBUGGING
13 .debug_ranges 00000098 00000000 00000000 00002491 2**0 13 .debug_ranges 00000098 00000000 00000000 00002307 2**0
CONTENTS, READONLY, DEBUGGING CONTENTS, READONLY, DEBUGGING
Disassembly of section .text: Disassembly of section .text:
@ -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: 0f 01 movw r0, r30 26: f4 00 .word 0x00f4 ; ????
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: ec e8 ldi r30, 0x8C ; 140 36: e8 e5 ldi r30, 0x58 ; 88
38: f2 e0 ldi r31, 0x02 ; 2 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 39 cpi r26, 0x94 ; 148 40: ae 37 cpi r26, 0x7E ; 126
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 e9 ldi r26, 0x94 ; 148 48: ae e7 ldi r26, 0x7E ; 126
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: a8 3b cpi r26, 0xB8 ; 184 50: a2 3a cpi r26, 0xA2 ; 162
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: 0e d1 rcall .+540 ; 0x280 <__tablejump__> 62: f4 d0 rcall .+488 ; 0x24c <__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: 0d c1 rjmp .+538 ; 0x288 <_exit> 6c: f3 c0 rjmp .+486 ; 0x254 <_exit>
0000006e <__bad_interrupt>: 0000006e <__bad_interrupt>:
6e: c8 cf rjmp .-112 ; 0x0 <__vectors> 6e: c8 cf rjmp .-112 ; 0x0 <__vectors>
@ -122,19 +122,19 @@ int main(void)
} }
uint8_t getDim() { uint8_t getDim() {
return dimmer; return dimmer;
72: 80 91 a7 00 lds r24, 0x00A7 72: 80 91 91 00 lds r24, 0x0091
public: public:
Led() { Led() {
init(); init();
} }
void setNum(uint8_t number) { void setNum(uint8_t number) {
this->diget = number; this->diget = number;
76: 90 91 a6 00 lds r25, 0x00A6 76: 90 91 90 00 lds r25, 0x0090
7a: 90 93 94 00 sts 0x0094, r25 7a: 90 93 7e 00 sts 0x007E, r25
} }
void setDim(uint8_t dimmer) { void setDim(uint8_t dimmer) {
this->dim = dimmer; this->dim = dimmer;
7e: 80 93 95 00 sts 0x0095, r24 7e: 80 93 7f 00 sts 0x007F, r24
#else #else
//round up by default //round up by default
__ticks_dc = (uint32_t)(ceil(fabs(__tmp))); __ticks_dc = (uint32_t)(ceil(fabs(__tmp)));
@ -176,14 +176,14 @@ ISR(TIMER0_OVF_vect) {
/* 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++) {
ac: 80 91 95 00 lds r24, 0x0095 ac: 80 91 7f 00 lds r24, 0x007F
b0: 88 23 and r24, r24 b0: 88 23 and r24, r24
b2: 99 f0 breq .+38 ; 0xda <__vector_6+0x4a> b2: 99 f0 breq .+38 ; 0xda <__vector_6+0x4a>
b4: 80 e0 ldi r24, 0x00 ; 0 b4: 80 e0 ldi r24, 0x00 ; 0
Port::port(segs[this->diget]); Port::port(segs[this->diget]);
b6: e0 91 94 00 lds r30, 0x0094 b6: e0 91 7e 00 lds r30, 0x007E
ba: f0 e0 ldi r31, 0x00 ; 0 ba: f0 e0 ldi r31, 0x00 ; 0
bc: ec 56 subi r30, 0x6C ; 108 bc: e2 58 subi r30, 0x82 ; 130
be: ff 4f sbci r31, 0xFF ; 255 be: ff 4f sbci r31, 0xFF ; 255
c0: 92 81 ldd r25, Z+2 ; 0x02 c0: 92 81 ldd r25, Z+2 ; 0x02
namespace avrlib { namespace avrlib {
@ -210,7 +210,7 @@ namespace avrlib {
void timer() { void timer() {
for(uint8_t k=0;k<this->dim;k++) { for(uint8_t k=0;k<this->dim;k++) {
cc: 8f 5f subi r24, 0xFF ; 255 cc: 8f 5f subi r24, 0xFF ; 255
ce: 90 91 95 00 lds r25, 0x0095 ce: 90 91 7f 00 lds r25, 0x007F
d2: 89 17 cp r24, r25 d2: 89 17 cp r24, r25
d4: 80 f3 brcs .-32 ; 0xb6 <__vector_6+0x26> d4: 80 f3 brcs .-32 ; 0xb6 <__vector_6+0x26>
Port::port(segs[this->diget]); Port::port(segs[this->diget]);
@ -240,7 +240,7 @@ namespace avrlib {
ea: 6f 5f subi r22, 0xFF ; 255 ea: 6f 5f subi r22, 0xFF ; 255
ec: 26 2f mov r18, r22 ec: 26 2f mov r18, r22
ee: 30 e0 ldi r19, 0x00 ; 0 ee: 30 e0 ldi r19, 0x00 ; 0
f0: 80 91 95 00 lds r24, 0x0095 f0: 80 91 7f 00 lds r24, 0x007F
f4: fa 01 movw r30, r20 f4: fa 01 movw r30, r20
f6: e8 1b sub r30, r24 f6: e8 1b sub r30, r24
f8: f1 09 sbc r31, r1 f8: f1 09 sbc r31, r1
@ -289,341 +289,245 @@ ISR(USART_RX_vect) {
if( nextChar != '\n' && nextChar != '\r' && uart_str_count < UART_MAXSTRLEN) { if( nextChar != '\n' && nextChar != '\r' && uart_str_count < UART_MAXSTRLEN) {
136: 8a 30 cpi r24, 0x0A ; 10 136: 8a 30 cpi r24, 0x0A ; 10
138: 39 f0 breq .+14 ; 0x148 <__vector_7+0x2c> 138: a9 f0 breq .+42 ; 0x164 <__vector_7+0x48>
13a: 8d 30 cpi r24, 0x0D ; 13 13a: 8d 30 cpi r24, 0x0D ; 13
13c: 29 f0 breq .+10 ; 0x148 <__vector_7+0x2c> 13c: 99 f0 breq .+38 ; 0x164 <__vector_7+0x48>
13e: 90 91 a8 00 lds r25, 0x00A8 13e: 90 91 92 00 lds r25, 0x0092
142: 9f 30 cpi r25, 0x0F ; 15 142: 9f 30 cpi r25, 0x0F ; 15
144: 08 f4 brcc .+2 ; 0x148 <__vector_7+0x2c> 144: 78 f4 brcc .+30 ; 0x164 <__vector_7+0x48>
146: 3f c0 rjmp .+126 ; 0x1c6 <__vector_7+0xaa> uart_string[uart_str_count] = nextChar;
146: e0 91 92 00 lds r30, 0x0092
14a: f0 e0 ldi r31, 0x00 ; 0
14c: e0 57 subi r30, 0x70 ; 112
14e: ff 4f sbci r31, 0xFF ; 255
150: 83 83 std Z+3, r24 ; 0x03
uart_str_count++;
152: 90 91 92 00 lds r25, 0x0092
156: 9f 5f subi r25, 0xFF ; 255
158: 90 93 92 00 sts 0x0092, r25
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 */
15c: 5d 9b sbis 0x0b, 5 ; 11
15e: fe cf rjmp .-4 ; 0x15c <__vector_7+0x40>
UDR = c;
160: 8c b9 out 0x0c, r24 ; 12
162: 13 c0 rjmp .+38 ; 0x18a <__vector_7+0x6e>
164: eb e7 ldi r30, 0x7B ; 123
166: f0 e0 ldi r31, 0x00 ; 0
168: 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 */
16a: 5d 9b sbis 0x0b, 5 ; 11
16c: fe cf rjmp .-4 ; 0x16a <__vector_7+0x4e>
UDR = c;
16e: 8c b9 out 0x0c, r24 ; 12
sei();
init();
send("Uart done!\r\n");
}
void send(const char *text) {
while (*text)
170: 81 91 ld r24, Z+
172: 81 11 cpse r24, r1
174: fa cf rjmp .-12 ; 0x16a <__vector_7+0x4e>
uart_string[uart_str_count] = nextChar; uart_string[uart_str_count] = nextChar;
uart_str_count++; uart_str_count++;
//send(nextChar); send(nextChar);
} else { } 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"); 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') { if(uart_string[0] == 't') {
176: 80 91 93 00 lds r24, 0x0093
17a: 84 37 cpi r24, 0x74 ; 116
17c: 91 f0 breq .+36 ; 0x1a2 <__vector_7+0x86>
number = uart_string[diget]-0x30; number = uart_string[diget]-0x30;
} }
if(uart_string[0] == 'd') { if(uart_string[0] == 'd') {
dimmer = (uart_string[1]-0x30)*100 + (uart_string[2]-0x30)*10 + (uart_string[3]-0x30)*1; 17e: 80 91 93 00 lds r24, 0x0093
1de: 30 91 aa 00 lds r19, 0x00AA 182: 84 36 cpi r24, 0x64 ; 100
1e2: 40 91 ab 00 lds r20, 0x00AB 184: b9 f0 breq .+46 ; 0x1b4 <__vector_7+0x98>
1e6: 80 91 ac 00 lds r24, 0x00AC /*send("Werte: Time: ");
1ea: 80 5d subi r24, 0xD0 ; 208 send(number+0x30);
1ec: 23 2f mov r18, r19 send(" Light: ");
1ee: 22 0f add r18, r18 send(dimmer+0x30);
1f0: 23 0f add r18, r19 send("\r\n");*/
1f2: 92 2f mov r25, r18 uart_str_count = 0;
1f4: 92 95 swap r25 186: 10 92 92 00 sts 0x0092, r1
1f6: 99 0f add r25, r25 u.interrupt();
1f8: 90 7e andi r25, 0xE0 ; 224 18a: ff 91 pop r31
1fa: 92 0f add r25, r18 18c: ef 91 pop r30
1fc: 93 0f add r25, r19 18e: 9f 91 pop r25
1fe: 89 0f add r24, r25 190: 8f 91 pop r24
200: 94 2f mov r25, r20 192: 4f 91 pop r20
202: 99 0f add r25, r25 194: 3f 91 pop r19
204: 99 0f add r25, r25 196: 2f 91 pop r18
206: 94 0f add r25, r20 198: 0f 90 pop r0
208: 99 0f add r25, r25 19a: 0f be out 0x3f, r0 ; 63
20a: 89 0f add r24, r25 19c: 0f 90 pop r0
20c: 80 93 a7 00 sts 0x00A7, r24 19e: 1f 90 pop r1
210: a5 cf rjmp .-182 ; 0x15c <__vector_7+0x40> 1a0: 18 95 reti
uart_str_count++; uart_str_count++;
//send(nextChar); send(nextChar);
} else { } else {
//send("\r\n"); send("\r\n");
if(uart_string[0] == 't') { if(uart_string[0] == 't') {
number = uart_string[diget]-0x30; number = uart_string[diget]-0x30;
212: 80 91 ab 00 lds r24, 0x00AB 1a2: 80 91 94 00 lds r24, 0x0094
216: 80 53 subi r24, 0x30 ; 48 1a6: 80 53 subi r24, 0x30 ; 48
218: 80 93 a6 00 sts 0x00A6, r24 1a8: 80 93 90 00 sts 0x0090, r24
21c: 9a cf rjmp .-204 ; 0x152 <__vector_7+0x36> }
if(uart_string[0] == 'd') {
1ac: 80 91 93 00 lds r24, 0x0093
1b0: 84 36 cpi r24, 0x64 ; 100
1b2: 49 f7 brne .-46 ; 0x186 <__vector_7+0x6a>
dimmer = (uart_string[1]-0x30)*100 + (uart_string[2]-0x30)*10 + (uart_string[3]-0x30)*1;
1b4: 30 91 94 00 lds r19, 0x0094
1b8: 40 91 95 00 lds r20, 0x0095
1bc: 80 91 96 00 lds r24, 0x0096
1c0: 80 5d subi r24, 0xD0 ; 208
1c2: 23 2f mov r18, r19
1c4: 22 0f add r18, r18
1c6: 23 0f add r18, r19
1c8: 92 2f mov r25, r18
1ca: 92 95 swap r25
1cc: 99 0f add r25, r25
1ce: 90 7e andi r25, 0xE0 ; 224
1d0: 92 0f add r25, r18
1d2: 93 0f add r25, r19
1d4: 89 0f add r24, r25
1d6: 94 2f mov r25, r20
1d8: 99 0f add r25, r25
1da: 99 0f add r25, r25
1dc: 94 0f add r25, r20
1de: 99 0f add r25, r25
1e0: 89 0f add r24, r25
1e2: 80 93 91 00 sts 0x0091, r24
1e6: cf cf rjmp .-98 ; 0x186 <__vector_7+0x6a>
0000021e <_GLOBAL__sub_I_u>: 000001e8 <_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() {
21e: 10 92 a6 00 sts 0x00A6, r1 1e8: 10 92 90 00 sts 0x0090, r1
222: 10 92 a7 00 sts 0x00A7, r1 1ec: 82 e3 ldi r24, 0x32 ; 50
226: 10 92 a8 00 sts 0x00A8, r1 1ee: 80 93 91 00 sts 0x0091, r24
1f2: 10 92 92 00 sts 0x0092, r1
sei(); sei();
22a: 78 94 sei 1f6: 78 94 sei
uint8_t dimmer = 0; uint8_t dimmer = 50;
static const uint8_t UART_MAXSTRLEN = 15; static const uint8_t UART_MAXSTRLEN = 15;
volatile uint8_t uart_str_count = 0; volatile uint8_t uart_str_count = 0;
volatile char uart_string[UART_MAXSTRLEN]; volatile char uart_string[UART_MAXSTRLEN];
void init() { void init() {
UCSRC = (1<<UCSZ1) | (1<<UCSZ0) /* 8-Bit */ | (0<<UPM1) | (0<<UPM0) /* No Parity */ | (0<<UMSEL) /* Asyncron */; UCSRC = (1<<UCSZ1) | (1<<UCSZ0) /* 8-Bit */ | (0<<UPM1) | (0<<UPM0) /* No Parity */ | (0<<UMSEL) /* Asyncron */;
22c: 86 e0 ldi r24, 0x06 ; 6 1f8: 86 e0 ldi r24, 0x06 ; 6
22e: 83 b9 out 0x03, r24 ; 3 1fa: 83 b9 out 0x03, r24 ; 3
UCSRB = (1<<RXEN) | (1<<RXCIE) /* Recieve & Interrupt */ | (1<<TXEN) /* Send */; //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
230: 88 e9 ldi r24, 0x98 ; 152 1fc: 88 e9 ldi r24, 0x98 ; 152
232: 8a b9 out 0x0a, r24 ; 10 1fe: 8a b9 out 0x0a, r24 ; 10
UBRRH = (uint8_t)(((F_CPU / 16 / baudrate) - 1)>>8); UBRRH = (uint8_t)(((F_CPU / 16 / baudrate) - 1)>>8);
234: 12 b8 out 0x02, r1 ; 2 200: 12 b8 out 0x02, r1 ; 2
UBRRL = (uint8_t)(F_CPU / 16 / baudrate) - 1; UBRRL = (uint8_t)(F_CPU / 16 / baudrate) - 1;
236: 81 e8 ldi r24, 0x81 ; 129 202: 81 e8 ldi r24, 0x81 ; 129
238: 89 b9 out 0x09, r24 ; 9 204: 89 b9 out 0x09, r24 ; 9
23a: e8 e8 ldi r30, 0x88 ; 136 206: e1 e7 ldi r30, 0x71 ; 113
23c: f0 e0 ldi r31, 0x00 ; 0 208: f0 e0 ldi r31, 0x00 ; 0
sei(); sei();
init(); init();
send("Uart done!\r\n"); send("Uart done!\r\n");
} }
void send(const char *text) { void send(const char *text) {
while (*text) while (*text)
23e: 85 e5 ldi r24, 0x55 ; 85 20a: 85 e5 ldi r24, 0x55 ; 85
UCSRB = (1<<RXEN) | (1<<RXCIE) /* Recieve & Interrupt */ | (1<<TXEN) /* Send */; //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; 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); /* Data Register Empty */ loop_until_bit_is_set(UCSRA, UDRE); /* Data Register Empty */
240: 5d 9b sbis 0x0b, 5 ; 11 20c: 5d 9b sbis 0x0b, 5 ; 11
242: fe cf rjmp .-4 ; 0x240 <_GLOBAL__sub_I_u+0x22> 20e: fe cf rjmp .-4 ; 0x20c <_GLOBAL__sub_I_u+0x24>
UDR = c; UDR = c;
244: 8c b9 out 0x0c, r24 ; 12 210: 8c b9 out 0x0c, r24 ; 12
sei(); sei();
init(); init();
send("Uart done!\r\n"); send("Uart done!\r\n");
} }
void send(const char *text) { void send(const char *text) {
while (*text) while (*text)
246: 81 91 ld r24, Z+ 212: 81 91 ld r24, Z+
248: 81 11 cpse r24, r1 214: 81 11 cpse r24, r1
24a: fa cf rjmp .-12 ; 0x240 <_GLOBAL__sub_I_u+0x22> 216: fa cf rjmp .-12 ; 0x20c <_GLOBAL__sub_I_u+0x24>
#include <util/delay.h> #include <util/delay.h>
template <typename Port> template <typename Port>
class Led { class Led {
public: public:
Led() { Led() {
24c: 10 92 94 00 sts 0x0094, r1 218: 10 92 7e 00 sts 0x007E, r1
250: 10 92 95 00 sts 0x0095, r1 21c: 10 92 7f 00 sts 0x007F, r1
254: 80 e1 ldi r24, 0x10 ; 16 220: 80 e1 ldi r24, 0x10 ; 16
256: e0 e6 ldi r30, 0x60 ; 96 222: e0 e6 ldi r30, 0x60 ; 96
258: f0 e0 ldi r31, 0x00 ; 0 224: f0 e0 ldi r31, 0x00 ; 0
25a: a6 e9 ldi r26, 0x96 ; 150 226: a0 e8 ldi r26, 0x80 ; 128
25c: b0 e0 ldi r27, 0x00 ; 0 228: b0 e0 ldi r27, 0x00 ; 0
25e: 01 90 ld r0, Z+ 22a: 01 90 ld r0, Z+
260: 0d 92 st X+, r0 22c: 0d 92 st X+, r0
262: 8a 95 dec r24 22e: 8a 95 dec r24
264: e1 f7 brne .-8 ; 0x25e <_GLOBAL__sub_I_u+0x40> 230: e1 f7 brne .-8 ; 0x22a <_GLOBAL__sub_I_u+0x42>
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; }
266: 8f e7 ldi r24, 0x7F ; 127 232: 8f e7 ldi r24, 0x7F ; 127
268: 87 bb out 0x17, r24 ; 23 234: 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);
26a: 10 be out 0x30, r1 ; 48 236: 10 be out 0x30, r1 ; 48
TCCR0B=(0<<WGM02) | (0<<CS02) | (1<<CS01) | (1<<CS00); TCCR0B=(0<<WGM02) | (0<<CS02) | (1<<CS01) | (1<<CS00);
26c: 83 e0 ldi r24, 0x03 ; 3 238: 83 e0 ldi r24, 0x03 ; 3
26e: 83 bf out 0x33, r24 ; 51 23a: 83 bf out 0x33, r24 ; 51
TCNT0=0x00; TCNT0=0x00;
270: 12 be out 0x32, r1 ; 50 23c: 12 be out 0x32, r1 ; 50
OCR0A=0x00; OCR0A=0x00;
272: 16 be out 0x36, r1 ; 54 23e: 16 be out 0x36, r1 ; 54
OCR0B=0x00; OCR0B=0x00;
274: 1c be out 0x3c, r1 ; 60 240: 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);
276: 82 e0 ldi r24, 0x02 ; 2 242: 82 e0 ldi r24, 0x02 ; 2
278: 89 bf out 0x39, r24 ; 57 244: 89 bf out 0x39, r24 ; 57
27a: 08 95 ret 246: 08 95 ret
0000027c <__tablejump2__>: 00000248 <__tablejump2__>:
27c: ee 0f add r30, r30 248: ee 0f add r30, r30
27e: ff 1f adc r31, r31 24a: ff 1f adc r31, r31
00000280 <__tablejump__>: 0000024c <__tablejump__>:
280: 05 90 lpm r0, Z+ 24c: 05 90 lpm r0, Z+
282: f4 91 lpm r31, Z 24e: f4 91 lpm r31, Z
284: e0 2d mov r30, r0 250: e0 2d mov r30, r0
286: 09 94 ijmp 252: 09 94 ijmp
00000288 <_exit>: 00000254 <_exit>:
288: f8 94 cli 254: f8 94 cli
0000028a <__stop_program>: 00000256 <__stop_program>:
28a: ff cf rjmp .-2 ; 0x28a <__stop_program> 256: ff cf rjmp .-2 ; 0x256 <__stop_program>

View File

@ -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 0x28c .text 0x00000000 0x258
*(.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
@ -280,18 +280,18 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8
0x00000090 0x8c Zahl.o 0x00000090 0x8c Zahl.o
0x00000090 __vector_6 0x00000090 __vector_6
.text.__vector_7 .text.__vector_7
0x0000011c 0x102 Zahl.o 0x0000011c 0xcc Zahl.o
0x0000011c __vector_7 0x0000011c __vector_7
.text.startup._GLOBAL__sub_I_u .text.startup._GLOBAL__sub_I_u
0x0000021e 0x5e Zahl.o 0x000001e8 0x60 Zahl.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) .text.libgcc 0x00000248 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)
0x0000027c __tablejump2__ 0x00000248 __tablejump2__
0x00000280 __tablejump__ 0x0000024c __tablejump__
0x00000288 . = ALIGN (0x2) 0x00000254 . = ALIGN (0x2)
*(.fini9) *(.fini9)
.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) .fini9 0x00000254 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)
0x00000288 _exit 0x00000254 _exit
0x00000288 exit 0x00000254 exit
*(.fini9) *(.fini9)
*(.fini8) *(.fini8)
*(.fini8) *(.fini8)
@ -310,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 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 0x00000254 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)
0x0000028c _etext = . 0x00000258 _etext = .
.data 0x00800060 0x34 load address 0x0000028c .data 0x00800060 0x1e load address 0x00000258
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
@ -329,31 +329,32 @@ 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 0x24 Zahl.o 0x00800070 0xd Zahl.o
0x27 (size before relaxing) 0x10 (size before relaxing)
*(.gnu.linkonce.d*) *(.gnu.linkonce.d*)
0x00800094 . = ALIGN (0x2) 0x0080007e . = ALIGN (0x2)
0x00800094 _edata = . *fill* 0x0080007d 0x1
0x00800094 PROVIDE (__data_end, .) 0x0080007e _edata = .
0x0080007e PROVIDE (__data_end, .)
.bss 0x00800094 0x24 .bss 0x0080007e 0x24
0x00800094 PROVIDE (__bss_start, .) 0x0080007e PROVIDE (__bss_start, .)
*(.bss) *(.bss)
.bss 0x00800094 0x24 Zahl.o .bss 0x0080007e 0x24 Zahl.o
0x00800094 l 0x0080007e l
0x008000a6 u 0x00800090 u
*(.bss*) *(.bss*)
*(COMMON) *(COMMON)
0x008000b8 PROVIDE (__bss_end, .) 0x008000a2 PROVIDE (__bss_end, .)
0x0000028c __data_load_start = LOADADDR (.data) 0x00000258 __data_load_start = LOADADDR (.data)
0x000002c0 __data_load_end = (__data_load_start + SIZEOF (.data)) 0x00000276 __data_load_end = (__data_load_start + SIZEOF (.data))
.noinit 0x008000b8 0x0 .noinit 0x008000a2 0x0
0x008000b8 PROVIDE (__noinit_start, .) 0x008000a2 PROVIDE (__noinit_start, .)
*(.noinit*) *(.noinit*)
0x008000b8 PROVIDE (__noinit_end, .) 0x008000a2 PROVIDE (__noinit_end, .)
0x008000b8 _end = . 0x008000a2 _end = .
0x008000b8 PROVIDE (__heap_start, .) 0x008000a2 PROVIDE (__heap_start, .)
.eeprom 0x00810000 0x0 .eeprom 0x00810000 0x0
*(.eeprom*) *(.eeprom*)
@ -419,18 +420,18 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8
.debug_pubnames .debug_pubnames
*(.debug_pubnames) *(.debug_pubnames)
.debug_info 0x00000000 0xbac .debug_info 0x00000000 0xac4
*(.debug_info) *(.debug_info)
.debug_info 0x00000000 0xbac Zahl.o .debug_info 0x00000000 0xac4 Zahl.o
*(.gnu.linkonce.wi.*) *(.gnu.linkonce.wi.*)
.debug_abbrev 0x00000000 0x369 .debug_abbrev 0x00000000 0x369
*(.debug_abbrev) *(.debug_abbrev)
.debug_abbrev 0x00000000 0x369 Zahl.o .debug_abbrev 0x00000000 0x369 Zahl.o
.debug_line 0x00000000 0x285 .debug_line 0x00000000 0x26b
*(.debug_line) *(.debug_line)
.debug_line 0x00000000 0x285 Zahl.o .debug_line 0x00000000 0x26b Zahl.o
.debug_frame 0x00000000 0xbc .debug_frame 0x00000000 0xbc
*(.debug_frame) *(.debug_frame)
@ -441,9 +442,9 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8
.debug_str 0x00000000 0x498 Zahl.o .debug_str 0x00000000 0x498 Zahl.o
0x4d1 (size before relaxing) 0x4d1 (size before relaxing)
.debug_loc 0x00000000 0x2b1 .debug_loc 0x00000000 0x26f
*(.debug_loc) *(.debug_loc)
.debug_loc 0x00000000 0x2b1 Zahl.o .debug_loc 0x00000000 0x26f Zahl.o
.debug_macinfo .debug_macinfo
*(.debug_macinfo) *(.debug_macinfo)

View File

@ -1,47 +1,42 @@
S00C00005A61686C2E7372656389 S00C00005A61686C2E7372656389
S113000013C035C034C033C032C031C041C086C013 S113000013C035C034C033C032C031C041C086C013
S11300102EC02DC02CC02BC02AC029C028C027C088 S11300102EC02DC02CC02BC02AC029C028C027C088
S113002026C025C024C00F0111241FBECFEDCDBFB3 S113002026C025C024C0F40011241FBECFEDCDBFCF
S113003010E0A0E6B0E0ECE8F2E002C005900D921A S113003010E0A0E6B0E0E8E5F2E002C005900D9221
S1130040A439B107D9F720E0A4E9B0E001C01D92BA S1130040AE37B107D9F720E0AEE7B0E001C01D92AA
S1130050A83BB207E1F710E0C8E2D0E003C0229762 S1130050A23AB207E1F710E0C8E2D0E003C0229769
S1130060FE010ED1C632D107D1F702D00DC1C8CFDF S1130060FE01F4D0C632D107D1F702D0F3C0C8CF15
S113007078948091A7009091A60090939400809327 S11300707894809191009091900090937E00809369
S113008095008FE493EC0197F1F700C00000F1CFE5 S11300807F008FE493EC0197F1F700C00000F1CFFB
S11300901F920F920FB60F9211242F933F934F93F9 S11300901F920F920FB60F9211242F933F934F93F9
S11300A05F936F938F939F93EF93FF93809195004A S11300A05F936F938F939F93EF93FF9380917F0060
S11300B0882399F080E0E0919400F0E0EC56FF4F43 S11300B0882399F080E0E0917E00F0E0E258FF4F61
S11300C0928198BB96E09A95F1F700C08F5F90916A S11300C0928198BB96E09A95F1F700C08F5F90916A
S11300D09500891780F39F3F99F060E04FEF50E05F S11300D07F00891780F39F3F99F060E04FEF50E075
S11300E018BAE6E0EA95F1F700C06F5F262F30E01A S11300E018BAE6E0EA95F1F700C06F5F262F30E01A
S11300F080919500FA01E81BF1092E173F0784F35C S11300F080917F00FA01E81BF1092E173F0784F372
S1130100FF91EF919F918F916F915F914F913F91EB S1130100FF91EF919F918F916F915F914F913F91EB
S11301102F910F900FBE0F901F9018951F920F9262 S11301102F910F900FBE0F901F9018951F920F9262
S11301200FB60F9211242F933F934F938F939F9366 S11301200FB60F9211242F933F934F938F939F9366
S1130130EF93FF938CB18A3039F08D3029F0909190 S1130130EF93FF938CB18A30A9F08D3099F09091B0
S1130140A8009F3008F43FC08091A900843709F4C7 S113014092009F3078F4E0919200F0E0E057FF4F86
S113015060C08091A900843609F441C0EAE7F0E068 S11301508383909192009F5F909392005D9BFECF6A
S113016087E55D9BFECF8CB981918111FACF809197 S11301608CB913C0EBE7F0E08DE05D9BFECF8CB95A
S1130170A600805D5D9BFECF8CB9E1E7F0E080E2F4 S113017081918111FACF80919300843791F080911D
S11301805D9BFECF8CB981918111FACF8091A7003C S113018093008436B9F010929200FF91EF919F9101
S1130190805D5D9BFECF8CB9E2E9F0E08DE05D9B74 S11301908F914F913F912F910F900FBE0F901F9011
S11301A0FECF8CB981918111FACF1092A800FF91F2 S11301A018958091940080538093900080919300DF
S11301B0EF919F918F914F913F912F910F900FBE8F S11301B0843649F7309194004091950080919600DF
S11301C00F901F901895E091A800F0E0EA55FF4FBA S11301C0805D232F220F230F922F9295990F907EFB
S11301D083838091A8008F5F8093A800E8CF30913B S11301D0920F930F890F942F990F990F940F990FE2
S11301E0AA004091AB008091AC00805D232F220FC8 S11301E0890F80939100CFCF1092900082E3809387
S11301F0230F922F9295990F907E920F930F890F50 S11301F0910010929200789486E083B988E98AB9D4
S1130200942F990F990F940F990F890F8093A7003A S113020012B881E889B9E1E7F0E085E55D9BFECFAE
S1130210A5CF8091AB0080538093A6009ACF109213 S11302108CB981918111FACF10927E0010927F00E7
S1130220A6001092A7001092A800789486E083B9E3 S113022080E1E0E6F0E0A0E8B0E001900D928A956C
S113023088E98AB912B881E889B9E8E8F0E085E587 S1130230E1F78FE787BB10BE83E083BF12BE16BE13
S11302405D9BFECF8CB981918111FACF10929400FD S11302401CBE82E089BF0895EE0FFF1F0590F49154
S11302501092950080E1E0E6F0E0A6E9B0E00190BC S10B0250E02D0994F894FFCF9E
S11302600D928A95E1F78FE787BB10BE83E083BFC9 S11302587B036E4F175D7D0B7F5F3F7578677C3C32
S113027012BE16BE1CBE82E089BF0895EE0FFF1F9A S11102685561727420646F6E65210D0A0000EA
S10F02800590F491E02D0994F894FFCF50
S113028C7B036E4F175D7D0B7F5F3F7578677C3CFE
S113029C204C696768743A200057657274653A207B
S11302AC54696D653A20005561727420646F6E65F3
S10702BC210D0A0002
S9030000FC S9030000FC

View File

@ -12,7 +12,7 @@
///////////////////////// UART //////////////////////////////////// ///////////////////////// UART ////////////////////////////////////
typedef Uart<9600, 2> uartclass; typedef Uart<9600, 1> uartclass;
uartclass u; uartclass u;
///////////////////////// LED ///////////////////////////////////// ///////////////////////// LED /////////////////////////////////////
typedef Led<avrlib::portb> ledclass; typedef Led<avrlib::portb> ledclass;

View File

@ -40,20 +40,20 @@ class Uart {
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); send(nextChar);
} else { } else {
//send("\r\n"); send("\r\n");
if(uart_string[0] == 't') { if(uart_string[0] == 't') {
number = uart_string[diget]-0x30; number = uart_string[diget]-0x30;
} }
if(uart_string[0] == 'd') { if(uart_string[0] == 'd') {
dimmer = (uart_string[1]-0x30)*100 + (uart_string[2]-0x30)*10 + (uart_string[3]-0x30)*1; dimmer = (uart_string[1]-0x30)*100 + (uart_string[2]-0x30)*10 + (uart_string[3]-0x30)*1;
} }
send("Werte: Time: "); /*send("Werte: Time: ");
send(number+0x30); send(number+0x30);
send(" Light: "); send(" Light: ");
send(dimmer+0x30); send(dimmer+0x30);
send("\r\n"); send("\r\n");*/
uart_str_count = 0; uart_str_count = 0;
} }
} }
@ -65,7 +65,7 @@ class Uart {
} }
private: private:
uint8_t number = 0; uint8_t number = 0;
uint8_t dimmer = 0; uint8_t dimmer = 50;
static const uint8_t UART_MAXSTRLEN = 15; static const uint8_t UART_MAXSTRLEN = 15;
volatile uint8_t uart_str_count = 0; volatile uint8_t uart_str_count = 0;
volatile char uart_string[UART_MAXSTRLEN]; volatile char uart_string[UART_MAXSTRLEN];