diff --git a/Zahl/Zahl/Debug/Zahl.elf b/Zahl/Zahl/Debug/Zahl.elf index df29cc1..490f1a3 100644 Binary files a/Zahl/Zahl/Debug/Zahl.elf and b/Zahl/Zahl/Debug/Zahl.elf differ diff --git a/Zahl/Zahl/Debug/Zahl.hex b/Zahl/Zahl/Debug/Zahl.hex index 79da0b1..41d9d14 100644 --- a/Zahl/Zahl/Debug/Zahl.hex +++ b/Zahl/Zahl/Debug/Zahl.hex @@ -1,46 +1,41 @@ :1000000013C035C034C033C032C031C041C086C017 :100010002EC02DC02CC02BC02AC029C028C027C08C -:1000200026C025C024C00F0111241FBECFEDCDBFB7 -:1000300010E0A0E6B0E0ECE8F2E002C005900D921E -:10004000A439B107D9F720E0A4E9B0E001C01D92BE -:10005000A83BB207E1F710E0C8E2D0E003C0229766 -:10006000FE010ED1C632D107D1F702D00DC1C8CFE3 -:1000700078948091A7009091A6009093940080932B -:1000800095008FE493EC0197F1F700C00000F1CFE9 +:1000200026C025C024C0F40011241FBECFEDCDBFD3 +:1000300010E0A0E6B0E0E8E5F2E002C005900D9225 +:10004000AE37B107D9F720E0AEE7B0E001C01D92AE +:10005000A23AB207E1F710E0C8E2D0E003C022976D +:10006000FE01F4D0C632D107D1F702D0F3C0C8CF19 +:100070007894809191009091900090937E0080936D +:100080007F008FE493EC0197F1F700C00000F1CFFF :100090001F920F920FB60F9211242F933F934F93FD -:1000A0005F936F938F939F93EF93FF93809195004E -:1000B000882399F080E0E0919400F0E0EC56FF4F47 +:1000A0005F936F938F939F93EF93FF9380917F0064 +:1000B000882399F080E0E0917E00F0E0E258FF4F65 :1000C000928198BB96E09A95F1F700C08F5F90916E -:1000D0009500891780F39F3F99F060E04FEF50E063 +:1000D0007F00891780F39F3F99F060E04FEF50E079 :1000E00018BAE6E0EA95F1F700C06F5F262F30E01E -:1000F00080919500FA01E81BF1092E173F0784F360 +:1000F00080917F00FA01E81BF1092E173F0784F376 :10010000FF91EF919F918F916F915F914F913F91EF :100110002F910F900FBE0F901F9018951F920F9266 :100120000FB60F9211242F933F934F938F939F936A -:10013000EF93FF938CB18A3039F08D3029F0909194 -:10014000A8009F3008F43FC08091A900843709F4CB -:1001500060C08091A900843609F441C0EAE7F0E06C -:1001600087E55D9BFECF8CB981918111FACF80919B -:10017000A600805D5D9BFECF8CB9E1E7F0E080E2F8 -:100180005D9BFECF8CB981918111FACF8091A70040 -:10019000805D5D9BFECF8CB9E2E9F0E08DE05D9B78 -:1001A000FECF8CB981918111FACF1092A800FF91F6 -:1001B000EF919F918F914F913F912F910F900FBE93 -:1001C0000F901F901895E091A800F0E0EA55FF4FBE -:1001D00083838091A8008F5F8093A800E8CF30913F -:1001E000AA004091AB008091AC00805D232F220FCC -:1001F000230F922F9295990F907E920F930F890F54 -:10020000942F990F990F940F990F890F8093A7003E -:10021000A5CF8091AB0080538093A6009ACF109217 -:10022000A6001092A7001092A800789486E083B9E7 -:1002300088E98AB912B881E889B9E8E8F0E085E58B -:100240005D9BFECF8CB981918111FACF1092940001 -:100250001092950080E1E0E6F0E0A6E9B0E00190C0 -:100260000D928A95E1F78FE787BB10BE83E083BFCD -:1002700012BE16BE1CBE82E089BF0895EE0FFF1F9E -:0C0280000590F491E02D0994F894FFCF54 -:10028C007B036E4F175D7D0B7F5F3F7578677C3C02 -:10029C00204C696768743A200057657274653A207F -:1002AC0054696D653A20005561727420646F6E65F7 -:0402BC00210D0A0006 +:10013000EF93FF938CB18A30A9F08D3099F09091B4 +:1001400092009F3078F4E0919200F0E0E057FF4F8A +:100150008383909192009F5F909392005D9BFECF6E +:100160008CB913C0EBE7F0E08DE05D9BFECF8CB95E +:1001700081918111FACF80919300843791F0809121 +:1001800093008436B9F010929200FF91EF919F9105 +:100190008F914F913F912F910F900FBE0F901F9015 +:1001A00018958091940080538093900080919300E3 +:1001B000843649F7309194004091950080919600E3 +:1001C000805D232F220F230F922F9295990F907EFF +:1001D000920F930F890F942F990F990F940F990FE6 +:1001E000890F80939100CFCF1092900082E380938B +:1001F000910010929200789486E083B988E98AB9D8 +:1002000012B881E889B9E1E7F0E085E55D9BFECFB2 +:100210008CB981918111FACF10927E0010927F00EB +:1002200080E1E0E6F0E0A0E8B0E001900D928A9570 +:10023000E1F78FE787BB10BE83E083BF12BE16BE17 +:100240001CBE82E089BF0895EE0FFF1F0590F49158 +:08025000E02D0994F894FFCFA2 +:100258007B036E4F175D7D0B7F5F3F7578677C3C36 +:0E0268005561727420646F6E65210D0A0000EE :00000001FF diff --git a/Zahl/Zahl/Debug/Zahl.lss b/Zahl/Zahl/Debug/Zahl.lss index 4da16af..3a73283 100644 --- a/Zahl/Zahl/Debug/Zahl.lss +++ b/Zahl/Zahl/Debug/Zahl.lss @@ -3,33 +3,33 @@ Zahl.elf: file format elf32-avr Sections: 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 - 1 .data 00000034 00800060 0000028c 00000320 2**0 + 1 .data 0000001e 00800060 00000258 000002ec 2**0 CONTENTS, ALLOC, LOAD, DATA - 2 .bss 00000024 00800094 00800094 00000354 2**0 + 2 .bss 00000024 0080007e 0080007e 0000030a 2**0 ALLOC - 3 .stab 000006b4 00000000 00000000 00000354 2**2 + 3 .stab 000006b4 00000000 00000000 0000030c 2**2 CONTENTS, READONLY, DEBUGGING - 4 .stabstr 00000082 00000000 00000000 00000a08 2**0 + 4 .stabstr 00000082 00000000 00000000 000009c0 2**0 CONTENTS, READONLY, DEBUGGING - 5 .comment 0000002f 00000000 00000000 00000a8a 2**0 + 5 .comment 0000002f 00000000 00000000 00000a42 2**0 CONTENTS, READONLY - 6 .debug_aranges 00000038 00000000 00000000 00000ab9 2**0 + 6 .debug_aranges 00000038 00000000 00000000 00000a71 2**0 CONTENTS, READONLY, DEBUGGING - 7 .debug_info 00000bac 00000000 00000000 00000af1 2**0 + 7 .debug_info 00000ac4 00000000 00000000 00000aa9 2**0 CONTENTS, READONLY, DEBUGGING - 8 .debug_abbrev 00000369 00000000 00000000 0000169d 2**0 + 8 .debug_abbrev 00000369 00000000 00000000 0000156d 2**0 CONTENTS, READONLY, DEBUGGING - 9 .debug_line 00000285 00000000 00000000 00001a06 2**0 + 9 .debug_line 0000026b 00000000 00000000 000018d6 2**0 CONTENTS, READONLY, DEBUGGING - 10 .debug_frame 000000bc 00000000 00000000 00001c8c 2**2 + 10 .debug_frame 000000bc 00000000 00000000 00001b44 2**2 CONTENTS, READONLY, DEBUGGING - 11 .debug_str 00000498 00000000 00000000 00001d48 2**0 + 11 .debug_str 00000498 00000000 00000000 00001c00 2**0 CONTENTS, READONLY, DEBUGGING - 12 .debug_loc 000002b1 00000000 00000000 000021e0 2**0 + 12 .debug_loc 0000026f 00000000 00000000 00002098 2**0 CONTENTS, READONLY, DEBUGGING - 13 .debug_ranges 00000098 00000000 00000000 00002491 2**0 + 13 .debug_ranges 00000098 00000000 00000000 00002307 2**0 CONTENTS, READONLY, DEBUGGING Disassembly of section .text: @@ -56,7 +56,7 @@ Disassembly of section .text: 24: 24 c0 rjmp .+72 ; 0x6e <__bad_interrupt> 00000026 <__ctors_start>: - 26: 0f 01 movw r0, r30 + 26: f4 00 .word 0x00f4 ; ???? 00000028 <__ctors_end>: 28: 11 24 eor r1, r1 @@ -68,18 +68,18 @@ Disassembly of section .text: 30: 10 e0 ldi r17, 0x00 ; 0 32: a0 e6 ldi r26, 0x60 ; 96 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 3a: 02 c0 rjmp .+4 ; 0x40 <__SREG__+0x1> 3c: 05 90 lpm r0, Z+ 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 44: d9 f7 brne .-10 ; 0x3c <__do_copy_data+0xc> 00000046 <__do_clear_bss>: 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 4c: 01 c0 rjmp .+2 ; 0x50 <.do_clear_bss_start> @@ -87,7 +87,7 @@ Disassembly of section .text: 4e: 1d 92 st X+, r1 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 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> 5e: 22 97 sbiw r28, 0x02 ; 2 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 66: d1 07 cpc r29, r17 68: d1 f7 brne .-12 ; 0x5e <__do_global_ctors+0x8> 6a: 02 d0 rcall .+4 ; 0x70
- 6c: 0d c1 rjmp .+538 ; 0x288 <_exit> + 6c: f3 c0 rjmp .+486 ; 0x254 <_exit> 0000006e <__bad_interrupt>: 6e: c8 cf rjmp .-112 ; 0x0 <__vectors> @@ -122,19 +122,19 @@ int main(void) } uint8_t getDim() { return dimmer; - 72: 80 91 a7 00 lds r24, 0x00A7 + 72: 80 91 91 00 lds r24, 0x0091 public: Led() { init(); } void setNum(uint8_t number) { this->diget = number; - 76: 90 91 a6 00 lds r25, 0x00A6 - 7a: 90 93 94 00 sts 0x0094, r25 + 76: 90 91 90 00 lds r25, 0x0090 + 7a: 90 93 7e 00 sts 0x007E, r25 } void setDim(uint8_t dimmer) { this->dim = dimmer; - 7e: 80 93 95 00 sts 0x0095, r24 + 7e: 80 93 7f 00 sts 0x007F, r24 #else //round up by default __ticks_dc = (uint32_t)(ceil(fabs(__tmp))); @@ -176,14 +176,14 @@ ISR(TIMER0_OVF_vect) { /* TIMER0_OVF_vect */ void timer() { for(uint8_t k=0;kdim;k++) { - ac: 80 91 95 00 lds r24, 0x0095 + ac: 80 91 7f 00 lds r24, 0x007F 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]); - b6: e0 91 94 00 lds r30, 0x0094 + b6: e0 91 7e 00 lds r30, 0x007E 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 c0: 92 81 ldd r25, Z+2 ; 0x02 namespace avrlib { @@ -210,7 +210,7 @@ namespace avrlib { void timer() { for(uint8_t k=0;kdim;k++) { 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 d4: 80 f3 brcs .-32 ; 0xb6 <__vector_6+0x26> Port::port(segs[this->diget]); @@ -240,7 +240,7 @@ namespace avrlib { 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 + f0: 80 91 7f 00 lds r24, 0x007F f4: fa 01 movw r30, r20 f6: e8 1b sub r30, r24 f8: f1 09 sbc r31, r1 @@ -289,341 +289,245 @@ ISR(USART_RX_vect) { 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> + 138: a9 f0 breq .+42 ; 0x164 <__vector_7+0x48> 13a: 8d 30 cpi r24, 0x0D ; 13 - 13c: 29 f0 breq .+10 ; 0x148 <__vector_7+0x2c> - 13e: 90 91 a8 00 lds r25, 0x00A8 + 13c: 99 f0 breq .+38 ; 0x164 <__vector_7+0x48> + 13e: 90 91 92 00 lds r25, 0x0092 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> + 144: 78 f4 brcc .+30 ; 0x164 <__vector_7+0x48> + 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<>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<>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_str_count++; - //send(nextChar); + 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<>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<>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<>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<>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<>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') { + 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; } 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> + 17e: 80 91 93 00 lds r24, 0x0093 + 182: 84 36 cpi r24, 0x64 ; 100 + 184: b9 f0 breq .+46 ; 0x1b4 <__vector_7+0x98> + /*send("Werte: Time: "); + send(number+0x30); + send(" Light: "); + send(dimmer+0x30); + send("\r\n");*/ + uart_str_count = 0; + 186: 10 92 92 00 sts 0x0092, r1 + u.interrupt(); + 18a: ff 91 pop r31 + 18c: ef 91 pop r30 + 18e: 9f 91 pop r25 + 190: 8f 91 pop r24 + 192: 4f 91 pop r20 + 194: 3f 91 pop r19 + 196: 2f 91 pop r18 + 198: 0f 90 pop r0 + 19a: 0f be out 0x3f, r0 ; 63 + 19c: 0f 90 pop r0 + 19e: 1f 90 pop r1 + 1a0: 18 95 reti uart_str_count++; - //send(nextChar); + send(nextChar); } else { - //send("\r\n"); + 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> + 1a2: 80 91 94 00 lds r24, 0x0094 + 1a6: 80 53 subi r24, 0x30 ; 48 + 1a8: 80 93 90 00 sts 0x0090, r24 + } + 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 template class Uart { public: Uart() { - 21e: 10 92 a6 00 sts 0x00A6, r1 - 222: 10 92 a7 00 sts 0x00A7, r1 - 226: 10 92 a8 00 sts 0x00A8, r1 + 1e8: 10 92 90 00 sts 0x0090, r1 + 1ec: 82 e3 ldi r24, 0x32 ; 50 + 1ee: 80 93 91 00 sts 0x0091, r24 + 1f2: 10 92 92 00 sts 0x0092, r1 sei(); - 22a: 78 94 sei - uint8_t dimmer = 0; + 1f6: 78 94 sei + uint8_t dimmer = 50; static const uint8_t UART_MAXSTRLEN = 15; volatile uint8_t uart_str_count = 0; volatile char uart_string[UART_MAXSTRLEN]; void init() { UCSRC = (1<>8); - 234: 12 b8 out 0x02, r1 ; 2 + 200: 12 b8 out 0x02, r1 ; 2 UBRRL = (uint8_t)(F_CPU / 16 / baudrate) - 1; - 236: 81 e8 ldi r24, 0x81 ; 129 - 238: 89 b9 out 0x09, r24 ; 9 - 23a: e8 e8 ldi r30, 0x88 ; 136 - 23c: f0 e0 ldi r31, 0x00 ; 0 + 202: 81 e8 ldi r24, 0x81 ; 129 + 204: 89 b9 out 0x09, r24 ; 9 + 206: e1 e7 ldi r30, 0x71 ; 113 + 208: f0 e0 ldi r31, 0x00 ; 0 sei(); init(); send("Uart done!\r\n"); } void send(const char *text) { while (*text) - 23e: 85 e5 ldi r24, 0x55 ; 85 + 20a: 85 e5 ldi r24, 0x55 ; 85 UCSRB = (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> + 20c: 5d 9b sbis 0x0b, 5 ; 11 + 20e: fe cf rjmp .-4 ; 0x20c <_GLOBAL__sub_I_u+0x24> UDR = c; - 244: 8c b9 out 0x0c, r24 ; 12 + 210: 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> + 212: 81 91 ld r24, Z+ + 214: 81 11 cpse r24, r1 + 216: fa cf rjmp .-12 ; 0x20c <_GLOBAL__sub_I_u+0x24> #include template class Led { public: Led() { - 24c: 10 92 94 00 sts 0x0094, r1 - 250: 10 92 95 00 sts 0x0095, r1 - 254: 80 e1 ldi r24, 0x10 ; 16 - 256: e0 e6 ldi r30, 0x60 ; 96 - 258: f0 e0 ldi r31, 0x00 ; 0 - 25a: a6 e9 ldi r26, 0x96 ; 150 - 25c: b0 e0 ldi r27, 0x00 ; 0 - 25e: 01 90 ld r0, Z+ - 260: 0d 92 st X+, r0 - 262: 8a 95 dec r24 - 264: e1 f7 brne .-8 ; 0x25e <_GLOBAL__sub_I_u+0x40> + 218: 10 92 7e 00 sts 0x007E, r1 + 21c: 10 92 7f 00 sts 0x007F, r1 + 220: 80 e1 ldi r24, 0x10 ; 16 + 222: e0 e6 ldi r30, 0x60 ; 96 + 224: f0 e0 ldi r31, 0x00 ; 0 + 226: a0 e8 ldi r26, 0x80 ; 128 + 228: b0 e0 ldi r27, 0x00 ; 0 + 22a: 01 90 ld r0, Z+ + 22c: 0d 92 st X+, r0 + 22e: 8a 95 dec r24 + 230: e1 f7 brne .-8 ; 0x22a <_GLOBAL__sub_I_u+0x42> static uint8_t pin() { return PINB; } static void pin(uint8_t v) { PINB = v; } static uint8_t dir() { return DDRB; } static void dir(uint8_t v) { DDRB = v; } - 266: 8f e7 ldi r24, 0x7F ; 127 - 268: 87 bb out 0x17, r24 ; 23 + 232: 8f e7 ldi r24, 0x7F ; 127 + 234: 87 bb out 0x17, r24 ; 23 // Clock value: 312,500 kHz // Mode: Normal top=0xFF // OC0A output: Disconnected // OC0B output: Disconnected // Timer Period: 0,8192 ms TCCR0A=(0<: - 27c: ee 0f add r30, r30 - 27e: ff 1f adc r31, r31 +00000248 <__tablejump2__>: + 248: ee 0f add r30, r30 + 24a: ff 1f adc r31, r31 -00000280 <__tablejump__>: - 280: 05 90 lpm r0, Z+ - 282: f4 91 lpm r31, Z - 284: e0 2d mov r30, r0 - 286: 09 94 ijmp +0000024c <__tablejump__>: + 24c: 05 90 lpm r0, Z+ + 24e: f4 91 lpm r31, Z + 250: e0 2d mov r30, r0 + 252: 09 94 ijmp -00000288 <_exit>: - 288: f8 94 cli +00000254 <_exit>: + 254: f8 94 cli -0000028a <__stop_program>: - 28a: ff cf rjmp .-2 ; 0x28a <__stop_program> +00000256 <__stop_program>: + 256: ff cf rjmp .-2 ; 0x256 <__stop_program> diff --git a/Zahl/Zahl/Debug/Zahl.map b/Zahl/Zahl/Debug/Zahl.map index b454a12..1d91b94 100644 --- a/Zahl/Zahl/Debug/Zahl.map +++ b/Zahl/Zahl/Debug/Zahl.map @@ -195,7 +195,7 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8 .rela.plt *(.rela.plt) -.text 0x00000000 0x28c +.text 0x00000000 0x258 *(.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 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 __vector_6 .text.__vector_7 - 0x0000011c 0x102 Zahl.o + 0x0000011c 0xcc Zahl.o 0x0000011c __vector_7 .text.startup._GLOBAL__sub_I_u - 0x0000021e 0x5e 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) - 0x0000027c __tablejump2__ - 0x00000280 __tablejump__ - 0x00000288 . = ALIGN (0x2) + 0x000001e8 0x60 Zahl.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) + 0x00000248 __tablejump2__ + 0x0000024c __tablejump__ + 0x00000254 . = ALIGN (0x2) *(.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) - 0x00000288 _exit - 0x00000288 exit + .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) + 0x00000254 _exit + 0x00000254 exit *(.fini9) *(.fini8) *(.fini8) @@ -310,11 +310,11 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8 *(.fini1) *(.fini1) *(.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) - 0x0000028c _etext = . + 0x00000258 _etext = . -.data 0x00800060 0x34 load address 0x0000028c +.data 0x00800060 0x1e load address 0x00000258 0x00800060 PROVIDE (__data_start, .) *(.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 @@ -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*) .rodata.str1.1 - 0x00800070 0x24 Zahl.o - 0x27 (size before relaxing) + 0x00800070 0xd Zahl.o + 0x10 (size before relaxing) *(.gnu.linkonce.d*) - 0x00800094 . = ALIGN (0x2) - 0x00800094 _edata = . - 0x00800094 PROVIDE (__data_end, .) + 0x0080007e . = ALIGN (0x2) + *fill* 0x0080007d 0x1 + 0x0080007e _edata = . + 0x0080007e PROVIDE (__data_end, .) -.bss 0x00800094 0x24 - 0x00800094 PROVIDE (__bss_start, .) +.bss 0x0080007e 0x24 + 0x0080007e PROVIDE (__bss_start, .) *(.bss) - .bss 0x00800094 0x24 Zahl.o - 0x00800094 l - 0x008000a6 u + .bss 0x0080007e 0x24 Zahl.o + 0x0080007e l + 0x00800090 u *(.bss*) *(COMMON) - 0x008000b8 PROVIDE (__bss_end, .) - 0x0000028c __data_load_start = LOADADDR (.data) - 0x000002c0 __data_load_end = (__data_load_start + SIZEOF (.data)) + 0x008000a2 PROVIDE (__bss_end, .) + 0x00000258 __data_load_start = LOADADDR (.data) + 0x00000276 __data_load_end = (__data_load_start + SIZEOF (.data)) -.noinit 0x008000b8 0x0 - 0x008000b8 PROVIDE (__noinit_start, .) +.noinit 0x008000a2 0x0 + 0x008000a2 PROVIDE (__noinit_start, .) *(.noinit*) - 0x008000b8 PROVIDE (__noinit_end, .) - 0x008000b8 _end = . - 0x008000b8 PROVIDE (__heap_start, .) + 0x008000a2 PROVIDE (__noinit_end, .) + 0x008000a2 _end = . + 0x008000a2 PROVIDE (__heap_start, .) .eeprom 0x00810000 0x0 *(.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_info 0x00000000 0xbac +.debug_info 0x00000000 0xac4 *(.debug_info) - .debug_info 0x00000000 0xbac Zahl.o + .debug_info 0x00000000 0xac4 Zahl.o *(.gnu.linkonce.wi.*) .debug_abbrev 0x00000000 0x369 *(.debug_abbrev) .debug_abbrev 0x00000000 0x369 Zahl.o -.debug_line 0x00000000 0x285 +.debug_line 0x00000000 0x26b *(.debug_line) - .debug_line 0x00000000 0x285 Zahl.o + .debug_line 0x00000000 0x26b Zahl.o .debug_frame 0x00000000 0xbc *(.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 0x4d1 (size before relaxing) -.debug_loc 0x00000000 0x2b1 +.debug_loc 0x00000000 0x26f *(.debug_loc) - .debug_loc 0x00000000 0x2b1 Zahl.o + .debug_loc 0x00000000 0x26f Zahl.o .debug_macinfo *(.debug_macinfo) diff --git a/Zahl/Zahl/Debug/Zahl.srec b/Zahl/Zahl/Debug/Zahl.srec index 02b02a4..52390e5 100644 --- a/Zahl/Zahl/Debug/Zahl.srec +++ b/Zahl/Zahl/Debug/Zahl.srec @@ -1,47 +1,42 @@ S00C00005A61686C2E7372656389 S113000013C035C034C033C032C031C041C086C013 S11300102EC02DC02CC02BC02AC029C028C027C088 -S113002026C025C024C00F0111241FBECFEDCDBFB3 -S113003010E0A0E6B0E0ECE8F2E002C005900D921A -S1130040A439B107D9F720E0A4E9B0E001C01D92BA -S1130050A83BB207E1F710E0C8E2D0E003C0229762 -S1130060FE010ED1C632D107D1F702D00DC1C8CFDF -S113007078948091A7009091A60090939400809327 -S113008095008FE493EC0197F1F700C00000F1CFE5 +S113002026C025C024C0F40011241FBECFEDCDBFCF +S113003010E0A0E6B0E0E8E5F2E002C005900D9221 +S1130040AE37B107D9F720E0AEE7B0E001C01D92AA +S1130050A23AB207E1F710E0C8E2D0E003C0229769 +S1130060FE01F4D0C632D107D1F702D0F3C0C8CF15 +S11300707894809191009091900090937E00809369 +S11300807F008FE493EC0197F1F700C00000F1CFFB S11300901F920F920FB60F9211242F933F934F93F9 -S11300A05F936F938F939F93EF93FF93809195004A -S11300B0882399F080E0E0919400F0E0EC56FF4F43 +S11300A05F936F938F939F93EF93FF9380917F0060 +S11300B0882399F080E0E0917E00F0E0E258FF4F61 S11300C0928198BB96E09A95F1F700C08F5F90916A -S11300D09500891780F39F3F99F060E04FEF50E05F +S11300D07F00891780F39F3F99F060E04FEF50E075 S11300E018BAE6E0EA95F1F700C06F5F262F30E01A -S11300F080919500FA01E81BF1092E173F0784F35C +S11300F080917F00FA01E81BF1092E173F0784F372 S1130100FF91EF919F918F916F915F914F913F91EB S11301102F910F900FBE0F901F9018951F920F9262 S11301200FB60F9211242F933F934F938F939F9366 -S1130130EF93FF938CB18A3039F08D3029F0909190 -S1130140A8009F3008F43FC08091A900843709F4C7 -S113015060C08091A900843609F441C0EAE7F0E068 -S113016087E55D9BFECF8CB981918111FACF809197 -S1130170A600805D5D9BFECF8CB9E1E7F0E080E2F4 -S11301805D9BFECF8CB981918111FACF8091A7003C -S1130190805D5D9BFECF8CB9E2E9F0E08DE05D9B74 -S11301A0FECF8CB981918111FACF1092A800FF91F2 -S11301B0EF919F918F914F913F912F910F900FBE8F -S11301C00F901F901895E091A800F0E0EA55FF4FBA -S11301D083838091A8008F5F8093A800E8CF30913B -S11301E0AA004091AB008091AC00805D232F220FC8 -S11301F0230F922F9295990F907E920F930F890F50 -S1130200942F990F990F940F990F890F8093A7003A -S1130210A5CF8091AB0080538093A6009ACF109213 -S1130220A6001092A7001092A800789486E083B9E3 -S113023088E98AB912B881E889B9E8E8F0E085E587 -S11302405D9BFECF8CB981918111FACF10929400FD -S11302501092950080E1E0E6F0E0A6E9B0E00190BC -S11302600D928A95E1F78FE787BB10BE83E083BFC9 -S113027012BE16BE1CBE82E089BF0895EE0FFF1F9A -S10F02800590F491E02D0994F894FFCF50 -S113028C7B036E4F175D7D0B7F5F3F7578677C3CFE -S113029C204C696768743A200057657274653A207B -S11302AC54696D653A20005561727420646F6E65F3 -S10702BC210D0A0002 +S1130130EF93FF938CB18A30A9F08D3099F09091B0 +S113014092009F3078F4E0919200F0E0E057FF4F86 +S11301508383909192009F5F909392005D9BFECF6A +S11301608CB913C0EBE7F0E08DE05D9BFECF8CB95A +S113017081918111FACF80919300843791F080911D +S113018093008436B9F010929200FF91EF919F9101 +S11301908F914F913F912F910F900FBE0F901F9011 +S11301A018958091940080538093900080919300DF +S11301B0843649F7309194004091950080919600DF +S11301C0805D232F220F230F922F9295990F907EFB +S11301D0920F930F890F942F990F990F940F990FE2 +S11301E0890F80939100CFCF1092900082E3809387 +S11301F0910010929200789486E083B988E98AB9D4 +S113020012B881E889B9E1E7F0E085E55D9BFECFAE +S11302108CB981918111FACF10927E0010927F00E7 +S113022080E1E0E6F0E0A0E8B0E001900D928A956C +S1130230E1F78FE787BB10BE83E083BF12BE16BE13 +S11302401CBE82E089BF0895EE0FFF1F0590F49154 +S10B0250E02D0994F894FFCF9E +S11302587B036E4F175D7D0B7F5F3F7578677C3C32 +S11102685561727420646F6E65210D0A0000EA S9030000FC diff --git a/Zahl/Zahl/Zahl.cpp b/Zahl/Zahl/Zahl.cpp index 854cf66..7a6138d 100644 --- a/Zahl/Zahl/Zahl.cpp +++ b/Zahl/Zahl/Zahl.cpp @@ -12,7 +12,7 @@ ///////////////////////// UART //////////////////////////////////// -typedef Uart<9600, 2> uartclass; +typedef Uart<9600, 1> uartclass; uartclass u; ///////////////////////// LED ///////////////////////////////////// typedef Led ledclass; diff --git a/Zahl/Zahl/uart.hpp b/Zahl/Zahl/uart.hpp index 02d55c2..1a05b98 100644 --- a/Zahl/Zahl/uart.hpp +++ b/Zahl/Zahl/uart.hpp @@ -40,20 +40,20 @@ class Uart { if( nextChar != '\n' && nextChar != '\r' && uart_str_count < UART_MAXSTRLEN) { uart_string[uart_str_count] = nextChar; uart_str_count++; - //send(nextChar); + send(nextChar); } else { - //send("\r\n"); + 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; } - send("Werte: Time: "); + /*send("Werte: Time: "); send(number+0x30); send(" Light: "); send(dimmer+0x30); - send("\r\n"); + send("\r\n");*/ uart_str_count = 0; } } @@ -65,7 +65,7 @@ class Uart { } private: uint8_t number = 0; - uint8_t dimmer = 0; + uint8_t dimmer = 50; static const uint8_t UART_MAXSTRLEN = 15; volatile uint8_t uart_str_count = 0; volatile char uart_string[UART_MAXSTRLEN];