Automatic Cronjob Checkin: 20150208-002231

This commit is contained in:
BlubbFish 2015-02-07 23:22:32 +00:00
parent 8624842bbb
commit debb3e7ed0
15 changed files with 2413 additions and 1043 deletions

View File

@ -1 +0,0 @@
[PHIL], netz

Binary file not shown.

View File

@ -13,11 +13,11 @@ Door.d Door.o: .././Door.cpp .././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/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/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 \ 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/portd.hpp .././io/Stripe.hpp .././io/hardware/pin.hpp \ .././io/hardware/portd.hpp .././io/Stripe.hpp .././io/hardware/pin.hpp \
.././io/Led.hpp .././io/Comperator.hpp .././io/uart.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.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/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/math.h \
.././io/Led.hpp .././io/Comperator.hpp .././io/IR.hpp .././io/uart.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
.././peripheral.h: .././peripheral.h:
@ -55,16 +55,18 @@ c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-
.././io/hardware/pin.hpp: .././io/hardware/pin.hpp:
.././io/Led.hpp:
.././io/Comperator.hpp:
.././io/uart.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.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/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/math.h:
.././io/Led.hpp:
.././io/Comperator.hpp:
.././io/IR.hpp:
.././io/uart.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:

Binary file not shown.

View File

@ -1,73 +1,144 @@
:100000000C9435000C945D000C945D000C945D0024 :100000000C9435000C9449030C945D000C945D0035
:100010000C945D000C945D000C945D000C945D00EC :100010000C945D000C945D000C945D000C945D00EC
:100020000C945D000C945D000C945D000C945D00DC :100020000C945D000C945D000C945D000C945D00DC
:100030000C945D000C945D000C945D000C945D00CC :100030000C945D000C945D000C945D000C945D00CC
:100040000C945D000C945D000C945D000C945D00BC :100040000C945D000C945D000C945D000C945D00BC
:100050000C945D000C945D000C945D000C945D00AC :100050000C945D000C945D000C945D000C945D00AC
:100060000C945D000C945D00B90111241FBECFEF0C :100060000C945D000C945D00010411241FBECFEFC1
:10007000D4E0DEBFCDBF11E0A0E0B1E0E4EFF3E0FB :10007000D4E0DEBFCDBF11E0A0E0B1E0E6E7F8E0FC
:1000800002C005900D92A637B107D9F723E0A6E785 :1000800002C005900D92AC36B107D9F721E0ACE67D
:10009000B1E001C01D92AB30B207E1F710E0CAE653 :10009000B1E001C01D92A237B207E1F710E0CAE655
:1000A000D0E004C02297FE010E94F401C836D107B7 :1000A000D0E004C02297FE010E943504C836D10773
:1000B000C9F70E94B4000C94F8010C94000020E0F1 :1000B000C9F70E94CB000C9439040C940000CF9334
:1000C00030E080E061E070E04A9BFECFEFE9FFE0C6 :1000C000DF93789481E88093C4001092C00088E0A8
:1000D0003197F1F700C000004A9B08C0AB01022E27 :1000D0008093C10086E08093C200A1E0B1E095E585
:1000E00002C0440F551F0A94E2F7842B4A99FECFB1 :1000E000E0ECF0E0C6ECD0E0808185FFFDCF9883A6
:1000F0002F5F3F4F2830310539F70895CF934A9944 :1000F0009D919111F9CFE0ECF0E0808185FFFDCF7B
:1001000024C08FE19EE40197F1F700C000004A99F6 :100100008DE08093C600E0ECF0E0808185FFFDCFBC
:100110001FC04A9BFECF4A99FECF0E945F0081110B :100110008AE08093C600DF91CF91089560FF04C00C
:100120001AC00E945F008F3EC9F40E945F00C82F72 :100120008FEF8093B30002C01092B30061FF04C050
:100130000E945F002C2F30E0A901480F511D4F3F56 :100130008FEF8093B40002C01092B40062FF03C03E
:10014000510571F02FEF30E00BC02FEF30E008C009 :100140008FEF88BD089518BC0895CF93DF93FB010E
:100150002FEF30E005C02FEF30E002C02FEF30E08E :100150009081992369F0DB011196E0ECF0E0C6ECA8
:10016000822F932FCF910895789482E390E027E532 :10016000D0E0808185FFFDCF98839D919111F9CFDB
:1001700031E0E0ECF0E0A6ECB0E07DE06AE011C038 :10017000E0ECF0E0808185FFFDCF8DE08093C6004C
:10018000408145FFFDCF5C9359915111F9CF4081DA :10018000E0ECF0E0808185FFFDCF8AE08093C6003F
:1001900045FFFDCF7C93408145FFFDCF6C930197D8 :10019000DF91CF910895789464E080E791E00E9428
:1001A00019F0E90157E4ECCF299AC0ECD0E006EC55 :1001A0008E006BE071E081E791E00E94A5002FE7EF
:1001B00010E00F2EF0E6EF2EF1E0FF2EF02D0F2EC7 :1001B0003AE186E0215030408040E1F700C0000085
:1001C000FDE0CF2EF02D0F2EFAE0DF2EF02D4A9914 :1001C00062E080E791E00E948E0060E171E081E7EB
:1001D000FECF289A0E947E00B82EAC015527888158 :1001D00091E00E94A5009FE7AAE1B6E09150A040FF
:1001E00085FFFDCF80E3D8018C9360E070E0CB0108 :1001E000B040E1F700C0000061E080E791E00E94CC
:1001F0009695879596958795969587959C01220F5C :1001F0008E0066E171E081E791E00E94A5002FE7A3
:10020000331F880F991F880F991F880F991F820F1E :100200003AE186E0215030408040E1F700C0000034
:10021000931F681B790B605D888185FFFDCFF80116 :1002100067E080E791E00E948E006CE171E081E789
:1002200060839A013695279536952795ABE7B4E11B :1002200091E00E94A5009FE7AAE1B6E09150A040AE
:100230000E94E60196958795805D988195FFFDCF98 :10023000B040E1F700C00000299A60E080E791E05B
:10024000D8018C939A01ADECBCEC0E94E601FC0154 :100240000E948E00CDE6D1E066246A94762C0F2EB3
:10025000F695E795F695E795F695E7959F010E9447 :10025000F4EBEF2EF12CF02D6894222427F803EB19
:10026000E6019695879596958795969587959C0135 :1002600010E0E0ECF0E046EC50E00F2EFDE04F2E09
:10027000220F331F880F991F880F991F880F991F0E :10027000F02D0F2EFAE05F2EF02D0F2EF0EC3F2E1A
:10028000820F931FE81BF90BE05D888185FFFDCF8E :10028000F02D0F2EF0EB8F2E912CF02D888178829F
:10029000D801EC939A01ADECBCEC0E94E601969576 :100290008C3009F4CFC038F5853009F4A4C090F44F
:1002A000879596958795969587959C01220F331F84 :1002A000823009F484C038F4882309F446C08130D0
:1002B000880F991F880F991F880F991F820F931F0E :1002B00009F0F6C05FC0833009F487C0843009F0CC
:1002C000481B590B405D888185FFFDCFF8014083B5 :1002C000EFC08BC0883009F4A0C038F4863009F440
:1002D000F70190E2888185FFFDCFD8019C93919131 :1002D00090C0873009F0E4C092C08A3009F4A3C00E
:1002E0009111F8CF888185FFFDCFF801C082888108 :1002E00008F075C199C0823109F4C2C090F48F3012
:1002F00085FFFDCFD801DC92BFEFBB1209C0EFE74D :1002F00009F46DC138F48D3009F4A2C08E3009F0D4
:10030000F4E82EE1E150F0402040E1F700C00000A9 :10030000CFC0A4C0803109F4A7C0813109F0C8C0B2
:1003100028985DCFCF93DF93789481E88093C400D1 :10031000A9C0853109F4B8C038F4833109F457C154
:100320001092C00088E08093C10086E08093C200F4 :10032000843109F0BDC0AAC0873109F450C108F476
:10033000ACE6B1E095E5E0ECF0E0C6ECD0E0808121 :10033000B1C08F3F09F0B4C04AC188B58B3F20F4EB
:1003400085FFFDCF98839D919111F9CFE0ECF0E00E :1003400088B58B5F88BD01C018BCD7018C918B3FED
:10035000808185FFFDCF8DE08093C600E0ECF0E06A :1003500020F48C918B5F8C9302C0D7011C92D80142
:10036000808185FFFDCF8AE08093C600DF91CF9129 :100360008C918B3F20F48C918B5F8C9330C1D801A2
:1003700008958AE093E00E948A01559A539A239A3D :100370001C922DC188B5853020F088B5855088BD88
:1003800081E284BD81E085BD16BC1092B60091EA81 :1003800001C018BCD7018C91853020F08C9185502C
:100390009093B0008093B1001092B20010926E0062 :100390008C9302C0D7011C92D8018C91853020F03B
:1003A0001092700018BC1092B4001092B300209A02 :1003A0008C9185508C9313C1D8011C9210C184B5D7
:1003B000219A2898299856985E9857985F9810BE69 :1003B0008F7D84BDD4018C918F758C935D98559AF7
:1003C00010927B0083E080937F000895A29FB0018C :1003C0005B98539A2B98239A02C184B5806284BDAE
:1003D000B39FC001A39F01D0B29F700D811D112456 :1003D000D4018C91806A8C93FAC0D8011C92D70109
:1003E000911D0895EE0FFF1F0590F491E02D0994E3 :1003E0001C9268BCF4C0D8011C92D7016C9218BC56
:0403F000F894FFCFAF :1003F000EEC0D8016C92D7011C9218BCE8C0D8019D
:1003F4000A0D0A0D52656365697665643A200A0D33 :100400006C92D7016C9268BCE2C068BC20E4D70152
:100404004F464620094F4E00696E74204952736965 :100410002C93D8011C92DBC018BCD7016C9220E44D
:10041400676E616C5B5D203D207B002F2F204F4673 :10042000D8012C93D4C030E438BDD7011C92D80138
:10042400462C204F4E2028696E2031302773206FD0 :100430006C92CDC068BCD7012C92D8011C92C7C069
:1004340066206D6963726F7365636F6E6473290000 :1004400018BCD7016C92D8012C92C1C028BCD7012E
:100444002C20007D3B0047656C6164656E210020B3 :100450001C92D8016C92BBC068BCD7013C92D801F9
:1004540050726573736564210D0A005561727420CE :100460001C92B5C018BCD7016C92D8013C92AFC0A9
:06046400646F6E652100CB :1004700038BCD7011C92D8016C92A9C068BCD701C6
:100480006C92D8011C92A3C018BCD7016C92D80101
:100490006C929DC068BCD7011C92D8016C9297C029
:1004A000C82ED12C808185FFFDCF80E3DA018C93AB
:1004B00060E070E0CB019695879596958795969527
:1004C00087959C01220F331F880F991F880F991F52
:1004D000880F991F820F931F681B790B605D8081C5
:1004E00085FFFDCFDA016C939601369527953695F9
:1004F0002795ABE7B4E10E94270496958795805D28
:10050000908195FFFDCFDA018C939601ADECBCECA8
:100510000E9427045C01B694A794B694A794B6945D
:10052000A79495010E94270496958795969587959F
:10053000969587959C01220F331F880F991F880F6E
:10054000991F880F991F820F931F9501281B390B44
:10055000922F905D808185FFFDCFDA019C939601FB
:10056000ADECBCEC0E9427049695879596958795EF
:10057000969587959C01220F331F880F991F880F2E
:10058000991F880F991F820F931F9601281B390B03
:10059000922F905D808185FFFDCFDA019C93A3E6C9
:1005A000B1E090E29D01808185FFFDCFDA019C934F
:1005B000D9019D919D019111F6CF808185FFFDCFDD
:1005C000DA014C92808185FFFDCFDA015C9287E8E9
:1005D00093E10197F1F700C0000029989FEDAAE090
:1005E000B6E09150A040B040E1F700C00000299A69
:1005F0004DCE559A539A239A81E084BD94E095BDDF
:1006000016BC1092B600E0EBF0E0808385E08093AA
:10061000B1001092B20010926E001092700084B57A
:10062000806284BD8081806A808318BC1092B4008F
:100630001092B300089520E030E080E061E070E0C7
:100640004A9BFECFEFE9FFE03197F1F700C00000D1
:100650004A9B08C0AB01022E02C0440F551F0A94EA
:10066000E2F7842B4A990FC008C04A9B06C0F5E800
:10067000FA95F1F700009150C1F72F5F3F4F2830F6
:100680003105F1F6089545E84A95F1F7000091E348
:10069000ECCF1F920F920FB60F9211242F933F931E
:1006A0004F935F936F937F938F939F93AF93BF937A
:1006B000CF93EF93FF93289A4A9979C08FE19EE4F4
:1006C0000197F1F700C000004A9971C04A9BFECF24
:1006D0004A99FECF80E090E060E041E050E04A9B24
:1006E000FECFEFE9FFE03197F1F700C000004A9B31
:1006F00008C09A01082E02C0220F331F0A94E2F7A5
:10070000622B4A9966C008C04A9B06C0F5E8FA9574
:10071000F1F700002150C1F7019688309105F9F6F4
:10072000611139C080E090E041E050E04A9BFECF8B
:10073000EFE9FFE03197F1F700C000004A9B08C0E5
:100740009A01082E02C0220F331F0A94E2F7622B8F
:100750004A9939C008C04A9B06C0F5E8FA95F1F7F6
:1007600000002150C1F7019688309105F9F66F3EDF
:1007700091F48CE691E00E941B03C82F8CE691E077
:100780000E941B03282F30E02C0F311D2F3F310515
:1007900011F4CF3F51F42FE734E88EE1215030407F
:1007A0008040E1F700C000000BC0CE3F39F4E7E81D
:1007B000F3E13197F1F700C0000002C0C0936D0172
:1007C0002898E09A0CC0F5E8FA95F1F7000021E3CB
:1007D000C2CF25E82A95F1F7000021E395CFFF91DC
:1007E000EF91CF91BF91AF919F918F917F916F9139
:1007F0005F914F913F912F910F900FBE0F901F90DF
:10080000189581E791E00E945F0080E791E00E94E7
:10081000F902209A219A2898299856985E98579814
:100820005F9810BE10927B0083E080937F00209A37
:10083000219A2898299852985A988FEF80936D01A1
:1008400082E08093690081E08DBB1CBA0895A29F6D
:10085000B001B39FC001A39F01D0B29F700D811D55
:100860001124911D0895EE0FFF1F0590F491E02DC6
:060870000994F894FFCF8B
:100876005561727420646F6E652100526F74210099
:100886004772FC6E2100426C61752100576569DF75
:100896002C20616C6C657320496E697469616C69A2
:1008A60073657274212048616265204665727469B9
:1008B6006720756E642064616D6974206162207AB8
:1008C600756D204E6F726D616C62657472696562DA
:0C08D600210020507265737365642100DE
:00000001FF :00000001FF

