From 11933f050655003572b538bcae9b4d66397d1e2f Mon Sep 17 00:00:00 2001 From: BlubbFish Date: Wed, 11 Dec 2013 17:09:50 +0000 Subject: [PATCH] 20131211-181002 --- Mainboard/Mainboard/Debug/Mainboard.elf | Bin 21251 -> 21255 bytes Mainboard/Mainboard/Debug/Mainboard.hex | 28 +- Mainboard/Mainboard/Debug/Mainboard.lss | 72 +-- Mainboard/Mainboard/Debug/Mainboard.map | 39 +- Mainboard/Mainboard/Debug/Mainboard.srec | 28 +- Mainboard/Mainboard/Mainboard.cpp | 4 +- Zahl/Zahl.atsuo | Bin 9728 -> 9728 bytes Zahl/Zahl/Debug/Makefile | 2 +- Zahl/Zahl/Debug/Zahl.elf | Bin 11080 -> 12356 bytes Zahl/Zahl/Debug/Zahl.hex | 73 ++- Zahl/Zahl/Debug/Zahl.lss | 661 +++++++++++++++-------- Zahl/Zahl/Debug/Zahl.map | 104 ++-- Zahl/Zahl/Debug/Zahl.srec | 73 ++- Zahl/Zahl/Zahl.cpp | 23 +- Zahl/Zahl/Zahl.cppproj | 5 +- Zahl/Zahl/uart.hpp | 40 +- 16 files changed, 711 insertions(+), 441 deletions(-) diff --git a/Mainboard/Mainboard/Debug/Mainboard.elf b/Mainboard/Mainboard/Debug/Mainboard.elf index 2f97c452cf5d51f90869aa80a832e37144724936..b2403114d5144118d481bbf69055c333722af6dc 100644 GIT binary patch delta 555 zcmXYt&r4KM6vxkb_8bv^yoX{<_?S0{Otf&U2{A=7(wPaJaTVku<^=|BRM1+u2=1Gg z7-aM76gI0|gc3ARJZP0Z{{jDi*~ly`S~Sr@@CWqc+}GU8`J8+2_uPBWInFk&Z)3s4 zH^uNB!vp|n&1~4PTnm7ZvuLmBTf?6M)f2O}_5EWF_l?p!x`^em=;on!;EAFG_I2|( zpAqE1#J*N?_>zE7DNlU4;Vs|W-wL(2lqadxF?d%%KGXU6^wpu)xp&}g#4a5R5)j}w z{Et}`WXlv_BR2d?E6KIxpIZLv`8ADCEr`;LavL4DsMJ-xy%p{~Tz+iMEiFC@w{kh| zi4DA-k=AG2!5b7<`=54o|^!${I`Fw{*!*QGEe=< z2;Qeuatei8PX1NUq4HD)&*_Z$jAo}j6ckKln5#aksU=+|CWi(JXk0eOrDxEl_vt8R J-D>*kg?~(Gt-b&N delta 531 zcmXYt&r2Io5XWcM#)#6o3!)8lvzt@eBKRW^e_^%Q+K4qG*kefqy(&gMx_PSq#@0&L>E4#S7iyJy_I*9=_ z4gi5wvth-o8UO@Zt+3P4pkN)fBz0>_N9;ogPHQ`oo^T!ka&=-ygX1jiA=LDJX z>Ogi)5RL(wYm;z_6`v2i`Ddg2iEPqbi!LxWWPqKk|9-W3;@AH=^sUt6OF;%ixdwmD zZ-bh}FtSpe|716a^Ikh zb0DQED#I(O=@{zX-*ha>PI_@2#W>x()*`_MElLa~(V`)yOtZ|Nw8cE5-^?{SV}2p! zO%l`8#cZVs=4V=C{-6?bosO92gqb8x(lh2bjb(<>@U}Cz5}LF}!A kj^vn&A&*C9l%SE|$RL5tBeE_#ibeXCZ9(B3XP-Z~1JMts#Q*>R diff --git a/Mainboard/Mainboard/Debug/Mainboard.hex b/Mainboard/Mainboard/Debug/Mainboard.hex index e5c0706..53fce1e 100644 --- a/Mainboard/Mainboard/Debug/Mainboard.hex +++ b/Mainboard/Mainboard/Debug/Mainboard.hex @@ -5,8 +5,8 @@ :100040000C9453000C9453000C9453000C945300E4 :100050000C945300F80011241FBECFE5D4E0DEBF9E :10006000CDBF10E0A0E6B0E0EAEDF7E002C00590F9 -:100070000D92AE37B107D9F720E0AEE7B0E001C08E -:100080001D92A238B207E1F710E0C6E5D0E004C047 +:100070000D92A038B107D9F720E0A0E8B0E001C0A8 +:100080001D92A438B207E1F710E0C6E5D0E004C045 :100090002297FE010E940401C435D107C9F70E94CE :1000A00065000C94EB030C940000FC0103C05D9B05 :1000B000FECF8CB981918111FACF089585E083BF7D @@ -15,21 +15,21 @@ :1000E000215030408040E1F700C00000F3CF1F9264 :1000F0000F920FB60F9211240F931F932F933F93DC :100100004F935F936F937F938F939F93AF93BF931F -:10011000EF93FF93CF93DF93CDB7DEB72C97DEBF7E -:10012000CDBF80918100813220F48F5F8093810068 -:1001300044C01092810080917E001F928F93809125 -:100140007F001F928F93809160001F928F9381E6B2 -:1001500090E09F938F931F928CE08F938E010F5F9F +:10011000EF93FF93CF93DF93CDB7DEB72F97DEBF7B +:10012000CDBF80918300813220F48F5F8093830064 +:1001300044C010928300809180001F928F93809121 +:1001400081001F928F93809160001F928F9381E6B0 +:1001500090E09F938F931F928FE08F938E010F5F9C :100160001F4F1F930F930E940801C8010E94550062 -:1001700080917E008F5F0FB6F894DEBF0FBECDBFBB -:100180008C3318F480937E0007C010927E0080911B -:100190007F008F5F80937F0080917F008C3338F0E9 -:1001A00010927F00809160008F5F8093600080914B -:1001B0006000883110F0109260002C960FB6F89411 +:10017000809180008F5F0FB6F894DEBF0FBECDBFB9 +:100180008C3318F48093800007C010928000809117 +:1001900081008F5F80938100809181008C3338F0E3 +:1001A00010928100809160008F5F80936000809149 +:1001B0006000883110F0109260002F960FB6F8940E :1001C000DEBF0FBECDBFDF91CF91FF91EF91BF9109 :1001D000AF919F918F917F916F915F914F913F91DF :1001E0002F911F910F910F900FBE0F901F90189598 -:1001F00086E080BD539A10BC83E389B982E790E022 +:1001F00086E080BD539A10BC83E389B983E790E021 :100200000C945500EE0FFF1F0590F491E02D09941A :10021000AEE0B0E0EEE0F1E00C94C2030D891E897F :100220008F89988D26E02C831A83098397FF02C05B @@ -125,5 +125,5 @@ :1007C000AA81B981CE0FD11D0FB6F894DEBF0FBE3E :0A07D000CDBFED010895F894FFCFAE :1007DA000C74253032643A253032643A253032645A -:0E07EA000A005561727420646F6E65210A006A +:1007EA000D0A005561727420646F6E65210A00005B :00000001FF diff --git a/Mainboard/Mainboard/Debug/Mainboard.lss b/Mainboard/Mainboard/Debug/Mainboard.lss index 3932a74..64a228b 100644 --- a/Mainboard/Mainboard/Debug/Mainboard.lss +++ b/Mainboard/Mainboard/Debug/Mainboard.lss @@ -5,31 +5,31 @@ Sections: Idx Name Size VMA LMA File off Algn 0 .text 000007da 00000000 00000000 00000094 2**1 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 - 2 .bss 00000004 0080007e 0080007e 0000088c 2**0 + 2 .bss 00000004 00800080 00800080 0000088e 2**0 ALLOC - 3 .stab 00000c84 00000000 00000000 0000088c 2**2 + 3 .stab 00000c84 00000000 00000000 00000890 2**2 CONTENTS, READONLY, DEBUGGING - 4 .stabstr 000001aa 00000000 00000000 00001510 2**0 + 4 .stabstr 000001aa 00000000 00000000 00001514 2**0 CONTENTS, READONLY, DEBUGGING - 5 .comment 0000002f 00000000 00000000 000016ba 2**0 + 5 .comment 0000002f 00000000 00000000 000016be 2**0 CONTENTS, READONLY - 6 .debug_aranges 000000a0 00000000 00000000 000016e9 2**0 + 6 .debug_aranges 000000a0 00000000 00000000 000016ed 2**0 CONTENTS, READONLY, DEBUGGING - 7 .debug_info 00000f20 00000000 00000000 00001789 2**0 + 7 .debug_info 00000f20 00000000 00000000 0000178d 2**0 CONTENTS, READONLY, DEBUGGING - 8 .debug_abbrev 0000078d 00000000 00000000 000026a9 2**0 + 8 .debug_abbrev 0000078d 00000000 00000000 000026ad 2**0 CONTENTS, READONLY, DEBUGGING - 9 .debug_line 000007f9 00000000 00000000 00002e36 2**0 + 9 .debug_line 000007f9 00000000 00000000 00002e3a 2**0 CONTENTS, READONLY, DEBUGGING - 10 .debug_frame 00000178 00000000 00000000 00003630 2**2 + 10 .debug_frame 00000178 00000000 00000000 00003634 2**2 CONTENTS, READONLY, DEBUGGING - 11 .debug_str 00000510 00000000 00000000 000037a8 2**0 + 11 .debug_str 00000510 00000000 00000000 000037ac 2**0 CONTENTS, READONLY, DEBUGGING - 12 .debug_loc 000007d2 00000000 00000000 00003cb8 2**0 + 12 .debug_loc 000007d2 00000000 00000000 00003cbc 2**0 CONTENTS, READONLY, DEBUGGING - 13 .debug_ranges 00000060 00000000 00000000 0000448a 2**0 + 13 .debug_ranges 00000060 00000000 00000000 0000448e 2**0 CONTENTS, READONLY, DEBUGGING Disassembly of section .text: @@ -77,13 +77,13 @@ Disassembly of section .text: 6c: 02 c0 rjmp .+4 ; 0x72 <__do_copy_data+0x10> 6e: 05 90 lpm r0, Z+ 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 76: d9 f7 brne .-10 ; 0x6e <__do_copy_data+0xc> 00000078 <__do_clear_bss>: 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 7e: 01 c0 rjmp .+2 ; 0x82 <.do_clear_bss_start> @@ -91,7 +91,7 @@ Disassembly of section .text: 80: 1d 92 st X+, r1 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 86: e1 f7 brne .-8 ; 0x80 <.do_clear_bss_loop> @@ -247,24 +247,24 @@ ISR(TIMER0_OVF_vect) { 116: df 93 push r29 118: cd b7 in r28, 0x3d ; 61 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 120: cd bf out 0x3d, r28 ; 61 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 128: 20 f4 brcc .+8 ; 0x132 <__vector_9+0x44> 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> timer = 0; - 132: 10 92 81 00 sts 0x0081, r1 - char t[12]; - snprintf(t, sizeof(t), "t%02d:%02d:%02d\n", h, m, s); - 136: 80 91 7e 00 lds r24, 0x007E + 132: 10 92 83 00 sts 0x0083, r1 + char t[15]; + snprintf(t, sizeof(t), "t%02d:%02d:%02d\r\n", h, m, s); + 136: 80 91 80 00 lds r24, 0x0080 13a: 1f 92 push r1 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 144: 8f 93 push r24 146: 80 91 60 00 lds r24, 0x0060 @@ -275,7 +275,7 @@ ISR(TIMER0_OVF_vect) { 152: 9f 93 push r25 154: 8f 93 push r24 156: 1f 92 push r1 - 158: 8c e0 ldi r24, 0x0C ; 12 + 158: 8f e0 ldi r24, 0x0F ; 15 15a: 8f 93 push r24 15c: 8e 01 movw r16, r28 15e: 0f 5f subi r16, 0xFF ; 255 @@ -287,7 +287,7 @@ ISR(TIMER0_OVF_vect) { 16a: c8 01 movw r24, r16 16c: 0e 94 55 00 call 0xaa ; 0xaa <_ZN4UartILm9600EE4sendEPKc.isra.2> s++; - 170: 80 91 7e 00 lds r24, 0x007E + 170: 80 91 80 00 lds r24, 0x0080 174: 8f 5f subi r24, 0xFF ; 255 if(s >= 60) { 176: 0f b6 in r0, 0x3f ; 63 @@ -299,26 +299,26 @@ ISR(TIMER0_OVF_vect) { 182: 18 f4 brcc .+6 ; 0x18a <__vector_9+0x9c> if(timer++ > 32) { timer = 0; - char t[12]; - snprintf(t, sizeof(t), "t%02d:%02d:%02d\n", h, m, s); + char t[15]; + snprintf(t, sizeof(t), "t%02d:%02d:%02d\r\n", h, m, s); u.send(t); 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> if(s >= 60) { s = 0; - 18a: 10 92 7e 00 sts 0x007E, r1 + 18a: 10 92 80 00 sts 0x0080, r1 m++; - 18e: 80 91 7f 00 lds r24, 0x007F + 18e: 80 91 81 00 lds r24, 0x0081 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) { - 198: 80 91 7f 00 lds r24, 0x007F + 198: 80 91 81 00 lds r24, 0x0081 19c: 8c 33 cpi r24, 0x3C ; 60 19e: 38 f0 brcs .+14 ; 0x1ae <__vector_9+0xc0> m = 0; - 1a0: 10 92 7f 00 sts 0x007F, r1 + 1a0: 10 92 81 00 sts 0x0081, r1 h++; 1a4: 80 91 60 00 lds r24, 0x0060 1a8: 8f 5f subi r24, 0xFF ; 255 @@ -332,7 +332,7 @@ ISR(TIMER0_OVF_vect) { 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 1be: f8 94 cli 1c0: de bf out 0x3e, r29 ; 62 @@ -379,7 +379,7 @@ class Uart { Uart() { init(); 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 200: 0c 94 55 00 jmp 0xaa ; 0xaa <_ZN4UartILm9600EE4sendEPKc.isra.2> diff --git a/Mainboard/Mainboard/Debug/Mainboard.map b/Mainboard/Mainboard/Debug/Mainboard.map index f2ae06a..32eaae6 100644 --- a/Mainboard/Mainboard/Debug/Mainboard.map +++ b/Mainboard/Mainboard/Debug/Mainboard.map @@ -393,7 +393,7 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8 *(.fini0) 0x000007da _etext = . -.data 0x00800060 0x1e load address 0x000007da +.data 0x00800060 0x20 load address 0x000007da 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/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.str1.1 - 0x00800061 0x1d Mainboard.o + 0x00800061 0x1e Mainboard.o *(.gnu.linkonce.d*) - 0x0080007e . = ALIGN (0x2) - 0x0080007e _edata = . - 0x0080007e PROVIDE (__data_end, .) + 0x00800080 . = ALIGN (0x2) + *fill* 0x0080007f 0x1 + 0x00800080 _edata = . + 0x00800080 PROVIDE (__data_end, .) -.bss 0x0080007e 0x4 - 0x0080007e PROVIDE (__bss_start, .) +.bss 0x00800080 0x4 + 0x00800080 PROVIDE (__bss_start, .) *(.bss) - .bss 0x0080007e 0x4 Mainboard.o - 0x0080007e s - 0x0080007f m - 0x00800080 u - 0x00800081 timer + .bss 0x00800080 0x4 Mainboard.o + 0x00800080 s + 0x00800081 m + 0x00800082 u + 0x00800083 timer *(.bss*) *(COMMON) - 0x00800082 PROVIDE (__bss_end, .) + 0x00800084 PROVIDE (__bss_end, .) 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 - 0x00800082 PROVIDE (__noinit_start, .) +.noinit 0x00800084 0x0 + 0x00800084 PROVIDE (__noinit_start, .) *(.noinit*) - 0x00800082 PROVIDE (__noinit_end, .) - 0x00800082 _end = . - 0x00800082 PROVIDE (__heap_start, .) + 0x00800084 PROVIDE (__noinit_end, .) + 0x00800084 _end = . + 0x00800084 PROVIDE (__heap_start, .) .eeprom 0x00810000 0x0 *(.eeprom*) diff --git a/Mainboard/Mainboard/Debug/Mainboard.srec b/Mainboard/Mainboard/Debug/Mainboard.srec index d623819..bd1309c 100644 --- a/Mainboard/Mainboard/Debug/Mainboard.srec +++ b/Mainboard/Mainboard/Debug/Mainboard.srec @@ -6,8 +6,8 @@ S11300300C9453000C9453000C9453000C945300F0 S11300400C9453000C9453000C9453000C945300E0 S11300500C945300F80011241FBECFE5D4E0DEBF9A S1130060CDBF10E0A0E6B0E0EAEDF7E002C00590F5 -S11300700D92AE37B107D9F720E0AEE7B0E001C08A -S11300801D92A238B207E1F710E0C6E5D0E004C043 +S11300700D92A038B107D9F720E0A0E8B0E001C0A4 +S11300801D92A438B207E1F710E0C6E5D0E004C041 S11300902297FE010E940401C435D107C9F70E94CA S11300A065000C94EB030C940000FC0103C05D9B01 S11300B0FECF8CB981918111FACF089585E083BF79 @@ -16,21 +16,21 @@ S11300D0A09A91E085B3892785BB2FEF31EE84E0A8 S11300E0215030408040E1F700C00000F3CF1F9260 S11300F00F920FB60F9211240F931F932F933F93D8 S11301004F935F936F937F938F939F93AF93BF931B -S1130110EF93FF93CF93DF93CDB7DEB72C97DEBF7A -S1130120CDBF80918100813220F48F5F8093810064 -S113013044C01092810080917E001F928F93809121 -S11301407F001F928F93809160001F928F9381E6AE -S113015090E09F938F931F928CE08F938E010F5F9B +S1130110EF93FF93CF93DF93CDB7DEB72F97DEBF77 +S1130120CDBF80918300813220F48F5F8093830060 +S113013044C010928300809180001F928F9380911D +S113014081001F928F93809160001F928F9381E6AC +S113015090E09F938F931F928FE08F938E010F5F98 S11301601F4F1F930F930E940801C8010E9455005E -S113017080917E008F5F0FB6F894DEBF0FBECDBFB7 -S11301808C3318F480937E0007C010927E00809117 -S11301907F008F5F80937F0080917F008C3338F0E5 -S11301A010927F00809160008F5F80936000809147 -S11301B06000883110F0109260002C960FB6F8940D +S1130170809180008F5F0FB6F894DEBF0FBECDBFB5 +S11301808C3318F48093800007C010928000809113 +S113019081008F5F80938100809181008C3338F0DF +S11301A010928100809160008F5F80936000809145 +S11301B06000883110F0109260002F960FB6F8940A S11301C0DEBF0FBECDBFDF91CF91FF91EF91BF9105 S11301D0AF919F918F917F916F915F914F913F91DB S11301E02F911F910F910F900FBE0F901F90189594 -S11301F086E080BD539A10BC83E389B982E790E01E +S11301F086E080BD539A10BC83E389B983E790E01D S11302000C945500EE0FFF1F0590F491E02D099416 S1130210AEE0B0E0EEE0F1E00C94C2030D891E897B S11302208F89988D26E02C831A83098397FF02C057 @@ -126,5 +126,5 @@ S11307B0AA84B984C884DF80EE80FD800C811B810B S11307C0AA81B981CE0FD11D0FB6F894DEBF0FBE3A S10D07D0CDBFED010895F894FFCFAA S11307DA0C74253032643A253032643A2530326456 -S11107EA0A005561727420646F6E65210A0066 +S11307EA0D0A005561727420646F6E65210A000057 S9030000FC diff --git a/Mainboard/Mainboard/Mainboard.cpp b/Mainboard/Mainboard/Mainboard.cpp index e6ecbfe..63c8323 100644 --- a/Mainboard/Mainboard/Mainboard.cpp +++ b/Mainboard/Mainboard/Mainboard.cpp @@ -53,8 +53,8 @@ uint8_t s = 0; ISR(TIMER0_OVF_vect) { if(timer++ > 32) { timer = 0; - char t[12]; - snprintf(t, sizeof(t), "t%02d:%02d:%02d\n", h, m, s); + char t[15]; + snprintf(t, sizeof(t), "t%02d:%02d:%02d\r\n", h, m, s); u.send(t); s++; if(s >= 60) { diff --git a/Zahl/Zahl.atsuo b/Zahl/Zahl.atsuo index ab08e0a81c953c1d9c13f1a7730e9d4f4989f77f..36bb980a753e63210133a5bdd33464d02ccbd306 100644 GIT binary patch delta 282 zcmZqhY4F*Q!@}pV*GTyC*K>@_3=9kn{F|#-ikLWUfNWbJ{*Sxx z#~BkQJ1V&7x-g_NBr%jSq%*`YL@^{XWH96~=mBvt5T3~oEPK+J_#({T>t2P)sbdV2 Im#CZr0HaJ?!2kdN delta 192 zcmZqhY4F*Q!@`&F@OPx$*K>@_3=9kh_%>Iu6ftf7!N$QjF@a|j#}Q@@0iZY+5Kneg z)!6)nJA{u#2+EsWBIVD?APnS*!$iJ-M5KT`CaB2f66y2IoQ#4%t_)mA{yY;WgEWvU z3l*ANqU6uX_#X)5U?N|X{3jn~F=Vv_3Y1R{RP~;0scJi!QDy&RKh;f>6IA;Eg~~C- diff --git a/Zahl/Zahl/Debug/Makefile b/Zahl/Zahl/Debug/Makefile index a8a6fe7..23afce3 100644 --- a/Zahl/Zahl/Debug/Makefile +++ b/Zahl/Zahl/Debug/Makefile @@ -78,7 +78,7 @@ LIB_DEP+= ./%.o: .././%.cpp @echo Building file: $< @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: $< diff --git a/Zahl/Zahl/Debug/Zahl.elf b/Zahl/Zahl/Debug/Zahl.elf index 305c14c504d55e034d79c29188550a74816b0f68..df29cc1434d963e841bfeeab4d29a056ccc6b1c9 100644 GIT binary patch literal 12356 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 F{s)}gH#q 8: 32 c0 rjmp .+100 ; 0x6e <__bad_interrupt> a: 31 c0 rjmp .+98 ; 0x6e <__bad_interrupt> - c: 54 c0 rjmp .+168 ; 0xb6 <__vector_6> - e: 2f c0 rjmp .+94 ; 0x6e <__bad_interrupt> + c: 41 c0 rjmp .+130 ; 0x90 <__vector_6> + e: 86 c0 rjmp .+268 ; 0x11c <__vector_7> 10: 2e c0 rjmp .+92 ; 0x6e <__bad_interrupt> 12: 2d c0 rjmp .+90 ; 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> 00000026 <__ctors_start>: - 26: 9d 00 .word 0x009d ; ???? + 26: 0f 01 movw r0, r30 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: e4 ea ldi r30, 0xA4 ; 164 - 38: f1 e0 ldi r31, 0x01 ; 1 + 36: ec e8 ldi r30, 0x8C ; 140 + 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 38 cpi r26, 0x84 ; 132 + 40: a4 39 cpi r26, 0x94 ; 148 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 e8 ldi r26, 0x84 ; 132 + 48: a4 e9 ldi r26, 0x94 ; 148 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: a4 3a cpi r26, 0xA4 ; 164 + 50: a8 3b cpi r26, 0xB8 ; 184 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: 9a d0 rcall .+308 ; 0x198 <__tablejump__> + 62: 0e d1 rcall .+540 ; 0x280 <__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: 99 c0 rjmp .+306 ; 0x1a0 <_exit> + 6c: 0d c1 rjmp .+538 ; 0x288 <_exit> 0000006e <__bad_interrupt>: 6e: c8 cf rjmp .-112 ; 0x0 <__vectors> @@ -116,297 +116,514 @@ int main(void) { sei(); 70: 78 94 sei + } + uint8_t getDig() { + return number; + } + uint8_t getDim() { + return dimmer; + 72: 80 91 a7 00 lds r24, 0x00A7 public: Led() { init(); } void setNum(uint8_t 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) { this->dim = dimmer; - 76: 8c ea ldi r24, 0xAC ; 172 - 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 - { - 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 - UCSRB = /*(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 - 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 - 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 + 7e: 80 93 95 00 sts 0x0095, r24 #else //round up by default __ticks_dc = (uint32_t)(ceil(fabs(__tmp))); #endif __builtin_avr_delay_cycles(__ticks_dc); - 9e: 2f e7 ldi r18, 0x7F ; 127 - a0: 34 e8 ldi r19, 0x84 ; 132 - a2: 9e e1 ldi r25, 0x1E ; 30 - a4: 21 50 subi r18, 0x01 ; 1 - a6: 30 40 sbci r19, 0x00 ; 0 - a8: 90 40 sbci r25, 0x00 ; 0 - aa: e1 f7 brne .-8 ; 0xa4 - ac: 00 c0 rjmp .+0 ; 0xae - ae: 00 00 nop - _delay_ms(500); - if(i > 15) { - b0: 80 31 cpi r24, 0x10 ; 16 - b2: 30 f7 brcc .-52 ; 0x80 - b4: e6 cf rjmp .-52 ; 0x82 + 82: 8f e4 ldi r24, 0x4F ; 79 + 84: 93 ec ldi r25, 0xC3 ; 195 + 86: 01 97 sbiw r24, 0x01 ; 1 + 88: f1 f7 brne .-4 ; 0x86 + 8a: 00 c0 rjmp .+0 ; 0x8c + 8c: 00 00 nop + 8e: f1 cf rjmp .-30 ; 0x72 -000000b6 <__vector_6>: +00000090 <__vector_6>: i = 0; - } + }*/ } } ISR(TIMER0_OVF_vect) { - b6: 1f 92 push r1 - b8: 0f 92 push r0 - ba: 0f b6 in r0, 0x3f ; 63 - bc: 0f 92 push r0 - be: 11 24 eor r1, r1 - c0: 2f 93 push r18 - c2: 3f 93 push r19 - c4: 4f 93 push r20 - c6: 5f 93 push r21 - c8: 6f 93 push r22 - ca: 8f 93 push r24 - cc: 9f 93 push r25 - ce: ef 93 push r30 - d0: ff 93 push r31 + 90: 1f 92 push r1 + 92: 0f 92 push r0 + 94: 0f b6 in r0, 0x3f ; 63 + 96: 0f 92 push r0 + 98: 11 24 eor r1, r1 + 9a: 2f 93 push r18 + 9c: 3f 93 push r19 + 9e: 4f 93 push r20 + a0: 5f 93 push r21 + a2: 6f 93 push r22 + a4: 8f 93 push r24 + a6: 9f 93 push r25 + a8: ef 93 push r30 + aa: ff 93 push r31 // Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=(0<dim;k++) { - d2: 80 e0 ldi r24, 0x00 ; 0 - d4: 0c c0 rjmp .+24 ; 0xee <__stack+0xf> + ac: 80 91 95 00 lds r24, 0x0095 + 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]); - d6: e0 91 84 00 lds r30, 0x0084 - da: f0 e0 ldi r31, 0x00 ; 0 - dc: ec 57 subi r30, 0x7C ; 124 - de: ff 4f sbci r31, 0xFF ; 255 - e0: 92 81 ldd r25, Z+2 ; 0x02 + b6: e0 91 94 00 lds r30, 0x0094 + ba: f0 e0 ldi r31, 0x00 ; 0 + bc: ec 56 subi r30, 0x6C ; 108 + be: ff 4f sbci r31, 0xFF ; 255 + c0: 92 81 ldd r25, Z+2 ; 0x02 namespace avrlib { struct portb { static uint8_t port() { return PORTB; } static void port(uint8_t v) { PORTB = v; } - e2: 98 bb out 0x18, r25 ; 24 + c2: 98 bb out 0x18, r25 ; 24 #else //round up by default __ticks_dc = (uint32_t)(ceil(fabs(__tmp))); #endif __builtin_avr_delay_cycles(__ticks_dc); - e4: 96 e0 ldi r25, 0x06 ; 6 - e6: 9a 95 dec r25 - e8: f1 f7 brne .-4 ; 0xe6 <__stack+0x7> - ea: 00 c0 rjmp .+0 ; 0xec <__stack+0xd> + c4: 96 e0 ldi r25, 0x06 ; 6 + c6: 9a 95 dec r25 + c8: f1 f7 brne .-4 ; 0xc6 <__vector_6+0x36> + ca: 00 c0 rjmp .+0 ; 0xcc <__vector_6+0x3c> // Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=(0<dim;k++) { - ec: 8f 5f subi r24, 0xFF ; 255 - ee: 90 91 85 00 lds r25, 0x0085 - f2: 89 17 cp r24, r25 - f4: 80 f3 brcs .-32 ; 0xd6 <__vector_6+0x20> - f6: 60 e0 ldi r22, 0x00 ; 0 + cc: 8f 5f subi r24, 0xFF ; 255 + ce: 90 91 95 00 lds r25, 0x0095 + d2: 89 17 cp r24, r25 + d4: 80 f3 brcs .-32 ; 0xb6 <__vector_6+0x26> Port::port(segs[this->diget]); _delay_us(1); } for(uint8_t k=0;k<255-this->dim;k++) { - f8: 4f ef ldi r20, 0xFF ; 255 - fa: 50 e0 ldi r21, 0x00 ; 0 - fc: 06 c0 rjmp .+12 ; 0x10a <__stack+0x2b> - fe: 18 ba out 0x18, r1 ; 24 - 100: e6 e0 ldi r30, 0x06 ; 6 - 102: ea 95 dec r30 - 104: f1 f7 brne .-4 ; 0x102 <__stack+0x23> - 106: 00 c0 rjmp .+0 ; 0x108 <__stack+0x29> - 108: 6f 5f subi r22, 0xFF ; 255 - 10a: 26 2f mov r18, r22 - 10c: 30 e0 ldi r19, 0x00 ; 0 - 10e: 80 91 85 00 lds r24, 0x0085 - 112: fa 01 movw r30, r20 - 114: e8 1b sub r30, r24 - 116: f1 09 sbc r31, r1 - 118: 2e 17 cp r18, r30 - 11a: 3f 07 cpc r19, r31 - 11c: 84 f3 brlt .-32 ; 0xfe <__stack+0x1f> + d6: 9f 3f cpi r25, 0xFF ; 255 + d8: 99 f0 breq .+38 ; 0x100 <__stack+0x21> + // Timer(s)/Counter(s) Interrupt(s) initialization + TIMSK=(0<dim;k++) { + da: 60 e0 ldi r22, 0x00 ; 0 + Port::port(segs[this->diget]); + _delay_us(1); + } + for(uint8_t k=0;k<255-this->dim;k++) { + dc: 4f ef ldi r20, 0xFF ; 255 + de: 50 e0 ldi r21, 0x00 ; 0 + e0: 18 ba out 0x18, r1 ; 24 + e2: e6 e0 ldi r30, 0x06 ; 6 + 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(); } - 11e: ff 91 pop r31 - 120: ef 91 pop r30 - 122: 9f 91 pop r25 - 124: 8f 91 pop r24 - 126: 6f 91 pop r22 - 128: 5f 91 pop r21 - 12a: 4f 91 pop r20 - 12c: 3f 91 pop r19 - 12e: 2f 91 pop r18 - 130: 0f 90 pop r0 - 132: 0f be out 0x3f, r0 ; 63 - 134: 0f 90 pop r0 - 136: 1f 90 pop r1 - 138: 18 95 reti + 100: ff 91 pop r31 + 102: ef 91 pop r30 + 104: 9f 91 pop r25 + 106: 8f 91 pop r24 + 108: 6f 91 pop r22 + 10a: 5f 91 pop r21 + 10c: 4f 91 pop r20 + 10e: 3f 91 pop r19 + 110: 2f 91 pop r18 + 112: 0f 90 pop r0 + 114: 0f be out 0x3f, r0 ; 63 + 116: 0f 90 pop r0 + 118: 1f 90 pop r1 + 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<>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') { + 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 template class Uart { public: Uart() { - 13a: 10 92 96 00 sts 0x0096, r1 - 13e: 10 92 97 00 sts 0x0097, r1 + 21e: 10 92 a6 00 sts 0x00A6, r1 + 222: 10 92 a7 00 sts 0x00A7, r1 + 226: 10 92 a8 00 sts 0x00A8, r1 sei(); - 142: 78 94 sei - uint8_t number = 0; - static const uint8_t UART_MAXSTRLEN = 12; - uint8_t uart_str_count = 0; - uint8_t uart_string[UART_MAXSTRLEN]; + 22a: 78 94 sei + uint8_t dimmer = 0; + static const uint8_t UART_MAXSTRLEN = 15; + volatile uint8_t uart_str_count = 0; + volatile char uart_string[UART_MAXSTRLEN]; void init() { - UCSRC = (1 << UCSZ1) | (1 << UCSZ0); //8N1 - 144: 86 e0 ldi r24, 0x06 ; 6 - 146: 83 b9 out 0x03, r24 ; 3 - UCSRB = /*(1<>8); - 14c: 12 b8 out 0x02, r1 ; 2 - UBRRL = (uint8_t)(F_CPU / 16 / baudrate) - 1; //Teiler wird gesetzt - 14e: 81 e8 ldi r24, 0x81 ; 129 - 150: 89 b9 out 0x09, r24 ; 9 - 152: e7 e7 ldi r30, 0x77 ; 119 - 154: 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 + 234: 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 sei(); init(); - send("Uart done!\n"); + send("Uart done!\r\n"); } void send(const char *text) { while (*text) - 15e: 81 91 ld r24, Z+ - 160: 81 11 cpse r24, r1 - 162: fa cf rjmp .-12 ; 0x158 <_GLOBAL__sub_I_u+0x1e> + 23e: 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> + 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 template class Led { public: Led() { - 164: 10 92 84 00 sts 0x0084, r1 - 168: 10 92 85 00 sts 0x0085, r1 - 16c: 80 e1 ldi r24, 0x10 ; 16 - 16e: e0 e6 ldi r30, 0x60 ; 96 - 170: f0 e0 ldi r31, 0x00 ; 0 - 172: a6 e8 ldi r26, 0x86 ; 134 - 174: b0 e0 ldi r27, 0x00 ; 0 - 176: 01 90 ld r0, Z+ - 178: 0d 92 st X+, r0 - 17a: 8a 95 dec r24 - 17c: e1 f7 brne .-8 ; 0x176 <_GLOBAL__sub_I_u+0x3c> + 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> 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; } - 17e: 8f e7 ldi r24, 0x7F ; 127 - 180: 87 bb out 0x17, r24 ; 23 + 266: 8f e7 ldi r24, 0x7F ; 127 + 268: 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<: - 194: ee 0f add r30, r30 - 196: ff 1f adc r31, r31 +0000027c <__tablejump2__>: + 27c: ee 0f add r30, r30 + 27e: ff 1f adc r31, r31 -00000198 <__tablejump__>: - 198: 05 90 lpm r0, Z+ - 19a: f4 91 lpm r31, Z - 19c: e0 2d mov r30, r0 - 19e: 09 94 ijmp +00000280 <__tablejump__>: + 280: 05 90 lpm r0, Z+ + 282: f4 91 lpm r31, Z + 284: e0 2d mov r30, r0 + 286: 09 94 ijmp -000001a0 <_exit>: - 1a0: f8 94 cli +00000288 <_exit>: + 288: f8 94 cli -000001a2 <__stop_program>: - 1a2: ff cf rjmp .-2 ; 0x1a2 <__stop_program> +0000028a <__stop_program>: + 28a: ff cf rjmp .-2 ; 0x28a <__stop_program> diff --git a/Zahl/Zahl/Debug/Zahl.map b/Zahl/Zahl/Debug/Zahl.map index 13afb5e..b454a12 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 0x1a4 +.text 0x00000000 0x28c *(.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 @@ -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_13 0x0000006e __vector_17 - 0x0000006e __vector_7 0x0000006e __vector_5 0x0000006e __vector_4 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) *(.text.*) .text.startup.main - 0x00000070 0x46 Zahl.o + 0x00000070 0x20 Zahl.o 0x00000070 main .text.__vector_6 - 0x000000b6 0x84 Zahl.o - 0x000000b6 __vector_6 + 0x00000090 0x8c Zahl.o + 0x00000090 __vector_6 + .text.__vector_7 + 0x0000011c 0x102 Zahl.o + 0x0000011c __vector_7 .text.startup._GLOBAL__sub_I_u - 0x0000013a 0x5a 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) - 0x00000194 __tablejump2__ - 0x00000198 __tablejump__ - 0x000001a0 . = ALIGN (0x2) + 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) *(.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) - 0x000001a0 _exit - 0x000001a0 exit + .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) *(.fini8) *(.fini8) @@ -308,11 +310,11 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8 *(.fini1) *(.fini1) *(.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) - 0x000001a4 _etext = . + 0x0000028c _etext = . -.data 0x00800060 0x24 load address 0x000001a4 +.data 0x00800060 0x34 load address 0x0000028c 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 @@ -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*) .rodata.str1.1 - 0x00800070 0x13 Zahl.o + 0x00800070 0x24 Zahl.o + 0x27 (size before relaxing) *(.gnu.linkonce.d*) - 0x00800084 . = ALIGN (0x2) - *fill* 0x00800083 0x1 - 0x00800084 _edata = . - 0x00800084 PROVIDE (__data_end, .) + 0x00800094 . = ALIGN (0x2) + 0x00800094 _edata = . + 0x00800094 PROVIDE (__data_end, .) -.bss 0x00800084 0x20 - 0x00800084 PROVIDE (__bss_start, .) +.bss 0x00800094 0x24 + 0x00800094 PROVIDE (__bss_start, .) *(.bss) - .bss 0x00800084 0x20 Zahl.o - 0x00800084 l - 0x00800096 u + .bss 0x00800094 0x24 Zahl.o + 0x00800094 l + 0x008000a6 u *(.bss*) *(COMMON) - 0x008000a4 PROVIDE (__bss_end, .) - 0x000001a4 __data_load_start = LOADADDR (.data) - 0x000001c8 __data_load_end = (__data_load_start + SIZEOF (.data)) + 0x008000b8 PROVIDE (__bss_end, .) + 0x0000028c __data_load_start = LOADADDR (.data) + 0x000002c0 __data_load_end = (__data_load_start + SIZEOF (.data)) -.noinit 0x008000a4 0x0 - 0x008000a4 PROVIDE (__noinit_start, .) +.noinit 0x008000b8 0x0 + 0x008000b8 PROVIDE (__noinit_start, .) *(.noinit*) - 0x008000a4 PROVIDE (__noinit_end, .) - 0x008000a4 _end = . - 0x008000a4 PROVIDE (__heap_start, .) + 0x008000b8 PROVIDE (__noinit_end, .) + 0x008000b8 _end = . + 0x008000b8 PROVIDE (__heap_start, .) .eeprom 0x00810000 0x0 *(.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_aranges 0x00000000 0x30 +.debug_aranges 0x00000000 0x38 *(.debug_aranges) .debug_aranges - 0x00000000 0x30 Zahl.o + 0x00000000 0x38 Zahl.o .debug_pubnames *(.debug_pubnames) -.debug_info 0x00000000 0x961 +.debug_info 0x00000000 0xbac *(.debug_info) - .debug_info 0x00000000 0x961 Zahl.o + .debug_info 0x00000000 0xbac Zahl.o *(.gnu.linkonce.wi.*) -.debug_abbrev 0x00000000 0x333 +.debug_abbrev 0x00000000 0x369 *(.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 0x00000000 0x230 Zahl.o + .debug_line 0x00000000 0x285 Zahl.o -.debug_frame 0x00000000 0x7c +.debug_frame 0x00000000 0xbc *(.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 0x00000000 0x441 Zahl.o - 0x47a (size before relaxing) + .debug_str 0x00000000 0x498 Zahl.o + 0x4d1 (size before relaxing) -.debug_loc 0x00000000 0x299 +.debug_loc 0x00000000 0x2b1 *(.debug_loc) - .debug_loc 0x00000000 0x299 Zahl.o + .debug_loc 0x00000000 0x2b1 Zahl.o .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_ranges 0x00000000 0x20 +.debug_ranges 0x00000000 0x98 *(.debug_ranges) - .debug_ranges 0x00000000 0x20 Zahl.o + .debug_ranges 0x00000000 0x98 Zahl.o .debug_macro *(.debug_macro) diff --git a/Zahl/Zahl/Debug/Zahl.srec b/Zahl/Zahl/Debug/Zahl.srec index ae8941d..02b02a4 100644 --- a/Zahl/Zahl/Debug/Zahl.srec +++ b/Zahl/Zahl/Debug/Zahl.srec @@ -1,32 +1,47 @@ S00C00005A61686C2E7372656389 -S113000013C035C034C033C032C031C054C02FC057 +S113000013C035C034C033C032C031C041C086C013 S11300102EC02DC02CC02BC02AC029C028C027C088 -S113002026C025C024C09D0011241FBECFEDCDBF26 -S113003010E0A0E6B0E0E4EAF1E002C005900D9221 -S1130040A438B107D9F720E0A4E8B0E001C01D92BC -S1130050A43AB207E1F710E0C8E2D0E003C0229767 -S1130060FE019AD0C632D107D1F702D099C0C8CFC9 -S11300707894109284008CEA8093850090E002C00A -S113008080E0982FE0E7F0E003C05D9BFECF8CB9E1 -S113009081918111FACF892F8F5F909384002FE78C -S11300A034E89EE1215030409040E1F700C0000068 -S11300B0803130F7E6CF1F920F920FB60F921124C2 -S11300C02F933F934F935F936F938F939F93EF93EC -S11300D0FF9380E00CC0E0918400F0E0EC57FF4F08 -S11300E0928198BB96E09A95F1F700C08F5F90914A -S11300F08500891780F360E04FEF50E006C018BA1E -S1130100E6E0EA95F1F700C06F5F262F30E08091BA -S11301108500FA01E81BF1092E173F0784F3FF91CC -S1130120EF919F918F916F915F914F913F912F919B -S11301300F900FBE0F901F9018951092960010927A -S11301409700789486E083B988E08AB912B881E888 -S113015089B9E7E7F0E003C05D9BFECF8CB98191DC -S11301608111FACF109284001092850080E1E0E6BC -S1130170F0E0A6E8B0E001900D928A95E1F78FE7F0 -S113018087BB10BE83E083BF12BE16BE1CBE82E0D6 -S113019089BF0895EE0FFF1F0590F491E02D099497 -S10701A0F894FFCFFD -S11301A47B036E4F175D7D0B7F5F3F7578677C3CE7 -S11301B4626C612E2E0A005561727420646F6E6540 -S10701C4210A000008 +S113002026C025C024C00F0111241FBECFEDCDBFB3 +S113003010E0A0E6B0E0ECE8F2E002C005900D921A +S1130040A439B107D9F720E0A4E9B0E001C01D92BA +S1130050A83BB207E1F710E0C8E2D0E003C0229762 +S1130060FE010ED1C632D107D1F702D00DC1C8CFDF +S113007078948091A7009091A60090939400809327 +S113008095008FE493EC0197F1F700C00000F1CFE5 +S11300901F920F920FB60F9211242F933F934F93F9 +S11300A05F936F938F939F93EF93FF93809195004A +S11300B0882399F080E0E0919400F0E0EC56FF4F43 +S11300C0928198BB96E09A95F1F700C08F5F90916A +S11300D09500891780F39F3F99F060E04FEF50E05F +S11300E018BAE6E0EA95F1F700C06F5F262F30E01A +S11300F080919500FA01E81BF1092E173F0784F35C +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 S9030000FC diff --git a/Zahl/Zahl/Zahl.cpp b/Zahl/Zahl/Zahl.cpp index 26fb46f..854cf66 100644 --- a/Zahl/Zahl/Zahl.cpp +++ b/Zahl/Zahl/Zahl.cpp @@ -12,7 +12,7 @@ ///////////////////////// UART //////////////////////////////////// -typedef Uart<9600, 9> uartclass; +typedef Uart<9600, 2> uartclass; uartclass u; ///////////////////////// LED ///////////////////////////////////// typedef Led ledclass; @@ -23,15 +23,17 @@ int main(void) sei(); l.setNum(0); l.setDim(0xAC); - uint8_t i = 0; + //uint8_t i = 0; while(1) { - u.send("bla..\n"); - l.setNum(i++); - _delay_ms(500); - if(i > 15) { + uint8_t t = u.getDig(); + uint8_t d = u.getDim(); + l.setNum(t); + l.setDim(d); + _delay_ms(10); + /*if(i > 15) { i = 0; - } + }*/ } } @@ -39,7 +41,6 @@ ISR(TIMER0_OVF_vect) { l.timer(); } -/*ISR(USART_RX_vect) { - //u.interrupt(); - PORTB ^= 0xFF; -}*/ \ No newline at end of file +ISR(USART_RX_vect) { + u.interrupt(); +} \ No newline at end of file diff --git a/Zahl/Zahl/Zahl.cppproj b/Zahl/Zahl/Zahl.cppproj index 2c82faa..942da6e 100644 --- a/Zahl/Zahl/Zahl.cppproj +++ b/Zahl/Zahl/Zahl.cppproj @@ -18,7 +18,8 @@ Native true false - exception_table + + 0 true 0x20000000 @@ -138,7 +139,7 @@ DEBUG - Optimize for size (-Os) + Optimize most (-O3) True True Default (-g2) diff --git a/Zahl/Zahl/uart.hpp b/Zahl/Zahl/uart.hpp index cdf383f..02d55c2 100644 --- a/Zahl/Zahl/uart.hpp +++ b/Zahl/Zahl/uart.hpp @@ -20,7 +20,7 @@ class Uart { Uart() { sei(); init(); - send("Uart done!\n"); + send("Uart done!\r\n"); } void send(const char *text) { while (*text) @@ -29,36 +29,54 @@ class Uart { text++; } } + void send(uint8_t text) { + uart_putchar(text); + } /* USART_RX_vect */ void interrupt() { - uint8_t nextChar; + char nextChar; 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_str_count++; + //send(nextChar); } else { + //send("\r\n"); 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; } } uint8_t getDig() { return number; } + uint8_t getDim() { + return dimmer; + } private: uint8_t number = 0; - static const uint8_t UART_MAXSTRLEN = 12; - uint8_t uart_str_count = 0; - uint8_t uart_string[UART_MAXSTRLEN]; + uint8_t dimmer = 0; + static const uint8_t UART_MAXSTRLEN = 15; + volatile uint8_t uart_str_count = 0; + volatile char uart_string[UART_MAXSTRLEN]; void init() { - UCSRC = (1 << UCSZ1) | (1 << UCSZ0); //8N1 - UCSRB = /*(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) { - loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens + loop_until_bit_is_set(UCSRA, UDRE); /* Data Register Empty */ UDR = c; return 0; }