20141119-235733

This commit is contained in:
BlubbFish 2014-11-19 22:57:35 +00:00
parent 7a55618696
commit 6de094275f
20 changed files with 2251 additions and 257 deletions

Binary file not shown.

View File

@ -1,4 +1,4 @@
Door.d Door.o: .././Door.cpp \ 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/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/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/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/../../../../avr/include/inttypes.h \
@ -12,10 +12,17 @@ Door.d Door.o: .././Door.cpp \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/version.h \ c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/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/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/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
.././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/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/avr/sfr_defs.h:
@ -42,6 +49,20 @@ c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/lock.h: 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/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:

Binary file not shown.

View File

@ -1,12 +1,119 @@
:100000000C9434000C943E000C943E000C943E0082 :100000000C9435000C945D000C945D000C945D0024
:100010000C943E000C943E000C943E000C943E0068 :100010000C945D000C945D000C945D000C945D00EC
:100020000C943E000C943E000C943E000C943E0058 :100020000C945D000C945D000C945D000C945D00DC
:100030000C943E000C943E000C943E000C943E0048 :100030000C945D000C945D000C945D000C945D00CC
:100040000C943E000C943E000C943E000C943E0038 :100040000C945D000C945D000C945D000C945D00BC
:100050000C943E000C943E000C943E000C943E0028 :100050000C945D000C945D000C945D000C945D00AC
:100060000C943E000C943E0011241FBECFEFD4E050 :100060000C945D000C945D00210311241FBECFEFA2
:10007000DEBFCDBF0E9440000C9456000C940000DF :10007000D4E0DEBFCDBF11E0A0E0B1E0E4ECF6E0FB
:1000800084B1836084B9289A21E092E085B1822707 :1000800002C005900D92AA38B107D9F723E0AAE87B
:1000900085B985B1892785B93FE744E88EE13150BC :10009000B1E001C01D92AF31B207E1F710E0CAE64E
:1000A00040408040E1F700C00000F0CFF894FFCF5F :1000A000D0E004C02297FE010E945C03C836D1074D
:1000B000C9F70E94A3020C9460030C94000020E096
:1000C00030E080E061E070E04A99FECF289AE7EBEB
:1000D000FBE03197F1F700C000004A9908C0AB017E
:1000E000022E02C0440F551F0A94E2F7842B4A9B4C
:1000F000FECF2898F2E4FA95F1F700C02F5F3F4F4A
:100100002830310509F708951F93CF93DF934A995B
:1001100016C28FE19EE40197F1F700C000004A99F2
:100120000EC24A9BFECF0E945F00182F0E945F0004
:100130000E945F00482FC82FD0E0E0ECF0E0808103
:1001400085FFFDCF80E38093C60060E070E0CB01C7
:100150009695879596958795969587959C01220FFC
:10016000331F880F991F880F991F880F991F820FBF
:10017000931F681B790B605DE0ECF0E0808185FFE8
:10018000FDCF6093C6009E0136952795369527953D
:10019000ABE7B4E10E944E0396958795805DE0EC55
:1001A000F0E0908195FFFDCF8093C6009E01ADECFD
:1001B000BCEC0E944E03FC01F695E795F695E79599
:1001C000F695E7959F010E944E0396958795969523
:1001D0008795969587959C01220F331F880F991F4D
:1001E000880F991F880F991F820F931FE81BF90B27
:1001F0009E2F905DE0ECF0E0808185FFFDCF909335
:10020000C6009E01ADECBCEC0E944E03969587950E
:1002100096958795969587959C01220F331F880F99
:10022000991F880F991F880F991F820F931FC81B52
:10023000D90BC05DE0ECF0E0808185FFFDCFC0937D
:10024000C600A4E5B1E090E2E0ECF0E0C6ECD0E05E
:10025000808185FFFDCF98839D919111F9CFE0ECCE
:10026000F0E0808185FFFDCF8DE08093C600E0EC5B
:10027000F0E0808185FFFDCF8AE08093C6001111F8
:100280005EC14F3E09F05BC10E945F00182F0E94C3
:100290005F00482FABE5B1E022E5E0ECF0E0C6EC12
:1002A000D0E0908195FFFDCF28832D912111F9CFCA
:1002B000E0ECF0E0908195FFFDCF8DE08093C600EB
:1002C000E0ECF0E0908195FFFDCF8AE08093C600DE
:1002D000E0ECF0E0808185FFFDCFC12FD0E080E32E
:1002E0008093C60060E070E0CB0196958795969567
:1002F0008795969587959C01220F331F880F991F2C
:10030000880F991F880F991F820F931F681B790B05
:10031000605DE0ECF0E0808185FFFDCF6093C6007A
:100320009E013695279536952795ABE7B4E10E9457
:100330004E0396958795805DE0ECF0E0908195FF07
:10034000FDCF8093C6009E01ADECBCEC0E944E0335
:10035000FC01F695E795F695E795F695E7959F01EB
:100360000E944E03969587959695879596958795C5
:100370009C01220F331F880F991F880F991F880F28
:10038000991F820F931FE81BF90B9E2F905DE0ECE5
:10039000F0E0808185FFFDCF9093C6009E01ADEC1B
:1003A000BCEC0E944E0396958795969587959695F9
:1003B00087959C01220F331F880F991F880F991F63
:1003C000880F991F820F931FC81BD90BC05DE0ECEB
:1003D000F0E0808185FFFDCFC093C600A6E6B1E0C6
:1003E00090E2E0ECF0E0C6ECD0E0808185FFFDCF4C
:1003F00098839D919111F9CF50E0E0ECF0E080817D
:1004000085FFFDCF80E38093C60060E070E0CB0104
:100410009695879596958795969587959C01220F39
:10042000331F880F991F880F991F880F991F820FFC
:10043000931F681B790B605DE0ECF0E0808185FF25
:10044000FDCF6093C6009A0136952795369527957E
:10045000ABE7B4E10E944E0396958795805DE0EC92
:10046000F0E0908195FFFDCF8093C6009A01ADEC3E
:10047000BCEC0E944E03FC01F695E795F695E795D6
:10048000F695E7959F010E944E0396958795969560
:100490008795969587959C01220F331F880F991F8A
:1004A000880F991F880F991F820F931FE81BF90B64
:1004B0009E2F905DE0ECF0E0808185FFFDCF909372
:1004C000C6009A01ADECBCEC0E944E039695879550
:1004D00096958795969587959C01220F331F880FD7
:1004E000991F880F991F880F991F820F931F481B10
:1004F000590B405DE0ECF0E0808185FFFDCF40933B
:10050000C600AFE6B1E090E2E0ECF0E0C6ECD0E08F
:10051000808185FFFDCF98839D919111F9CFE0EC0B
:10052000F0E0808185FFFDCF8DE08093C600E0EC98
:10053000F0E0808185FFFDCF8AE08093C600DF91E7
:10054000CF911F910895789482E390E026E731E0FF
:10055000E0ECF0E0A6ECB0E07DE06AE011C04081A4
:1005600045FFFDCF5C9359915111F9CF408145FF73
:10057000FDCF7C93408145FFFDCF6C93019719F02F
:10058000E90157E4ECCF299AC0ECD0E006EC10E08A
:100590000F2EFEE2DF2EF02D0F2EFDE0EF2EF02DC0
:1005A0000F2EFAE0FF2EF02D4A99FECF0E94840014
:1005B000888185FFFDCFF801D082888185FFFDCF3E
:1005C000F801E082888185FFFDCFF801F082FFEF1E
:1005D00024E38CE0F15020408040E1F700C00000AF
:1005E0002898E2CFCF93DF93789481E88093C4007A
:1005F0001092C00088E08093C10086E08093C20022
:10060000AFE7B1E095E5E0ECF0E0C6ECD0E080814A
:1006100085FFFDCF98839D919111F9CFE0ECF0E03B
:10062000808185FFFDCF8DE08093C600E0ECF0E097
:10063000808185FFFDCF8AE08093C600DF91CF9156
:1006400008958EE193E00E94F202559A539A239AFC
:1006500081E284BD81E085BD16BC1092B60091EAAE
:100660009093B0008093B1001092B20010926E008F
:100670001092700018BC1092B4001092B300209A2F
:10068000219A2898299856985E9857985F9810BE96
:1006900010927B0083E080937F000895A29FB001B9
:1006A000B39FC001A39F01D0B29F700D811D112483
:1006B000911D0895EE0FFF1F0590F491E02D099410
:0406C000F894FFCFDC
:1006C4000A0D0A0D52656365697665643A200A0D60
:1006D4004F464620094F4E00696E74204952736993
:1006E400676E616C5B5D203D207B002F2F204F46A1
:1006F400462C204F4E2028696E2031302773206FFE
:1007040066206D6963726F7365636F6E647329002D
:100714007D3B002031427974650052656164204458
:100724006174613A002048427974652C2000204CA1
:10073400427974650047656C6164656E210055619A
:0A074400727420646F6E65210000DE
:00000001FF :00000001FF

