20140510-181001

This commit is contained in:
2014-05-10 16:10:01 +00:00
parent adaa85de6f
commit dfe73e6883
67 changed files with 10982 additions and 2706 deletions
@@ -33,7 +33,8 @@ LIB_DEP:=
# Every subdirectory with source files must be described here
SUBDIRS := \
../io \
../io/hardware
../io/hardware \
../comunication
# Add inputs and outputs from these tool invocations to the build variables
@@ -80,7 +81,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=atmega168a -c -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 -Os -ffunction-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega168a -c -std=c++11 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o"$@" "$<"
@echo Finished building: $<
@@ -1,5 +1,5 @@
Zeitschaltung_V6.d Zeitschaltung_V6.o: .././Zeitschaltung_V6.cpp \
.././config.h .././peripheral.h .././io/hardware/portb.hpp \
.././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 \
@@ -19,10 +19,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/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/Input.hpp .././io/Spi.hpp .././io/../config.h .././rf12.hpp \
.././codes.h
.././config.h:
.././io/Input.hpp .././io/Spi.hpp .././io/rfm12.hpp \
.././comunication/funk.hpp .././comunication/Snap.hpp
.././peripheral.h:
@@ -76,8 +74,8 @@ c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-
.././io/Spi.hpp:
.././io/../config.h:
.././io/rfm12.hpp:
.././rf12.hpp:
.././comunication/funk.hpp:
.././codes.h:
.././comunication/Snap.hpp:
@@ -2,92 +2,105 @@
:100010000C945D000C945D000C945D000C945D00EC
:100020000C945D000C945D000C945D000C945D00DC
:100030000C945D000C945D000C945D000C945D00CC
:100040000C9484000C945D000C945D000C945D0095
:100040000C9421010C945D000C945D000C945D00F7
:100050000C945D000C945D000C945D000C945D00AC
:100060000C945D000C945D00700211241FBECFEF54
:10007000D4E0DEBFCDBF11E0A0E0B1E0E6EAF5E0FC
:1000800002C005900D92A230B107D9F721E0A2E09D
:10009000B1E001C01D92A730B207E1F710E0CAE657
:1000A000D0E004C02297FE010E94CD02C836D107DD
:1000B000C9F70E946A020C94D1020C940000219AA4
:1000C0000895282F98E080E027FF02C0409A01C0E1
:1000D0004098389A880F33998160419A399A220F53
:1000E00000C000004198399A915071F7089580FF3F
:1000F00002C05E9A01C05E98569A81FF02C05F9A64
:1001000001C05F98579A08951F920F920FB60F92F1
:1001100011242F933F934F935F936F937F938F930C
:100120009F93AF93BF93EF93FF93809100019091C2
:100130000101029711F481E00FC0809100019091BC
:100140000101039711F482E007C0809100019091B2
:100150000101069719F483E00E94770084E686BDCA
:100160002A9A229A8FEF94E00197F1F700C00000DD
:1001700080E090E005C025E12A95F1F700000196A6
:100180002091050130E082179307A8F32A98229A5C
:10019000FF91EF91BF91AF919F918F917F916F915F
:1001A0005F914F913F912F910F900FBE0F901F9035
:1001B000189544983C9A08950E94D900339BFECF2D
:1001C0000895EF92FF921F93CF93DF931F92CDB7C5
:1001D000DEB7182F99830E94D90089810E9461009F
:1001E000F82EE12C812F0E946100449A3C9A9701DD
:1001F000282BC9010F90DF91CF911F91FF90EF90B5
:10020000089588EC92E80E94E10081E89AEC0E944F
:10021000E10083E89AEC0C94E100CF93DF9300D0E7
:100220001F92CDB7DEB788E392E82B834A836983B8
:100230000E94E1000E94DC008AEA98EB0E94E10043
:100240000E94DC008AEA98EB0E94E1000E94DC0038
:100250008AEA98EB0E94E1000E94DC008DE298EBB4
:100260000E94E1000E94DC0084ED98EB0E94E10016
:100270000E94DC006981862F90E0986B0E94E1006B
:100280000E94DC004A81842F90E0986B0E94E1007C
:100290000E94DC002B81822F90E0986B0E94E1008D
:1002A0000E94DC0080E098EB0E94E1000E94DC00EC
:1002B00088E092E80E94E1002FEF80E792E0215071
:1002C00080409040E1F700C000000F900F900F9029
:1002D000DF91CF91089580910001909101010697DF
:1002E00009F442C086E090E0909301018093000100
:1002F000299A0E945F00109205012FEF89EF90E08C
:10030000215080409040E1F700C0000020910001A2
:10031000309101014EE161E082E091E00E940D0127
:100320002FEF83EC99E0215080409040E1F700C02E
:10033000000089E6809305012FEF82E597E02150C8
:1003400080409040E1F700C0000082ED80930501FD
:100350002FEF86E191E1215080409040E1F700C00D
:10036000000029980C945F000895809100019091FD
:100370000101039751F44A9908C088E092E80E946D
:10038000E1000E946B010E940101809100019091A7
:100390000101029779F44A990DC088E092E80E9421
:1003A000E10028E04EE161E082E091E00E940D0171
:1003B0000E9401014B9921C080910001909101019F
:1003C0000297D9F483E00E94770086E090E0909352
:1003D0000101809300012FEF81E19AE721508040D5
:1003E0009040E1F700C0000083E090E090930101AD
:1003F0008093000180E00C9477000895CF930E94D1
:10040000010102C00E94B5010E94D900339BFACFBE
:1004100080E090EB0E94E100882341F08E3131F0C2
:10042000803F09F055C002C00E94B5010E94D9006A
:10043000339BFACF80E090EB0E94E100C82F02C00E
:100440000E94B5010E94D900339BFACFC13009F058
:100450003FC080E090EB0E94E100843049F018F446
:100460008130C9F41DC0853031F08730A1F40AC055
:1004700082E090E002C083E090E0909301018093DD
:1004800000010EC088E092E80E94E1000E946B012A
:10049000CF910C94010188E092E8CF910C94E10097
:1004A00088E092E80E94E1002FEF89EF90E0215070
:1004B00080409040E1F700C00000209100013091A1
:1004C00001014EE161E082E091E0CF910C940D01D9
:1004D000CF91089582E00E9477000E94FE01FDCF37
:1004E000579A569A80E00E947700109205010E9468
:1004F0005F0029980E945F00229A14BC85E085BDA8
:1005000084E686BD17BC18BC81E080936E007894A9
:1005100053985B985B9A52985A985A9A4098389A8E
:100520004198399A449A3C9A3B9843982FEF80E738
:1005300092E0215080409040E1F700C0000080EE42
:1005400090EC0E94E10087ED90E80E94E1008BEAC8
:1005500092EC0E94E10081E89AEC0E94E10080E0C8
:1005600090EE0E94E10080E098EC0E94E10087EFAD
:1005700094EC0E94E10080E296EA0E94E10087E2AA
:1005800094E90E94E10082E296EC0E94E10080E69C
:1005900098E90C94E100EE0FFF1F0590F491E02D17
:0605A0000994F894FFCF5E
:0205A600020051
:100060000C945D000C945D00270311241FBECFEF9C
:10007000D4E0DEBFCDBF11E0A0E0B1E0E6E6F6E0FF
:1000800002C005900D92A231B107D9F721E0A2E19B
:10009000B1E001C01D92AA31B207E1F710E0CAE653
:1000A000D0E004C02297FE010E942D03C836D1077C
:1000B000C9F70E9409020C9431030C940000219AA4
:1000C00008953C9A0895282F98E080E027FF02C009
:1000D000409A01C04098389A880F33998160419ABC
:1000E000399A220F00C000004198399A915071F757
:1000F000089580FF02C05E9A01C05E98569A81FF03
:1001000002C05F9A01C05F98579A0895CF93DF931A
:10011000EC018A818630C9F186E08A831D82299AA2
:100120000E945F008FE19EE40197F1F700C000009C
:100130008EE1EFE0F7E23197F1F700C00000815067
:10014000C1F7FFEF23EC89E0F15020408040E1F758
:1001500000C0000089E68D839FEFE2E5F7E0915053
:10016000E040F040E1F700C0000082ED8D832FEF0A
:1001700086E191E1215080409040E1F700C000000D
:100180002998DF91CF910C945F00DF91CF91089572
:10019000262FDC01ED91FC910484F585E02D4EE1E4
:1001A00061E00994CF93DF93EC018A818330D9F425
:1001B0004A9919C0E881F9810680F781E02DCE01C6
:1001C0000995E881F9810190F081E02DCE01099532
:1001D00066E0CE010E94C800E881F9810480F581C3
:1001E000E02DCE0109958A818230A1F44A9912C08E
:1001F000E881F9810680F781E02DCE01099568E05C
:10020000CE010E94C800E881F9810480F581E02DCB
:10021000CE0109954B9912C08A81823079F486E02B
:100220008A832FEF3CE281E391E02150304080400F
:100230009040D9F700C0000083E08A83DF91CF911E
:1002400008951F920F920FB60F9211242F933F9390
:100250004F935F936F937F938F939F93AF93BF93CE
:10026000EF93FF9380911401823011F481E00BC071
:1002700080911401833011F482E005C08091140153
:10028000863019F483E00E94790084E686BD2A9ABC
:10029000229A8FEF94E00197F1F700C0000080E010
:1002A00090E005C025E12A95F1F700000196209124
:1002B000170130E082179307A8F32A98229AFF913A
:1002C000EF91BF91AF919F918F917F916F915F91CE
:1002D0004F913F912F910F900FBE0F901F90189547
:1002E000CF92DF92EF92FF920F931F93CF93DF9302
:1002F00000D01F92CDB7DEB78C01DC01ED91FC91EF
:100300000480F581E02D0995EE24E394F12CEC0EA8
:10031000FD1E6E01B4E0CB0ED11C05C00280F3813E
:10032000E02DC8010995D801ED91FC910084F1857B
:10033000E02DC8010995D801ED91FC918111EECF16
:100340000284F385E02DC8010995F70181937F01AF
:10035000EC15FD0541F7D801ED91FC910680F78180
:10036000E02DC80109958981882329F08E3119F083
:10037000803F09F042C08A81813009F03EC08B8104
:10038000843049F018F48130C1F518C0853039F057
:10039000873099F509C082E0F80182830FC083E0BD
:1003A000D80112968C930AC0D801ED91FC9101906E
:1003B000F081E02DC801099566E011C0EFE1FEE48F
:1003C0003197F1F700C000008EE1AFE0B7E211977E
:1003D000F1F700C000008150C1F7F8016281C80147
:1003E0000F900F900F90DF91CF911F910F91FF9081
:1003F000EF90DF90CF900C94C8000F900F900F906B
:10040000DF91CF911F910F91FF90EF90DF90CF90F0
:10041000089582E191E00E947001FBCF4498089515
:100420000E940E020E946100339BFECF0895EF925E
:10043000FF921F93CF93DF9300D0CDB7DEB7182F75
:100440009A830E940E020E9461008A810E946300CA
:10045000F82EE12C812F0E9463009701282BC901FF
:10046000449A8A8399830E9461008A8199810F90BE
:100470000F90DF91CF911F91FF90EF900895CF9350
:10048000DF93EC0184E091E09983888353985B9833
:100490005B9A52985A985A9A1D820E945F00299836
:1004A0000E945F00229A14BC85E085BD84E686BD6B
:1004B00017BC18BC81E080936E007894579A569AC6
:1004C00080E00E9479004098389A4198399A449A7D
:1004D0000E9461003B9843982FEF80E792E0215003
:1004E00080409040E1F700C0000080EE90EC0E9458
:1004F000170287ED90E80E9417028BEA92EC0E94A7
:10050000170281E89AEC0E94170280E090EE0E94A8
:10051000170280E098EC0E94170287EF94EC0E948B
:10052000170280E296EA0E94170287E294E90E948D
:10053000170282E296EC0E94170280E698E90E9478
:10054000170282E00E94790082E08A83DF91CF91D6
:10055000089588EC92E80E94170281E89AEC0E94C4
:10056000170283E89AEC0C94170288E092E80C9446
:10057000170280E090EB0E9417020895CF93DF935B
:1005800000D01F92CDB7DEB788E392E82B834A8371
:1005900069830E9417020E9410028AEA98EB0E9467
:1005A00017020E9410028AEA98EB0E9417020E942A
:1005B00010028AEA98EB0E9417020E9410028DE254
:1005C00098EB0E9417020E94100284ED98EB0E94A3
:1005D00017020E9410026981862F90E0986B0E949A
:1005E00017020E9410024A81842F90E0986B0E94AB
:1005F00017020E9410022B81822F90E0986B0E94BC
:1006000017020E94100280E098EB0E9417020E94DD
:10061000100288E092E80E9417022FEF80E792E034
:10062000215080409040E1F700C000000F900F90F3
:100630000F90DF91CF9108950E940E020E946100F9
:1006400086B183FB882780F991E08927089582E1AC
:1006500091E00C943F02EE0FFF1F0590F491E02D06
:060660000994F894FFCF9D
:10066600000000008600D200A902B5021C03B902F0
:02067600BE02C2
:00000001FF
File diff suppressed because it is too large Load Diff
@@ -16,7 +16,20 @@ Discarded input sections
.bss 0x00000000 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
.group 0x00000000 0x8 Zeitschaltung_V6.o
.group 0x00000000 0x8 Zeitschaltung_V6.o
.group 0x00000000 0x8 Zeitschaltung_V6.o
.group 0x00000000 0x8 Zeitschaltung_V6.o
.group 0x00000000 0x8 Zeitschaltung_V6.o
.group 0x00000000 0x8 Zeitschaltung_V6.o
.group 0x00000000 0x8 Zeitschaltung_V6.o
.group 0x00000000 0x8 Zeitschaltung_V6.o
.group 0x00000000 0x8 Zeitschaltung_V6.o
.group 0x00000000 0x8 Zeitschaltung_V6.o
.group 0x00000000 0x8 Zeitschaltung_V6.o
.group 0x00000000 0x8 Zeitschaltung_V6.o
.group 0x00000000 0x8 Zeitschaltung_V6.o
.text 0x00000000 0x0 Zeitschaltung_V6.o
.rodata._ZTV4Snap
0x00000000 0x12 Zeitschaltung_V6.o
.text 0x00000000 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)
.bss 0x00000000 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)
.text.libgcc.mul
@@ -198,7 +211,7 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8
.rela.plt
*(.rela.plt)
.text 0x00000000 0x5a6
.text 0x00000000 0x666
*(.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
@@ -284,49 +297,68 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8
0x000000ba __vector_20
0x000000be . = ALIGN (0x2)
*(.text.*)
.text._ZN6avrlib3pinINS_5portbELh1EE6outputEb.part.2
.text._ZN6avrlib3pinINS_5portbELh1EE6outputEb.part.10
0x000000be 0x4 Zeitschaltung_V6.o
.text._ZN3SpiIN6avrlib5portcELi4ELi3ELi0ELi1ELi1EE9send_softEh.isra.30
0x000000c2 0x2c Zeitschaltung_V6.o
.text._ZN3LedIN6avrlib5portdELi7ELi6EE5colorEh.isra.11
0x000000ee 0x1a Zeitschaltung_V6.o
.text._ZN6avrlib3pinINS_5portcELh4EE6outputEb.part.22
0x000000c2 0x4 Zeitschaltung_V6.o
.text._ZN3SpiIN6avrlib5portcELi4ELi3ELi0ELi1ELi1EE9send_softEh.isra.29
0x000000c6 0x2c Zeitschaltung_V6.o
.text._ZN3LedIN6avrlib5portdELi7ELi6EE5colorEh.isra.6
0x000000f2 0x1a Zeitschaltung_V6.o
.text._ZN4FunkI5Rfm12I3SpiIN6avrlib5portcELi4ELi3ELi0ELi1ELi1EELh1ELh0ELh7ELm433920ELj9600ELh0ELh6EE5InputINS2_5portdELi2EES6_IS7_Li3EE5ServoINS2_5portbELi2ELi1ELj640ELj105ELj210ELh8EE3LedIS7_Li7ELi6EEE9hook_turnEv
0x0000010c 0x84 Zeitschaltung_V6.o
0x0000010c _ZN4FunkI5Rfm12I3SpiIN6avrlib5portcELi4ELi3ELi0ELi1ELi1EELh1ELh0ELh7ELm433920ELj9600ELh0ELh6EE5InputINS2_5portdELi2EES6_IS7_Li3EE5ServoINS2_5portbELi2ELi1ELj640ELj105ELj210ELh8EE3LedIS7_Li7ELi6EEE9hook_turnEv
.text._ZN4Snap11send_packetEh
0x00000190 0x14 Zeitschaltung_V6.o
0x00000190 _ZN4Snap11send_packetEh
.text._ZN4FunkI5Rfm12I3SpiIN6avrlib5portcELi4ELi3ELi0ELi1ELi1EELh1ELh0ELh7ELm433920ELj9600ELh0ELh6EE5InputINS2_5portdELi2EES6_IS7_Li3EE5ServoINS2_5portbELi2ELi1ELj640ELj105ELj210ELh8EE3LedIS7_Li7ELi6EEE9hook_pollEv
0x000001a4 0x9e Zeitschaltung_V6.o
0x000001a4 _ZN4FunkI5Rfm12I3SpiIN6avrlib5portcELi4ELi3ELi0ELi1ELi1EELh1ELh0ELh7ELm433920ELj9600ELh0ELh6EE5InputINS2_5portdELi2EES6_IS7_Li3EE5ServoINS2_5portbELi2ELi1ELj640ELj105ELj210ELh8EE3LedIS7_Li7ELi6EEE9hook_pollEv
.text.__vector_16
0x00000108 0xaa Zeitschaltung_V6.o
0x00000108 __vector_16
.text._ZN6avrlib3pinINS_5portcELh4EE8make_lowEv
0x000001b2 0x6 Zeitschaltung_V6.o
0x000001b2 _ZN6avrlib3pinINS_5portcELh4EE8make_lowEv
.text._ZN4Rf12I3SpiIN6avrlib5portcELi4ELi3ELi0ELi1ELi1EELh1ELh0ELh7ELj1568ELj9600ELh0ELh6EE10rf12_readyEv.isra.25
0x000001b8 0xa Zeitschaltung_V6.o
.text._ZN4Rf12I3SpiIN6avrlib5portcELi4ELi3ELi0ELi1ELi1EELh1ELh0ELh7ELj1568ELj9600ELh0ELh6EE4sendEj.isra.32
0x000001c2 0x40 Zeitschaltung_V6.o
.text._ZN4Rf12I3SpiIN6avrlib5portcELi4ELi3ELi0ELi1ELi1EELh1ELh0ELh7ELj1568ELj9600ELh0ELh6EE17rf12_beginasyncrxEv.isra.39
0x00000202 0x18 Zeitschaltung_V6.o
.text._ZN4Rf12I3SpiIN6avrlib5portcELi4ELi3ELi0ELi1ELi1EELh1ELh0ELh7ELj1568ELj9600ELh0ELh6EE13rf12_txpacketEhhh
0x0000021a 0xbc Zeitschaltung_V6.o
0x0000021a _ZN4Rf12I3SpiIN6avrlib5portcELi4ELi3ELi0ELi1ELi1EELh1ELh0ELh7ELj1568ELj9600ELh0ELh6EE13rf12_txpacketEhhh
.text._Z4turnv
0x000002d6 0x94 Zeitschaltung_V6.o
0x000002d6 _Z4turnv
.text._Z4pollv
0x0000036a 0x92 Zeitschaltung_V6.o
0x0000036a _Z4pollv
.text._Z6recivev
0x000003fc 0xd8 Zeitschaltung_V6.o
0x000003fc _Z6recivev
0x00000242 0x9e Zeitschaltung_V6.o
0x00000242 __vector_16
.text._ZN4FunkI5Rfm12I3SpiIN6avrlib5portcELi4ELi3ELi0ELi1ELi1EELh1ELh0ELh7ELm433920ELj9600ELh0ELh6EE5InputINS2_5portdELi2EES6_IS7_Li3EE5ServoINS2_5portbELi2ELi1ELj640ELj105ELj210ELh8EE3LedIS7_Li7ELi6EEE6workerEv
0x000002e0 0x132 Zeitschaltung_V6.o
0x000002e0 _ZN4FunkI5Rfm12I3SpiIN6avrlib5portcELi4ELi3ELi0ELi1ELi1EELh1ELh0ELh7ELm433920ELj9600ELh0ELh6EE5InputINS2_5portdELi2EES6_IS7_Li3EE5ServoINS2_5portbELi2ELi1ELj640ELj105ELj210ELh8EE3LedIS7_Li7ELi6EEE6workerEv
.text.startup.main
0x000004d4 0xc Zeitschaltung_V6.o
0x000004d4 main
.text.startup._GLOBAL__sub_I_l
0x000004e0 0xb6 Zeitschaltung_V6.o
.text.libgcc 0x00000596 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)
0x00000596 __tablejump2__
0x0000059a __tablejump__
0x000005a2 . = ALIGN (0x2)
0x00000412 0xa Zeitschaltung_V6.o
0x00000412 main
.text._ZN6avrlib3pinINS_5portcELh4EE5clearEv
0x0000041c 0x4 Zeitschaltung_V6.o
0x0000041c _ZN6avrlib3pinINS_5portcELh4EE5clearEv
.text._ZN5Rfm12I3SpiIN6avrlib5portcELi4ELi3ELi0ELi1ELi1EELh1ELh0ELh7ELm433920ELj9600ELh0ELh6EE5readyEv.isra.42
0x00000420 0xe Zeitschaltung_V6.o
.text._ZN5Rfm12I3SpiIN6avrlib5portcELi4ELi3ELi0ELi1ELi1EELh1ELh0ELh7ELm433920ELj9600ELh0ELh6EE4sendEj.isra.31
0x0000042e 0x50 Zeitschaltung_V6.o
.text._ZN4FunkI5Rfm12I3SpiIN6avrlib5portcELi4ELi3ELi0ELi1ELi1EELh1ELh0ELh7ELm433920ELj9600ELh0ELh6EE5InputINS2_5portdELi2EES6_IS7_Li3EE5ServoINS2_5portbELi2ELi1ELj640ELj105ELj210ELh8EE3LedIS7_Li7ELi6EEEC2Ev
0x0000047e 0xd4 Zeitschaltung_V6.o
0x0000047e _ZN4FunkI5Rfm12I3SpiIN6avrlib5portcELi4ELi3ELi0ELi1ELi1EELh1ELh0ELh7ELm433920ELj9600ELh0ELh6EE5InputINS2_5portdELi2EES6_IS7_Li3EE5ServoINS2_5portbELi2ELi1ELj640ELj105ELj210ELh8EE3LedIS7_Li7ELi6EEEC2Ev
0x0000047e _ZN4FunkI5Rfm12I3SpiIN6avrlib5portcELi4ELi3ELi0ELi1ELi1EELh1ELh0ELh7ELm433920ELj9600ELh0ELh6EE5InputINS2_5portdELi2EES6_IS7_Li3EE5ServoINS2_5portbELi2ELi1ELj640ELj105ELj210ELh8EE3LedIS7_Li7ELi6EEEC1Ev
.text._ZN4FunkI5Rfm12I3SpiIN6avrlib5portcELi4ELi3ELi0ELi1ELi1EELh1ELh0ELh7ELm433920ELj9600ELh0ELh6EE5InputINS2_5portdELi2EES6_IS7_Li3EE5ServoINS2_5portbELi2ELi1ELj640ELj105ELj210ELh8EE3LedIS7_Li7ELi6EEE10funk_beginEv
0x00000552 0x18 Zeitschaltung_V6.o
0x00000552 _ZN4FunkI5Rfm12I3SpiIN6avrlib5portcELi4ELi3ELi0ELi1ELi1EELh1ELh0ELh7ELm433920ELj9600ELh0ELh6EE5InputINS2_5portdELi2EES6_IS7_Li3EE5ServoINS2_5portbELi2ELi1ELj640ELj105ELj210ELh8EE3LedIS7_Li7ELi6EEE10funk_beginEv
.text._ZN4FunkI5Rfm12I3SpiIN6avrlib5portcELi4ELi3ELi0ELi1ELi1EELh1ELh0ELh7ELm433920ELj9600ELh0ELh6EE5InputINS2_5portdELi2EES6_IS7_Li3EE5ServoINS2_5portbELi2ELi1ELj640ELj105ELj210ELh8EE3LedIS7_Li7ELi6EEE8funk_endEv
0x0000056a 0x8 Zeitschaltung_V6.o
0x0000056a _ZN4FunkI5Rfm12I3SpiIN6avrlib5portcELi4ELi3ELi0ELi1ELi1EELh1ELh0ELh7ELm433920ELj9600ELh0ELh6EE5InputINS2_5portdELi2EES6_IS7_Li3EE5ServoINS2_5portbELi2ELi1ELj640ELj105ELj210ELh8EE3LedIS7_Li7ELi6EEE8funk_endEv
.text._ZN4FunkI5Rfm12I3SpiIN6avrlib5portcELi4ELi3ELi0ELi1ELi1EELh1ELh0ELh7ELm433920ELj9600ELh0ELh6EE5InputINS2_5portdELi2EES6_IS7_Li3EE5ServoINS2_5portbELi2ELi1ELj640ELj105ELj210ELh8EE3LedIS7_Li7ELi6EEE13funk_get_byteEv
0x00000572 0xa Zeitschaltung_V6.o
0x00000572 _ZN4FunkI5Rfm12I3SpiIN6avrlib5portcELi4ELi3ELi0ELi1ELi1EELh1ELh0ELh7ELm433920ELj9600ELh0ELh6EE5InputINS2_5portdELi2EES6_IS7_Li3EE5ServoINS2_5portbELi2ELi1ELj640ELj105ELj210ELh8EE3LedIS7_Li7ELi6EEE13funk_get_byteEv
.text._ZN4FunkI5Rfm12I3SpiIN6avrlib5portcELi4ELi3ELi0ELi1ELi1EELh1ELh0ELh7ELm433920ELj9600ELh0ELh6EE5InputINS2_5portdELi2EES6_IS7_Li3EE5ServoINS2_5portbELi2ELi1ELj640ELj105ELj210ELh8EE3LedIS7_Li7ELi6EEE16funk_send_packetEhhh
0x0000057c 0xbc Zeitschaltung_V6.o
0x0000057c _ZN4FunkI5Rfm12I3SpiIN6avrlib5portcELi4ELi3ELi0ELi1ELi1EELh1ELh0ELh7ELm433920ELj9600ELh0ELh6EE5InputINS2_5portdELi2EES6_IS7_Li3EE5ServoINS2_5portbELi2ELi1ELj640ELj105ELj210ELh8EE3LedIS7_Li7ELi6EEE16funk_send_packetEhhh
.text._ZN4FunkI5Rfm12I3SpiIN6avrlib5portcELi4ELi3ELi0ELi1ELi1EELh1ELh0ELh7ELm433920ELj9600ELh0ELh6EE5InputINS2_5portdELi2EES6_IS7_Li3EE5ServoINS2_5portbELi2ELi1ELj640ELj105ELj210ELh8EE3LedIS7_Li7ELi6EEE13funk_has_dataEv
0x00000638 0x16 Zeitschaltung_V6.o
0x00000638 _ZN4FunkI5Rfm12I3SpiIN6avrlib5portcELi4ELi3ELi0ELi1ELi1EELh1ELh0ELh7ELm433920ELj9600ELh0ELh6EE5InputINS2_5portdELi2EES6_IS7_Li3EE5ServoINS2_5portbELi2ELi1ELj640ELj105ELj210ELh8EE3LedIS7_Li7ELi6EEE13funk_has_dataEv
.text.startup._GLOBAL__sub_I_funk
0x0000064e 0x8 Zeitschaltung_V6.o
.text.libgcc 0x00000656 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)
0x00000656 __tablejump2__
0x0000065a __tablejump__
0x00000662 . = ALIGN (0x2)
*(.fini9)
.fini9 0x000005a2 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)
0x000005a2 _exit
0x000005a2 exit
.fini9 0x00000662 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)
0x00000662 _exit
0x00000662 exit
*(.fini9)
*(.fini8)
*(.fini8)
@@ -345,50 +377,48 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8
*(.fini1)
*(.fini1)
*(.fini0)
.fini0 0x000005a2 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 0x00000662 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)
0x000005a6 _etext = .
0x00000666 _etext = .
.data 0x00800100 0x2 load address 0x000005a6
.data 0x00800100 0x12 load address 0x00000666
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
.data 0x00800100 0x2 Zeitschaltung_V6.o
0x00800100 status
.data 0x00800102 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)
.data 0x00800102 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(_copy_data.o)
.data 0x00800102 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(_clear_bss.o)
.data 0x00800102 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(_ctors.o)
.data 0x00800102 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(_tablejump.o)
.data 0x00800100 0x0 Zeitschaltung_V6.o
.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/avr5\libgcc.a(_exit.o)
.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/avr5\libgcc.a(_copy_data.o)
.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/avr5\libgcc.a(_clear_bss.o)
.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/avr5\libgcc.a(_ctors.o)
.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/avr5\libgcc.a(_tablejump.o)
*(.data*)
*(.rodata)
*(.rodata*)
.rodata._ZTV4FunkI5Rfm12I3SpiIN6avrlib5portcELi4ELi3ELi0ELi1ELi1EELh1ELh0ELh7ELm433920ELj9600ELh0ELh6EE5InputINS2_5portdELi2EES6_IS7_Li3EE5ServoINS2_5portbELi2ELi1ELj640ELj105ELj210ELh8EE3LedIS7_Li7ELi6EEE
0x00800100 0x12 Zeitschaltung_V6.o
0x00800100 _ZTV4FunkI5Rfm12I3SpiIN6avrlib5portcELi4ELi3ELi0ELi1ELi1EELh1ELh0ELh7ELm433920ELj9600ELh0ELh6EE5InputINS2_5portdELi2EES6_IS7_Li3EE5ServoINS2_5portbELi2ELi1ELj640ELj105ELj210ELh8EE3LedIS7_Li7ELi6EEE
*(.gnu.linkonce.d*)
0x00800102 . = ALIGN (0x2)
0x00800102 _edata = .
0x00800102 PROVIDE (__data_end, .)
0x00800112 . = ALIGN (0x2)
0x00800112 _edata = .
0x00800112 PROVIDE (__data_end, .)
.bss 0x00800102 0x5
0x00800102 PROVIDE (__bss_start, .)
.bss 0x00800112 0x8
0x00800112 PROVIDE (__bss_start, .)
*(.bss)
.bss 0x00800102 0x5 Zeitschaltung_V6.o
0x00800102 r
0x00800103 mc
0x00800104 st
0x00800105 se
0x00800106 l
.bss 0x00800112 0x8 Zeitschaltung_V6.o
0x00800112 funk
*(.bss*)
*(COMMON)
0x00800107 PROVIDE (__bss_end, .)
0x000005a6 __data_load_start = LOADADDR (.data)
0x000005a8 __data_load_end = (__data_load_start + SIZEOF (.data))
0x0080011a PROVIDE (__bss_end, .)
0x00000666 __data_load_start = LOADADDR (.data)
0x00000678 __data_load_end = (__data_load_start + SIZEOF (.data))
.noinit 0x00800107 0x0
0x00800107 PROVIDE (__noinit_start, .)
.noinit 0x0080011a 0x0
0x0080011a PROVIDE (__noinit_start, .)
*(.noinit*)
0x00800107 PROVIDE (__noinit_end, .)
0x00800107 _end = .
0x00800107 PROVIDE (__heap_start, .)
0x0080011a PROVIDE (__noinit_end, .)
0x0080011a _end = .
0x0080011a PROVIDE (__heap_start, .)
.eeprom 0x00810000 0x0
*(.eeprom*)
@@ -446,39 +476,39 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8
.debug_sfnames
*(.debug_sfnames)
.debug_aranges 0x00000000 0x88
.debug_aranges 0x00000000 0xb8
*(.debug_aranges)
.debug_aranges
0x00000000 0x88 Zeitschaltung_V6.o
0x00000000 0xb8 Zeitschaltung_V6.o
.debug_pubnames
*(.debug_pubnames)
.debug_info 0x00000000 0x3671
.debug_info 0x00000000 0x3c2d
*(.debug_info)
.debug_info 0x00000000 0x3671 Zeitschaltung_V6.o
.debug_info 0x00000000 0x3c2d Zeitschaltung_V6.o
*(.gnu.linkonce.wi.*)
.debug_abbrev 0x00000000 0x4ef
.debug_abbrev 0x00000000 0x5f5
*(.debug_abbrev)
.debug_abbrev 0x00000000 0x4ef Zeitschaltung_V6.o
.debug_abbrev 0x00000000 0x5f5 Zeitschaltung_V6.o
.debug_line 0x00000000 0x515
.debug_line 0x00000000 0x582
*(.debug_line)
.debug_line 0x00000000 0x515 Zeitschaltung_V6.o
.debug_line 0x00000000 0x582 Zeitschaltung_V6.o
.debug_frame 0x00000000 0x174
.debug_frame 0x00000000 0x220
*(.debug_frame)
.debug_frame 0x00000000 0x174 Zeitschaltung_V6.o
.debug_frame 0x00000000 0x220 Zeitschaltung_V6.o
.debug_str 0x00000000 0x1ba0
.debug_str 0x00000000 0x26d3
*(.debug_str)
.debug_str 0x00000000 0x1ba0 Zeitschaltung_V6.o
0x1c0a (size before relaxing)
.debug_str 0x00000000 0x26d3 Zeitschaltung_V6.o
0x2775 (size before relaxing)
.debug_loc 0x00000000 0x5d9
.debug_loc 0x00000000 0xc25
*(.debug_loc)
.debug_loc 0x00000000 0x5d9 Zeitschaltung_V6.o
.debug_loc 0x00000000 0xc25 Zeitschaltung_V6.o
.debug_macinfo
*(.debug_macinfo)
@@ -486,9 +516,9 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8
.debug_pubtypes
*(.debug_pubtypes)
.debug_ranges 0x00000000 0x120
.debug_ranges 0x00000000 0xc0
*(.debug_ranges)
.debug_ranges 0x00000000 0x120 Zeitschaltung_V6.o
.debug_ranges 0x00000000 0xc0 Zeitschaltung_V6.o
.debug_macro
*(.debug_macro)
@@ -3,92 +3,105 @@ S11300000C9435000C945D000C945D000C945D0020
S11300100C945D000C945D000C945D000C945D00E8
S11300200C945D000C945D000C945D000C945D00D8
S11300300C945D000C945D000C945D000C945D00C8
S11300400C9484000C945D000C945D000C945D0091
S11300400C9421010C945D000C945D000C945D00F3
S11300500C945D000C945D000C945D000C945D00A8
S11300600C945D000C945D00700211241FBECFEF50
S1130070D4E0DEBFCDBF11E0A0E0B1E0E6EAF5E0F8
S113008002C005900D92A230B107D9F721E0A2E099
S1130090B1E001C01D92A730B207E1F710E0CAE653
S11300A0D0E004C02297FE010E94CD02C836D107D9
S11300B0C9F70E946A020C94D1020C940000219AA0
S11300C00895282F98E080E027FF02C0409A01C0DD
S11300D04098389A880F33998160419A399A220F4F
S11300E000C000004198399A915071F7089580FF3B
S11300F002C05E9A01C05E98569A81FF02C05F9A60
S113010001C05F98579A08951F920F920FB60F92ED
S113011011242F933F934F935F936F937F938F9308
S11301209F93AF93BF93EF93FF93809100019091BE
S11301300101029711F481E00FC0809100019091B8
S11301400101039711F482E007C0809100019091AE
S11301500101069719F483E00E94770084E686BDC6
S11301602A9A229A8FEF94E00197F1F700C00000D9
S113017080E090E005C025E12A95F1F700000196A2
S11301802091050130E082179307A8F32A98229A58
S1130190FF91EF91BF91AF919F918F917F916F915B
S11301A05F914F913F912F910F900FBE0F901F9031
S11301B0189544983C9A08950E94D900339BFECF29
S11301C00895EF92FF921F93CF93DF931F92CDB7C1
S11301D0DEB7182F99830E94D90089810E9461009B
S11301E0F82EE12C812F0E946100449A3C9A9701D9
S11301F0282BC9010F90DF91CF911F91FF90EF90B1
S1130200089588EC92E80E94E10081E89AEC0E944B
S1130210E10083E89AEC0C94E100CF93DF9300D0E3
S11302201F92CDB7DEB788E392E82B834A836983B4
S11302300E94E1000E94DC008AEA98EB0E94E1003F
S11302400E94DC008AEA98EB0E94E1000E94DC0034
S11302508AEA98EB0E94E1000E94DC008DE298EBB0
S11302600E94E1000E94DC0084ED98EB0E94E10012
S11302700E94DC006981862F90E0986B0E94E10067
S11302800E94DC004A81842F90E0986B0E94E10078
S11302900E94DC002B81822F90E0986B0E94E10089
S11302A00E94DC0080E098EB0E94E1000E94DC00E8
S11302B088E092E80E94E1002FEF80E792E021506D
S11302C080409040E1F700C000000F900F900F9025
S11302D0DF91CF91089580910001909101010697DB
S11302E009F442C086E090E09093010180930001FC
S11302F0299A0E945F00109205012FEF89EF90E088
S1130300215080409040E1F700C00000209100019E
S1130310309101014EE161E082E091E00E940D0123
S11303202FEF83EC99E0215080409040E1F700C02A
S1130330000089E6809305012FEF82E597E02150C4
S113034080409040E1F700C0000082ED80930501F9
S11303502FEF86E191E1215080409040E1F700C009
S1130360000029980C945F000895809100019091F9
S11303700101039751F44A9908C088E092E80E9469
S1130380E1000E946B010E940101809100019091A3
S11303900101029779F44A990DC088E092E80E941D
S11303A0E10028E04EE161E082E091E00E940D016D
S11303B00E9401014B9921C080910001909101019B
S11303C00297D9F483E00E94770086E090E090934E
S11303D00101809300012FEF81E19AE721508040D1
S11303E09040E1F700C0000083E090E090930101A9
S11303F08093000180E00C9477000895CF930E94CD
S1130400010102C00E94B5010E94D900339BFACFBA
S113041080E090EB0E94E100882341F08E3131F0BE
S1130420803F09F055C002C00E94B5010E94D90066
S1130430339BFACF80E090EB0E94E100C82F02C00A
S11304400E94B5010E94D900339BFACFC13009F054
S11304503FC080E090EB0E94E100843049F018F442
S11304608130C9F41DC0853031F08730A1F40AC051
S113047082E090E002C083E090E0909301018093D9
S113048000010EC088E092E80E94E1000E946B0126
S1130490CF910C94010188E092E8CF910C94E10093
S11304A088E092E80E94E1002FEF89EF90E021506C
S11304B080409040E1F700C000002091000130919D
S11304C001014EE161E082E091E0CF910C940D01D5
S11304D0CF91089582E00E9477000E94FE01FDCF33
S11304E0579A569A80E00E947700109205010E9464
S11304F05F0029980E945F00229A14BC85E085BDA4
S113050084E686BD17BC18BC81E080936E007894A5
S113051053985B985B9A52985A985A9A4098389A8A
S11305204198399A449A3C9A3B9843982FEF80E734
S113053092E0215080409040E1F700C0000080EE3E
S113054090EC0E94E10087ED90E80E94E1008BEAC4
S113055092EC0E94E10081E89AEC0E94E10080E0C4
S113056090EE0E94E10080E098EC0E94E10087EFA9
S113057094EC0E94E10080E296EA0E94E10087E2A6
S113058094E90E94E10082E296EC0E94E10080E698
S113059098E90C94E100EE0FFF1F0590F491E02D13
S10905A00994F894FFCF5A
S10505A602004D
S11300600C945D000C945D00270311241FBECFEF98
S1130070D4E0DEBFCDBF11E0A0E0B1E0E6E6F6E0FB
S113008002C005900D92A231B107D9F721E0A2E197
S1130090B1E001C01D92AA31B207E1F710E0CAE64F
S11300A0D0E004C02297FE010E942D03C836D10778
S11300B0C9F70E9409020C9431030C940000219AA0
S11300C008953C9A0895282F98E080E027FF02C005
S11300D0409A01C04098389A880F33998160419AB8
S11300E0399A220F00C000004198399A915071F753
S11300F0089580FF02C05E9A01C05E98569A81FFFF
S113010002C05F9A01C05F98579A0895CF93DF9316
S1130110EC018A818630C9F186E08A831D82299A9E
S11301200E945F008FE19EE40197F1F700C0000098
S11301308EE1EFE0F7E23197F1F700C00000815063
S1130140C1F7FFEF23EC89E0F15020408040E1F754
S113015000C0000089E68D839FEFE2E5F7E091504F
S1130160E040F040E1F700C0000082ED8D832FEF06
S113017086E191E1215080409040E1F700C0000009
S11301802998DF91CF910C945F00DF91CF9108956E
S1130190262FDC01ED91FC910484F585E02D4EE1E0
S11301A061E00994CF93DF93EC018A818330D9F421
S11301B04A9919C0E881F9810680F781E02DCE01C2
S11301C00995E881F9810190F081E02DCE0109952E
S11301D066E0CE010E94C800E881F9810480F581BF
S11301E0E02DCE0109958A818230A1F44A9912C08A
S11301F0E881F9810680F781E02DCE01099568E058
S1130200CE010E94C800E881F9810480F581E02DC7
S1130210CE0109954B9912C08A81823079F486E027
S11302208A832FEF3CE281E391E02150304080400B
S11302309040D9F700C0000083E08A83DF91CF911A
S113024008951F920F920FB60F9211242F933F938C
S11302504F935F936F937F938F939F93AF93BF93CA
S1130260EF93FF9380911401823011F481E00BC06D
S113027080911401833011F482E005C0809114014F
S1130280863019F483E00E94790084E686BD2A9AB8
S1130290229A8FEF94E00197F1F700C0000080E00C
S11302A090E005C025E12A95F1F700000196209120
S11302B0170130E082179307A8F32A98229AFF9136
S11302C0EF91BF91AF919F918F917F916F915F91CA
S11302D04F913F912F910F900FBE0F901F90189543
S11302E0CF92DF92EF92FF920F931F93CF93DF93FE
S11302F000D01F92CDB7DEB78C01DC01ED91FC91EB
S11303000480F581E02D0995EE24E394F12CEC0EA4
S1130310FD1E6E01B4E0CB0ED11C05C00280F3813A
S1130320E02DC8010995D801ED91FC910084F18577
S1130330E02DC8010995D801ED91FC918111EECF12
S11303400284F385E02DC8010995F70181937F01AB
S1130350EC15FD0541F7D801ED91FC910680F7817C
S1130360E02DC80109958981882329F08E3119F07F
S1130370803F09F042C08A81813009F03EC08B8100
S1130380843049F018F48130C1F518C0853039F053
S1130390873099F509C082E0F80182830FC083E0B9
S11303A0D80112968C930AC0D801ED91FC9101906A
S11303B0F081E02DC801099566E011C0EFE1FEE48B
S11303C03197F1F700C000008EE1AFE0B7E211977A
S11303D0F1F700C000008150C1F7F8016281C80143
S11303E00F900F900F90DF91CF911F910F91FF907D
S11303F0EF90DF90CF900C94C8000F900F900F9067
S1130400DF91CF911F910F91FF90EF90DF90CF90EC
S1130410089582E191E00E947001FBCF4498089511
S11304200E940E020E946100339BFECF0895EF925A
S1130430FF921F93CF93DF9300D0CDB7DEB7182F71
S11304409A830E940E020E9461008A810E946300C6
S1130450F82EE12C812F0E9463009701282BC901FB
S1130460449A8A8399830E9461008A8199810F90BA
S11304700F90DF91CF911F91FF90EF900895CF934C
S1130480DF93EC0184E091E09983888353985B982F
S11304905B9A52985A985A9A1D820E945F00299832
S11304A00E945F00229A14BC85E085BD84E686BD67
S11304B017BC18BC81E080936E007894579A569AC2
S11304C080E00E9479004098389A4198399A449A79
S11304D00E9461003B9843982FEF80E792E02150FF
S11304E080409040E1F700C0000080EE90EC0E9454
S11304F0170287ED90E80E9417028BEA92EC0E94A3
S1130500170281E89AEC0E94170280E090EE0E94A4
S1130510170280E098EC0E94170287EF94EC0E9487
S1130520170280E296EA0E94170287E294E90E9489
S1130530170282E296EC0E94170280E698E90E9474
S1130540170282E00E94790082E08A83DF91CF91D2
S1130550089588EC92E80E94170281E89AEC0E94C0
S1130560170283E89AEC0C94170288E092E80C9442
S1130570170280E090EB0E9417020895CF93DF9357
S113058000D01F92CDB7DEB788E392E82B834A836D
S113059069830E9417020E9410028AEA98EB0E9463
S11305A017020E9410028AEA98EB0E9417020E9426
S11305B010028AEA98EB0E9417020E9410028DE250
S11305C098EB0E9417020E94100284ED98EB0E949F
S11305D017020E9410026981862F90E0986B0E9496
S11305E017020E9410024A81842F90E0986B0E94A7
S11305F017020E9410022B81822F90E0986B0E94B8
S113060017020E94100280E098EB0E9417020E94D9
S1130610100288E092E80E9417022FEF80E792E030
S1130620215080409040E1F700C000000F900F90EF
S11306300F90DF91CF9108950E940E020E946100F5
S113064086B183FB882780F991E08927089582E1A8
S113065091E00C943F02EE0FFF1F0590F491E02D02
S10906600994F894FFCF99
S1130666000000008600D200A902B5021C03B902EC
S1050676BE02BE
S9030000FC
@@ -1,56 +0,0 @@
rf12.d rf12.o: .././rf12.c \
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 \
.././rf12.h .././global.h .././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
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:
.././rf12.h:
.././global.h:
.././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:
File diff suppressed because it is too large Load Diff
@@ -4,140 +4,25 @@
* Created: 06.05.2014 23:18:58
* Author: netz
*/
#include "config.h"
#include "peripheral.h"
#include <util/delay.h>
#include "codes.h"
#include "comunication/funk.hpp"
//ledclass l;
servoclass se;
startclass st;
moveclass mc;
rf12class r;
volatile int status = SLEEP;
void turn()
{
if(status == RUN)
return;
status = RUN;
se.on();
se.turn(se.LEFT);
_delay_ms(10+DEVICE);
r.rf12_txpacket(MASTER, DEVICE, status); //r.txpacket(MASTER, DEVICE, status);
_delay_ms(400);
se.turn(se.MIDDLE);
_delay_ms(300);
se.turn(se.RIGHT);
_delay_ms(700);
se.off();
}
void poll()
{
if(status == ACTIVE) {
if(mc.is_pressed()) {
r.rf12_endasyncrx(); //r.endasyncrx();
turn();
r.rf12_beginasyncrx(); //r.beginasyncrx();
}
}
if(status == SLEEP) {
if(mc.is_pressed()) {
r.rf12_endasyncrx(); //r.endasyncrx();
r.rf12_txpacket(MASTER, DEVICE, DEDECT); //r.txpacket(MASTER, DEVICE, DEDECT);
r.rf12_beginasyncrx(); //r.beginasyncrx();
}
}
if(st.is_pressed()) {
if(status == SLEEP) {
l.color(l.YELLOW);
status = RUN;
_delay_ms(5000);
status = ACTIVE;
l.color(l.BLACK);
}
}
}
/*void resieve()
{
rf12_beginasyncrx(); //r.beginasyncrx();
while(rf12_hasdata() /r.hasdata()/) {
poll();
_delay_ms(1000);
rf12_endasyncrx(); //r.endasyncrx();
rf12_txpacket(MASTER, DEVICE, DEDECT); //r.txpacket(MASTER, DEVICE, DEDECT);
rf12_beginasyncrx(); //r.beginasyncrx();
}
l.color(l.GREEN);
}*/
void recive() {
r.rf12_beginasyncrx();
while(r.rf12_hasdata()) {
poll();
}
uint8_t addr = r.rf12_rxbyte();
if(addr == ALL || addr == DEVICE || addr == GROUP) {
while(r.rf12_hasdata()) {
poll();
}
uint8_t from = r.rf12_rxbyte();
while(r.rf12_hasdata()) {
poll();
}
if(from == MASTER) {
uint8_t data = r.rf12_rxbyte();
switch(data) {
case PING: {
break;
}
case SETSLEEP: {
status = SLEEP;
break;
}
case SETACTIVE: {
status = ACTIVE;
break;
}
case SETRUN: {
r.rf12_endasyncrx();
turn();
r.rf12_beginasyncrx();
return;
}
default:
{
r.rf12_endasyncrx();
return;
}
}
r.rf12_endasyncrx();
_delay_ms(10+DEVICE);
r.rf12_txpacket(MASTER, DEVICE, status);
return;
}
}
}
typedef Funk<
rfm12class, //Rfm12 Funk Hardware
moveclass, //Bewegungsmelder
startclass, //Startknopf
servoclass, //Servo
ledclass //LED
> funkclass;
funkclass funk;
int main(void) {
l.color(l.RED);
while(1)
{
recive();
funk.worker();
}
}
ISR(TIMER0_OVF_vect) {
if(status == SLEEP) {
l.color(l.GREEN);
} else if(status == ACTIVE) {
l.color(l.RED);
} else if(status == RUN) {
l.color(l.YELLOW);
}
se.timer();
funk.timer();
}
@@ -123,49 +123,50 @@
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
<ToolchainSettings>
<AvrGccCpp>
<avrgcc.common.outputfiles.hex>True</avrgcc.common.outputfiles.hex>
<avrgcc.common.outputfiles.lss>True</avrgcc.common.outputfiles.lss>
<avrgcc.common.outputfiles.eep>True</avrgcc.common.outputfiles.eep>
<avrgcc.common.outputfiles.srec>True</avrgcc.common.outputfiles.srec>
<avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned>True</avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned>
<avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned>True</avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned>
<avrgcc.compiler.symbols.DefSymbols>
<ListValues>
<Value>DEBUG</Value>
</ListValues>
</avrgcc.compiler.symbols.DefSymbols>
<avrgcc.compiler.optimization.level>Optimize (-O1)</avrgcc.compiler.optimization.level>
<avrgcc.compiler.optimization.PackStructureMembers>True</avrgcc.compiler.optimization.PackStructureMembers>
<avrgcc.compiler.optimization.AllocateBytesNeededForEnum>True</avrgcc.compiler.optimization.AllocateBytesNeededForEnum>
<avrgcc.compiler.optimization.DebugLevel>Default (-g2)</avrgcc.compiler.optimization.DebugLevel>
<avrgcc.compiler.warnings.AllWarnings>True</avrgcc.compiler.warnings.AllWarnings>
<avrgcccpp.compiler.general.ChangeDefaultCharTypeUnsigned>True</avrgcccpp.compiler.general.ChangeDefaultCharTypeUnsigned>
<avrgcccpp.compiler.general.ChangeDefaultBitFieldUnsigned>True</avrgcccpp.compiler.general.ChangeDefaultBitFieldUnsigned>
<avrgcccpp.compiler.symbols.DefSymbols>
<ListValues>
<Value>DEBUG</Value>
</ListValues>
</avrgcccpp.compiler.symbols.DefSymbols>
<avrgcccpp.compiler.optimization.level>Optimize for size (-Os)</avrgcccpp.compiler.optimization.level>
<avrgcccpp.compiler.optimization.PackStructureMembers>True</avrgcccpp.compiler.optimization.PackStructureMembers>
<avrgcccpp.compiler.optimization.AllocateBytesNeededForEnum>True</avrgcccpp.compiler.optimization.AllocateBytesNeededForEnum>
<avrgcccpp.compiler.optimization.DebugLevel>Default (-g2)</avrgcccpp.compiler.optimization.DebugLevel>
<avrgcccpp.compiler.warnings.AllWarnings>True</avrgcccpp.compiler.warnings.AllWarnings>
<avrgcccpp.linker.libraries.Libraries>
<ListValues>
<Value>libm</Value>
</ListValues>
</avrgcccpp.linker.libraries.Libraries>
<avrgcccpp.linker.memorysettings.Comment>&lt;segmentname&gt;=&lt;address&gt;, for example .boot=0xff</avrgcccpp.linker.memorysettings.Comment>
<avrgcccpp.assembler.debugging.DebugLevel>Default (-Wa,-g)</avrgcccpp.assembler.debugging.DebugLevel>
</AvrGccCpp>
<avrgcc.common.outputfiles.hex>True</avrgcc.common.outputfiles.hex>
<avrgcc.common.outputfiles.lss>True</avrgcc.common.outputfiles.lss>
<avrgcc.common.outputfiles.eep>True</avrgcc.common.outputfiles.eep>
<avrgcc.common.outputfiles.srec>True</avrgcc.common.outputfiles.srec>
<avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned>True</avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned>
<avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned>True</avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned>
<avrgcc.compiler.symbols.DefSymbols>
<ListValues>
<Value>DEBUG</Value>
</ListValues>
</avrgcc.compiler.symbols.DefSymbols>
<avrgcc.compiler.optimization.level>Optimize (-O1)</avrgcc.compiler.optimization.level>
<avrgcc.compiler.optimization.PackStructureMembers>True</avrgcc.compiler.optimization.PackStructureMembers>
<avrgcc.compiler.optimization.AllocateBytesNeededForEnum>True</avrgcc.compiler.optimization.AllocateBytesNeededForEnum>
<avrgcc.compiler.optimization.DebugLevel>Default (-g2)</avrgcc.compiler.optimization.DebugLevel>
<avrgcc.compiler.warnings.AllWarnings>True</avrgcc.compiler.warnings.AllWarnings>
<avrgcccpp.compiler.general.ChangeDefaultCharTypeUnsigned>True</avrgcccpp.compiler.general.ChangeDefaultCharTypeUnsigned>
<avrgcccpp.compiler.general.ChangeDefaultBitFieldUnsigned>True</avrgcccpp.compiler.general.ChangeDefaultBitFieldUnsigned>
<avrgcccpp.compiler.symbols.DefSymbols>
<ListValues>
<Value>DEBUG</Value>
</ListValues>
</avrgcccpp.compiler.symbols.DefSymbols>
<avrgcccpp.compiler.optimization.level>Optimize for size (-Os)</avrgcccpp.compiler.optimization.level>
<avrgcccpp.compiler.optimization.PackStructureMembers>True</avrgcccpp.compiler.optimization.PackStructureMembers>
<avrgcccpp.compiler.optimization.AllocateBytesNeededForEnum>True</avrgcccpp.compiler.optimization.AllocateBytesNeededForEnum>
<avrgcccpp.compiler.optimization.DebugLevel>Default (-g2)</avrgcccpp.compiler.optimization.DebugLevel>
<avrgcccpp.compiler.warnings.AllWarnings>True</avrgcccpp.compiler.warnings.AllWarnings>
<avrgcccpp.compiler.miscellaneous.OtherFlags>-std=c++11</avrgcccpp.compiler.miscellaneous.OtherFlags>
<avrgcccpp.linker.libraries.Libraries>
<ListValues>
<Value>libm</Value>
</ListValues>
</avrgcccpp.linker.libraries.Libraries>
<avrgcccpp.linker.memorysettings.Comment>&lt;segmentname&gt;=&lt;address&gt;, for example .boot=0xff</avrgcccpp.linker.memorysettings.Comment>
<avrgcccpp.assembler.debugging.DebugLevel>Default (-Wa,-g)</avrgcccpp.assembler.debugging.DebugLevel>
</AvrGccCpp>
</ToolchainSettings>
</PropertyGroup>
<ItemGroup>
<Compile Include="codes.h">
<Compile Include="comunication\funk.hpp">
<SubType>compile</SubType>
</Compile>
<Compile Include="config.h">
<Compile Include="comunication\Snap.hpp">
<SubType>compile</SubType>
</Compile>
<Compile Include="io\hardware\portc.hpp">
@@ -198,12 +199,6 @@
<Compile Include="peripheral.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="rf12.hpp">
<SubType>compile</SubType>
</Compile>
<Compile Include="rf12.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="Zeitschaltung_V6.cpp">
<SubType>compile</SubType>
</Compile>
@@ -211,6 +206,7 @@
<ItemGroup>
<Folder Include="io" />
<Folder Include="io\hardware" />
<Folder Include="comunication" />
</ItemGroup>
<Import Project="$(AVRSTUDIO_EXE_PATH)\\Vs\\Compiler.targets" />
</Project>
@@ -1,31 +0,0 @@
/*
* codes.h
*
* Created: 29.03.2013 13:58:28
* Author: netz
*/
#ifndef CODES_H_
#define CODES_H_
#ifndef ALL
#define ALL 0
#define GROUP 240
#define DEVICE 30
#define MASTER 1
#endif
#ifndef PING
#define PING 1
#define SLEEP 2
#define ACTIVE 3
#define SETSLEEP 4
#define SETACTIVE 5
#define RUN 6
#define SETRUN 7
#define DEDECT 8
#define SETDEDECT 9
#endif
#endif /* CODES_H_ */
@@ -0,0 +1,64 @@
/*
* Snap.hpp
*
* Created: 10.05.2014 13:28:04
* Author: netz
*/
#ifndef SNAP_H_
#define SNAP_H_
class Snap {
public:
static const uint8_t DEVICE = 30;
static const uint8_t ALL = 0;
static const uint8_t GROUP = 240;
static const uint8_t MASTER = 1;
static const uint8_t PING = 1;
static const uint8_t SLEEP = 2;
static const uint8_t ACTIVE = 3;
static const uint8_t SETSLEEP = 4;
static const uint8_t SETACTIVE = 5;
static const uint8_t RUN = 6;
static const uint8_t SETRUN = 7;
static const uint8_t DEDECT = 8;
static const uint8_t SETDEDECT = 9;
protected:
virtual void hook_turn() = 0;
virtual void hook_poll() = 0;
virtual void funk_begin() = 0;
virtual void funk_end() = 0;
virtual uint8_t funk_has_data() = 0;
virtual uint8_t funk_get_byte() = 0;
virtual void funk_send_packet(uint8_t addr, uint8_t from, uint8_t data) = 0;
void wait() {
_delay_ms(10);
for(uint8_t i=0;i<this->DEVICE;i++) {
_delay_ms(5);
}
}
void get_packet(uint8_t data[], uint8_t len){
this->funk_begin();
for (uint8_t i = 0; i < len; i++)
{
while(this->funk_has_data()) {
this->hook_poll();
}
data[i] = this->funk_get_byte();
}
this->funk_end();
}
void send_packet(uint8_t data) {
this->funk_send_packet(this->MASTER, this->DEVICE, data);
}
};
#endif /* SNAP_H_ */
@@ -0,0 +1,133 @@
/*
* funk.hpp
*
* Created: 10.05.2014 10:00:08
* Author: netz
*/
#ifndef FUNK_H_
#define FUNK_H_
#include "Snap.hpp"
template <typename Rfm12, typename Input_Beweg, typename Input_Start, typename Servo, typename Led>
class Funk : public Snap {
public:
volatile uint8_t status;
Funk() {
this->init();
}
void timer() {
if(this->status == this->SLEEP) {
led.color(led.GREEN);
} else if(this->status == this->ACTIVE) {
led.color(led.RED);
} else if(this->status == this->RUN) {
led.color(led.YELLOW);
}
servo.timer();
}
void worker() {
uint8_t data[3];
this->get_packet(data, 3);
if(data[0] == ALL || data[0] == DEVICE || data[0] == GROUP) {
if(data[1] == this->MASTER) {
switch(data[2]) {
case this->PING: {
break;
}
case this->SETSLEEP: {
this->status = this->SLEEP;
break;
}
case this->SETACTIVE: {
this->status = this->ACTIVE;
break;
}
case this->SETRUN: {
this->hook_turn();
this->send_packet(this->RUN);
return;
}
default: {
return;
}
}
this->wait();
this->send_packet(this->status);
return;
}
}
}
private:
Input_Start st;
Input_Beweg mc;
Servo servo;
Led led;
Rfm12 rfm12;
void init()
{
led.color(led.RED);
this->status = this->SLEEP;
}
void hook_turn()
{
if(this->status == this->RUN){
return;
}
this->status = this->RUN;
servo.turn(servo.LEFT);
servo.on();
this->wait();
_delay_ms(400);
servo.turn(servo.MIDDLE);
_delay_ms(300);
servo.turn(servo.RIGHT);
_delay_ms(700);
servo.off();
}
void hook_poll()
{
if(this->status == this->ACTIVE) {
if(mc.is_pressed()) {
this->funk_end();
this->hook_turn();
this->send_packet(this->RUN);
this->funk_begin();
}
}
if(this->status == this->SLEEP) {
if(mc.is_pressed()) {
this->funk_end();
this->send_packet(this->DEDECT);
this->funk_begin();
}
}
if(st.is_pressed()) {
if(this->status == this->SLEEP) {
this->status = this->RUN;
_delay_ms(15000);
this->status = this->ACTIVE;
}
}
}
void funk_begin() {
rfm12.beginasyncrx();
}
void funk_end() {
rfm12.endasyncrx();
}
uint8_t funk_has_data() {
return rfm12.hasdata();
}
uint8_t funk_get_byte() {
return rfm12.rxbyte();
}
void funk_send_packet(uint8_t addr, uint8_t from, uint8_t data) {
rfm12.txpacket(addr, from, data);
}
};
#endif /* FUNK_H_ */
@@ -1,14 +0,0 @@
/*
* config.h
*
* Created: 03.11.2013 22:39:54
* Author: netz
*/
#ifndef CONFIG_H_
#define CONFIG_H_
#define F_CPU 8000000
#endif /* CONFIG_H_ */
@@ -35,6 +35,4 @@ class Led {
const typedef avrlib::pin<Port, pin_green> green;
};
#endif /* LED_H_ */
@@ -9,7 +9,6 @@
#ifndef SPI_H_
#define SPI_H_
#include "../config.h"
#include <avr/io.h>
#include <util/delay.h>
#include "hardware/pin.hpp"
@@ -9,40 +9,72 @@
#ifndef RFM12_H_
#define RFM12_H_
//#define RF12FREQ(frequenz) ((frequenz-430.0)/0.0025)
template <typename Spi, uint8_t bandwidth, uint8_t gain, uint8_t drssi, uint32_t freq, uint16_t baud, uint8_t power, uint8_t mod>
template <typename Spi, uint8_t bandwidth, uint8_t gain, uint8_t drssi, uint32_t frequenz, uint16_t baud, uint8_t power, uint8_t mod>
class Rfm12 {
public:
Rfm12() {
init();
this->init();
}
void send(uint16_t data) {
void ready(void) {
s.CSOn();
s.send_16(data);
// s.send((uint8_t)(t >> 8));
// s.send((uint8_t)t);
s.CSOff();
while(s.has_data()); // wait until FIFO ready
}
void beginasyncrx() {
this->send(0x82C8); // RX on
this->send(0xCA81); // set FIFO mode
this->send(0xCA83); // enable FIFO
}
uint8_t hasdata() {
s.CSOn();
uint8_t ret = s.has_data();
s.CSOff();
return ret;
return s.has_data();
}
void ready(void)
{
s.CSOn();
while (!s.has_data()); // wait until FIFO ready
uint8_t rxbyte() {
return this->send(0xB000);
}
void endasyncrx() {
this->send(0x8208); // RX off
}
void txdata(uint8_t *data, uint8_t number) {
uint8_t i;
this->send(0x8238); // TX on
this->ready();
this->send(0xB8AA);
this->ready();
this->send(0xB8AA);
this->ready();
this->send(0xB8AA);
this->ready();
this->send(0xB82D);
this->ready();
this->send(0xB8D4);
for (i=0; i<number; i++)
{
this->ready();
this->send(0xB800|(*data++));
}
this->ready();
this->send(0x8208); // TX off
}
void rxdata(uint8_t *data, uint8_t number) {
uint8_t i;
this->send(0x82C8); // RX on
this->send(0xCA81); // set FIFO mode
this->send(0xCA83); // enable FIFO
for (i=0; i<number; i++)
{
this->ready();
*data++=this->send(0xB000);
}
this->send(0x8208); // RX off
}
void txpacket(uint8_t addr, uint8_t from, uint8_t data) {
this->send(0x8238); // TX on
this->ready();
@@ -69,7 +101,16 @@ class Rfm12 {
}
private:
Spi s;
void init() {
uint16_t send(uint16_t wert) {
s.CSOn();
uint16_t werti = s.send((uint8_t)(wert >> 8)) << 8;
werti |= s.send((uint8_t)wert);
s.CSOff();
return werti;
}
void init(void) {
_delay_ms(100);
this->send(0xC0E0); // AVR CLK: 10MHz
this->send(0x80D7); // Enable FIFO
this->send(0xC2AB); // Data Filter: internal
@@ -77,36 +118,36 @@ class Rfm12 {
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();
this->setfreq(); // Sende/Empfangsfrequenz auf 433,92MHz einstellen
this->setbandwidth(); // 400kHz Bandbreite, 0dB Verstärkung, DRSSI threshold: -61dBm
this->setbaud(); // 19200 baud
this->setpower(); // 1mW Ausgangsleistung, 120kHz Frequenzshift
}
void setbandwidth() {
this->send(0x9400|((bandwidth&7)<<5)|((gain&3)<<3)|(drssi&7));
this->send( 0x9400 | ( ( bandwidth & 7 ) << 5 ) | ( ( gain & 3 ) << 3 ) | ( drssi & 7 ) );
}
void setfreq() {
uint16_t frequenz = (uint16_t)((freq-430000)/0.0025);
if (frequenz<96) { // 430,2400MHz
this->send(0xA000|96);
} else if (frequenz>3903) { // 439,7575MHz
this->send(0xA000|3903);
uint16_t freq = (uint16_t)(((float)(frequenz-430000)/1000)/0.0025); // macro for calculating frequency value out of frequency in kHz
if( freq < 96 ) { // 430,2400MHz
this->send( 0xA000 | 96 );
} else if( freq > 3903 ) { // 439,7575MHz
this->send( 0xA000 | 3903 );
}
this->send(0xA000|frequenz);
this->send( 0xA000 | freq );
}
void setbaud() {
if (baud<663) {
if (baud < 663) {
return;
}
if (baud<5400) { // Baudrate= 344827,58621/(R+1)/(1+CS*7)
this->send(0xC680|((43104/baud)-1));
if (baud < 5400) { // Baudrate= 344827,58621/(R+1)/(1+CS*7)
this->send(0xC680 | ( ( 43104 / baud ) - 1 ) );
} else {
this->send(0xC600|((344828UL/baud)-1));
this->send(0xC600 | ( ( 344828UL / baud ) - 1 ) );
}
}
void setpower() {
this->send(0x9800|(power&7)|((mod&15)<<4));
this->send( 0x9800 | ( power & 7 ) | ( ( mod & 15 ) << 4 ) );
}
};
@@ -9,11 +9,12 @@
#ifndef PERIPHERAL_H_
#define PERIPHERAL_H_
#define F_CPU 8000000
#include "io/hardware/portb.hpp"
#include "io/hardware/portc.hpp"
#include "io/hardware/portd.hpp"
#include "io/Led.hpp"
typedef Led<
avrlib::portd, //LED an PORTD
@@ -22,7 +23,7 @@ typedef Led<
> ledclass;
#include "io/Servo.hpp"
typedef Servo< //640, 105, 210, 8 Blaue Servos
typedef Servo< //<640, 105, 210, 8> Blaue Servos
avrlib::portb, //Servo an PORTB
PINB2, //Datenpin des Servos
PINB1, //Mosfetpin des Servos
@@ -37,6 +38,7 @@ typedef Input<
avrlib::portd, //Startknopf an PORTD
PIND3 //Pin an dem der Startknopf hängt
> startclass;
typedef Input<
avrlib::portd, //Bewegungsmelder an PORTD
PIND2 //Pin an dem der Bewegungsmelder hängt
@@ -52,9 +54,7 @@ typedef Spi< //<typename Port, int cspin, int misopin, int mosipin, int sckpin,
1 //0 Hardware, 1 Software
> spiclass;
ledclass l;
/*#include "io/rfm12.hpp"
#include "io/rfm12.hpp"
typedef Rfm12<
spiclass, //SPI Hardware
1, //Bandwidth // 400kHz Bandbreite, 0dB Verstärkung, DRSSI threshold: -61dBm
@@ -64,22 +64,6 @@ typedef Rfm12<
9600, //Baudrate // 9600 baud
0, //Power // 1mW Ausgangsleistung, 120kHz Frequenzshift
6 //Mod
> rfm12class;*/
#include "rf12.hpp"
typedef Rf12<
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
> rf12class;
/*extern "C" {
#include "rf12.h"
};*/
> rfm12class;
#endif /* PERIPHERAL_H_ */
@@ -1,32 +0,0 @@
/*
* rf12.h
*
* Created: 25.03.2013 00:25:08
* Author: netz
*/
#ifndef RF12_H_
#define RF12_H_
extern uint16_t rf12_trans(uint16_t wert); // transfer 1 word to/from module
extern void rf12_init(void); // initialize module
extern void rf12_setfreq(uint16_t freq); // set center frequency
extern void rf12_setbaud(uint16_t baud); // set baudrate
extern void rf12_setpower(uint8_t power, uint8_t mod); // set transmission settings
extern void rf12_setbandwidth(uint8_t bandwidth, uint8_t gain, uint8_t drssi); // set receiver settings
extern void rf12_txdata(uint8_t *data, uint8_t number); // transmit number of bytes from array
extern void rf12_rxdata(uint8_t *data, uint8_t number); // receive number of bytes into array
extern void rf12_ready(void); // wait until FIFO ready (to transmit/read data)
extern void rf12_txpacket(uint8_t addr, uint8_t from, uint8_t data); // Send two bytes over the air
extern void rf12_beginasyncrx(); // Init RX of Bytes
extern uint8_t rf12_hasdata(); // Returns 0 if Bytes are there
extern uint8_t rf12_rxbyte(); // Rx one Byte
extern void rf12_endasyncrx(); // End RX of Bytes
#define RF12FREQ(freq) ((freq-430.0)/0.0025) // macro for calculating frequency value out of frequency in MHz
#include "global.h"
#include "config.h"
#endif /* RF12_H_ */
@@ -1,161 +0,0 @@
/*
* rf12.hpp
*
* Created: 24.03.2013 23:52:52
* Author: netz
*/
#ifndef RF12_H_
#define RF12_H_
#include <avr/io.h>
//#include "rf12.h"
#include <util/delay.h>
#define RF12FREQ(freq) ((freq-430.0)/0.0025) // macro for calculating frequency value out of frequency in MHz
#include "config.h"
template <typename Spi, uint8_t bandwidth, uint8_t gain, uint8_t drssi, uint16_t freq, uint16_t baud, uint8_t power, uint8_t mod>
class Rf12 {
public:
Rf12() {
this->init();
}
void ready(void) {
s.CSOn();
while(s.has_data()); // wait until FIFO ready
}
void beginasyncrx() {
this->send(0x82C8); // RX on
this->send(0xCA81); // set FIFO mode
this->send(0xCA83); // enable FIFO
}
uint8_t hasdata() {
s.CSOn();
return s.has_data();
}
uint8_t rxbyte() {
return this->send(0xB000);
}
void endasyncrx() {
this->send(0x8208); // RX off
}
void rf12_txdata(uint8_t *data, uint8_t number) {
uint8_t i;
this->send(0x8238); // TX on
rf12_ready();
this->send(0xB8AA);
rf12_ready();
this->send(0xB8AA);
rf12_ready();
this->send(0xB8AA);
rf12_ready();
this->send(0xB82D);
rf12_ready();
this->send(0xB8D4);
for (i=0; i<number; i++)
{
rf12_ready();
this->send(0xB800|(*data++));
}
rf12_ready();
this->send(0x8208); // TX off
}
void rf12_rxdata(uint8_t *data, uint8_t number) {
uint8_t i;
this->send(0x82C8); // RX on
this->send(0xCA81); // set FIFO mode
this->send(0xCA83); // enable FIFO
for (i=0; i<number; i++)
{
rf12_ready();
*data++=this->send(0xB000);
}
this->send(0x8208); // RX off
}
void rf12_txpacket(uint8_t addr, uint8_t from, uint8_t data) {
this->send(0x8238); // TX on
rf12_ready();
this->send(0xB8AA);
rf12_ready();
this->send(0xB8AA);
rf12_ready();
this->send(0xB8AA);
rf12_ready();
this->send(0xB82D);
rf12_ready();
this->send(0xB8D4);
rf12_ready();
this->send(0xB800|addr);
rf12_ready();
this->send(0xB800|from);
rf12_ready();
this->send(0xB800|data);
rf12_ready();
this->send(0xB800);
rf12_ready();
this->send(0x8208); // TX off
_delay_ms(100);
}
private:
Spi s;
uint16_t send(uint16_t wert) {
s.CSOn();
uint16_t werti = s.send((uint8_t)(wert >> 8)) << 8;
werti |= s.send((uint8_t)wert);
s.CSOff();
return werti;
}
void init(void) {
_delay_ms(100);
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(); // Sende/Empfangsfrequenz auf 433,92MHz einstellen
this->setbandwidth(); // 400kHz Bandbreite, 0dB Verstärkung, DRSSI threshold: -61dBm
this->setbaud(); // 19200 baud
this->setpower(); // 1mW Ausgangsleistung, 120kHz Frequenzshift
}
void setbandwidth() {
this->send( 0x9400 | ( ( bandwidth & 7 ) << 5 ) | ( ( gain & 3 ) << 3 ) | ( drssi & 7 ) );
}
void setfreq() {
if( freq < 96 ) { // 430,2400MHz
this->send( 0xA000 | 96 );
} else if( freq > 3903 ) { // 439,7575MHz
this->send( 0xA000 | 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 /* RF12_H_ */