File diff suppressed because it is too large Load Diff

View File

@ -17,11 +17,11 @@ 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 .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 Door.o .group 0x00000000 0x8 Door.o
.group 0x00000000 0x8 Door.o
.group 0x00000000 0x8 Door.o
.group 0x00000000 0x8 Door.o
.group 0x00000000 0x8 Door.o
.text 0x00000000 0x0 Door.o .text 0x00000000 0x0 Door.o
.text._Z11printpulsesv
0x00000000 0xb9c Door.o
.text._Z4loopv
0x00000000 0x90 Door.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) .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) .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 .text.libgcc.mul
@ -214,7 +214,7 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8
.rela.plt .rela.plt
*(.rela.plt) *(.rela.plt)
.text 0x00000000 0x3f4 .text 0x00000000 0x876
*(.vectors) *(.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 .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 0x00000000 __vector_default
@ -274,7 +274,6 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8
*(.text) *(.text)
.text 0x000000ba 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/../../../../avr/lib/avr5/crtm168a.o .text 0x000000ba 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/../../../../avr/lib/avr5/crtm168a.o
0x000000ba __vector_22 0x000000ba __vector_22
0x000000ba __vector_1
0x000000ba __vector_24 0x000000ba __vector_24
0x000000ba __vector_12 0x000000ba __vector_12
0x000000ba __bad_interrupt 0x000000ba __bad_interrupt
@ -301,31 +300,40 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8
0x000000ba __vector_20 0x000000ba __vector_20
0x000000be . = ALIGN (0x2) 0x000000be . = ALIGN (0x2)
*(.text.*) *(.text.*)
.text._Z8read8bitv
0x000000be 0x3e Door.o
0x000000be _Z8read8bitv
.text._Z7recievev
0x000000fc 0x6c Door.o
0x000000fc _Z7recievev
.text.main 0x00000168 0x1ac Door.o
0x00000168 main
.text._ZN4UartILm9600EEC2Ev .text._ZN4UartILm9600EEC2Ev
0x00000314 0x5e Door.o 0x000000be 0x5e Door.o
0x00000314 _ZN4UartILm9600EEC1Ev 0x000000be _ZN4UartILm9600EEC1Ev
0x00000314 _ZN4UartILm9600EEC2Ev 0x000000be _ZN4UartILm9600EEC2Ev
.text._ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE8setcolorEh
0x0000011c 0x2e Door.o
0x0000011c _ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE8setcolorEh
.text._ZN4UartILm9600EE7printlnEPKc
0x0000014a 0x4c Door.o
0x0000014a _ZN4UartILm9600EE7printlnEPKc
.text.main 0x00000196 0x45c Door.o
0x00000196 main
.text._ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE4initEv
0x000005f2 0x44 Door.o
0x000005f2 _ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE4initEv
.text._ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv
0x00000636 0x5c Door.o
0x00000636 _ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv
.text.__vector_1
0x00000692 0x170 Door.o
0x00000692 __vector_1
.text._GLOBAL__sub_I_Serial .text._GLOBAL__sub_I_Serial
0x00000372 0x5a Door.o 0x00000802 0x4c Door.o
.text.libgcc.mul .text.libgcc.mul
0x000003cc 0x18 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(_umulhisi3.o) 0x0000084e 0x18 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(_umulhisi3.o)
0x000003cc __umulhisi3 0x0000084e __umulhisi3
.text.libgcc 0x000003e4 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) .text.libgcc 0x00000866 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)
0x000003e4 __tablejump2__ 0x00000866 __tablejump2__
0x000003e8 __tablejump__ 0x0000086a __tablejump__
0x000003f0 . = ALIGN (0x2) 0x00000872 . = ALIGN (0x2)
*(.fini9) *(.fini9)
.fini9 0x000003f0 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) .fini9 0x00000872 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)
0x000003f0 _exit 0x00000872 _exit
0x000003f0 exit 0x00000872 exit
*(.fini9) *(.fini9)
*(.fini8) *(.fini8)
*(.fini8) *(.fini8)
@ -344,11 +352,11 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8
*(.fini1) *(.fini1)
*(.fini1) *(.fini1)
*(.fini0) *(.fini0)
.fini0 0x000003f0 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 0x00000872 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) *(.fini0)
0x000003f4 _etext = . 0x00000876 _etext = .
.data 0x00800100 0x76 load address 0x000003f4 .data 0x00800100 0x6c load address 0x00000876
0x00800100 PROVIDE (__data_start, .) 0x00800100 PROVIDE (__data_start, .)
*(.data) *(.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 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
@ -363,34 +371,33 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8
*(.rodata) *(.rodata)
*(.rodata*) *(.rodata*)
.rodata.str1.1 .rodata.str1.1
0x00800100 0x76 Door.o 0x00800100 0x6c Door.o
*(.gnu.linkonce.d*) *(.gnu.linkonce.d*)
0x00800176 . = ALIGN (0x2) 0x0080016c . = ALIGN (0x2)
0x00800176 _edata = . 0x0080016c _edata = .
0x00800176 PROVIDE (__data_end, .) 0x0080016c PROVIDE (__data_end, .)
.bss 0x00800176 0x195 .bss 0x0080016c 0x6
0x00800176 PROVIDE (__bss_start, .) 0x0080016c PROVIDE (__bss_start, .)
*(.bss) *(.bss)
.bss 0x00800176 0x195 Door.o .bss 0x0080016c 0x6 Door.o
0x00800176 currentpulse 0x0080016c ir
0x00800177 pulses 0x0080016e comp
0x00800307 comp 0x0080016f led
0x00800308 led 0x00800170 stripe
0x00800309 stripe 0x00800171 Serial
0x0080030a Serial
*(.bss*) *(.bss*)
*(COMMON) *(COMMON)
0x0080030b PROVIDE (__bss_end, .) 0x00800172 PROVIDE (__bss_end, .)
0x000003f4 __data_load_start = LOADADDR (.data) 0x00000876 __data_load_start = LOADADDR (.data)
0x0000046a __data_load_end = (__data_load_start + SIZEOF (.data)) 0x000008e2 __data_load_end = (__data_load_start + SIZEOF (.data))
.noinit 0x0080030b 0x0 .noinit 0x00800172 0x0
0x0080030b PROVIDE (__noinit_start, .) 0x00800172 PROVIDE (__noinit_start, .)
*(.noinit*) *(.noinit*)
0x0080030b PROVIDE (__noinit_end, .) 0x00800172 PROVIDE (__noinit_end, .)
0x0080030b _end = . 0x00800172 _end = .
0x0080030b PROVIDE (__heap_start, .) 0x00800172 PROVIDE (__heap_start, .)
.eeprom 0x00810000 0x0 .eeprom 0x00810000 0x0
*(.eeprom*) *(.eeprom*)
@ -448,39 +455,39 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8
.debug_sfnames .debug_sfnames
*(.debug_sfnames) *(.debug_sfnames)
.debug_aranges 0x00000000 0x50 .debug_aranges 0x00000000 0x58
*(.debug_aranges) *(.debug_aranges)
.debug_aranges .debug_aranges
0x00000000 0x50 Door.o 0x00000000 0x58 Door.o
.debug_pubnames .debug_pubnames
*(.debug_pubnames) *(.debug_pubnames)
.debug_info 0x00000000 0x289d .debug_info 0x00000000 0x2bd2
*(.debug_info) *(.debug_info)
.debug_info 0x00000000 0x289d Door.o .debug_info 0x00000000 0x2bd2 Door.o
*(.gnu.linkonce.wi.*) *(.gnu.linkonce.wi.*)
.debug_abbrev 0x00000000 0x474 .debug_abbrev 0x00000000 0x464
*(.debug_abbrev) *(.debug_abbrev)
.debug_abbrev 0x00000000 0x474 Door.o .debug_abbrev 0x00000000 0x464 Door.o
.debug_line 0x00000000 0x5af .debug_line 0x00000000 0x511
*(.debug_line) *(.debug_line)
.debug_line 0x00000000 0x5af Door.o .debug_line 0x00000000 0x511 Door.o
.debug_frame 0x00000000 0xdc .debug_frame 0x00000000 0xf8
*(.debug_frame) *(.debug_frame)
.debug_frame 0x00000000 0xdc Door.o .debug_frame 0x00000000 0xf8 Door.o
.debug_str 0x00000000 0xc59 .debug_str 0x00000000 0x1247
*(.debug_str) *(.debug_str)
.debug_str 0x00000000 0xc59 Door.o .debug_str 0x00000000 0x1247 Door.o
0xcb8 (size before relaxing) 0x12aa (size before relaxing)
.debug_loc 0x00000000 0xaf1 .debug_loc 0x00000000 0xccb
*(.debug_loc) *(.debug_loc)
.debug_loc 0x00000000 0xaf1 Door.o .debug_loc 0x00000000 0xccb Door.o
.debug_macinfo .debug_macinfo
*(.debug_macinfo) *(.debug_macinfo)
@ -488,9 +495,9 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8
.debug_pubtypes .debug_pubtypes
*(.debug_pubtypes) *(.debug_pubtypes)
.debug_ranges 0x00000000 0x478 .debug_ranges 0x00000000 0x330
*(.debug_ranges) *(.debug_ranges)
.debug_ranges 0x00000000 0x478 Door.o .debug_ranges 0x00000000 0x330 Door.o
.debug_macro .debug_macro
*(.debug_macro) *(.debug_macro)

View File

@ -1,74 +1,145 @@
S00C0000446F6F722E7372656384 S00C0000446F6F722E7372656384
S11300000C9435000C945D000C945D000C945D0020 S11300000C9435000C9449030C945D000C945D0031
S11300100C945D000C945D000C945D000C945D00E8 S11300100C945D000C945D000C945D000C945D00E8
S11300200C945D000C945D000C945D000C945D00D8 S11300200C945D000C945D000C945D000C945D00D8
S11300300C945D000C945D000C945D000C945D00C8 S11300300C945D000C945D000C945D000C945D00C8
S11300400C945D000C945D000C945D000C945D00B8 S11300400C945D000C945D000C945D000C945D00B8
S11300500C945D000C945D000C945D000C945D00A8 S11300500C945D000C945D000C945D000C945D00A8
S11300600C945D000C945D00B90111241FBECFEF08 S11300600C945D000C945D00010411241FBECFEFBD
S1130070D4E0DEBFCDBF11E0A0E0B1E0E4EFF3E0F7 S1130070D4E0DEBFCDBF11E0A0E0B1E0E6E7F8E0F8
S113008002C005900D92A637B107D9F723E0A6E781 S113008002C005900D92AC36B107D9F721E0ACE679
S1130090B1E001C01D92AB30B207E1F710E0CAE64F S1130090B1E001C01D92A237B207E1F710E0CAE651
S11300A0D0E004C02297FE010E94F401C836D107B3 S11300A0D0E004C02297FE010E943504C836D1076F
S11300B0C9F70E94B4000C94F8010C94000020E0ED S11300B0C9F70E94CB000C9439040C940000CF9330
S11300C030E080E061E070E04A9BFECFEFE9FFE0C2 S11300C0DF93789481E88093C4001092C00088E0A4
S11300D03197F1F700C000004A9B08C0AB01022E23 S11300D08093C10086E08093C200A1E0B1E095E581
S11300E002C0440F551F0A94E2F7842B4A99FECFAD S11300E0E0ECF0E0C6ECD0E0808185FFFDCF9883A2
S11300F02F5F3F4F2830310539F70895CF934A9940 S11300F09D919111F9CFE0ECF0E0808185FFFDCF77
S113010024C08FE19EE40197F1F700C000004A99F2 S11301008DE08093C600E0ECF0E0808185FFFDCFB8
S11301101FC04A9BFECF4A99FECF0E945F00811107 S11301108AE08093C600DF91CF91089560FF04C008
S11301201AC00E945F008F3EC9F40E945F00C82F6E S11301208FEF8093B30002C01092B30061FF04C04C
S11301300E945F002C2F30E0A901480F511D4F3F52 S11301308FEF8093B40002C01092B40062FF03C03A
S1130140510571F02FEF30E00BC02FEF30E008C005 S11301408FEF88BD089518BC0895CF93DF93FB010A
S11301502FEF30E005C02FEF30E002C02FEF30E08A S11301509081992369F0DB011196E0ECF0E0C6ECA4
S1130160822F932FCF910895789482E390E027E52E S1130160D0E0808185FFFDCF98839D919111F9CFD7
S113017031E0E0ECF0E0A6ECB0E07DE06AE011C034 S1130170E0ECF0E0808185FFFDCF8DE08093C60048
S1130180408145FFFDCF5C9359915111F9CF4081D6 S1130180E0ECF0E0808185FFFDCF8AE08093C6003B
S113019045FFFDCF7C93408145FFFDCF6C930197D4 S1130190DF91CF910895789464E080E791E00E9424
S11301A019F0E90157E4ECCF299AC0ECD0E006EC51 S11301A08E006BE071E081E791E00E94A5002FE7EB
S11301B010E00F2EF0E6EF2EF1E0FF2EF02D0F2EC3 S11301B03AE186E0215030408040E1F700C0000081
S11301C0FDE0CF2EF02D0F2EFAE0DF2EF02D4A9910 S11301C062E080E791E00E948E0060E171E081E7E7
S11301D0FECF289A0E947E00B82EAC015527888154 S11301D091E00E94A5009FE7AAE1B6E09150A040FB
S11301E085FFFDCF80E3D8018C9360E070E0CB0104 S11301E0B040E1F700C0000061E080E791E00E94C8
S11301F09695879596958795969587959C01220F58 S11301F08E0066E171E081E791E00E94A5002FE79F
S1130200331F880F991F880F991F880F991F820F1A S11302003AE186E0215030408040E1F700C0000030
S1130210931F681B790B605D888185FFFDCFF80112 S113021067E080E791E00E948E006CE171E081E785
S113022060839A013695279536952795ABE7B4E117 S113022091E00E94A5009FE7AAE1B6E09150A040AA
S11302300E94E60196958795805D988195FFFDCF94 S1130230B040E1F700C00000299A60E080E791E057
S1130240D8018C939A01ADECBCEC0E94E601FC0150 S11302400E948E00CDE6D1E066246A94762C0F2EAF
S1130250F695E795F695E795F695E7959F010E9443 S1130250F4EBEF2EF12CF02D6894222427F803EB15
S1130260E6019695879596958795969587959C0131 S113026010E0E0ECF0E046EC50E00F2EFDE04F2E05
S1130270220F331F880F991F880F991F880F991F0A S1130270F02D0F2EFAE05F2EF02D0F2EF0EC3F2E16
S1130280820F931FE81BF90BE05D888185FFFDCF8A S1130280F02D0F2EF0EB8F2E912CF02D888178829B
S1130290D801EC939A01ADECBCEC0E94E601969572 S11302908C3009F4CFC038F5853009F4A4C090F44B
S11302A0879596958795969587959C01220F331F80 S11302A0823009F484C038F4882309F446C08130CC
S11302B0880F991F880F991F880F991F820F931F0A S11302B009F0F6C05FC0833009F487C0843009F0C8
S11302C0481B590B405D888185FFFDCFF8014083B1 S11302C0EFC08BC0883009F4A0C038F4863009F43C
S11302D0F70190E2888185FFFDCFD8019C9391912D S11302D090C0873009F0E4C092C08A3009F4A3C00A
S11302E09111F8CF888185FFFDCFF801C082888104 S11302E008F075C199C0823109F4C2C090F48F300E
S11302F085FFFDCFD801DC92BFEFBB1209C0EFE749 S11302F009F46DC138F48D3009F4A2C08E3009F0D0
S1130300F4E82EE1E150F0402040E1F700C00000A5 S1130300CFC0A4C0803109F4A7C0813109F0C8C0AE
S113031028985DCFCF93DF93789481E88093C400CD S1130310A9C0853109F4B8C038F4833109F457C150
S11303201092C00088E08093C10086E08093C200F0 S1130320843109F0BDC0AAC0873109F450C108F472
S1130330ACE6B1E095E5E0ECF0E0C6ECD0E080811D S1130330B1C08F3F09F0B4C04AC188B58B3F20F4E7
S113034085FFFDCF98839D919111F9CFE0ECF0E00A S113034088B58B5F88BD01C018BCD7018C918B3FE9
S1130350808185FFFDCF8DE08093C600E0ECF0E066 S113035020F48C918B5F8C9302C0D7011C92D8013E
S1130360808185FFFDCF8AE08093C600DF91CF9125 S11303608C918B3F20F48C918B5F8C9330C1D8019E
S113037008958AE093E00E948A01559A539A239A39 S11303701C922DC188B5853020F088B5855088BD84
S113038081E284BD81E085BD16BC1092B60091EA7D S113038001C018BCD7018C91853020F08C91855028
S11303909093B0008093B1001092B20010926E005E S11303908C9302C0D7011C92D8018C91853020F037
S11303A01092700018BC1092B4001092B300209AFE S11303A08C9185508C9313C1D8011C9210C184B5D3
S11303B0219A2898299856985E9857985F9810BE65 S11303B08F7D84BDD4018C918F758C935D98559AF3
S11303C010927B0083E080937F000895A29FB00188 S11303C05B98539A2B98239A02C184B5806284BDAA
S11303D0B39FC001A39F01D0B29F700D811D112452 S11303D0D4018C91806A8C93FAC0D8011C92D70105
S11303E0911D0895EE0FFF1F0590F491E02D0994DF S11303E01C9268BCF4C0D8011C92D7016C9218BC52
S10703F0F894FFCFAB S11303F0EEC0D8016C92D7011C9218BCE8C0D80199
S11303F40A0D0A0D52656365697665643A200A0D2F S11304006C92D7016C9268BCE2C068BC20E4D7014E
S11304044F464620094F4E00696E74204952736961 S11304102C93D8011C92DBC018BCD7016C9220E449
S1130414676E616C5B5D203D207B002F2F204F466F S1130420D8012C93D4C030E438BDD7011C92D80134
S1130424462C204F4E2028696E2031302773206FCC S11304306C92CDC068BCD7012C92D8011C92C7C065
S113043466206D6963726F7365636F6E64732900FC S113044018BCD7016C92D8012C92C1C028BCD7012A
S11304442C20007D3B0047656C6164656E210020AF S11304501C92D8016C92BBC068BCD7013C92D801F5
S113045450726573736564210D0A005561727420CA S11304601C92B5C018BCD7016C92D8013C92AFC0A5
S1090464646F6E652100C7 S113047038BCD7011C92D8016C92A9C068BCD701C2
S11304806C92D8011C92A3C018BCD7016C92D801FD
S11304906C929DC068BCD7011C92D8016C9297C025
S11304A0C82ED12C808185FFFDCF80E3DA018C93A7
S11304B060E070E0CB019695879596958795969523
S11304C087959C01220F331F880F991F880F991F4E
S11304D0880F991F820F931F681B790B605D8081C1
S11304E085FFFDCFDA016C939601369527953695F5
S11304F02795ABE7B4E10E94270496958795805D24
S1130500908195FFFDCFDA018C939601ADECBCECA4
S11305100E9427045C01B694A794B694A794B69459
S1130520A79495010E94270496958795969587959B
S1130530969587959C01220F331F880F991F880F6A
S1130540991F880F991F820F931F9501281B390B40
S1130550922F905D808185FFFDCFDA019C939601F7
S1130560ADECBCEC0E9427049695879596958795EB
S1130570969587959C01220F331F880F991F880F2A
S1130580991F880F991F820F931F9601281B390BFF
S1130590922F905D808185FFFDCFDA019C93A3E6C5
S11305A0B1E090E29D01808185FFFDCFDA019C934B
S11305B0D9019D919D019111F6CF808185FFFDCFD9
S11305C0DA014C92808185FFFDCFDA015C9287E8E5
S11305D093E10197F1F700C0000029989FEDAAE08C
S11305E0B6E09150A040B040E1F700C00000299A65
S11305F04DCE559A539A239A81E084BD94E095BDDB
S113060016BC1092B600E0EBF0E0808385E08093A6
S1130610B1001092B20010926E001092700084B576
S1130620806284BD8081806A808318BC1092B4008B
S11306301092B300089520E030E080E061E070E0C3
S11306404A9BFECFEFE9FFE03197F1F700C00000CD
S11306504A9B08C0AB01022E02C0440F551F0A94E6
S1130660E2F7842B4A990FC008C04A9B06C0F5E8FC
S1130670FA95F1F700009150C1F72F5F3F4F2830F2
S11306803105F1F6089545E84A95F1F7000091E344
S1130690ECCF1F920F920FB60F9211242F933F931A
S11306A04F935F936F937F938F939F93AF93BF9376
S11306B0CF93EF93FF93289A4A9979C08FE19EE4F0
S11306C00197F1F700C000004A9971C04A9BFECF20
S11306D04A99FECF80E090E060E041E050E04A9B20
S11306E0FECFEFE9FFE03197F1F700C000004A9B2D
S11306F008C09A01082E02C0220F331F0A94E2F7A1
S1130700622B4A9966C008C04A9B06C0F5E8FA9570
S1130710F1F700002150C1F7019688309105F9F6F0
S1130720611139C080E090E041E050E04A9BFECF87
S1130730EFE9FFE03197F1F700C000004A9B08C0E1
S11307409A01082E02C0220F331F0A94E2F7622B8B
S11307504A9939C008C04A9B06C0F5E8FA95F1F7F2
S113076000002150C1F7019688309105F9F66F3EDB
S113077091F48CE691E00E941B03C82F8CE691E073
S11307800E941B03282F30E02C0F311D2F3F310511
S113079011F4CF3F51F42FE734E88EE1215030407B
S11307A08040E1F700C000000BC0CE3F39F4E7E819
S11307B0F3E13197F1F700C0000002C0C0936D016E
S11307C02898E09A0CC0F5E8FA95F1F7000021E3C7
S11307D0C2CF25E82A95F1F7000021E395CFFF91D8
S11307E0EF91CF91BF91AF919F918F917F916F9135
S11307F05F914F913F912F910F900FBE0F901F90DB
S1130800189581E791E00E945F0080E791E00E94E3
S1130810F902209A219A2898299856985E98579810
S11308205F9810BE10927B0083E080937F00209A33
S1130830219A2898299852985A988FEF80936D019D
S113084082E08093690081E08DBB1CBA0895A29F69
S1130850B001B39FC001A39F01D0B29F700D811D51
S11308601124911D0895EE0FFF1F0590F491E02DC2
S10908700994F894FFCF87
S11308765561727420646F6E652100526F74210095
S11308864772FC6E2100426C61752100576569DF71
S11308962C20616C6C657320496E697469616C699E
S11308A673657274212048616265204665727469B5
S11308B66720756E642064616D6974206162207AB4
S11308C6756D204E6F726D616C62657472696562D6
S10F08D6210020507265737365642100DA
S9030000FC S9030000FC

View File

@ -7,192 +7,72 @@
#include "peripheral.h" #include "peripheral.h"
#include <util/delay.h> #include <util/delay.h>
#include <avr/io.h>
uartclass Serial; uartclass Serial;
stripeclass stripe; stripeclass stripe;
ledclass led; ledclass led;
compclass comp; compclass comp;
//intclass ir; irclass ir;
// the maximum pulse we'll listen for - 65 milliseconds is a long time
#define MAXPULSE 30000
// what our timing resolution should be, larger is better
// as its more 'precise' - but too large and you wont get
// accurate timing
#define RESOLUTION 20
uint16_t volatile pulses[100][2]; // pair is high and low pulse
uint8_t volatile currentpulse = 0;
void printpulses(void) {
Serial.println("\n\r\n\rReceived: \n\rOFF \tON");
for (uint8_t i = 0; i < currentpulse; i++) {
Serial.printDec(pulses[i][0] * RESOLUTION);
Serial.print(" ");
Serial.printDec(pulses[i][1] * RESOLUTION);
Serial.println(" ");
}
// print it in a 'array' format
Serial.println("int IRsignal[] = {");
Serial.println("// OFF, ON (in 10's of microseconds)");
for (uint8_t i = 0; i < currentpulse-1; i++) {
Serial.print("\t"); // tab
Serial.printDec(pulses[i][0] * RESOLUTION / 10);
Serial.print(", ");
Serial.printDec(pulses[i][1] * RESOLUTION / 10);
Serial.println(",");
}
Serial.print("\t"); // tab
Serial.printDec(pulses[currentpulse-1][0] * RESOLUTION / 10);
Serial.print(", ");
Serial.printDec(pulses[currentpulse-1][1] * RESOLUTION / 10);
Serial.println("};");
}
void loop()
{
while(1) {
uint16_t highpulse, lowpulse; // temporary storage timing
highpulse = lowpulse = 0; // start out with no pulse length
while (!(PIND & (1<<PIND2))) {
// pin is still LOW
lowpulse++;
_delay_us(RESOLUTION);
if ((lowpulse >= MAXPULSE) && (currentpulse != 0)) {
printpulses();
return;
}
}
pulses[currentpulse][1] = lowpulse;
while (PIND & (1<<PIND2)) {
highpulse++;
_delay_us(RESOLUTION);
if ((highpulse >= MAXPULSE) && (currentpulse != 0)) {
printpulses();
return;
}
}// we didn't time out so lets stash the reading
pulses[currentpulse][0] = highpulse;
// we read one high-low pulse successfully, continue!
currentpulse++;
}
}
uint8_t read8bit() {
uint8_t r = 0;
for (uint8_t i=0;i<8;i++)
{
loop_until_bit_is_set(PIND,PIND2);
_delay_us(800);
//while (PIND & (1<<PIND2)) {}
//led.red(1);
//_delay_us(600);
if((PIND & (1<<PIND2))) {
r |= (1<<i);
}
loop_until_bit_is_clear(PIND,PIND2);
//while (!(PIND & (1<<PIND2))) {}
//led.red(0);
//_delay_us(950);
}
return r;
}
int recieve()
{
if(PIND & (1<<PIND2)) { //Is High, Abbort
return 255;
}
_delay_ms(4); //Wait 4ms
if(PIND & (1<<PIND2)) { //Is High, Abbort
return 255;
}
loop_until_bit_is_set(PIND, PIND2); //Wait for the rest of the init.
// Init Complete, wait for first Byte
loop_until_bit_is_clear(PIND, PIND2);
//uint8_t a = ;
if(read8bit() != 0) { //Is first Byte not 0 Abbort;
return 255;
}
if(read8bit() != 239) {
return 255;
}
uint8_t a = read8bit();
uint8_t b = read8bit();
if(a+b != 255) {
return 255;
}
return a;
//Serial.printDec(0x0000|a); Serial.println(" 1Byte");
//Serial.printDec(a); Serial.println(" 1Byte");
//Serial.printDec(b); Serial.println(" 1Byte");
Serial.printDec(a); Serial.println(" 1Byte");
Serial.printDec(b); Serial.println(" 1Byte");
return a;
/*if(b != 239) { //Is second byte not 239 Abbort;
return 0;
}*/
uint8_t hb = read8bit(); //Read First Byte
uint8_t lb = read8bit(); //Read Second Byte
Serial.println("Read Data:");
Serial.printDec(hb); Serial.print(" HByte, "); Serial.printDec(lb); Serial.println(" LByte");
return 0;
}
int main(void) int main(void)
{ {
sei(); sei();
/*uint8_t status = 0; stripe.setcolor(stripe.RED);
uint8_t gr = 0xFF; Serial.println("Rot!");
uint8_t re = 0x00;*/ _delay_ms(100);
for(int i=0;i<50;i++) { stripe.setcolor(stripe.GREEN);
Serial.println("Geladen!"); Serial.println("Grün!");
} _delay_ms(100);
stripe.setcolor(stripe.BLUE);
Serial.println("Blau!");
_delay_ms(100);
stripe.setcolor(stripe.WHITE);
Serial.println("Weiß, alles Initialisert! Habe Fertig und damit ab zum Normalbetrieb!");
_delay_ms(100);
led.green(1); led.green(1);
stripe.setcolor(stripe.BLACK);
while(1) while(1)
{ {
uint8_t c = ir.getCode();
loop_until_bit_is_clear(PIND, PIND2); switch(c) {
led.red(1); case 255: break; //Kein Code empfangen
uint8_t ir = recieve(); case 0: stripe.higher(); break; //Button High
Serial.printDec(ir); Serial.println(" Pressed!\r\n"); case 1: stripe.lower(); break; //Button Low
if(ir == 255) { case 2: stripe.off(); break; //Button OFF
_delay_ms(500); case 3: stripe.on(); break; //Button ON
case 4: stripe.setcolor(stripe.RED); break; //Button R
case 5: stripe.setcolor(stripe.GREEN); break; //Button G
case 6: stripe.setcolor(stripe.BLUE); break; //Button B
case 7: stripe.setcolor(stripe.WHITE); break; //Button W
case 8: stripe.color(0xFF,0x40,0x00); break; //Color Red 100 % + Green 25 %
case 9: stripe.color(0x00,0xFF,0x40); break; //Color Green 100 % + Blue 25 %
case 10: stripe.color(0x40,0x00,0xFF); break; //Color Blue 100 % + Red 25 %
case 11: break; //Button Flash
case 12: stripe.color(0xFF,0x80,0x00); break; //Color Red 100 % + Green 50 %
case 13: stripe.color(0x00,0xFF,0x80); break; //Color Green 100 % + Blue 50 %
case 14: stripe.color(0x80,0x00,0xFF); break; //Color Blue 100 % + Red 50 %
case 15: break; //Button STROBE
case 16: stripe.color(0xFF,0xC0,0x00); break; //Color Red 100 % + Green 75 %
case 17: stripe.color(0x00,0xFF,0xC0); break; //Color Green 100 % + Blue 75 %
case 18: stripe.color(0xC0,0x00,0xFF); break; //Color Blue 100 % + Red 75 %
case 19: break; //Button FADE
case 20: stripe.color(0xFF,0xFF,0x00); break; //Color Red 100 % + Green 100 %
case 21: stripe.color(0x00,0xFF,0xFF); break; //Color Green 100 % + Blue 100 %
case 22: stripe.color(0xFF,0x00,0xFF); break; //Color Blue 100 % + Red 100 %
case 23: break; //Button SMOOTH
default: Serial.printDec(c); Serial.println(" Pressed!"); break; //Code den ich nicht kenne
} }
led.red(0); _delay_ms(1);
//while(PIND & (1<<PIND2)) {}; led.green(0);
//recieve(); _delay_ms(99);
//currentpulse=0; led.green(1);
//loop();
//_delay_ms(200);
//_delay_ms(200);
//_delay_ms(50);
} }
} }
/*ISR(INT0_vect) { ISR(INT0_vect) {
led.red(1); ir.interrupt();
}*/ }
/*for(int i=0; i<0xFE; i++) {
if() {
led.red(1);
} else {
led.red(0);
}
//led.red(0);
_delay_us(100);
}
led.red(0);
_delay_ms(500);*/