File diff suppressed because it is too large Load Diff

View File

@ -2,12 +2,26 @@ Archive member included because of file (symbol)
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) 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)
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 (exit) 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 (exit)
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)
Door.o (__do_copy_data)
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)
Door.o (__do_clear_bss)
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)
Door.o (__do_global_ctors)
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)
Door.o (__umulhisi3)
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)
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) (__tablejump__)
Discarded input sections 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
.text 0x00000000 0x0 Door.o .text 0x00000000 0x0 Door.o
.bss 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
@ -21,6 +35,68 @@ Discarded input sections
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) 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.fmul .text.libgcc.fmul
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) 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(_copy_data.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(_copy_data.o)
.text.libgcc.mul
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(_copy_data.o)
.text.libgcc.div
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(_copy_data.o)
.text.libgcc 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(_copy_data.o)
.text.libgcc.prologue
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(_copy_data.o)
.text.libgcc.builtins
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(_copy_data.o)
.text.libgcc.fmul
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(_copy_data.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(_clear_bss.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(_clear_bss.o)
.text.libgcc.mul
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(_clear_bss.o)
.text.libgcc.div
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(_clear_bss.o)
.text.libgcc 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(_clear_bss.o)
.text.libgcc.prologue
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(_clear_bss.o)
.text.libgcc.builtins
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(_clear_bss.o)
.text.libgcc.fmul
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(_clear_bss.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(_ctors.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(_ctors.o)
.text.libgcc.mul
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(_ctors.o)
.text.libgcc.div
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(_ctors.o)
.text.libgcc 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(_ctors.o)
.text.libgcc.prologue
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(_ctors.o)
.text.libgcc.builtins
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(_ctors.o)
.text.libgcc.fmul
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(_ctors.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(_umulhisi3.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(_umulhisi3.o)
.text.libgcc.div
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(_umulhisi3.o)
.text.libgcc 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(_umulhisi3.o)
.text.libgcc.prologue
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(_umulhisi3.o)
.text.libgcc.builtins
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(_umulhisi3.o)
.text.libgcc.fmul
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(_umulhisi3.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(_tablejump.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(_tablejump.o)
.text.libgcc.mul
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(_tablejump.o)
.text.libgcc.div
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(_tablejump.o)
.text.libgcc.prologue
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(_tablejump.o)
.text.libgcc.builtins
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(_tablejump.o)
.text.libgcc.fmul
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(_tablejump.o)
Memory Configuration Memory Configuration
@ -138,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 0xb0 .text 0x00000000 0x6c4
*(.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
@ -158,73 +234,98 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8
*(.lowtext*) *(.lowtext*)
0x00000068 __ctors_start = . 0x00000068 __ctors_start = .
*(.ctors) *(.ctors)
0x00000068 __ctors_end = . .ctors 0x00000068 0x2 Door.o
0x00000068 __dtors_start = . 0x0000006a __ctors_end = .
0x0000006a __dtors_start = .
*(.dtors) *(.dtors)
0x00000068 __dtors_end = . 0x0000006a __dtors_end = .
SORT(*)(.ctors) SORT(*)(.ctors)
SORT(*)(.dtors) SORT(*)(.dtors)
*(.init0) *(.init0)
.init0 0x00000068 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 .init0 0x0000006a 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
0x00000068 __init 0x0000006a __init
*(.init0) *(.init0)
*(.init1) *(.init1)
*(.init1) *(.init1)
*(.init2) *(.init2)
.init2 0x00000068 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/../../../../avr/lib/avr5/crtm168a.o .init2 0x0000006a 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/../../../../avr/lib/avr5/crtm168a.o
*(.init2) *(.init2)
*(.init3) *(.init3)
*(.init3) *(.init3)
*(.init4) *(.init4)
.init4 0x00000076 0x16 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)
0x00000076 __do_copy_data
.init4 0x0000008c 0x10 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)
0x0000008c __do_clear_bss
*(.init4) *(.init4)
*(.init5) *(.init5)
*(.init5) *(.init5)
*(.init6) *(.init6)
.init6 0x0000009c 0x16 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)
0x0000009c __do_global_ctors
*(.init6) *(.init6)
*(.init7) *(.init7)
*(.init7) *(.init7)
*(.init8) *(.init8)
*(.init8) *(.init8)
*(.init9) *(.init9)
.init9 0x00000074 0x8 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 .init9 0x000000b2 0x8 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
*(.init9) *(.init9)
*(.text) *(.text)
.text 0x0000007c 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
0x0000007c __vector_22 0x000000ba __vector_22
0x0000007c __vector_1 0x000000ba __vector_1
0x0000007c __vector_24 0x000000ba __vector_24
0x0000007c __vector_12 0x000000ba __vector_12
0x0000007c __bad_interrupt 0x000000ba __bad_interrupt
0x0000007c __vector_6 0x000000ba __vector_6
0x0000007c __vector_3 0x000000ba __vector_3
0x0000007c __vector_23 0x000000ba __vector_23
0x0000007c __vector_25 0x000000ba __vector_25
0x0000007c __vector_11 0x000000ba __vector_11
0x0000007c __vector_13 0x000000ba __vector_13
0x0000007c __vector_17 0x000000ba __vector_17
0x0000007c __vector_19 0x000000ba __vector_19
0x0000007c __vector_7 0x000000ba __vector_7
0x0000007c __vector_5 0x000000ba __vector_5
0x0000007c __vector_4 0x000000ba __vector_4
0x0000007c __vector_9 0x000000ba __vector_9
0x0000007c __vector_2 0x000000ba __vector_2
0x0000007c __vector_21 0x000000ba __vector_21
0x0000007c __vector_15 0x000000ba __vector_15
0x0000007c __vector_8 0x000000ba __vector_8
0x0000007c __vector_14 0x000000ba __vector_14
0x0000007c __vector_10 0x000000ba __vector_10
0x0000007c __vector_16 0x000000ba __vector_16
0x0000007c __vector_18 0x000000ba __vector_18
0x0000007c __vector_20 0x000000ba __vector_20
0x00000080 . = ALIGN (0x2) 0x000000be . = ALIGN (0x2)
*(.text.*) *(.text.*)
.text.main 0x00000080 0x2c Door.o .text._Z8read8bitv
0x00000080 main 0x000000be 0x4a Door.o
0x000000ac . = ALIGN (0x2) 0x000000be _Z8read8bitv
.text._Z7recievev
0x00000108 0x43e Door.o
0x00000108 _Z7recievev
.text.main 0x00000546 0x9e Door.o
0x00000546 main
.text._ZN4UartILm9600EEC2Ev
0x000005e4 0x5e Door.o
0x000005e4 _ZN4UartILm9600EEC1Ev
0x000005e4 _ZN4UartILm9600EEC2Ev
.text._GLOBAL__sub_I_Serial
0x00000642 0x5a Door.o
.text.libgcc.mul
0x0000069c 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)
0x0000069c __umulhisi3
.text.libgcc 0x000006b4 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)
0x000006b4 __tablejump2__
0x000006b8 __tablejump__
0x000006c0 . = ALIGN (0x2)
*(.fini9) *(.fini9)
.fini9 0x000000ac 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 0x000006c0 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)
0x000000ac _exit 0x000006c0 _exit
0x000000ac exit 0x000006c0 exit
*(.fini9) *(.fini9)
*(.fini8) *(.fini8)
*(.fini8) *(.fini8)
@ -243,39 +344,55 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8
*(.fini1) *(.fini1)
*(.fini1) *(.fini1)
*(.fini0) *(.fini0)
.fini0 0x000000ac 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 0x000006c0 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)
0x000000b0 _etext = . 0x000006c4 _etext = .
.data 0x00800100 0x0 load address 0x000000b0 .data 0x00800100 0x8a load address 0x000006c4
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
.data 0x00800100 0x0 Door.o .data 0x00800100 0x0 Door.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(_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(_umulhisi3.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*) *(.data*)
*(.rodata) *(.rodata)
*(.rodata*) *(.rodata*)
.rodata.str1.1
0x00800100 0x89 Door.o
0x8c (size before relaxing)
*(.gnu.linkonce.d*) *(.gnu.linkonce.d*)
0x00800100 . = ALIGN (0x2) 0x0080018a . = ALIGN (0x2)
0x00800100 _edata = . *fill* 0x00800189 0x1
0x00800100 PROVIDE (__data_end, .) 0x0080018a _edata = .
0x0080018a PROVIDE (__data_end, .)
.bss 0x00800100 0x0 .bss 0x0080018a 0x195
0x00800100 PROVIDE (__bss_start, .) 0x0080018a PROVIDE (__bss_start, .)
*(.bss) *(.bss)
.bss 0x0080018a 0x195 Door.o
0x0080018a currentpulse
0x0080018b pulses
0x0080031b comp
0x0080031c led
0x0080031d stripe
0x0080031e Serial
*(.bss*) *(.bss*)
*(COMMON) *(COMMON)
0x00800100 PROVIDE (__bss_end, .) 0x0080031f PROVIDE (__bss_end, .)
0x000000b0 __data_load_start = LOADADDR (.data) 0x000006c4 __data_load_start = LOADADDR (.data)
0x000000b0 __data_load_end = (__data_load_start + SIZEOF (.data)) 0x0000074e __data_load_end = (__data_load_start + SIZEOF (.data))
.noinit 0x00800100 0x0 .noinit 0x0080031f 0x0
0x00800100 PROVIDE (__noinit_start, .) 0x0080031f PROVIDE (__noinit_start, .)
*(.noinit*) *(.noinit*)
0x00800100 PROVIDE (__noinit_end, .) 0x0080031f PROVIDE (__noinit_end, .)
0x00800100 _end = . 0x0080031f _end = .
0x00800100 PROVIDE (__heap_start, .) 0x0080031f PROVIDE (__heap_start, .)
.eeprom 0x00810000 0x0 .eeprom 0x00810000 0x0
*(.eeprom*) *(.eeprom*)
@ -333,38 +450,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 0x20 .debug_aranges 0x00000000 0x50
*(.debug_aranges) *(.debug_aranges)
.debug_aranges .debug_aranges
0x00000000 0x20 Door.o 0x00000000 0x50 Door.o
.debug_pubnames .debug_pubnames
*(.debug_pubnames) *(.debug_pubnames)
.debug_info 0x00000000 0x11f .debug_info 0x00000000 0x2dfe
*(.debug_info) *(.debug_info)
.debug_info 0x00000000 0x11f Door.o .debug_info 0x00000000 0x2dfe Door.o
*(.gnu.linkonce.wi.*) *(.gnu.linkonce.wi.*)
.debug_abbrev 0x00000000 0xcf .debug_abbrev 0x00000000 0x44d
*(.debug_abbrev) *(.debug_abbrev)
.debug_abbrev 0x00000000 0xcf Door.o .debug_abbrev 0x00000000 0x44d Door.o
.debug_line 0x00000000 0x184 .debug_line 0x00000000 0x63c
*(.debug_line) *(.debug_line)
.debug_line 0x00000000 0x184 Door.o .debug_line 0x00000000 0x63c Door.o
.debug_frame 0x00000000 0x24 .debug_frame 0x00000000 0xe4
*(.debug_frame) *(.debug_frame)
.debug_frame 0x00000000 0x24 Door.o .debug_frame 0x00000000 0xe4 Door.o
.debug_str 0x00000000 0xd4 .debug_str 0x00000000 0xc33
*(.debug_str) *(.debug_str)
.debug_str 0x00000000 0xd4 Door.o .debug_str 0x00000000 0xc33 Door.o
0x108 (size before relaxing) 0xc92 (size before relaxing)
.debug_loc .debug_loc 0x00000000 0xcd8
*(.debug_loc) *(.debug_loc)
.debug_loc 0x00000000 0xcd8 Door.o
.debug_macinfo .debug_macinfo
*(.debug_macinfo) *(.debug_macinfo)
@ -372,9 +490,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 0x10 .debug_ranges 0x00000000 0x4a8
*(.debug_ranges) *(.debug_ranges)
.debug_ranges 0x00000000 0x10 Door.o .debug_ranges 0x00000000 0x4a8 Door.o
.debug_macro .debug_macro
*(.debug_macro) *(.debug_macro)

View File

@ -1,13 +1,120 @@
S00C0000446F6F722E7372656384 S00C0000446F6F722E7372656384
S11300000C9434000C943E000C943E000C943E007E S11300000C9435000C945D000C945D000C945D0020
S11300100C943E000C943E000C943E000C943E0064 S11300100C945D000C945D000C945D000C945D00E8
S11300200C943E000C943E000C943E000C943E0054 S11300200C945D000C945D000C945D000C945D00D8
S11300300C943E000C943E000C943E000C943E0044 S11300300C945D000C945D000C945D000C945D00C8
S11300400C943E000C943E000C943E000C943E0034 S11300400C945D000C945D000C945D000C945D00B8
S11300500C943E000C943E000C943E000C943E0024 S11300500C945D000C945D000C945D000C945D00A8
S11300600C943E000C943E0011241FBECFEFD4E04C S11300600C945D000C945D00210311241FBECFEF9E
S1130070DEBFCDBF0E9440000C9456000C940000DB S1130070D4E0DEBFCDBF11E0A0E0B1E0E4ECF6E0F7
S113008084B1836084B9289A21E092E085B1822703 S113008002C005900D92AA38B107D9F723E0AAE877
S113009085B985B1892785B93FE744E88EE13150B8 S1130090B1E001C01D92AF31B207E1F710E0CAE64A
S11300A040408040E1F700C00000F0CFF894FFCF5B S11300A0D0E004C02297FE010E945C03C836D10749
S11300B0C9F70E94A3020C9460030C94000020E092
S11300C030E080E061E070E04A99FECF289AE7EBE7
S11300D0FBE03197F1F700C000004A9908C0AB017A
S11300E0022E02C0440F551F0A94E2F7842B4A9B48
S11300F0FECF2898F2E4FA95F1F700C02F5F3F4F46
S11301002830310509F708951F93CF93DF934A9957
S113011016C28FE19EE40197F1F700C000004A99EE
S11301200EC24A9BFECF0E945F00182F0E945F0000
S11301300E945F00482FC82FD0E0E0ECF0E08081FF
S113014085FFFDCF80E38093C60060E070E0CB01C3
S11301509695879596958795969587959C01220FF8
S1130160331F880F991F880F991F880F991F820FBB
S1130170931F681B790B605DE0ECF0E0808185FFE4
S1130180FDCF6093C6009E01369527953695279539
S1130190ABE7B4E10E944E0396958795805DE0EC51
S11301A0F0E0908195FFFDCF8093C6009E01ADECF9
S11301B0BCEC0E944E03FC01F695E795F695E79595
S11301C0F695E7959F010E944E039695879596951F
S11301D08795969587959C01220F331F880F991F49
S11301E0880F991F880F991F820F931FE81BF90B23
S11301F09E2F905DE0ECF0E0808185FFFDCF909331
S1130200C6009E01ADECBCEC0E944E03969587950A
S113021096958795969587959C01220F331F880F95
S1130220991F880F991F880F991F820F931FC81B4E
S1130230D90BC05DE0ECF0E0808185FFFDCFC09379
S1130240C600A4E5B1E090E2E0ECF0E0C6ECD0E05A
S1130250808185FFFDCF98839D919111F9CFE0ECCA
S1130260F0E0808185FFFDCF8DE08093C600E0EC57
S1130270F0E0808185FFFDCF8AE08093C6001111F4
S11302805EC14F3E09F05BC10E945F00182F0E94BF
S11302905F00482FABE5B1E022E5E0ECF0E0C6EC0E
S11302A0D0E0908195FFFDCF28832D912111F9CFC6
S11302B0E0ECF0E0908195FFFDCF8DE08093C600E7
S11302C0E0ECF0E0908195FFFDCF8AE08093C600DA
S11302D0E0ECF0E0808185FFFDCFC12FD0E080E32A
S11302E08093C60060E070E0CB0196958795969563
S11302F08795969587959C01220F331F880F991F28
S1130300880F991F880F991F820F931F681B790B01
S1130310605DE0ECF0E0808185FFFDCF6093C60076
S11303209E013695279536952795ABE7B4E10E9453
S11303304E0396958795805DE0ECF0E0908195FF03
S1130340FDCF8093C6009E01ADECBCEC0E944E0331
S1130350FC01F695E795F695E795F695E7959F01E7
S11303600E944E03969587959695879596958795C1
S11303709C01220F331F880F991F880F991F880F24
S1130380991F820F931FE81BF90B9E2F905DE0ECE1
S1130390F0E0808185FFFDCF9093C6009E01ADEC17
S11303A0BCEC0E944E0396958795969587959695F5
S11303B087959C01220F331F880F991F880F991F5F
S11303C0880F991F820F931FC81BD90BC05DE0ECE7
S11303D0F0E0808185FFFDCFC093C600A6E6B1E0C2
S11303E090E2E0ECF0E0C6ECD0E0808185FFFDCF48
S11303F098839D919111F9CF50E0E0ECF0E0808179
S113040085FFFDCF80E38093C60060E070E0CB0100
S11304109695879596958795969587959C01220F35
S1130420331F880F991F880F991F880F991F820FF8
S1130430931F681B790B605DE0ECF0E0808185FF21
S1130440FDCF6093C6009A0136952795369527957A
S1130450ABE7B4E10E944E0396958795805DE0EC8E
S1130460F0E0908195FFFDCF8093C6009A01ADEC3A
S1130470BCEC0E944E03FC01F695E795F695E795D2
S1130480F695E7959F010E944E039695879596955C
S11304908795969587959C01220F331F880F991F86
S11304A0880F991F880F991F820F931FE81BF90B60
S11304B09E2F905DE0ECF0E0808185FFFDCF90936E
S11304C0C6009A01ADECBCEC0E944E03969587954C
S11304D096958795969587959C01220F331F880FD3
S11304E0991F880F991F880F991F820F931F481B0C
S11304F0590B405DE0ECF0E0808185FFFDCF409337
S1130500C600AFE6B1E090E2E0ECF0E0C6ECD0E08B
S1130510808185FFFDCF98839D919111F9CFE0EC07
S1130520F0E0808185FFFDCF8DE08093C600E0EC94
S1130530F0E0808185FFFDCF8AE08093C600DF91E3
S1130540CF911F910895789482E390E026E731E0FB
S1130550E0ECF0E0A6ECB0E07DE06AE011C04081A0
S113056045FFFDCF5C9359915111F9CF408145FF6F
S1130570FDCF7C93408145FFFDCF6C93019719F02B
S1130580E90157E4ECCF299AC0ECD0E006EC10E086
S11305900F2EFEE2DF2EF02D0F2EFDE0EF2EF02DBC
S11305A00F2EFAE0FF2EF02D4A99FECF0E94840010
S11305B0888185FFFDCFF801D082888185FFFDCF3A
S11305C0F801E082888185FFFDCFF801F082FFEF1A
S11305D024E38CE0F15020408040E1F700C00000AB
S11305E02898E2CFCF93DF93789481E88093C40076
S11305F01092C00088E08093C10086E08093C2001E
S1130600AFE7B1E095E5E0ECF0E0C6ECD0E0808146
S113061085FFFDCF98839D919111F9CFE0ECF0E037
S1130620808185FFFDCF8DE08093C600E0ECF0E093
S1130630808185FFFDCF8AE08093C600DF91CF9152
S113064008958EE193E00E94F202559A539A239AF8
S113065081E284BD81E085BD16BC1092B60091EAAA
S11306609093B0008093B1001092B20010926E008B
S11306701092700018BC1092B4001092B300209A2B
S1130680219A2898299856985E9857985F9810BE92
S113069010927B0083E080937F000895A29FB001B5
S11306A0B39FC001A39F01D0B29F700D811D11247F
S11306B0911D0895EE0FFF1F0590F491E02D09940C
S10706C0F894FFCFD8
S11306C40A0D0A0D52656365697665643A200A0D5C
S11306D44F464620094F4E00696E7420495273698F
S11306E4676E616C5B5D203D207B002F2F204F469D
S11306F4462C204F4E2028696E2031302773206FFA
S113070466206D6963726F7365636F6E6473290029
S11307147D3B002031427974650052656164204454
S11307246174613A002048427974652C2000204C9D
S1130734427974650047656C6164656E2100556196
S10D0744727420646F6E65210000DA
S9030000FC S9030000FC

View File

@ -31,7 +31,9 @@ OUTPUT_FILE_DEP:=
LIB_DEP:= LIB_DEP:=
# Every subdirectory with source files must be described here # Every subdirectory with source files must be described here
SUBDIRS := SUBDIRS := \
../io \
../io/hardware
# Add inputs and outputs from these tool invocations to the build variables # Add inputs and outputs from these tool invocations to the build variables

0
Door/Debug/io/hardware/.gitignore vendored Normal file
View File

View File

@ -5,75 +5,189 @@
* Author: netz * Author: netz
*/ */
#define F_CPU 20000000 #include "peripheral.h"
#include <avr/io.h>
#include <util/delay.h> #include <util/delay.h>
/*void Init_AIN() uartclass Serial;
{ stripeclass stripe;
// Analog Comparator initialization ledclass led;
// Analog Comparator: On compclass comp;
// The Analog Comparator's positive input is //intclass ir;
// connected to the AIN0 pin
// The Analog Comparator's negative input is
// connected to the AIN1 pin
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=(0<<ACD) | (0<<ACBG) | (0<<ACO) | (0<<ACI) | (0<<ACIE) | (0<<ACIC) | (0<<ACIS1) | (0<<ACIS0);
// Digital input buffer on AIN0: Off
// Digital input buffer on AIN1: Off
DIDR=(1<<AIN0D) | (1<<AIN1D);
}*/
/*void Init_Output() // the maximum pulse we'll listen for - 65 milliseconds is a long time
{ #define MAXPULSE 30000
DDRB |= (1<<PINB2);
DDRD |= (1<<PIND5);
}*/
/*void Init_Timer() // 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()
{ {
// Timer/Counter 0 initialization while(1) {
// Clock source: System Clock uint16_t highpulse, lowpulse; // temporary storage timing
// Clock value: 8000,000 kHz highpulse = lowpulse = 0; // start out with no pulse length
// Mode: Phase correct PWM top=0xFF while (!(PIND & (1<<PIND2))) {
// OC0A output: Non-Inverted PWM // pin is still LOW
// OC0B output: Inverted PWM lowpulse++;
// Timer Period: 0,06375 ms _delay_us(RESOLUTION);
// Output Pulse(s): if ((lowpulse >= MAXPULSE) && (currentpulse != 0)) {
// OC0A Period: 0,06375 ms Width: 0,25 us printpulses();
// OC0B Period: 0,06375 ms Width: 0,06325 ms return;
TCCR0A=(1<<COM0A1) | (0<<COM0A0) | (1<<COM0B1) | (1<<COM0B0) | (0<<WGM01) | (1<<WGM00); }
TCCR0B=(0<<WGM02) | (0<<CS02) | (0<<CS01) | (1<<CS00); }
TCNT0=0x00; pulses[currentpulse][1] = lowpulse;
OCR0A=0x00;
OCR0B=0x00; 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++)
{
while (PIND & (1<<PIND2)) {}
led.red(1);
_delay_us(600);
if(!(PIND & (1<<PIND2))) {
r |= (1<<i);
}
while (!(PIND & (1<<PIND2))) {}
led.red(0);
_delay_us(10);
}
return r;
}
void recieve()
{
if(PIND & (1<<PIND2)) { //Is High, Abbort
return;
}
_delay_ms(4); //Wait 4ms
if(PIND & (1<<PIND2)) { //Is High, Abbort
return;
}
while (!(PIND & (1<<PIND2))) {} //Wait for the rest of the init.
uint8_t a = read8bit();
read8bit();
uint8_t b = read8bit();
Serial.printDec(0x0000|b); Serial.println(" 1Byte");
if(a != 0) { //Is first Byte not 0 Abbort;
return;
}
if(b != 239) { //Is second byte not 239 Abbort;
return;
}
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;
}
int main(void) int main(void)
{ {
//Init_AIN(); sei();
//Init_Output(); /*uint8_t status = 0;
//Init_Timer(); uint8_t gr = 0xFF;
DDRB |= (1<<PINB0) | (1<<PINB1); uint8_t re = 0x00;*/
PORTB |= (1<<PINB0); for(int i=0;i<50;i++) {
Serial.println("Geladen!");
}
led.green(1);
while(1) while(1)
{ {
PORTB ^= (1<<PINB0); while(PIND & (1<<PIND2)) {};
PORTB ^= (1<<PINB1); recieve();
_delay_ms(500); //currentpulse=0;
/*if(ACSR & (1<<ACO)) { //loop();
if(OCR0A != 0) { Serial.println(".");
OCR0A--; _delay_ms(200);
OCR0B--; led.red(0);
_delay_ms(1); //_delay_ms(50);
}
} else {
if(OCR0A != 0xFF) {
OCR0A++;
OCR0B++;
_delay_ms(6);
}
}*/
} }
} }
/*ISR(INT0_vect) {
led.red(1);
}*/
/*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);*/
/*stripe.color(re, gr, 0);
if(comp.is_active()) {
if(status == 0) {
status = 1;
Serial.println("Tür Zu...");
}
if(gr != 0) {
gr--;
re++;
_delay_ms(6);
}
} else {
if(status == 1) {
status = 0;
Serial.println("Tür Offen...");
}
if(gr != 0xFF) {
gr++;
re--;
_delay_ms(2);
}
}*/

View File

@ -157,6 +157,37 @@
<Compile Include="Door.cpp"> <Compile Include="Door.cpp">
<SubType>compile</SubType> <SubType>compile</SubType>
</Compile> </Compile>
<Compile Include="io\Comperator.hpp">
<SubType>compile</SubType>
</Compile>
<Compile Include="io\hardware\pin.hpp">
<SubType>compile</SubType>
</Compile>
<Compile Include="io\hardware\portb.hpp">
<SubType>compile</SubType>
</Compile>
<Compile Include="io\hardware\portd.hpp">
<SubType>compile</SubType>
</Compile>
<Compile Include="io\Interrupt.hpp">
<SubType>compile</SubType>
</Compile>
<Compile Include="io\Stripe.hpp">
<SubType>compile</SubType>
</Compile>
<Compile Include="io\Led.hpp">
<SubType>compile</SubType>
</Compile>
<Compile Include="io\uart.hpp">
<SubType>compile</SubType>
</Compile>
<Compile Include="peripheral.h">
<SubType>compile</SubType>
</Compile>
</ItemGroup>
<ItemGroup>
<Folder Include="io" />
<Folder Include="io\hardware" />
</ItemGroup> </ItemGroup>
<Import Project="$(AVRSTUDIO_EXE_PATH)\\Vs\\Compiler.targets" /> <Import Project="$(AVRSTUDIO_EXE_PATH)\\Vs\\Compiler.targets" />
</Project> </Project>

47
Door/io/Comperator.hpp Normal file
View File

@ -0,0 +1,47 @@
/*
* Comperator.hpp
*
* Created: 17.11.2014 23:50:04
* Author: netz
*/
#ifndef COMPERATOR_H_
#define COMPERATOR_H_
#include "hardware/pin.hpp"
template <typename Port, int pin_ain0, int pin_ain1>
class Comperator {
public:
Comperator() {
init();
}
uint8_t is_active() {
return ACSR & (1<<ACO);
}
private:
void init() {
comppin0::make_input();
comppin1::make_input();
init_comperator();
}
void init_comperator() {
// Analog Comparator initialization
// Analog Comparator: On
// The Analog Comparator's positive input is
// connected to the AIN0 pin
// The Analog Comparator's negative input is
// connected to the AIN1 pin
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=(0<<ACD) | (0<<ACBG) | (0<<ACO) | (0<<ACI) | (0<<ACIE) | (0<<ACIC) | (0<<ACIS1) | (0<<ACIS0);
ADCSRB=(0<<ACME);
// Digital input buffer on AIN0: Off
// Digital input buffer on AIN1: Off
DIDR1=(1<<AIN0D) | (1<<AIN1D);
}
const typedef avrlib::pin<Port, pin_ain0> comppin0;
const typedef avrlib::pin<Port, pin_ain1> comppin1;
};
#endif /* COMPERATOR_H_ */

42
Door/io/Interrupt.hpp Normal file
View File

@ -0,0 +1,42 @@
/*
* 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_ */

47
Door/io/Led.hpp Normal file
View File

@ -0,0 +1,47 @@
/*
* Led.h
*
* Created: 03.11.2013 17:11:58
* Author: BlubbFish
*/
#ifndef LED_H_
#define LED_H_
#include "hardware/pin.hpp"
template <typename Port, int pin_red, int pin_green>
class Led {
public:
Led() {
init();
}
void red(uint8_t r) {
if(r==1) {
ledred::set();
} else {
ledred::clear();
}
}
void green(uint8_t g) {
if(g==1) {
ledgreen::set();
} else {
ledgreen::clear();
}
}
void off() {
ledred::clear();
ledgreen::clear();
}
private:
void init() {
ledred::make_output();
ledgreen::make_output();
off();
}
const typedef avrlib::pin<Port, pin_red> ledred;
const typedef avrlib::pin<Port, pin_green> ledgreen;
};
#endif /* LED_H_ */

82
Door/io/Stripe.hpp Normal file
View File

@ -0,0 +1,82 @@
/*
* Led.h
*
* Created: 03.11.2013 17:11:58
* Author: BlubbFish
*/
#ifndef STRIPE_H_
#define STRIPE_H_
#include "hardware/pin.hpp"
template <typename PortR, int pin_red, typename PortG, int pin_green, typename PortB, int pin_blue>
class Stripe {
public:
Stripe() {
init();
}
void color(uint8_t r, uint8_t g, uint8_t b) {
OCR0B=r; //ROT
OCR2B=g; //GRÜN
OCR2A=b; //BLAU
}
void setcolor(uint8_t mask) {
(mask & (1<<0)) ? OCR2A=0xFF : OCR2A=0x00;
(mask & (1<<1)) ? OCR2B=0xFF : OCR2B=0x00;
(mask & (1<<2)) ? OCR0B=0xFF : OCR0B=0x00;
}
static const uint8_t BLACK = 0;
static const uint8_t BLUE = 1;
static const uint8_t GREEN = 2;
static const uint8_t CYAN = 3;
static const uint8_t RED = 4;
static const uint8_t MAGENTA = 5;
static const uint8_t YELLOW = 6;
static const uint8_t WHITE = 7;
private:
void init() {
stripered::make_output();
stripegreen::make_output();
stripeblue::make_output();
initTimer();
color(0, 0, 0);
}
void uninit();
void initTimer() {
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: 8000,000 kHz
// Mode: Phase correct PWM top=0xFF
// OC0A output: Disconnected
// OC0B output: Non-Inverted PWM
// Timer Period: 0,06375 ms
// Output Pulse(s):
// OC0B Period: 0,06375 ms Width: 0 us
TCCR0A=(0<<COM0A1) | (0<<COM0A0) | (1<<COM0B1) | (0<<COM0B0) | (0<<WGM01) | (1<<WGM00);
TCCR0B=(0<<WGM02) | (0<<CS02) | (0<<CS01) | (1<<CS00);
TCNT0=0x00;
// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: 8000,000 kHz
// Mode: Phase correct PWM top=0xFF
// OC2A output: Non-Inverted PWM
// OC2B output: Non-Inverted PWM
// Timer Period: 0,06375 ms
// Output Pulse(s):
// OC2A Period: 0,06375 ms Width: 0 us
// OC2B Period: 0,06375 ms Width: 0 us
ASSR=(0<<EXCLK) | (0<<AS2);
TCCR2A=(1<<COM2A1) | (0<<COM2A0) | (1<<COM2B1) | (0<<COM2B0) | (0<<WGM21) | (1<<WGM20);
TCCR2B=(0<<WGM22) | (0<<CS22) | (0<<CS21) | (1<<CS20);
TCNT2=0x00;
// Timer/Counter 0 Interrupt(s) initialization
TIMSK0=(0<<OCIE0B) | (0<<OCIE0A) | (0<<TOIE0);
// Timer/Counter 2 Interrupt(s) initialization
TIMSK2=(0<<OCIE2B) | (0<<OCIE2A) | (0<<TOIE2);
}
const typedef avrlib::pin<PortR, pin_red> stripered;
const typedef avrlib::pin<PortG, pin_green> stripegreen;
const typedef avrlib::pin<PortB, pin_blue> stripeblue;
};
#endif /* STRIPE_H_ */

50
Door/io/hardware/pin.hpp Normal file
View File

@ -0,0 +1,50 @@
#ifndef AVRLIB_PIN_HPP
#define AVRLIB_PIN_HPP
#include <avr/io.h>
namespace avrlib {
template <typename Port, uint8_t Pin>
struct pin
{
static void set(bool value = true)
{
if (value)
Port::port(Port::port() | (1<<Pin));
else
Port::port(Port::port() & ~(1<<Pin));
}
static void clear() { set(false); }
static void toggle() { Port::port(Port::port() ^ (1<<Pin)); }
static bool get() { return (Port::port() & (1<<Pin)) != 0; }
static bool value() { return (Port::pin() & (1<<Pin)) != 0; }
static void output(bool value)
{
if (value)
Port::dir(Port::dir() | (1<<Pin));
else
Port::dir(Port::dir() & ~(1<<Pin));
}
static bool output() { return (Port::dir() & (1<<Pin)) != 0; }
static void make_output() { output(true); }
static void make_input() { output(false); clear(); }
static void make_low() { clear(); output(true); }
static void make_high() { set(); output(true); }
static void set_value(bool value) { set(value); }
static void set_high() { set(true); }
static void set_low() { set(false); }
static bool read() { return value(); }
static void pullup() { set_high(); }
};
}
#endif

View File

@ -0,0 +1,22 @@
#ifndef AVRLIB_PORTB_HPP
#define AVRLIB_PORTB_HPP
#include <avr/io.h>
namespace avrlib {
struct portb
{
static uint8_t port() { return PORTB; }
static void port(uint8_t v) { PORTB = v; }
static uint8_t pin() { return PINB; }
static void pin(uint8_t v) { PINB = v; }
static uint8_t dir() { return DDRB; }
static void dir(uint8_t v) { DDRB = v; }
};
}
#endif

View File

@ -0,0 +1,22 @@
#ifndef AVRLIB_PORTD_HPP
#define AVRLIB_PORTD_HPP
#include <avr/io.h>
namespace avrlib {
struct portd
{
static uint8_t port() { return PORTD; }
static void port(uint8_t v) { PORTD = v; }
static uint8_t pin() { return PIND; }
static void pin(uint8_t v) { PIND = v; }
static uint8_t dir() { return DDRD; }
static void dir(uint8_t v) { DDRD = v; }
};
}
#endif

60
Door/io/uart.hpp Normal file
View File

@ -0,0 +1,60 @@
/*
* Rs232.h
*
* Created: 04.11.2013 21:31:09
* Author: netz
*/
#ifndef RS232_H_
#define RS232_H_
#include <avr/io.h>
#include <avr/interrupt.h>
template <uint32_t baudrate>
class Uart {
public:
Uart() {
sei();
init();
println("Uart done!");
}
void print(const char *text) {
while (*text)
{
uart_putchar(*text);
text++;
}
}
void printDec(uint16_t wert) {
print((wert/10000)+'0');
print(((wert/1000)%10)+'0');
print(((wert/100)%10)+'0');
print(((wert/10)%10)+'0');
print((wert%10)+'0');
}
void println(const char *text) {
print(text);
print("\r");
print("\n");
}
void print(uint8_t wert) {
uart_putchar(wert);
}
private:
void init() {
UBRR0L = (F_CPU / (baudrate * 16L) - 1); //Teiler wird gesetzt
UCSR0A= (0<<RXC0) | (0<<TXC0) | (0<<UDRE0) | (0<<FE0) | (0<<DOR0) | (0<<UPE0) | (0<<U2X0) | (0<<MPCM0);
UCSR0B= (0<<RXCIE0) | (0<<TXCIE0) | (0<<UDRIE0) | (0<<RXEN0) | (1<<TXEN0) | (0<<UCSZ02) | (0<<RXB80) | (0<<TXB80); //Enable TXEN im Register UCR TX-Data Enable
UCSR0C= (0<<UMSEL01) | (0<<UMSEL00) | (0<<UPM01) | (0<<UPM00) | (0<<USBS0) | (1<<UCSZ01) | (1<<UCSZ00) | (0<<UCPOL0); //8N1
}
uint8_t uart_putchar(uint8_t c) {
loop_until_bit_is_set(UCSR0A, UDRE0); //Ausgabe des Zeichens
UDR0 = c;
return 0;
}
};
#endif /* RS232_H_ */

35
Door/peripheral.h Normal file
View File

@ -0,0 +1,35 @@
/*
* peripheral.h
*
* Created: 07.05.2014 14:02:16
* Author: netz
*/
#ifndef PERIPHERAL_H_
#define PERIPHERAL_H_
#define F_CPU 20000000
#include "io/hardware/portb.hpp"
#include "io/hardware/portd.hpp"
//OCR0B rot PD5, OCR2B grün PD3, OCR2A blau PB3
#include "io/Stripe.hpp"
typedef Stripe<avrlib::portd, PIND5, avrlib::portd, PIND3, avrlib::portb, PINB3> stripeclass;
#include "io/Led.hpp"
typedef Led<avrlib::portb, PINB0, PINB1> ledclass;
#include "io/Comperator.hpp"
typedef Comperator<avrlib::portd, PIND6, PIND7> compclass;
/*#include "io/Interrupt.hpp"
typedef Interrupt<avrlib::portd, PIND2> intclass;*/
#include "io/uart.hpp"
typedef Uart<9600> uartclass;
#endif /* PERIPHERAL_H_ */