From 4dd770c5b08e13d34335e5fcf88b7323568035e7 Mon Sep 17 00:00:00 2001 From: BlubbFish Date: Thu, 8 May 2014 16:10:03 +0000 Subject: [PATCH] 20140508-181001 --- .../Zeitschaltung_V6/Zeitschaltung_V6.atsuo | Bin 15872 -> 19968 bytes .../Zeitschaltung_V6/Debug/Makefile | 3 +- .../Zeitschaltung_V6/Debug/Zeitschaltung_V6.d | 80 +++++ .../Debug/Zeitschaltung_V6.elf | Bin 10496 -> 15581 bytes .../Debug/Zeitschaltung_V6.hex | 27 +- .../Debug/Zeitschaltung_V6.lss | 320 ++++++++++++------ .../Debug/Zeitschaltung_V6.map | 91 ++--- .../Debug/Zeitschaltung_V6.srec | 27 +- .../Debug/io/{ => hardware}/.gitignore | 0 .../Zeitschaltung_V6/Release/Makefile | 3 +- .../Release/Zeitschaltung_V6.d | 19 +- .../Release/io/{ => hardware}/.gitignore | 0 .../Zeitschaltung_V6/Zeitschaltung_V6.cpp | 19 +- .../Zeitschaltung_V6/Zeitschaltung_V6.cppproj | 47 ++- .../Zeitschaltung_V6/io/Led.hpp | 2 +- .../Zeitschaltung_V6/io/Servo.hpp | 77 +++++ .../Zeitschaltung_V6/io/Spi.hpp | 92 +++++ .../Zeitschaltung_V6/io/Start.hpp | 33 ++ .../io/{ => hardware}/pin.hpp | 0 .../io/{ => hardware}/portb.hpp | 0 .../Zeitschaltung_V6/io/hardware/portc.hpp | 22 ++ .../io/{ => hardware}/portd.hpp | 0 .../Zeitschaltung_V6/io/rfm12.hpp | 68 ++++ .../Zeitschaltung_V6/peripheral.h | 43 ++- 24 files changed, 776 insertions(+), 197 deletions(-) create mode 100644 V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/Debug/Zeitschaltung_V6.d rename V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/Debug/io/{ => hardware}/.gitignore (100%) rename V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/Release/io/{ => hardware}/.gitignore (100%) create mode 100644 V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/io/Servo.hpp create mode 100644 V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/io/Spi.hpp create mode 100644 V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/io/Start.hpp rename V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/io/{ => hardware}/pin.hpp (100%) rename V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/io/{ => hardware}/portb.hpp (100%) create mode 100644 V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/io/hardware/portc.hpp rename V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/io/{ => hardware}/portd.hpp (100%) create mode 100644 V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/io/rfm12.hpp diff --git a/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6.atsuo b/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6.atsuo index 165935376fa750420a1aeeff3ae2368ad971b818..4457a45e6786d845934454490fcd25a25b9b0895 100644 GIT binary patch delta 1337 zcmb7D3rJH@7(Qp-tvg*Sl?W5(rY^V4vbDC-NTC;DWo7iB7iJ?XYdNPz1x_MNEh|s& z_j=gd%n1<`tp^lFXb}<=1r?=1l4V38uJ2s0F`}UE`1Zff|N73op3R;kv_4OftRsZ< z1OkB=$XLJt=z%!E2*d*k06)`nb@m!sBjjuSr>8huS2xoT1TvC+8-*s7sD`cu*e;97 z=MHf9dTyk^$KaW)Yeb94XW{*&Qe7jnRBDRu z0X~{^#%;@DcZE@`%a*04dU*MeJfhqRhP&(Lmds1m7v?^db zz?Z6q+zITG?HWi1?2+w#ko$oHz(Lt}81e{k6gVdPPC$BrlfWr}*FFPT3!Ihh^Mni| z7hqfjF3HY1$SXj-Y&SsqfJR?|Vl=Hu-4nho;^wCN&#%2z7hG8CYFYV`urf=u&!1|g z;ki`7mo{N3Eomg{uPuN6f8nj`|8Xw_aQ z11bBVH&IJ)p7{_08j3$Wt4Ka^kWpj=$s?u7&V)H__hzWP5zP@r(bGe)K|F26oX7jm z!6|++hZGVAGej9#b*d_S%gxCfS|7gYzWD6cvU!`IH*h)zD?U(m$I>`8hZJM!#c077 z$|pr2zyUkh?}o>PUlCbP+|m$fGgBh#mVZfTf4}2nT~p@*14^c|6hTnDlgdsEPXBXR zCs~V)Y-B82@x3}-rmq!CNt?Ifp=aT@bxWvRQdGRTc@B!$n`!II6o$*uu**6ENzpVTN^H?%KQYiE5YGboO<|=9P_0S4hp1gW&d=gUa8D#XdFQOW3 zpQd;%k(vH)eK&wg-j%9d^TU_*Yx8F|7H+IO;o_zE-DsHKS{t7&-DNRx{%WmB+Iryn zedmwQFYa`j>`p}}&fEX?NsL*-QpVTuyRgfQT9sG9PY3hHX0m(s@vJ^}Qn369FtCkq delta 256 zcmZpe!`M)>A%ltc-~a#rL0Fc7f#KiAz;4D#EIE7zYiH%X%{0)w+FZqQij9LE z$mRp$$rFq;HkWW;VPfHg@+Oz?1x$7kvfIqW@5I9aGKdYXPC7)GMINT^i{1qeIUq+7 zCjCXyX8s@<)>fdvjmaCey(b^>v6*C{vN2>0HFR_pDj$-K?up#u^*eeq{qn O*-v)xJ^;oCv~2*ZoL0*K diff --git a/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/Debug/Makefile b/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/Debug/Makefile index 83111d1..eda825a 100644 --- a/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/Debug/Makefile +++ b/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/Debug/Makefile @@ -32,7 +32,8 @@ LIB_DEP:= # Every subdirectory with source files must be described here SUBDIRS := \ -../io +../io \ +../io/hardware # Add inputs and outputs from these tool invocations to the build variables diff --git a/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/Debug/Zeitschaltung_V6.d b/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/Debug/Zeitschaltung_V6.d new file mode 100644 index 0000000..5e2aa66 --- /dev/null +++ b/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/Debug/Zeitschaltung_V6.d @@ -0,0 +1,80 @@ +Zeitschaltung_V6.d Zeitschaltung_V6.o: .././Zeitschaltung_V6.cpp \ + .././config.h .././peripheral.h .././io/hardware/portb.hpp \ + 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/include/avr/io.h \ + 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/include/avr/sfr_defs.h \ + 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/include/inttypes.h \ + c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/include/stdint.h \ + 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/include/stdint.h \ + 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/include/avr/iom168a.h \ + 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/include/avr/iom168.h \ + 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/include/avr/iomx8.h \ + 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/include/avr/portpins.h \ + 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/include/avr/common.h \ + 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/include/avr/version.h \ + 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/include/avr/fuse.h \ + 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/include/avr/lock.h \ + .././io/hardware/portc.hpp .././io/hardware/portd.hpp .././io/Led.hpp \ + .././io/hardware/pin.hpp .././io/Servo.hpp \ + 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/include/avr/interrupt.h \ + 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/include/util/delay.h \ + 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/include/util/delay_basic.h \ + 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/include/math.h \ + .././io/Start.hpp .././io/Spi.hpp .././io/../config.h .././io/rfm12.hpp + +.././config.h: + +.././peripheral.h: + +.././io/hardware/portb.hpp: + +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/include/avr/io.h: + +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/include/avr/sfr_defs.h: + +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/include/inttypes.h: + +c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/include/stdint.h: + +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/include/stdint.h: + +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/include/avr/iom168a.h: + +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/include/avr/iom168.h: + +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/include/avr/iomx8.h: + +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/include/avr/portpins.h: + +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/include/avr/common.h: + +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/include/avr/version.h: + +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/include/avr/fuse.h: + +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/include/avr/lock.h: + +.././io/hardware/portc.hpp: + +.././io/hardware/portd.hpp: + +.././io/Led.hpp: + +.././io/hardware/pin.hpp: + +.././io/Servo.hpp: + +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/include/avr/interrupt.h: + +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/include/util/delay.h: + +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/include/util/delay_basic.h: + +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/include/math.h: + +.././io/Start.hpp: + +.././io/Spi.hpp: + +.././io/../config.h: + +.././io/rfm12.hpp: diff --git a/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/Debug/Zeitschaltung_V6.elf b/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/Debug/Zeitschaltung_V6.elf index 1a4ead037a716e168b264252a04821e960ac5516..890116d0fb365c163001c677a4107e72bf081962 100644 GIT binary patch literal 15581 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 diff --git a/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/Debug/Zeitschaltung_V6.hex b/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/Debug/Zeitschaltung_V6.hex index df601e6..62c8783 100644 --- a/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/Debug/Zeitschaltung_V6.hex +++ b/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/Debug/Zeitschaltung_V6.hex @@ -2,16 +2,23 @@ :100010000C9452000C9452000C9452000C94520018 :100020000C9452000C9452000C9452000C94520008 :100030000C9452000C9452000C9452000C945200F8 -:100040000C9452000C9452000C9452000C945200E8 +:100040000C945F000C9452000C9452000C945200DB :100050000C9452000C9452000C9452000C945200D8 -:100060000C9452000C9452006C0011241FBECFEF70 +:100060000C9452000C945200950011241FBECFEF47 :10007000D4E0DEBFCDBF21E0A0E0B1E001C01D9221 -:10008000A130B207E1F710E0CAE6D0E004C0229741 -:10009000FE010E947300C836D107C9F70E945400C0 -:1000A0000C9477000C9400005E9A569A5F98579AC9 -:1000B0005E9A569A5F9A579A5E98569A5F9A579A9E -:1000C0005E98569A5F98579AEFCF579A569A5E98CD -:1000D000569A5F98579A089580E091E00E946500D3 -:1000E0000895EE0FFF1F0590F491E02D0994F89408 -:0200F000FFCF40 +:10008000A330B207E1F710E0CAE6D0E004C022973F +:10009000FE010E94B000C836D107C9F70E94540083 +:1000A0000C94B4000C9400005E98569A5F98579A8E +:1000B0004B99FACF5E9A569A5F98579AF5CF1F924E +:1000C0000F920FB60F9211242F933F938F939F930C +:1000D00084E686BD2A9A229A8FEF94E00197F1F781 +:1000E00000C0000080910101882369F080E090E069 +:1000F00025E12A95F1F7000001962091010130E0F9 +:1001000082179307A8F32A98229A9F918F913F9183 +:100110002F910F900FBE0F901F901895579A569AD7 +:100120005E98569A5F98579A089582E091E00E94EF +:100130008E0010920101219A2998219A229A14BCCA +:1001400085E085BD84E686BD17BC18BC81E0809340 +:100150006E00789453985B985B9A0895EE0FFF1F9A +:0C0160000590F491E02D0994F894FFCF75 :00000001FF diff --git a/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/Debug/Zeitschaltung_V6.lss b/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/Debug/Zeitschaltung_V6.lss index 7d08065..8143a75 100644 --- a/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/Debug/Zeitschaltung_V6.lss +++ b/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/Debug/Zeitschaltung_V6.lss @@ -3,31 +3,33 @@ Zeitschaltung_V6.elf: file format elf32-avr Sections: Idx Name Size VMA LMA File off Algn - 0 .data 00000000 00800100 000000f2 00000186 2**0 + 0 .data 00000000 00800100 0000016c 00000200 2**0 CONTENTS, ALLOC, LOAD, DATA - 1 .text 000000f2 00000000 00000000 00000094 2**1 + 1 .text 0000016c 00000000 00000000 00000094 2**1 CONTENTS, ALLOC, LOAD, READONLY, CODE - 2 .bss 00000001 00800100 00800100 00000186 2**0 + 2 .bss 00000003 00800100 00800100 00000200 2**0 ALLOC - 3 .stab 000006cc 00000000 00000000 00000188 2**2 + 3 .stab 000006cc 00000000 00000000 00000200 2**2 CONTENTS, READONLY, DEBUGGING - 4 .stabstr 00000082 00000000 00000000 00000854 2**0 + 4 .stabstr 00000082 00000000 00000000 000008cc 2**0 CONTENTS, READONLY, DEBUGGING - 5 .comment 0000002f 00000000 00000000 000008d6 2**0 + 5 .comment 0000002f 00000000 00000000 0000094e 2**0 CONTENTS, READONLY - 6 .debug_aranges 00000030 00000000 00000000 00000905 2**0 + 6 .debug_aranges 00000038 00000000 00000000 0000097d 2**0 CONTENTS, READONLY, DEBUGGING - 7 .debug_info 00000abc 00000000 00000000 00000935 2**0 + 7 .debug_info 0000136b 00000000 00000000 000009b5 2**0 CONTENTS, READONLY, DEBUGGING - 8 .debug_abbrev 00000293 00000000 00000000 000013f1 2**0 + 8 .debug_abbrev 0000038d 00000000 00000000 00001d20 2**0 CONTENTS, READONLY, DEBUGGING - 9 .debug_line 000001aa 00000000 00000000 00001684 2**0 + 9 .debug_line 00000290 00000000 00000000 000020ad 2**0 CONTENTS, READONLY, DEBUGGING - 10 .debug_frame 00000044 00000000 00000000 00001830 2**2 + 10 .debug_frame 00000074 00000000 00000000 00002340 2**2 CONTENTS, READONLY, DEBUGGING - 11 .debug_str 000004da 00000000 00000000 00001874 2**0 + 11 .debug_str 00000c3b 00000000 00000000 000023b4 2**0 CONTENTS, READONLY, DEBUGGING - 12 .debug_ranges 00000020 00000000 00000000 00001d4e 2**0 + 12 .debug_loc 000000cc 00000000 00000000 00002fef 2**0 + CONTENTS, READONLY, DEBUGGING + 13 .debug_ranges 00000028 00000000 00000000 000030bb 2**0 CONTENTS, READONLY, DEBUGGING Disassembly of section .text: @@ -49,7 +51,7 @@ Disassembly of section .text: 34: 0c 94 52 00 jmp 0xa4 ; 0xa4 <__bad_interrupt> 38: 0c 94 52 00 jmp 0xa4 ; 0xa4 <__bad_interrupt> 3c: 0c 94 52 00 jmp 0xa4 ; 0xa4 <__bad_interrupt> - 40: 0c 94 52 00 jmp 0xa4 ; 0xa4 <__bad_interrupt> + 40: 0c 94 5f 00 jmp 0xbe ; 0xbe <__vector_16> 44: 0c 94 52 00 jmp 0xa4 ; 0xa4 <__bad_interrupt> 48: 0c 94 52 00 jmp 0xa4 ; 0xa4 <__bad_interrupt> 4c: 0c 94 52 00 jmp 0xa4 ; 0xa4 <__bad_interrupt> @@ -61,7 +63,7 @@ Disassembly of section .text: 64: 0c 94 52 00 jmp 0xa4 ; 0xa4 <__bad_interrupt> 00000068 <__ctors_start>: - 68: 6c 00 .word 0x006c ; ???? + 68: 95 00 .word 0x0095 ; ???? 0000006a <__ctors_end>: 6a: 11 24 eor r1, r1 @@ -81,7 +83,7 @@ Disassembly of section .text: 7e: 1d 92 st X+, r1 00000080 <.do_clear_bss_start>: - 80: a1 30 cpi r26, 0x01 ; 1 + 80: a3 30 cpi r26, 0x03 ; 3 82: b2 07 cpc r27, r18 84: e1 f7 brne .-8 ; 0x7e <.do_clear_bss_loop> @@ -92,12 +94,12 @@ Disassembly of section .text: 8c: 04 c0 rjmp .+8 ; 0x96 <__do_global_ctors+0x10> 8e: 22 97 sbiw r28, 0x02 ; 2 90: fe 01 movw r30, r28 - 92: 0e 94 73 00 call 0xe6 ; 0xe6 <__tablejump__> + 92: 0e 94 b0 00 call 0x160 ; 0x160 <__tablejump__> 96: c8 36 cpi r28, 0x68 ; 104 98: d1 07 cpc r29, r17 9a: c9 f7 brne .-14 ; 0x8e <__do_global_ctors+0x8> 9c: 0e 94 54 00 call 0xa8 ; 0xa8
- a0: 0c 94 77 00 jmp 0xee ; 0xee <_exit> + a0: 0c 94 b4 00 jmp 0x168 ; 0x168 <_exit> 000000a4 <__bad_interrupt>: a4: 0c 94 00 00 jmp 0 ; 0x0 <__vectors> @@ -109,7 +111,7 @@ namespace avrlib { { static uint8_t port() { return PORTD; } static void port(uint8_t v) { PORTD = v; } - a8: 5e 9a sbi 0x0b, 6 ; 11 + a8: 5e 98 cbi 0x0b, 6 ; 11 static uint8_t pin() { return PIND; } static void pin(uint8_t v) { PIND = v; } @@ -131,149 +133,255 @@ namespace avrlib { static uint8_t dir() { return DDRD; } static void dir(uint8_t v) { DDRD = v; } ae: 57 9a sbi 0x0a, 7 ; 10 +{ + + while(1) + { + l.color(l.BLACK); + if(st.is_pressed()) { + b0: 4b 99 sbic 0x09, 3 ; 9 + b2: fa cf rjmp .-12 ; 0xa8
namespace avrlib { struct portd { static uint8_t port() { return PORTD; } static void port(uint8_t v) { PORTD = v; } - b0: 5e 9a sbi 0x0b, 6 ; 11 + b4: 5e 9a sbi 0x0b, 6 ; 11 static uint8_t pin() { return PIND; } static void pin(uint8_t v) { PIND = v; } static uint8_t dir() { return DDRD; } static void dir(uint8_t v) { DDRD = v; } - b2: 56 9a sbi 0x0a, 6 ; 10 + b6: 56 9a sbi 0x0a, 6 ; 10 namespace avrlib { struct portd { static uint8_t port() { return PORTD; } static void port(uint8_t v) { PORTD = v; } - b4: 5f 9a sbi 0x0b, 7 ; 11 + b8: 5f 98 cbi 0x0b, 7 ; 11 static uint8_t pin() { return PIND; } static void pin(uint8_t v) { PIND = v; } static uint8_t dir() { return DDRD; } static void dir(uint8_t v) { DDRD = v; } - b6: 57 9a sbi 0x0a, 7 ; 10 + ba: 57 9a sbi 0x0a, 7 ; 10 + bc: f5 cf rjmp .-22 ; 0xa8
+ +000000be <__vector_16>: + l.color(l.GREEN); + } + } +} + +ISR(TIMER0_OVF_vect) { + be: 1f 92 push r1 + c0: 0f 92 push r0 + c2: 0f b6 in r0, 0x3f ; 63 + c4: 0f 92 push r0 + c6: 11 24 eor r1, r1 + c8: 2f 93 push r18 + ca: 3f 93 push r19 + cc: 8f 93 push r24 + ce: 9f 93 push r25 + } + void off() { + servo_act::make_low(); + } + void timer() { + TCNT0 = 0x64; // Reinitialize Timer 0 value + d0: 84 e6 ldi r24, 0x64 ; 100 + d2: 86 bd out 0x26, r24 ; 38 +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + d4: 2a 9a sbi 0x05, 2 ; 5 + + 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; } + d6: 22 9a sbi 0x04, 2 ; 4 + #else + //round up by default + __ticks_dc = (uint32_t)(ceil(fabs(__tmp))); + #endif + + __builtin_avr_delay_cycles(__ticks_dc); + d8: 8f ef ldi r24, 0xFF ; 255 + da: 94 e0 ldi r25, 0x04 ; 4 + dc: 01 97 sbiw r24, 0x01 ; 1 + de: f1 f7 brne .-4 ; 0xdc <__vector_16+0x1e> + e0: 00 c0 rjmp .+0 ; 0xe2 <__vector_16+0x24> + e2: 00 00 nop + servo_io::make_high(); + _delay_us(s_left); + for(uint16_t i = 0; i < servopos; i++) { + e4: 80 91 01 01 lds r24, 0x0101 + e8: 88 23 and r24, r24 + ea: 69 f0 breq .+26 ; 0x106 <__vector_16+0x48> + ec: 80 e0 ldi r24, 0x00 ; 0 + ee: 90 e0 ldi r25, 0x00 ; 0 + f0: 25 e1 ldi r18, 0x15 ; 21 + f2: 2a 95 dec r18 + f4: f1 f7 brne .-4 ; 0xf2 <__vector_16+0x34> + f6: 00 00 nop + f8: 01 96 adiw r24, 0x01 ; 1 + fa: 20 91 01 01 lds r18, 0x0101 + fe: 30 e0 ldi r19, 0x00 ; 0 + 100: 82 17 cp r24, r18 + 102: 93 07 cpc r25, r19 + 104: a8 f3 brcs .-22 ; 0xf0 <__vector_16+0x32> +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + 106: 2a 98 cbi 0x05, 2 ; 5 + + 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; } + 108: 22 9a sbi 0x04, 2 ; 4 + s.timer(); + 10a: 9f 91 pop r25 + 10c: 8f 91 pop r24 + 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 + +0000011c <_ZN3LedIN6avrlib5portdELi7ELi6EE4initEv>: + 11c: 57 9a sbi 0x0a, 7 ; 10 + 11e: 56 9a sbi 0x0a, 6 ; 10 namespace avrlib { struct portd { static uint8_t port() { return PORTD; } static void port(uint8_t v) { PORTD = v; } - b8: 5e 98 cbi 0x0b, 6 ; 11 + 120: 5e 98 cbi 0x0b, 6 ; 11 static uint8_t pin() { return PIND; } static void pin(uint8_t v) { PIND = v; } static uint8_t dir() { return DDRD; } static void dir(uint8_t v) { DDRD = v; } - ba: 56 9a sbi 0x0a, 6 ; 10 + 122: 56 9a sbi 0x0a, 6 ; 10 namespace avrlib { struct portd { static uint8_t port() { return PORTD; } static void port(uint8_t v) { PORTD = v; } - bc: 5f 9a sbi 0x0b, 7 ; 11 + 124: 5f 98 cbi 0x0b, 7 ; 11 static uint8_t pin() { return PIND; } static void pin(uint8_t v) { PIND = v; } static uint8_t dir() { return DDRD; } static void dir(uint8_t v) { DDRD = v; } - be: 57 9a sbi 0x0a, 7 ; 10 -namespace avrlib { + 126: 57 9a sbi 0x0a, 7 ; 10 + 128: 08 95 ret - struct portd - { - static uint8_t port() { return PORTD; } - static void port(uint8_t v) { PORTD = v; } - c0: 5e 98 cbi 0x0b, 6 ; 11 - - static uint8_t pin() { return PIND; } - static void pin(uint8_t v) { PIND = v; } - - static uint8_t dir() { return DDRD; } - static void dir(uint8_t v) { DDRD = v; } - c2: 56 9a sbi 0x0a, 6 ; 10 -namespace avrlib { - - struct portd - { - static uint8_t port() { return PORTD; } - static void port(uint8_t v) { PORTD = v; } - c4: 5f 98 cbi 0x0b, 7 ; 11 - - static uint8_t pin() { return PIND; } - static void pin(uint8_t v) { PIND = v; } - - static uint8_t dir() { return DDRD; } - static void dir(uint8_t v) { DDRD = v; } - c6: 57 9a sbi 0x0a, 7 ; 10 - c8: ef cf rjmp .-34 ; 0xa8
- -000000ca <_ZN3LedIN6avrlib5portdELi7ELi6EE4initEv>: - ca: 57 9a sbi 0x0a, 7 ; 10 - cc: 56 9a sbi 0x0a, 6 ; 10 -namespace avrlib { - - struct portd - { - static uint8_t port() { return PORTD; } - static void port(uint8_t v) { PORTD = v; } - ce: 5e 98 cbi 0x0b, 6 ; 11 - - static uint8_t pin() { return PIND; } - static void pin(uint8_t v) { PIND = v; } - - static uint8_t dir() { return DDRD; } - static void dir(uint8_t v) { DDRD = v; } - d0: 56 9a sbi 0x0a, 6 ; 10 -namespace avrlib { - - struct portd - { - static uint8_t port() { return PORTD; } - static void port(uint8_t v) { PORTD = v; } - d2: 5f 98 cbi 0x0b, 7 ; 11 - - static uint8_t pin() { return PIND; } - static void pin(uint8_t v) { PIND = v; } - - static uint8_t dir() { return DDRD; } - static void dir(uint8_t v) { DDRD = v; } - d4: 57 9a sbi 0x0a, 7 ; 10 - d6: 08 95 ret - -000000d8 <_GLOBAL__sub_I_l>: +0000012a <_GLOBAL__sub_I_l>: template class Led { public: Led() { init(); - d8: 80 e0 ldi r24, 0x00 ; 0 - da: 91 e0 ldi r25, 0x01 ; 1 - dc: 0e 94 65 00 call 0xca ; 0xca <_ZN3LedIN6avrlib5portdELi7ELi6EE4initEv> - e0: 08 95 ret + 12a: 82 e0 ldi r24, 0x02 ; 2 + 12c: 91 e0 ldi r25, 0x01 ; 1 + 12e: 0e 94 8e 00 call 0x11c ; 0x11c <_ZN3LedIN6avrlib5portdELi7ELi6EE4initEv> + static const uint16_t MIDDLE = s_middle; + static const uint16_t RIGHT = s_right; + private: + uint8_t servopos; + void init() { + this->servopos = 0; + 132: 10 92 01 01 sts 0x0101, r1 + 136: 21 9a sbi 0x04, 1 ; 4 +namespace avrlib { -000000e2 <__tablejump2__>: - e2: ee 0f add r30, r30 - e4: ff 1f adc r31, r31 + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + 138: 29 98 cbi 0x05, 1 ; 5 -000000e6 <__tablejump__>: - e6: 05 90 lpm r0, Z+ - e8: f4 91 lpm r31, Z - ea: e0 2d mov r30, r0 - ec: 09 94 ijmp + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } -000000ee <_exit>: - ee: f8 94 cli + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + 13a: 21 9a sbi 0x04, 1 ; 4 + 13c: 22 9a sbi 0x04, 2 ; 4 + // Clock value: 7,813 kHz + // Mode: Normal top=0xFF + // OC0A output: Disconnected + // OC0B output: Disconnected + // Timer Period: 19,968 ms + TCCR0A=(0<: - f0: ff cf rjmp .-2 ; 0xf0 <__stop_program> + // Timer/Counter 0 Interrupt(s) initialization + TIMSK0=(0<servopos = 0; + servo_act::make_output(); + servo_act::make_low(); + servo_io::make_output(); + this->init_timer(); + sei(); + 152: 78 94 sei + 154: 53 98 cbi 0x0a, 3 ; 10 +namespace avrlib { + + struct portd + { + static uint8_t port() { return PORTD; } + static void port(uint8_t v) { PORTD = v; } + 156: 5b 98 cbi 0x0b, 3 ; 11 + 158: 5b 9a sbi 0x0b, 3 ; 11 + 15a: 08 95 ret + +0000015c <__tablejump2__>: + 15c: ee 0f add r30, r30 + 15e: ff 1f adc r31, r31 + +00000160 <__tablejump__>: + 160: 05 90 lpm r0, Z+ + 162: f4 91 lpm r31, Z + 164: e0 2d mov r30, r0 + 166: 09 94 ijmp + +00000168 <_exit>: + 168: f8 94 cli + +0000016a <__stop_program>: + 16a: ff cf rjmp .-2 ; 0x16a <__stop_program> diff --git a/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/Debug/Zeitschaltung_V6.map b/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/Debug/Zeitschaltung_V6.map index 796be1e..4b3253d 100644 --- a/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/Debug/Zeitschaltung_V6.map +++ b/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/Debug/Zeitschaltung_V6.map @@ -182,7 +182,7 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8 .rela.plt *(.rela.plt) -.text 0x00000000 0xf2 +.text 0x00000000 0x16c *(.vectors) .vectors 0x00000000 0x68 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/crtm168a.o 0x00000000 __vector_default @@ -262,26 +262,28 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8 0x000000a4 __vector_8 0x000000a4 __vector_14 0x000000a4 __vector_10 - 0x000000a4 __vector_16 0x000000a4 __vector_18 0x000000a4 __vector_20 0x000000a8 . = ALIGN (0x2) *(.text.*) - .text.main 0x000000a8 0x22 Zeitschaltung_V6.o + .text.main 0x000000a8 0x16 Zeitschaltung_V6.o 0x000000a8 main + .text.__vector_16 + 0x000000be 0x5e Zeitschaltung_V6.o + 0x000000be __vector_16 .text._ZN3LedIN6avrlib5portdELi7ELi6EE4initEv - 0x000000ca 0xe Zeitschaltung_V6.o - 0x000000ca _ZN3LedIN6avrlib5portdELi7ELi6EE4initEv + 0x0000011c 0xe Zeitschaltung_V6.o + 0x0000011c _ZN3LedIN6avrlib5portdELi7ELi6EE4initEv .text._GLOBAL__sub_I_l - 0x000000d8 0xa Zeitschaltung_V6.o - .text.libgcc 0x000000e2 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/avr5\libgcc.a(_tablejump.o) - 0x000000e2 __tablejump2__ - 0x000000e6 __tablejump__ - 0x000000ee . = ALIGN (0x2) + 0x0000012a 0x32 Zeitschaltung_V6.o + .text.libgcc 0x0000015c 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/avr5\libgcc.a(_tablejump.o) + 0x0000015c __tablejump2__ + 0x00000160 __tablejump__ + 0x00000168 . = ALIGN (0x2) *(.fini9) - .fini9 0x000000ee 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/avr5\libgcc.a(_exit.o) - 0x000000ee _exit - 0x000000ee exit + .fini9 0x00000168 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/avr5\libgcc.a(_exit.o) + 0x00000168 _exit + 0x00000168 exit *(.fini9) *(.fini8) *(.fini8) @@ -300,11 +302,11 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8 *(.fini1) *(.fini1) *(.fini0) - .fini0 0x000000ee 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/avr5\libgcc.a(_exit.o) + .fini0 0x00000168 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/avr5\libgcc.a(_exit.o) *(.fini0) - 0x000000f2 _etext = . + 0x0000016c _etext = . -.data 0x00800100 0x0 load address 0x000000f2 +.data 0x00800100 0x0 load address 0x0000016c 0x00800100 PROVIDE (__data_start, .) *(.data) .data 0x00800100 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/crtm168a.o @@ -321,23 +323,25 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8 0x00800100 _edata = . 0x00800100 PROVIDE (__data_end, .) -.bss 0x00800100 0x1 +.bss 0x00800100 0x3 0x00800100 PROVIDE (__bss_start, .) *(.bss) - .bss 0x00800100 0x1 Zeitschaltung_V6.o - 0x00800100 l + .bss 0x00800100 0x3 Zeitschaltung_V6.o + 0x00800100 st + 0x00800101 s + 0x00800102 l *(.bss*) *(COMMON) - 0x00800101 PROVIDE (__bss_end, .) - 0x000000f2 __data_load_start = LOADADDR (.data) - 0x000000f2 __data_load_end = (__data_load_start + SIZEOF (.data)) + 0x00800103 PROVIDE (__bss_end, .) + 0x0000016c __data_load_start = LOADADDR (.data) + 0x0000016c __data_load_end = (__data_load_start + SIZEOF (.data)) -.noinit 0x00800101 0x0 - 0x00800101 PROVIDE (__noinit_start, .) +.noinit 0x00800103 0x0 + 0x00800103 PROVIDE (__noinit_start, .) *(.noinit*) - 0x00800101 PROVIDE (__noinit_end, .) - 0x00800101 _end = . - 0x00800101 PROVIDE (__heap_start, .) + 0x00800103 PROVIDE (__noinit_end, .) + 0x00800103 _end = . + 0x00800103 PROVIDE (__heap_start, .) .eeprom 0x00810000 0x0 *(.eeprom*) @@ -395,38 +399,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 Zeitschaltung_V6.o + 0x00000000 0x38 Zeitschaltung_V6.o .debug_pubnames *(.debug_pubnames) -.debug_info 0x00000000 0xabc +.debug_info 0x00000000 0x136b *(.debug_info) - .debug_info 0x00000000 0xabc Zeitschaltung_V6.o + .debug_info 0x00000000 0x136b Zeitschaltung_V6.o *(.gnu.linkonce.wi.*) -.debug_abbrev 0x00000000 0x293 +.debug_abbrev 0x00000000 0x38d *(.debug_abbrev) - .debug_abbrev 0x00000000 0x293 Zeitschaltung_V6.o + .debug_abbrev 0x00000000 0x38d Zeitschaltung_V6.o -.debug_line 0x00000000 0x1aa +.debug_line 0x00000000 0x290 *(.debug_line) - .debug_line 0x00000000 0x1aa Zeitschaltung_V6.o + .debug_line 0x00000000 0x290 Zeitschaltung_V6.o -.debug_frame 0x00000000 0x44 +.debug_frame 0x00000000 0x74 *(.debug_frame) - .debug_frame 0x00000000 0x44 Zeitschaltung_V6.o + .debug_frame 0x00000000 0x74 Zeitschaltung_V6.o -.debug_str 0x00000000 0x4da +.debug_str 0x00000000 0xc3b *(.debug_str) - .debug_str 0x00000000 0x4da Zeitschaltung_V6.o - 0x51a (size before relaxing) + .debug_str 0x00000000 0xc3b Zeitschaltung_V6.o + 0xc81 (size before relaxing) -.debug_loc +.debug_loc 0x00000000 0xcc *(.debug_loc) + .debug_loc 0x00000000 0xcc Zeitschaltung_V6.o .debug_macinfo *(.debug_macinfo) @@ -434,9 +439,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 0x28 *(.debug_ranges) - .debug_ranges 0x00000000 0x20 Zeitschaltung_V6.o + .debug_ranges 0x00000000 0x28 Zeitschaltung_V6.o .debug_macro *(.debug_macro) diff --git a/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/Debug/Zeitschaltung_V6.srec b/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/Debug/Zeitschaltung_V6.srec index 2b9db6f..abcb4b4 100644 --- a/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/Debug/Zeitschaltung_V6.srec +++ b/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/Debug/Zeitschaltung_V6.srec @@ -3,16 +3,23 @@ S11300000C9435000C9452000C9452000C94520041 S11300100C9452000C9452000C9452000C94520014 S11300200C9452000C9452000C9452000C94520004 S11300300C9452000C9452000C9452000C945200F4 -S11300400C9452000C9452000C9452000C945200E4 +S11300400C945F000C9452000C9452000C945200D7 S11300500C9452000C9452000C9452000C945200D4 -S11300600C9452000C9452006C0011241FBECFEF6C +S11300600C9452000C945200950011241FBECFEF43 S1130070D4E0DEBFCDBF21E0A0E0B1E001C01D921D -S1130080A130B207E1F710E0CAE6D0E004C022973D -S1130090FE010E947300C836D107C9F70E945400BC -S11300A00C9477000C9400005E9A569A5F98579AC5 -S11300B05E9A569A5F9A579A5E98569A5F9A579A9A -S11300C05E98569A5F98579AEFCF579A569A5E98C9 -S11300D0569A5F98579A089580E091E00E946500CF -S11300E00895EE0FFF1F0590F491E02D0994F89404 -S10500F0FFCF3C +S1130080A330B207E1F710E0CAE6D0E004C022973B +S1130090FE010E94B000C836D107C9F70E9454007F +S11300A00C94B4000C9400005E98569A5F98579A8A +S11300B04B99FACF5E9A569A5F98579AF5CF1F924A +S11300C00F920FB60F9211242F933F938F939F9308 +S11300D084E686BD2A9A229A8FEF94E00197F1F77D +S11300E000C0000080910101882369F080E090E065 +S11300F025E12A95F1F7000001962091010130E0F5 +S113010082179307A8F32A98229A9F918F913F917F +S11301102F910F900FBE0F901F901895579A569AD3 +S11301205E98569A5F98579A089582E091E00E94EB +S11301308E0010920101219A2998219A229A14BCC6 +S113014085E085BD84E686BD17BC18BC81E080933C +S11301506E00789453985B985B9A0895EE0FFF1F96 +S10F01600590F491E02D0994F894FFCF71 S9030000FC diff --git a/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/Debug/io/.gitignore b/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/Debug/io/hardware/.gitignore similarity index 100% rename from V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/Debug/io/.gitignore rename to V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/Debug/io/hardware/.gitignore diff --git a/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/Release/Makefile b/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/Release/Makefile index 7de7106..ef08fe1 100644 --- a/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/Release/Makefile +++ b/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/Release/Makefile @@ -32,7 +32,8 @@ LIB_DEP:= # Every subdirectory with source files must be described here SUBDIRS := \ -../io +../io \ +../io/hardware # Add inputs and outputs from these tool invocations to the build variables diff --git a/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/Release/Zeitschaltung_V6.d b/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/Release/Zeitschaltung_V6.d index 36e007e..542ec52 100644 --- a/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/Release/Zeitschaltung_V6.d +++ b/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/Release/Zeitschaltung_V6.d @@ -1,5 +1,5 @@ Zeitschaltung_V6.d Zeitschaltung_V6.o: .././Zeitschaltung_V6.cpp \ - .././config.h .././peripheral.h .././io/Led.hpp .././io/pin.hpp \ + .././config.h .././peripheral.h .././io/hardware/portd.hpp \ 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/include/avr/io.h \ 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/include/avr/sfr_defs.h \ 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/include/inttypes.h \ @@ -13,7 +13,8 @@ Zeitschaltung_V6.d Zeitschaltung_V6.o: .././Zeitschaltung_V6.cpp \ 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/include/avr/version.h \ 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/include/avr/fuse.h \ 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/include/avr/lock.h \ - .././io/portd.hpp \ + .././io/hardware/portc.hpp .././io/Led.hpp .././io/hardware/pin.hpp \ + .././io/Spi.hpp .././io/../config.h \ 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/include/util/delay.h \ 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/include/util/delay_basic.h \ 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/include/math.h @@ -22,9 +23,7 @@ Zeitschaltung_V6.d Zeitschaltung_V6.o: .././Zeitschaltung_V6.cpp \ .././peripheral.h: -.././io/Led.hpp: - -.././io/pin.hpp: +.././io/hardware/portd.hpp: 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/include/avr/io.h: @@ -52,7 +51,15 @@ c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8- 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/include/avr/lock.h: -.././io/portd.hpp: +.././io/hardware/portc.hpp: + +.././io/Led.hpp: + +.././io/hardware/pin.hpp: + +.././io/Spi.hpp: + +.././io/../config.h: 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/include/util/delay.h: diff --git a/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/Release/io/.gitignore b/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/Release/io/hardware/.gitignore similarity index 100% rename from V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/Release/io/.gitignore rename to V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/Release/io/hardware/.gitignore diff --git a/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/Zeitschaltung_V6.cpp b/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/Zeitschaltung_V6.cpp index 95aa421..a51a312 100644 --- a/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/Zeitschaltung_V6.cpp +++ b/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/Zeitschaltung_V6.cpp @@ -9,18 +9,21 @@ #include ledclass l; +servoclass s; +startclass st; int main(void) { + while(1) { - l.color(l.GREEN); - _delay_ms(500); - l.color(l.YELLOW); - _delay_ms(500); - l.color(l.RED); - _delay_ms(500); l.color(l.BLACK); - _delay_ms(500); + if(st.is_pressed()) { + l.color(l.GREEN); + } } -} \ No newline at end of file +} + +ISR(TIMER0_OVF_vect) { + s.timer(); +} \ No newline at end of file diff --git a/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/Zeitschaltung_V6.cppproj b/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/Zeitschaltung_V6.cppproj index 4c06f89..661288c 100644 --- a/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/Zeitschaltung_V6.cppproj +++ b/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/Zeitschaltung_V6.cppproj @@ -36,19 +36,19 @@ - JTAG + ISP com.atmel.avrdbg.tool.ispmk2 - com.atmel.avrdbg.tool.ispmk2 - AVRISP mkII - 0000000000000 - + com.atmel.avrdbg.tool.ispmk2 + AVRISP mkII + 0000000000000 + 127.0.0.1 59286 False - - JTAG + + ISP 249000 1000000 @@ -62,6 +62,17 @@ + + com.atmel.avrdbg.tool.simulator + Simulator + + + + 127.0.0.1 + 50091 + False + + @@ -153,16 +164,31 @@ compile + + compile + + + compile + + + compile + + + compile + compile - + compile - + compile - + + compile + + compile @@ -174,6 +200,7 @@ + \ No newline at end of file diff --git a/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/io/Led.hpp b/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/io/Led.hpp index eab460f..67c44d7 100644 --- a/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/io/Led.hpp +++ b/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/io/Led.hpp @@ -8,7 +8,7 @@ #ifndef LED_H_ #define LED_H_ -#include "pin.hpp" +#include "hardware/pin.hpp" template class Led { diff --git a/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/io/Servo.hpp b/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/io/Servo.hpp new file mode 100644 index 0000000..b6f6368 --- /dev/null +++ b/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/io/Servo.hpp @@ -0,0 +1,77 @@ +/* + * Servo.hpp + * + * Created: 08.05.2014 13:06:12 + * Author: netz + */ + + +#ifndef SERVO_H_ +#define SERVO_H_ + +#include +#include +#include +#include "hardware/pin.hpp" + +template +class Servo { + public: + Servo() { + init(); + } + void turn(uint16_t mask) { + this->servopos = mask; + } + void on() { + servo_act::make_high(); + } + void off() { + servo_act::make_low(); + } + void timer() { + TCNT0 = 0x64; // Reinitialize Timer 0 value + servo_io::make_high(); + _delay_us(s_left); + for(uint16_t i = 0; i < servopos; i++) { + _delay_us(s_step); + } + servo_io::make_low(); + } + static const uint16_t LEFT = 0; + static const uint16_t MIDDLE = s_middle; + static const uint16_t RIGHT = s_right; + private: + uint8_t servopos; + void init() { + this->servopos = 0; + servo_act::make_output(); + servo_act::make_low(); + servo_io::make_output(); + this->init_timer(); + sei(); + } + void init_timer() { + // Timer/Counter 0 initialization + // Clock source: System Clock + // Clock value: 7,813 kHz + // Mode: Normal top=0xFF + // OC0A output: Disconnected + // OC0B output: Disconnected + // Timer Period: 19,968 ms + TCCR0A=(0< servo_io; + const typedef avrlib::pin servo_act; +}; + + +#endif /* SERVO_H_ */ \ No newline at end of file diff --git a/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/io/Spi.hpp b/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/io/Spi.hpp new file mode 100644 index 0000000..5b28a48 --- /dev/null +++ b/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/io/Spi.hpp @@ -0,0 +1,92 @@ +/* + * Spi.h + * + * Created: 06.11.2013 15:41:34 + * Author: netz + */ + + +#ifndef SPI_H_ +#define SPI_H_ + +#include "../config.h" +#include +#include +#include "hardware/pin.hpp" + +template +class Spi { + public: + Spi() { + init(); + } + void CSOn() { + cs::make_low(); + } + void CSOff() { + cs::make_high(); + } + uint8_t send(uint8_t data) { + uint8_t r; + if(mode == 0) { + r = send_hard(data); + } else { + r = send_soft(data); + } + return r; + } + private: + const typedef avrlib::pin cs; + const typedef avrlib::pin miso; + const typedef avrlib::pin mosi; + const typedef avrlib::pin sck; + void init() { + init_port(); + if(mode == 0) { + init_spi(); + } + } + void init_port() { + mosi::make_output(); + mosi::make_low(); + sck::make_output(); + sck::make_low(); + cs::make_output(); + cs::make_high(); + miso::make_input(); + miso::make_low(); + } + void init_spi() { + SPCR = (1<0; a--) { //das Byte wird Bitweise nacheinander Gesendet MSB zuerst + datain <<= 1; //Schieben um das Richtige Bit zusetzen + sck::make_low(); // Clock auf LOW + if (data & 0x80) { //Ist Bit a in Byte gesetzt + mosi::make_high(); //Set Output High + } else { + mosi::make_low(); //Set Output Low + } + _delay_us(1); + if(miso::read()) //Lesen des Pegels + { + datain |= 1; + } + _delay_us(1); + sck::make_high(); // Clock auf High + _delay_us(2); + data<<=1; //Schiebe um nächstes Bit zusenden + } + return datain; + } + uint8_t send_hard(uint8_t data) { + SPDR = data; // Sendet ein Byte + loop_until_bit_is_set(SPSR, SPIF); // Wartet bis Byte gesendet wurde + return SPDR; + } +}; + +#endif /* SPI_H_ */ \ No newline at end of file diff --git a/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/io/Start.hpp b/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/io/Start.hpp new file mode 100644 index 0000000..b05d35c --- /dev/null +++ b/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/io/Start.hpp @@ -0,0 +1,33 @@ +/* + * Start.hpp + * + * Created: 08.05.2014 17:55:29 + * Author: netz + */ + + +#ifndef START_H_ +#define START_H_ + + +#include "hardware/pin.hpp" + +template +class Start { + public: + Start() { + init(); + } + uint8_t is_pressed() { + return (!start_in::read()); + } + private: + void init() { + start_in::make_input(); + start_in::pullup(); + } + const typedef avrlib::pin start_in; +}; + + +#endif /* START_H_ */ \ No newline at end of file diff --git a/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/io/pin.hpp b/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/io/hardware/pin.hpp similarity index 100% rename from V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/io/pin.hpp rename to V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/io/hardware/pin.hpp diff --git a/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/io/portb.hpp b/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/io/hardware/portb.hpp similarity index 100% rename from V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/io/portb.hpp rename to V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/io/hardware/portb.hpp diff --git a/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/io/hardware/portc.hpp b/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/io/hardware/portc.hpp new file mode 100644 index 0000000..017e95b --- /dev/null +++ b/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/io/hardware/portc.hpp @@ -0,0 +1,22 @@ +#ifndef AVRLIB_PORTC_HPP +#define AVRLIB_PORTC_HPP + +#include + +namespace avrlib { + + struct portc + { + static uint8_t port() { return PORTC; } + static void port(uint8_t v) { PORTC = v; } + + static uint8_t pin() { return PINC; } + static void pin(uint8_t v) { PINC = v; } + + static uint8_t dir() { return DDRC; } + static void dir(uint8_t v) { DDRC = v; } + }; + +} + +#endif diff --git a/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/io/portd.hpp b/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/io/hardware/portd.hpp similarity index 100% rename from V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/io/portd.hpp rename to V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/io/hardware/portd.hpp diff --git a/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/io/rfm12.hpp b/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/io/rfm12.hpp new file mode 100644 index 0000000..e8ea746 --- /dev/null +++ b/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/io/rfm12.hpp @@ -0,0 +1,68 @@ +/* + * rfm12.hpp + * + * Created: 08.05.2014 00:06:49 + * Author: netz + */ + + +#ifndef RFM12_H_ +#define RFM12_H_ + +#define RF12FREQ(freq) ((freq-430.0)/0.0025) + +template +class Rfm12 { + public: + Rfm12() { + this->init(); + } + void send(uint16_t t) { + s.CSOn(); + s.send((uint8_t)t>>8); + s.send((uint8_t)t); + s.CSOff(); + } + private: + spi s; + void init() { + this->send(0xC0E0); // AVR CLK: 10MHz + this->send(0x80D7); // Enable FIFO + this->send(0xC2AB); // Data Filter: internal + this->send(0xCA81); // Set FIFO mode + this->send(0xE000); // disable wakeuptimer + this->send(0xC800); // disable low duty cycle + this->send(0xC4F7); // AFC settings: autotuning: -10kHz...+7,5kHz + + this->setfreq(); + this->setbandwidth(); + this->setbaud(); + this->setpower(); + } + void setbandwidth() { + this->send(0x9400|((bandwidth&7)<<5)|((gain&3)<<3)|(drssi&7)); + } + void setfreq() { + if (freq<96) { // 430,2400MHz + freq=96; + } else if (freq>3903) { // 439,7575MHz + freq=3903; + } + this->send(0xA000|freq); + } + void setbaud() { + if (baud<663) { + return; + } + if (baud<5400) { // Baudrate= 344827,58621/(R+1)/(1+CS*7) + this->send(0xC680|((43104/baud)-1)); + } else { + this->send(0xC600|((344828UL/baud)-1)); + } + } + void setpower() { + this->send(0x9800|(power&7)|((mod&15)<<4)); + } +}; + +#endif /* RFM12_H_ */ \ No newline at end of file diff --git a/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/peripheral.h b/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/peripheral.h index a751f17..9646acd 100644 --- a/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/peripheral.h +++ b/V6/Program/Zeitschaltung_V6/Zeitschaltung_V6/peripheral.h @@ -9,7 +9,10 @@ #ifndef PERIPHERAL_H_ #define PERIPHERAL_H_ -#include "io/portd.hpp" +#include "io/hardware/portb.hpp" +#include "io/hardware/portc.hpp" +#include "io/hardware/portd.hpp" + #include "io/Led.hpp" typedef Led< @@ -18,6 +21,44 @@ typedef Led< PIND6 //Grün > ledclass; +#include "io/Servo.hpp" +typedef Servo< //640, 105, 210, 8 Blaue Servos + avrlib::portb, //Servo an PORTB + PINB2, //Datenpin des Servos + PINB1, //Mosfetpin des Servos + 640, //Links + 105, //Mitte + 210, //Rechts + 8 //Schrittweite +> servoclass; +#include "io/Start.hpp" +typedef Start< + avrlib::portd, //Startknopf an PORTD + PIND3 //Pin an dem der Startknopf hängt +> startclass; + +#include "io/Spi.hpp" +typedef Spi< + avrlib::portc, //Funkmodul an PORTC + PINC4, //CS Pin (nSEL) + PINC3, //MOSI Pin (SDO) + PINC0, //MISO Pin (SDI) + PINC1, //SCK Pin + 1 //0 Hardware, 1 Software +> spiclass; + +#include "io/rfm12.hpp" + +typedef Rfm12< + spiclass, //SPI Hardware + 1, //Bandwidth // 400kHz Bandbreite, 0dB Verstärkung, DRSSI threshold: -61dBm + 0, //Gain + 7, //DRRSI + (uint16_t)RF12FREQ(433.92), // Sende/Empfangsfrequenz auf 433,92MHz einstellen + 9600, //Baudrate // 9600 baud + 0, //Power // 1mW Ausgangsleistung, 120kHz Frequenzshift + 6 //Mod +> rfm12class; #endif /* PERIPHERAL_H_ */ \ No newline at end of file