View File

@ -170,7 +170,7 @@
<Compile Include="io\hardware\portd.hpp"> <Compile Include="io\hardware\portd.hpp">
<SubType>compile</SubType> <SubType>compile</SubType>
</Compile> </Compile>
<Compile Include="io\Interrupt.hpp"> <Compile Include="io\IR.hpp">
<SubType>compile</SubType> <SubType>compile</SubType>
</Compile> </Compile>
<Compile Include="io\Stripe.hpp"> <Compile Include="io\Stripe.hpp">

108
Door/io/IR.hpp Normal file
View File

@ -0,0 +1,108 @@
/*
* Interrupt.hpp
*
* Created: 18.11.2014 00:27:52
* Author: netz
*/
#ifndef INTERRUPT_H_
#define INTERRUPT_H_
#include <util/delay.h>
template <typename Port, int pin_int, typename Led>
class IR {
public:
IR() {
this->init();
}
int read() {
if(intpin::value()) { //Is High, Abbort
return 254;
}
_delay_ms(4); //Wait 4ms
if(intpin::value()) { //Is High, Abbort
return 254;
}
intpin::wait_is_set(); //Wait for the rest of the init.
intpin::wait_is_clear(); // Init Complete, wait for first Byte
//Read First Byte must be 0!
if(this->read8bit() != 0) { //Is first Byte not 0 Abbort;
return 255;
}
//Read Second Byte must be 239!
if(this->read8bit() != 239) {
return 255;
}
//Read Byte 3 and 4 (Data Byte and Checksum Byte!
uint8_t a = this->read8bit();
uint8_t b = this->read8bit();
//Make Checksum Byte 3 + 4 must be 255!
if(a+b != 255) {
return 255;
}
return a; //Return Byte 3
}
//The Interrupt Function
void interrupt() {
led.red(1);
uint8_t code = this->read();
if(code == 255) {
_delay_ms(500);
} else if(code == 254) {
_delay_ms(1);
} else {
this->_code = code;
}
led.red(0);
EIFR |= (1<<INTF0);
}
uint8_t getCode() {
uint8_t ret = this->_code;
this->_code = 255;
return ret;
}
private:
Led led;
uint8_t _code;
void init() {
intpin::make_input();
this->_code = 255;
this->init_int();
}
void init_int() {
// External Interrupt(s) initialization
// INT0: On
// INT0 Mode: Falling Edge
// INT1: Off
// Interrupt on any change on pins PCINT0-7: Off
// Interrupt on any change on pins PCINT8-14: Off
// Interrupt on any change on pins PCINT16-23: Off
EICRA=(0<<ISC11) | (0<<ISC10) | (1<<ISC01) | (0<<ISC00);
EIMSK=(0<<INT1) | (1<<INT0);
EIFR=(0<<INTF1) | (0<<INTF0);
}
uint8_t read8bit() {
uint8_t r = 0;
for (uint8_t i=0;i<8;i++) {
intpin::wait_is_set();
_delay_us(800);
if(intpin::read()) {
r |= (1<<i);
}
for(uint8_t j=0;j<50;j++) {
if(!intpin::value()) {
break;
}
_delay_us(20);
}
}
return r;
}
const typedef avrlib::pin<Port, pin_int> intpin;
};
#endif /* INTERRUPT_H_ */

View File

@ -1,42 +0,0 @@
/*
* Interrupt.hpp
*
* Created: 18.11.2014 00:27:52
* Author: netz
*/
#ifndef INTERRUPT_H_
#define INTERRUPT_H_
template <typename Port, int pin_int>
class Interrupt {
public:
Interrupt() {
init();
}
uint8_t is_active() {
return intpin::read();
}
private:
void init() {
intpin::make_input();
intpin::pullup();
init_int();
}
void init_int() {
// External Interrupt(s) initialization
// INT0: On
// INT0 Mode: Rising Edge
// INT1: Off
// Interrupt on any change on pins PCINT0-7: Off
// Interrupt on any change on pins PCINT8-14: Off
// Interrupt on any change on pins PCINT16-23: Off
EICRA=(0<<ISC11) | (0<<ISC10) | (0<<ISC01) | (1<<ISC00);
EIMSK=(0<<INT1) | (1<<INT0);
EIFR=(0<<INTF1) | (1<<INTF0);
}
const typedef avrlib::pin<Port, pin_int> intpin;
};
#endif /* INTERRUPT_H_ */

View File

@ -10,11 +10,13 @@
#include "hardware/pin.hpp" #include "hardware/pin.hpp"
#include <util/delay.h>
template <typename PortR, int pin_red, typename PortG, int pin_green, typename PortB, int pin_blue> template <typename PortR, int pin_red, typename PortG, int pin_green, typename PortB, int pin_blue>
class Stripe { class Stripe {
public: public:
Stripe() { Stripe() {
init(); this->init();
} }
void color(uint8_t r, uint8_t g, uint8_t b) { void color(uint8_t r, uint8_t g, uint8_t b) {
OCR0B=r; //ROT OCR0B=r; //ROT
@ -34,13 +36,70 @@ class Stripe {
static const uint8_t MAGENTA = 5; static const uint8_t MAGENTA = 5;
static const uint8_t YELLOW = 6; static const uint8_t YELLOW = 6;
static const uint8_t WHITE = 7; static const uint8_t WHITE = 7;
void off() {
this->timerOff();
stripered::make_low();
stripegreen::make_low();
stripeblue::make_low();
}
void on() {
this->timerOn();
}
void lower() {
if(OCR0B >= 5) {
OCR0B = OCR0B - 5;
} else {
OCR0B = 0;
}
if(OCR2B >= 5) {
OCR2B = OCR2B - 5;
} else {
OCR2B = 0;
}
if(OCR2A >= 5) {
OCR2A = OCR2A - 5;
} else {
OCR2A = 0;
}
}
void higher() {
if(OCR0B <= 250) {
OCR0B = OCR0B + 5;
} else {
OCR0B = 0;
}
if(OCR2B <= 250) {
OCR2B = OCR2B + 5;
} else {
OCR2B = 0;
}
if(OCR2A <= 250) {
OCR2A = OCR2A + 5;
} else {
OCR2A = 0;
}
}
private: private:
void init() { void init() {
stripered::make_output(); stripered::make_output();
stripegreen::make_output(); stripegreen::make_output();
stripeblue::make_output(); stripeblue::make_output();
initTimer(); this->initTimer();
color(0, 0, 0); this->color(0, 0, 0);
}
void timerOff() {
// OC0B output: Disconnected
// OC2A output: Disconnected
// OC2B output: Disconnected
TCCR0A &= ~(1<<COM0B1);
TCCR2A &= ~((1<<COM2A1) | (1<<COM2B1));
}
void timerOn() {
// OC0B output: Non-Inverted PWM
// OC2A output: Non-Inverted PWM
// OC2B output: Non-Inverted PWM
TCCR0A |= (1<<COM0B1);
TCCR2A |= (1<<COM2A1) | (1<<COM2B1);
} }
void uninit(); void uninit();
void initTimer() { void initTimer() {
@ -49,31 +108,29 @@ class Stripe {
// Clock value: 8000,000 kHz // Clock value: 8000,000 kHz
// Mode: Phase correct PWM top=0xFF // Mode: Phase correct PWM top=0xFF
// OC0A output: Disconnected // OC0A output: Disconnected
// OC0B output: Non-Inverted PWM
// Timer Period: 0,06375 ms // Timer Period: 0,06375 ms
// Output Pulse(s): // Output Pulse(s):
// OC0B Period: 0,06375 ms Width: 0 us // OC0B Period: 0,06375 ms Width: 0 us
TCCR0A=(0<<COM0A1) | (0<<COM0A0) | (1<<COM0B1) | (0<<COM0B0) | (0<<WGM01) | (1<<WGM00); TCCR0A=(0<<COM0A1) | (0<<COM0A0) | (0<<COM0B0) | (0<<WGM01) | (1<<WGM00);
TCCR0B=(0<<WGM02) | (0<<CS02) | (0<<CS01) | (1<<CS00); TCCR0B=(0<<WGM02) | (1<<CS02) | (0<<CS01) | (0<<CS00);
TCNT0=0x00; TCNT0=0x00;
// Timer/Counter 2 initialization // Timer/Counter 2 initialization
// Clock source: System Clock // Clock source: System Clock
// Clock value: 8000,000 kHz // Clock value: 8000,000 kHz
// Mode: Phase correct PWM top=0xFF // Mode: Phase correct PWM top=0xFF
// OC2A output: Non-Inverted PWM
// OC2B output: Non-Inverted PWM
// Timer Period: 0,06375 ms // Timer Period: 0,06375 ms
// Output Pulse(s): // Output Pulse(s):
// OC2A Period: 0,06375 ms Width: 0 us // OC2A Period: 0,06375 ms Width: 0 us
// OC2B Period: 0,06375 ms Width: 0 us // OC2B Period: 0,06375 ms Width: 0 us
ASSR=(0<<EXCLK) | (0<<AS2); ASSR=(0<<EXCLK) | (0<<AS2);
TCCR2A=(1<<COM2A1) | (0<<COM2A0) | (1<<COM2B1) | (0<<COM2B0) | (0<<WGM21) | (1<<WGM20); TCCR2A=(0<<COM2A0) | (0<<COM2B0) | (0<<WGM21) | (1<<WGM20);
TCCR2B=(0<<WGM22) | (0<<CS22) | (0<<CS21) | (1<<CS20); TCCR2B=(0<<WGM22) | (1<<CS22) | (0<<CS21) | (1<<CS20);
TCNT2=0x00; TCNT2=0x00;
// Timer/Counter 0 Interrupt(s) initialization // Timer/Counter 0 Interrupt(s) initialization
TIMSK0=(0<<OCIE0B) | (0<<OCIE0A) | (0<<TOIE0); TIMSK0=(0<<OCIE0B) | (0<<OCIE0A) | (0<<TOIE0);
// Timer/Counter 2 Interrupt(s) initialization // Timer/Counter 2 Interrupt(s) initialization
TIMSK2=(0<<OCIE2B) | (0<<OCIE2A) | (0<<TOIE2); TIMSK2=(0<<OCIE2B) | (0<<OCIE2A) | (0<<TOIE2);
this->timerOn();
} }
const typedef avrlib::pin<PortR, pin_red> stripered; const typedef avrlib::pin<PortR, pin_red> stripered;
const typedef avrlib::pin<PortG, pin_green> stripegreen; const typedef avrlib::pin<PortG, pin_green> stripegreen;

View File

@ -43,6 +43,9 @@ namespace avrlib {
static void set_low() { set(false); } static void set_low() { set(false); }
static bool read() { return value(); } static bool read() { return value(); }
static void pullup() { set_high(); } static void pullup() { set_high(); }
static void wait_is_set() { do { } while (!(Port::pin() & (1<<Pin))); }
static void wait_is_clear() { do {} while ((Port::pin() & (1<<Pin))); }
}; };
} }

View File

@ -25,8 +25,8 @@ typedef Led<avrlib::portb, PINB0, PINB1> ledclass;
#include "io/Comperator.hpp" #include "io/Comperator.hpp"
typedef Comperator<avrlib::portd, PIND6, PIND7> compclass; typedef Comperator<avrlib::portd, PIND6, PIND7> compclass;
/*#include "io/Interrupt.hpp" #include "io/IR.hpp"
typedef Interrupt<avrlib::portd, PIND2> intclass;*/ typedef IR<avrlib::portd, PIND2, ledclass> irclass;
#include "io/uart.hpp" #include "io/uart.hpp"
typedef Uart<9600> uartclass; typedef Uart<9600> uartclass;