diff --git a/button_debounce/.dep/main.o.d b/button_debounce/.dep/main.o.d deleted file mode 100644 index bb552d1..0000000 --- a/button_debounce/.dep/main.o.d +++ /dev/null @@ -1,62 +0,0 @@ -main.o: main.c \ - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/stdlib.h \ - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/include/stddef.h \ - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/io.h \ - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/sfr_defs.h \ - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/inttypes.h \ - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/include/stdint.h \ - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/stdint.h \ - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/iom328p.h \ - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/portpins.h \ - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/common.h \ - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/version.h \ - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/fuse.h \ - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/lock.h \ - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/stdio.h \ - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/include/stdarg.h \ - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h \ - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h \ - main.h uart.h timer.h \ - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/interrupt.h - -/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/stdlib.h: - -/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/include/stddef.h: - -/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/io.h: - -/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/sfr_defs.h: - -/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/inttypes.h: - -/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/include/stdint.h: - -/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/stdint.h: - -/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/iom328p.h: - -/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/portpins.h: - -/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/common.h: - -/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/version.h: - -/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/fuse.h: - -/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/lock.h: - -/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/stdio.h: - -/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/include/stdarg.h: - -/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h: - -/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h: - -main.h: - -uart.h: - -timer.h: - -/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/interrupt.h: diff --git a/button_debounce/.dep/timer.o.d b/button_debounce/.dep/timer.o.d deleted file mode 100644 index 8989868..0000000 --- a/button_debounce/.dep/timer.o.d +++ /dev/null @@ -1,39 +0,0 @@ -timer.o: timer.c timer.h \ - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/io.h \ - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/sfr_defs.h \ - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/inttypes.h \ - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/include/stdint.h \ - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/stdint.h \ - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/iom328p.h \ - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/portpins.h \ - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/common.h \ - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/version.h \ - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/fuse.h \ - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/lock.h \ - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/interrupt.h - -timer.h: - -/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/io.h: - -/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/sfr_defs.h: - -/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/inttypes.h: - -/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/include/stdint.h: - -/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/stdint.h: - -/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/iom328p.h: - -/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/portpins.h: - -/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/common.h: - -/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/version.h: - -/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/fuse.h: - -/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/lock.h: - -/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/interrupt.h: diff --git a/button_debounce/.dep/uart_async.o.d b/button_debounce/.dep/uart_async.o.d deleted file mode 100644 index 80ddbd7..0000000 --- a/button_debounce/.dep/uart_async.o.d +++ /dev/null @@ -1,49 +0,0 @@ -uart_async.o: uart_async.c \ - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/io.h \ - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/sfr_defs.h \ - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/inttypes.h \ - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/include/stdint.h \ - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/stdint.h \ - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/iom328p.h \ - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/portpins.h \ - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/common.h \ - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/version.h \ - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/fuse.h \ - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/lock.h \ - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/interrupt.h \ - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/stdio.h \ - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/include/stdarg.h \ - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/include/stddef.h \ - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/setbaud.h - -/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/io.h: - -/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/sfr_defs.h: - -/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/inttypes.h: - -/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/include/stdint.h: - -/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/stdint.h: - -/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/iom328p.h: - -/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/portpins.h: - -/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/common.h: - -/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/version.h: - -/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/fuse.h: - -/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/lock.h: - -/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/interrupt.h: - -/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/stdio.h: - -/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/include/stdarg.h: - -/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/include/stddef.h: - -/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/setbaud.h: diff --git a/button_debounce/main.eep b/button_debounce/main.eep deleted file mode 100644 index 1996e8f..0000000 --- a/button_debounce/main.eep +++ /dev/null @@ -1 +0,0 @@ -:00000001FF diff --git a/button_debounce/main.elf b/button_debounce/main.elf deleted file mode 100755 index 606449d..0000000 Binary files a/button_debounce/main.elf and /dev/null differ diff --git a/button_debounce/main.hex b/button_debounce/main.hex deleted file mode 100644 index 67bda7f..0000000 --- a/button_debounce/main.hex +++ /dev/null @@ -1,238 +0,0 @@ -:100000000C9434000C9451000C9451000C94510049 -:100010000C9451000C9451000C9451000C9451001C -:100020000C9451000C9451000C9451000C9451000C -:100030000C9451000C9451000C947B020C945100D0 -:100040000C9451000C9451000C94D7000C9417019F -:100050000C9451000C9451000C9451000C945100DC -:100060000C9451000C94510011241FBECFEFD8E026 -:10007000DEBFCDBF11E0A0E0B1E0EAE7FEE002C0E4 -:1000800005900D92A035B107D9F713E0A0E5B1E0D6 -:1000900001C01D92A63AB107E1F70E945B030C94E0 -:1000A0003B070C940000CF93DF9300D0CDB7DEB7B1 -:1000B0009A838983898190E002C0959587956A9596 -:1000C000E2F781700F900F90DF91CF910895FC01BE -:1000D000208181E090E002C0880F991F6A95E2F7C5 -:1000E000442321F48095822380830895282B208344 -:1000F00008951092510310925003109253031092DE -:100100005203109295031092940310929703109249 -:1001100096031092C50087E68093C40086E0809322 -:10012000C20088E18093C100789408951F93182F2E -:100130008A3019F48DE00E9496002091520330918C -:100140005303C901019660E071E00E9448044091A8 -:100150005003509151038417950781F0F901EE0F78 -:10016000FF1FE05BFE4F1083118290935303809337 -:1001700052038091C10080628093C10080E090E0D2 -:100180001F9108958091940390919503019660E2E8 -:1001900070E00E9448049093950380939403FC01BF -:1001A000EE0FFF1FEC5AFC4F8081918108951F9242 -:1001B0000F920FB60F9211242F933F934F935F939B -:1001C0006F937F938F939F93AF93BF93EF93FF931F -:1001D0002091960330919703C901019660E270E087 -:1001E0000E94480440919403509195038417950709 -:1001F00069F04091C600F901EE0FFF1FEC5AFC4F69 -:10020000408311829093970380939603FF91EF911F -:10021000BF91AF919F918F917F916F915F914F911E -:100220003F912F910F900FBE0F901F9018951F9226 -:100230000F920FB60F9211242F933F935F936F93FA -:100240007F938F939F93AF93BF93EF93FF9380918F -:10025000500390915103019660E071E00E944804C0 -:1002600020915203309153038217930769F0FC01E8 -:10027000EE0FFF1FE05BFE4F20812093C60090939E -:1002800051038093500305C08091C1008F7D8093FE -:10029000C100FF91EF91BF91AF919F918F917F919D -:1002A0006F915F913F912F910F900FBE0F901F9014 -:1002B000189514BC85B5846085BD8EE387BD82E04A -:1002C00080936E00109298031092990310929A03F3 -:1002D00010929B0310929C0310929D0310929E0318 -:1002E00010929F0378948FEF84B90895209198031A -:1002F0003091990340919A0350919B0360919C0324 -:1003000070919D0380919E0390919F0308952F9279 -:100310003F924F925F926F927F928F929F92AF9295 -:10032000BF92CF92DF92EF92FF920F931F93CF93E2 -:10033000DF930F92CDB7DEB780909803709099034A -:1003400060909A0350909B0340909C0330909D03D3 -:1003500020909E0380919F038983282D372D462D61 -:10036000552D642D732D822D998102E00E94E102AA -:10037000F22E132FE42ED52EC62EB72EA82E992E90 -:1003800005E00E94E102B22FBF19F1E02B1708F03F -:10039000F0E0232F211BE1E0321708F0E0E0022F0C -:1003A0000F1B31E0201708F030E0E32B342F3E190B -:1003B00021E0431708F020E0F32EFE1A41E03F153C -:1003C00008F040E0242B452F4D1931E0541708F078 -:1003D00030E0142F121B21E0411708F020E0322BEF -:1003E000462F4C1921E0641708F020E0A42FA31B2E -:1003F00031E04A1708F030E0232B472F4B1931E04A -:10040000741708F030E0E42FE21B21E04E1708F0EB -:1004100020E0322B482F4A1921E0841708F020E011 -:10042000F42FF31B81E04F1708F080E0282B991977 -:10043000921B2B2F280D31E02B1708F030E0700EA7 -:1004400041E0701608F040E0370D81E0371508F004 -:1004500080E0482B6F0C51E06F1408F050E0460D1F -:1004600081E0461508F080E0582B510E61E05116EE -:1004700008F060E0550D81E0551508F080E0682B2C -:100480004A0E71E04A1608F070E0640D81E06415D0 -:1004900008F080E0782B3E0E81E03E1608F080E008 -:1004A000730DE1E0731508F0E0E08E2B2F0EE1E014 -:1004B0002F1608F0E0E0820DF1E0821508F0F0E080 -:1004C000EF2BA9819A0F9E0F03E00E94E1020F908B -:1004D000DF91CF911F910F91FF90EF90DF90CF9020 -:1004E000BF90AF909F908F907F906F905F904F9054 -:1004F0003F902F9008951F920F920FB60F921124E4 -:100500002F933F934F935F936F937F938F939F931B -:10051000AF93EF93FF9316BC4091980330919903EA -:1005200020919A0390919B0380919C03F0919D03ED -:10053000E0919E03A0919F03642F6F5F51E06417C9 -:1005400008F050E0530F41E0531708F040E0420F2D -:1005500031E0421708F030E0390F21E0391708F098 -:1005600020E0280F91E0281708F090E09F0F81E02D -:100570009F1708F080E08E0F71E08E1708F070E092 -:100580007A0F609398035093990340939A033093A2 -:100590009B0320939C0390939D0380939E037093F1 -:1005A0009F03FF91EF91AF919F918F917F916F91F9 -:1005B0005F914F913F912F910F900FBE0F901F9021 -:1005C0001895CF92DF92EF92FF920F93CF93DF9324 -:1005D000CDB7DEB760970FB6F894DEBF0FBECDBFC4 -:1005E000002309F45AC029873A874B875C876D87B7 -:1005F0007E878F87988B80E2801B49855A856B8523 -:100600007C851816B4F019821A821B821C829927E5 -:1006100087FD9095909581959F4F04C0440F551F7D -:10062000661F771F8A95D2F74D835E836F83788725 -:100630002CC06A017B01002E04C0CC0CDD1CEE1C1A -:10064000FF1C0A94D2F7C982DA82EB82FC826A012B -:100650007B0104C0F694E794D794C7948A95D2F7A7 -:10066000D701C6014D855E856F85788904C0440F2A -:10067000551F661F771F0A95D2F7842B952BA62B43 -:10068000B72B8D839E83AF83B88729813A814B81B5 -:100690005C816D817E818F81988560960FB6F8941C -:1006A000DEBF0FBECDBFDF91CF910F91FF90EF90D6 -:1006B000DF90CF900895CF93DF9300D0CDB7DEB712 -:1006C00052985A9A259A0E9459010E94790082E410 -:1006D00091E09093A3038093A20384E391E090932D -:1006E000A1038093A003772400E020E040E0442EA3 -:1006F00041E0542E5BE1252E51E0352E01C0212F23 -:1007000089B189831A82898190E09595879595951D -:100710008795182F1170121759F10E94760149011F -:100720005A016B017C018DB79EB70C970FB6F894F8 -:100730009EBF0FBE8DBFEDB7FEB73196ADB7BEB74A -:1007400012965C924E921197128313828482958244 -:10075000A682B782C086D186E286F3860E946F04A5 -:100760008DB79EB70C960FB6F8949EBF0FBE8DBF87 -:100770000E947601E22FE819F1E02E1708F0F0E070 -:10078000A32FA91921E03A1708F020E03A2F3F1BC8 -:10079000F1E0A31708F0F0E02F2BA42FAA19F1E045 -:1007A0004A1708F0F0E04A2F421B21E0A41708F096 -:1007B00020E0F22BA52FAB1921E05A1708F020E01A -:1007C0005A2F5F1BF1E0A51708F0F0E02F2BA62FA2 -:1007D000AC19F1E06A1708F0F0E06A2F621B21E023 -:1007E000A61708F020E0F22B272F2D19A1E0721791 -:1007F00008F0A0E0722F7F1BF1E0271708F0F0E06F -:10080000AF2BF82FFE1921E08F1708F020E08F2F73 -:100810008A1BA1E0F81708F0A0E02A2B9F19921775 -:1008200071F4882361F4772351F4662341F455234E -:1008300031F4442321F4332311F4EB3008F0012F79 -:10084000071509F45CCFADB7BEB71C970FB6F89487 -:10085000BEBF0FBEADBFEDB7FEB7319612963C924C -:100860002E9211970283138284829582A682B78288 -:10087000C086D186E286F3860E946F048DB79EB74C -:100880000C960FB6F8949EBF0FBE8DBF702E37CF5B -:1008900097FB092E07260AD077FD04D00CD006D08E -:1008A00000201AF4709561957F4F0895F6F79095A2 -:1008B00081959F4F0895AA1BBB1B51E107C0AA1F3A -:1008C000BB1FA617B70710F0A61BB70B881F991FF1 -:1008D0005A95A9F780959095BC01CD010895A0E0A7 -:1008E000B0E0E5E7F4E00C941407FE013596619161 -:1008F00071918091A2039091A303AF010E9484049F -:100900002096E2E00C943007ADE0B0E0EAE8F4E0D5 -:100910000C9404073C017D876C875A01FC01178207 -:100920001682838181FFCAC13FE3C32E2E01089442 -:10093000411C511CF3019381EC85FD8593FD85914C -:1009400093FF8191FD87EC87882309F4B3C1853239 -:1009500041F493FD859193FF8191FD87EC8785326A -:1009600029F490E0B3010E947A06E4CFEE24DD245E -:1009700010E01032B0F48B3269F08C3228F48032FF -:1009800051F0833271F40BC08D3239F0803349F469 -:1009900011602CC01260146029C0186027C010615B -:1009A00025C017FD2EC0282F20532A3098F416FF9B -:1009B00008C08E2D880FE82EEE0CEE0CE80EE20E2D -:1009C00015C08D2D880FD82EDD0CDD0CD80ED20E63 -:1009D00010620CC08E3221F416FD6CC1106406C08A -:1009E0008C3611F4106802C0883659F4EC85FD8508 -:1009F00093FD859193FF8191FD87EC87882309F012 -:100A0000B8CF982F9554933018F09052933030F41B -:100A100024E030E0A20EB31EC9820FC0833631F04D -:100A2000833781F0833509F05AC022C0F5018081F7 -:100A3000898322E030E0A20EB31E21E0E22EF12CE9 -:100A4000420114C092E0292E312C2A0C3B1CF501E6 -:100A50008080918016FF03C06E2D70E002C06FEFA2 -:100A60007FEFC4010E946F067C0151011F7715C002 -:100A700082E0282E312C2A0C3B1CF50180809180CD -:100A800016FF03C06E2D70E002C06FEF7FEFC40150 -:100A90000E9464067C011068510113FD1CC006C051 -:100AA00080E290E0B3010E947A06DA948D2D90E006 -:100AB000E816F906A8F30FC0F40117FD859117FF9A -:100AC00081914F0190E0B3010E947A06D110DA942F -:100AD0000894E108F108E114F10471F7E8C08436E4 -:100AE00011F0893659F5F50117FF07C08081918112 -:100AF000A281B38124E030E009C060817181CB0123 -:100B0000AA2797FDA095BA2F22E030E0A20EB31ECF -:100B1000012F0F76B7FF08C0B095A09590958195ED -:100B20009F4FAF4FBF4F0068BC01CD01A2012AE02B -:100B300030E00E94A606F82EF4183FC0853721F455 -:100B40001F7E2AE030E020C0197F8F36A9F0803761 -:100B500020F4883509F0AEC00BC0803721F088370B -:100B600009F0A8C001C0106114FF09C0146007C0DB -:100B700014FF08C0166006C028E030E005C020E180 -:100B800030E002C020E132E0F50117FF07C06081CC -:100B900071818281938144E050E006C0608171815F -:100BA00080E090E042E050E0A40EB51EA2010E9459 -:100BB000A606F82EF418012F0F7706FF09C00E7F46 -:100BC000FE1430F404FF06C002FD04C00F7E02C014 -:100BD0001F2D01C01E2D802F90E004FF0CC0FE01D0 -:100BE000EF0DF11D2081203311F4097E09C002FFB1 -:100BF00006C01E5F05C086789070009709F01F5FE1 -:100C0000802E992403FD12C000FF0DC0EF2C1D158E -:100C100050F4ED0CE11A1D2D06C080E290E0B30106 -:100C20000E947A061F5F1D15C0F304C01D1510F445 -:100C3000D11A01C0DD2484FE0FC080E390E0B3012F -:100C40000E947A0682FE1FC081FE03C088E590E004 -:100C500010C088E790E00DC0C401867890700097BE -:100C600091F081FC02C080E201C08BE207FD8DE2C1 -:100C700090E0B3010E947A0606C080E390E0B301E1 -:100C80000E947A06EA94FE14C0F3FA94F201EF0D82 -:100C9000F11D808190E0B3010E947A06FF20A9F740 -:100CA00006C080E290E0B3010E947A06DA94DD206B -:100CB000C1F740CEF3018681978102C08FEF9FEF8D -:100CC0002D96E2E10C942007FC01059061507040E4 -:100CD0000110D8F7809590958E0F9F1F0895FC0105 -:100CE0006150704001900110D8F7809590958E0F5B -:100CF0009F1F08950F931F93CF93DF938C01EB01F8 -:100D00008B8181FF1BC082FF0DC02E813F818C81B2 -:100D10009D812817390764F4E881F9810193F983EB -:100D2000E88306C0E885F985802F0995009731F49E -:100D30008E819F8101969F838E8302C00FEF1FEFEC -:100D4000C801DF91CF911F910F910895FA01AA2751 -:100D5000283051F1203181F1E8946F936E7F6E5FFE -:100D60007F4F8F4F9F4FAF4FB1E03ED0B4E03CD0AC -:100D7000670F781F891F9A1FA11D680F791F8A1F8F -:100D8000911DA11D6A0F711D811D911DA11D20D0F6 -:100D900009F468943F912AE0269F11243019305DB0 -:100DA0003193DEF6CF010895462F4770405D4193A1 -:100DB000B3E00FD0C9F7F6CF462F4F70405D4A33EE -:100DC00018F0495D31FD4052419302D0A9F7EACFB6 -:100DD000B4E0A6959795879577956795BA95C9F7E5 -:100DE00000976105710508959B01AC010A2E0694D8 -:100DF0005795479537952795BA95C9F7620F731F91 -:100E0000841F951FA01D08952F923F924F925F92CD -:100E10006F927F928F929F92AF92BF92CF92DF920A -:100E2000EF92FF920F931F93CF93DF93CDB7DEB76F -:100E3000CA1BDB0B0FB6F894DEBF0FBECDBF099403 -:100E40002A88398848885F846E847D848C849B845A -:100E5000AA84B984C884DF80EE80FD800C811B8168 -:100E6000AA81B981CE0FD11D0FB6F894DEBF0FBE97 -:0A0E7000CDBFED010895F894FFCF07 -:100E7A002D2052656164696E6720746F67676C65BF -:100E8A006420256420282564290A002B20537461D4 -:100E9A00746520746F67676C656420256420282553 -:100EAA0064290A0000000001000000000000C200DE -:100EBA000000000000020000000096000000000090 -:00000001FF diff --git a/button_debounce/main.lss b/button_debounce/main.lss deleted file mode 100644 index 3c6c4a3..0000000 --- a/button_debounce/main.lss +++ /dev/null @@ -1,2051 +0,0 @@ - -main.elf: file format elf32-avr - -Sections: -Idx Name Size VMA LMA File off Algn - 0 .data 00000050 00800100 00000e7a 00000f0e 2**0 - CONTENTS, ALLOC, LOAD, DATA - 1 .text 00000e7a 00000000 00000000 00000094 2**1 - CONTENTS, ALLOC, LOAD, READONLY, CODE - 2 .bss 00000256 00800150 00800150 00000f5e 2**0 - ALLOC - 3 .stab 00000c84 00000000 00000000 00000f60 2**2 - CONTENTS, READONLY, DEBUGGING - 4 .stabstr 0000019d 00000000 00000000 00001be4 2**0 - CONTENTS, READONLY, DEBUGGING - 5 .debug_aranges 000001c8 00000000 00000000 00001d88 2**3 - CONTENTS, READONLY, DEBUGGING - 6 .debug_info 0000145e 00000000 00000000 00001f50 2**0 - CONTENTS, READONLY, DEBUGGING - 7 .debug_abbrev 00000983 00000000 00000000 000033ae 2**0 - CONTENTS, READONLY, DEBUGGING - 8 .debug_line 00000953 00000000 00000000 00003d31 2**0 - CONTENTS, READONLY, DEBUGGING - 9 .debug_frame 0000035c 00000000 00000000 00004684 2**2 - CONTENTS, READONLY, DEBUGGING - 10 .debug_str 00000421 00000000 00000000 000049e0 2**0 - CONTENTS, READONLY, DEBUGGING - 11 .debug_loc 00000cc7 00000000 00000000 00004e01 2**0 - CONTENTS, READONLY, DEBUGGING - 12 .debug_ranges 00000048 00000000 00000000 00005ac8 2**0 - CONTENTS, READONLY, DEBUGGING - -Disassembly of section .text: - -00000000 <__vectors>: - 0: 0c 94 34 00 jmp 0x68 ; 0x68 <__ctors_end> - 4: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> - 8: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> - c: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> - 10: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> - 14: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> - 18: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> - 1c: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> - 20: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> - 24: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> - 28: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> - 2c: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> - 30: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> - 34: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> - 38: 0c 94 7b 02 jmp 0x4f6 ; 0x4f6 <__vector_14> - 3c: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> - 40: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> - 44: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> - 48: 0c 94 d7 00 jmp 0x1ae ; 0x1ae <__vector_18> - 4c: 0c 94 17 01 jmp 0x22e ; 0x22e <__vector_19> - 50: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> - 54: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> - 58: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> - 5c: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> - 60: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> - 64: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> - -00000068 <__ctors_end>: - 68: 11 24 eor r1, r1 - 6a: 1f be out 0x3f, r1 ; 63 - 6c: cf ef ldi r28, 0xFF ; 255 - 6e: d8 e0 ldi r29, 0x08 ; 8 - 70: de bf out 0x3e, r29 ; 62 - 72: cd bf out 0x3d, r28 ; 61 - -00000074 <__do_copy_data>: - 74: 11 e0 ldi r17, 0x01 ; 1 - 76: a0 e0 ldi r26, 0x00 ; 0 - 78: b1 e0 ldi r27, 0x01 ; 1 - 7a: ea e7 ldi r30, 0x7A ; 122 - 7c: fe e0 ldi r31, 0x0E ; 14 - 7e: 02 c0 rjmp .+4 ; 0x84 <__do_copy_data+0x10> - 80: 05 90 lpm r0, Z+ - 82: 0d 92 st X+, r0 - 84: a0 35 cpi r26, 0x50 ; 80 - 86: b1 07 cpc r27, r17 - 88: d9 f7 brne .-10 ; 0x80 <__do_copy_data+0xc> - -0000008a <__do_clear_bss>: - 8a: 13 e0 ldi r17, 0x03 ; 3 - 8c: a0 e5 ldi r26, 0x50 ; 80 - 8e: b1 e0 ldi r27, 0x01 ; 1 - 90: 01 c0 rjmp .+2 ; 0x94 <.do_clear_bss_start> - -00000092 <.do_clear_bss_loop>: - 92: 1d 92 st X+, r1 - -00000094 <.do_clear_bss_start>: - 94: a6 3a cpi r26, 0xA6 ; 166 - 96: b1 07 cpc r27, r17 - 98: e1 f7 brne .-8 ; 0x92 <.do_clear_bss_loop> - 9a: 0e 94 5b 03 call 0x6b6 ; 0x6b6
- 9e: 0c 94 3b 07 jmp 0xe76 ; 0xe76 <_exit> - -000000a2 <__bad_interrupt>: - a2: 0c 94 00 00 jmp 0 ; 0x0 <__vectors> - -000000a6 : - /* Make PORTB5 (Arduino digital 13) an output by setting bit in DDR. */ - DDRB |= _BV(PORTB5); - -} - -uint8_t digital_read(int input_register, int pin) { - a6: cf 93 push r28 - a8: df 93 push r29 - aa: 00 d0 rcall .+0 ; 0xac - ac: cd b7 in r28, 0x3d ; 61 - ae: de b7 in r29, 0x3e ; 62 - b0: 9a 83 std Y+2, r25 ; 0x02 - b2: 89 83 std Y+1, r24 ; 0x01 - return bit_is_set(input_register, pin) != 0 ? 1 : 0; - b4: 89 81 ldd r24, Y+1 ; 0x01 - b6: 90 e0 ldi r25, 0x00 ; 0 - b8: 02 c0 rjmp .+4 ; 0xbe - ba: 95 95 asr r25 - bc: 87 95 ror r24 - be: 6a 95 dec r22 - c0: e2 f7 brpl .-8 ; 0xba -} - c2: 81 70 andi r24, 0x01 ; 1 - c4: 0f 90 pop r0 - c6: 0f 90 pop r0 - c8: df 91 pop r29 - ca: cf 91 pop r28 - cc: 08 95 ret - -000000ce : - -/* You could use cbi ie &= ~ or sbi ie |= but this makes code more readable. */ -void digital_write(volatile uint8_t *data_port, uint8_t pin, uint8_t value) { - ce: fc 01 movw r30, r24 - if (0 == value) { - *data_port &= ~(_BV(pin)); - d0: 20 81 ld r18, Z - d2: 81 e0 ldi r24, 0x01 ; 1 - d4: 90 e0 ldi r25, 0x00 ; 0 - d6: 02 c0 rjmp .+4 ; 0xdc - d8: 88 0f add r24, r24 - da: 99 1f adc r25, r25 - dc: 6a 95 dec r22 - de: e2 f7 brpl .-8 ; 0xd8 - return bit_is_set(input_register, pin) != 0 ? 1 : 0; -} - -/* You could use cbi ie &= ~ or sbi ie |= but this makes code more readable. */ -void digital_write(volatile uint8_t *data_port, uint8_t pin, uint8_t value) { - if (0 == value) { - e0: 44 23 and r20, r20 - e2: 21 f4 brne .+8 ; 0xec - *data_port &= ~(_BV(pin)); - e4: 80 95 com r24 - e6: 82 23 and r24, r18 - e8: 80 83 st Z, r24 - ea: 08 95 ret - } else { - *data_port |= _BV(pin); - ec: 28 2b or r18, r24 - ee: 20 83 st Z, r18 - f0: 08 95 ret - -000000f2 : - -/* http://www.cs.mun.ca/~rod/Winter2007/4723/notes/serial/serial.html */ - -void uart_init(void) { - - tx_buffer.start = 0; - f2: 10 92 51 03 sts 0x0351, r1 - f6: 10 92 50 03 sts 0x0350, r1 - tx_buffer.end = 0; - fa: 10 92 53 03 sts 0x0353, r1 - fe: 10 92 52 03 sts 0x0352, r1 - - rx_buffer.start = 0; - 102: 10 92 95 03 sts 0x0395, r1 - 106: 10 92 94 03 sts 0x0394, r1 - rx_buffer.end = 0; - 10a: 10 92 97 03 sts 0x0397, r1 - 10e: 10 92 96 03 sts 0x0396, r1 - - UBRR0H = UBRRH_VALUE; - 112: 10 92 c5 00 sts 0x00C5, r1 - UBRR0L = UBRRL_VALUE; - 116: 87 e6 ldi r24, 0x67 ; 103 - 118: 80 93 c4 00 sts 0x00C4, r24 - - UCSR0C = _BV(UCSZ01) | _BV(UCSZ00); /* 8-bit data */ - 11c: 86 e0 ldi r24, 0x06 ; 6 - 11e: 80 93 c2 00 sts 0x00C2, r24 - UCSR0B = _BV(RXEN0) | _BV(TXEN0); /* Enable RX and TX */ - 122: 88 e1 ldi r24, 0x18 ; 24 - 124: 80 93 c1 00 sts 0x00C1, r24 - - sei(); - 128: 78 94 sei -} - 12a: 08 95 ret - -0000012c : - -int uart_putchar(char c, FILE *stream) { - 12c: 1f 93 push r17 - 12e: 18 2f mov r17, r24 - if (c == '\n') { - 130: 8a 30 cpi r24, 0x0A ; 10 - 132: 19 f4 brne .+6 ; 0x13a - uart_putchar('\r', stream); - 134: 8d e0 ldi r24, 0x0D ; 13 - 136: 0e 94 96 00 call 0x12c ; 0x12c - } - - int write_pointer = (tx_buffer.end + 1) % UART_TX_BUFFER_SIZE; - 13a: 20 91 52 03 lds r18, 0x0352 - 13e: 30 91 53 03 lds r19, 0x0353 - 142: c9 01 movw r24, r18 - 144: 01 96 adiw r24, 0x01 ; 1 - 146: 60 e0 ldi r22, 0x00 ; 0 - 148: 71 e0 ldi r23, 0x01 ; 1 - 14a: 0e 94 48 04 call 0x890 ; 0x890 <__divmodhi4> - - if (write_pointer != tx_buffer.start){ - 14e: 40 91 50 03 lds r20, 0x0350 - 152: 50 91 51 03 lds r21, 0x0351 - 156: 84 17 cp r24, r20 - 158: 95 07 cpc r25, r21 - 15a: 81 f0 breq .+32 ; 0x17c - tx_buffer.buffer[tx_buffer.end] = c; - 15c: f9 01 movw r30, r18 - 15e: ee 0f add r30, r30 - 160: ff 1f adc r31, r31 - 162: e0 5b subi r30, 0xB0 ; 176 - 164: fe 4f sbci r31, 0xFE ; 254 - 166: 10 83 st Z, r17 - 168: 11 82 std Z+1, r1 ; 0x01 - tx_buffer.end = write_pointer; - 16a: 90 93 53 03 sts 0x0353, r25 - 16e: 80 93 52 03 sts 0x0352, r24 - - /* Data available. Enable the transmit interrupt for serial port 0. */ - UCSR0B |= _BV(UDRIE0); - 172: 80 91 c1 00 lds r24, 0x00C1 - 176: 80 62 ori r24, 0x20 ; 32 - 178: 80 93 c1 00 sts 0x00C1, r24 - } - - return 0; -} - 17c: 80 e0 ldi r24, 0x00 ; 0 - 17e: 90 e0 ldi r25, 0x00 ; 0 - 180: 1f 91 pop r17 - 182: 08 95 ret - -00000184 : - -int uart_getchar(FILE *stream) { - int read_pointer = (rx_buffer.start + 1) % UART_RX_BUFFER_SIZE; - 184: 80 91 94 03 lds r24, 0x0394 - 188: 90 91 95 03 lds r25, 0x0395 - 18c: 01 96 adiw r24, 0x01 ; 1 - 18e: 60 e2 ldi r22, 0x20 ; 32 - 190: 70 e0 ldi r23, 0x00 ; 0 - 192: 0e 94 48 04 call 0x890 ; 0x890 <__divmodhi4> - - rx_buffer.start = read_pointer; - 196: 90 93 95 03 sts 0x0395, r25 - 19a: 80 93 94 03 sts 0x0394, r24 - return rx_buffer.buffer[read_pointer]; - 19e: fc 01 movw r30, r24 - 1a0: ee 0f add r30, r30 - 1a2: ff 1f adc r31, r31 - 1a4: ec 5a subi r30, 0xAC ; 172 - 1a6: fc 4f sbci r31, 0xFC ; 252 -} - 1a8: 80 81 ld r24, Z - 1aa: 91 81 ldd r25, Z+1 ; 0x01 - 1ac: 08 95 ret - -000001ae <__vector_18>: - -ISR(USART_RX_vect) { - 1ae: 1f 92 push r1 - 1b0: 0f 92 push r0 - 1b2: 0f b6 in r0, 0x3f ; 63 - 1b4: 0f 92 push r0 - 1b6: 11 24 eor r1, r1 - 1b8: 2f 93 push r18 - 1ba: 3f 93 push r19 - 1bc: 4f 93 push r20 - 1be: 5f 93 push r21 - 1c0: 6f 93 push r22 - 1c2: 7f 93 push r23 - 1c4: 8f 93 push r24 - 1c6: 9f 93 push r25 - 1c8: af 93 push r26 - 1ca: bf 93 push r27 - 1cc: ef 93 push r30 - 1ce: ff 93 push r31 - int write_pointer = (rx_buffer.end + 1) % UART_RX_BUFFER_SIZE; - 1d0: 20 91 96 03 lds r18, 0x0396 - 1d4: 30 91 97 03 lds r19, 0x0397 - 1d8: c9 01 movw r24, r18 - 1da: 01 96 adiw r24, 0x01 ; 1 - 1dc: 60 e2 ldi r22, 0x20 ; 32 - 1de: 70 e0 ldi r23, 0x00 ; 0 - 1e0: 0e 94 48 04 call 0x890 ; 0x890 <__divmodhi4> - - /* Add next byte to ringbuffer if it has space available. */ - if (write_pointer != rx_buffer.start){ - 1e4: 40 91 94 03 lds r20, 0x0394 - 1e8: 50 91 95 03 lds r21, 0x0395 - 1ec: 84 17 cp r24, r20 - 1ee: 95 07 cpc r25, r21 - 1f0: 69 f0 breq .+26 ; 0x20c <__vector_18+0x5e> - rx_buffer.buffer[rx_buffer.end] = UDR0; - 1f2: 40 91 c6 00 lds r20, 0x00C6 - 1f6: f9 01 movw r30, r18 - 1f8: ee 0f add r30, r30 - 1fa: ff 1f adc r31, r31 - 1fc: ec 5a subi r30, 0xAC ; 172 - 1fe: fc 4f sbci r31, 0xFC ; 252 - 200: 40 83 st Z, r20 - 202: 11 82 std Z+1, r1 ; 0x01 - rx_buffer.end = write_pointer; - 204: 90 93 97 03 sts 0x0397, r25 - 208: 80 93 96 03 sts 0x0396, r24 - } -} - 20c: ff 91 pop r31 - 20e: ef 91 pop r30 - 210: bf 91 pop r27 - 212: af 91 pop r26 - 214: 9f 91 pop r25 - 216: 8f 91 pop r24 - 218: 7f 91 pop r23 - 21a: 6f 91 pop r22 - 21c: 5f 91 pop r21 - 21e: 4f 91 pop r20 - 220: 3f 91 pop r19 - 222: 2f 91 pop r18 - 224: 0f 90 pop r0 - 226: 0f be out 0x3f, r0 ; 63 - 228: 0f 90 pop r0 - 22a: 1f 90 pop r1 - 22c: 18 95 reti - -0000022e <__vector_19>: - -ISR(USART_UDRE_vect){ - 22e: 1f 92 push r1 - 230: 0f 92 push r0 - 232: 0f b6 in r0, 0x3f ; 63 - 234: 0f 92 push r0 - 236: 11 24 eor r1, r1 - 238: 2f 93 push r18 - 23a: 3f 93 push r19 - 23c: 5f 93 push r21 - 23e: 6f 93 push r22 - 240: 7f 93 push r23 - 242: 8f 93 push r24 - 244: 9f 93 push r25 - 246: af 93 push r26 - 248: bf 93 push r27 - 24a: ef 93 push r30 - 24c: ff 93 push r31 - int read_pointer = (tx_buffer.start + 1) % UART_TX_BUFFER_SIZE; - 24e: 80 91 50 03 lds r24, 0x0350 - 252: 90 91 51 03 lds r25, 0x0351 - 256: 01 96 adiw r24, 0x01 ; 1 - 258: 60 e0 ldi r22, 0x00 ; 0 - 25a: 71 e0 ldi r23, 0x01 ; 1 - 25c: 0e 94 48 04 call 0x890 ; 0x890 <__divmodhi4> - - /* Transmit next byte if data available in ringbuffer. */ - if (read_pointer != tx_buffer.end) { - 260: 20 91 52 03 lds r18, 0x0352 - 264: 30 91 53 03 lds r19, 0x0353 - 268: 82 17 cp r24, r18 - 26a: 93 07 cpc r25, r19 - 26c: 69 f0 breq .+26 ; 0x288 <__vector_19+0x5a> - UDR0 = tx_buffer.buffer[read_pointer]; - 26e: fc 01 movw r30, r24 - 270: ee 0f add r30, r30 - 272: ff 1f adc r31, r31 - 274: e0 5b subi r30, 0xB0 ; 176 - 276: fe 4f sbci r31, 0xFE ; 254 - 278: 20 81 ld r18, Z - 27a: 20 93 c6 00 sts 0x00C6, r18 - tx_buffer.start = read_pointer; - 27e: 90 93 51 03 sts 0x0351, r25 - 282: 80 93 50 03 sts 0x0350, r24 - 286: 05 c0 rjmp .+10 ; 0x292 <__vector_19+0x64> - } else { - /* Nothing to send. Disable the transmit interrupt for serial port 0. */ - UCSR0B &= ~_BV(UDRIE0); - 288: 80 91 c1 00 lds r24, 0x00C1 - 28c: 8f 7d andi r24, 0xDF ; 223 - 28e: 80 93 c1 00 sts 0x00C1, r24 - } -} - 292: ff 91 pop r31 - 294: ef 91 pop r30 - 296: bf 91 pop r27 - 298: af 91 pop r26 - 29a: 9f 91 pop r25 - 29c: 8f 91 pop r24 - 29e: 7f 91 pop r23 - 2a0: 6f 91 pop r22 - 2a2: 5f 91 pop r21 - 2a4: 3f 91 pop r19 - 2a6: 2f 91 pop r18 - 2a8: 0f 90 pop r0 - 2aa: 0f be out 0x3f, r0 ; 63 - 2ac: 0f 90 pop r0 - 2ae: 1f 90 pop r1 - 2b0: 18 95 reti - -000002b2 : - * Initializes the timer, and resets the timer count to 0. Sets up the ISRs - * linked with timer0. - */ -void timer_init(){ - //Set up the timer to run at F_CPU / 256, in normal mode (we reset TCNT0 in the ISR) - TCCR0A = 0x0; - 2b2: 14 bc out 0x24, r1 ; 36 - TCCR0B |= _BV(CS02); - 2b4: 85 b5 in r24, 0x25 ; 37 - 2b6: 84 60 ori r24, 0x04 ; 4 - 2b8: 85 bd out 0x25, r24 ; 37 - - //Set compare value to be F_CPU / 1000 -- fire interrupt every millisecond - OCR0A = F_CPU / 256 / 1000; - 2ba: 8e e3 ldi r24, 0x3E ; 62 - 2bc: 87 bd out 0x27, r24 ; 39 - - //Enable compare interrupt - TIMSK0 = _BV(OCIE0A); - 2be: 82 e0 ldi r24, 0x02 ; 2 - 2c0: 80 93 6e 00 sts 0x006E, r24 - - //Reset count variables - _timer_millis = 0; - 2c4: 10 92 98 03 sts 0x0398, r1 - 2c8: 10 92 99 03 sts 0x0399, r1 - 2cc: 10 92 9a 03 sts 0x039A, r1 - 2d0: 10 92 9b 03 sts 0x039B, r1 - 2d4: 10 92 9c 03 sts 0x039C, r1 - 2d8: 10 92 9d 03 sts 0x039D, r1 - 2dc: 10 92 9e 03 sts 0x039E, r1 - 2e0: 10 92 9f 03 sts 0x039F, r1 - - //Enable interrupts if the NO_INTERRUPT_ENABLE define is not set. If it is, you need to call sei() elsewhere. -#ifndef NO_INTERRUPT_ENABLE - sei(); - 2e4: 78 94 sei -#endif - - DDRB = 0xFF; - 2e6: 8f ef ldi r24, 0xFF ; 255 - 2e8: 84 b9 out 0x04, r24 ; 4 -} - 2ea: 08 95 ret - -000002ec : -/* - * Returns the number of milliseconds which have elapsed since the - * last time timer_init() was called. Overflows after about 49 days. - */ -uint64_t timer_millis(){ - return _timer_millis; - 2ec: 20 91 98 03 lds r18, 0x0398 - 2f0: 30 91 99 03 lds r19, 0x0399 - 2f4: 40 91 9a 03 lds r20, 0x039A - 2f8: 50 91 9b 03 lds r21, 0x039B - 2fc: 60 91 9c 03 lds r22, 0x039C - 300: 70 91 9d 03 lds r23, 0x039D - 304: 80 91 9e 03 lds r24, 0x039E - 308: 90 91 9f 03 lds r25, 0x039F -} - 30c: 08 95 ret - -0000030e : - -/* - * Returns the number of microseconds which have elapsed since the - * last time timer_init() was called. Overflows after about 71 minutes. - */ -uint64_t timer_micros(){ - 30e: 2f 92 push r2 - 310: 3f 92 push r3 - 312: 4f 92 push r4 - 314: 5f 92 push r5 - 316: 6f 92 push r6 - 318: 7f 92 push r7 - 31a: 8f 92 push r8 - 31c: 9f 92 push r9 - 31e: af 92 push r10 - 320: bf 92 push r11 - 322: cf 92 push r12 - 324: df 92 push r13 - 326: ef 92 push r14 - 328: ff 92 push r15 - 32a: 0f 93 push r16 - 32c: 1f 93 push r17 - 32e: cf 93 push r28 - 330: df 93 push r29 - 332: 0f 92 push r0 - 334: cd b7 in r28, 0x3d ; 61 - 336: de b7 in r29, 0x3e ; 62 - return (_timer_millis * 1000); - 338: 80 90 98 03 lds r8, 0x0398 - 33c: 70 90 99 03 lds r7, 0x0399 - 340: 60 90 9a 03 lds r6, 0x039A - 344: 50 90 9b 03 lds r5, 0x039B - 348: 40 90 9c 03 lds r4, 0x039C - 34c: 30 90 9d 03 lds r3, 0x039D - 350: 20 90 9e 03 lds r2, 0x039E - 354: 80 91 9f 03 lds r24, 0x039F - 358: 89 83 std Y+1, r24 ; 0x01 - 35a: 28 2d mov r18, r8 - 35c: 37 2d mov r19, r7 - 35e: 46 2d mov r20, r6 - 360: 55 2d mov r21, r5 - 362: 64 2d mov r22, r4 - 364: 73 2d mov r23, r3 - 366: 82 2d mov r24, r2 - 368: 99 81 ldd r25, Y+1 ; 0x01 - 36a: 02 e0 ldi r16, 0x02 ; 2 - 36c: 0e 94 e1 02 call 0x5c2 ; 0x5c2 <__ashldi3> - 370: f2 2e mov r15, r18 - 372: 13 2f mov r17, r19 - 374: e4 2e mov r14, r20 - 376: d5 2e mov r13, r21 - 378: c6 2e mov r12, r22 - 37a: b7 2e mov r11, r23 - 37c: a8 2e mov r10, r24 - 37e: 99 2e mov r9, r25 - 380: 05 e0 ldi r16, 0x05 ; 5 - 382: 0e 94 e1 02 call 0x5c2 ; 0x5c2 <__ashldi3> - 386: b2 2f mov r27, r18 - 388: bf 19 sub r27, r15 - 38a: f1 e0 ldi r31, 0x01 ; 1 - 38c: 2b 17 cp r18, r27 - 38e: 08 f0 brcs .+2 ; 0x392 - 390: f0 e0 ldi r31, 0x00 ; 0 - 392: 23 2f mov r18, r19 - 394: 21 1b sub r18, r17 - 396: e1 e0 ldi r30, 0x01 ; 1 - 398: 32 17 cp r19, r18 - 39a: 08 f0 brcs .+2 ; 0x39e - 39c: e0 e0 ldi r30, 0x00 ; 0 - 39e: 02 2f mov r16, r18 - 3a0: 0f 1b sub r16, r31 - 3a2: 31 e0 ldi r19, 0x01 ; 1 - 3a4: 20 17 cp r18, r16 - 3a6: 08 f0 brcs .+2 ; 0x3aa - 3a8: 30 e0 ldi r19, 0x00 ; 0 - 3aa: e3 2b or r30, r19 - 3ac: 34 2f mov r19, r20 - 3ae: 3e 19 sub r19, r14 - 3b0: 21 e0 ldi r18, 0x01 ; 1 - 3b2: 43 17 cp r20, r19 - 3b4: 08 f0 brcs .+2 ; 0x3b8 - 3b6: 20 e0 ldi r18, 0x00 ; 0 - 3b8: f3 2e mov r15, r19 - 3ba: fe 1a sub r15, r30 - 3bc: 41 e0 ldi r20, 0x01 ; 1 - 3be: 3f 15 cp r19, r15 - 3c0: 08 f0 brcs .+2 ; 0x3c4 - 3c2: 40 e0 ldi r20, 0x00 ; 0 - 3c4: 24 2b or r18, r20 - 3c6: 45 2f mov r20, r21 - 3c8: 4d 19 sub r20, r13 - 3ca: 31 e0 ldi r19, 0x01 ; 1 - 3cc: 54 17 cp r21, r20 - 3ce: 08 f0 brcs .+2 ; 0x3d2 - 3d0: 30 e0 ldi r19, 0x00 ; 0 - 3d2: 14 2f mov r17, r20 - 3d4: 12 1b sub r17, r18 - 3d6: 21 e0 ldi r18, 0x01 ; 1 - 3d8: 41 17 cp r20, r17 - 3da: 08 f0 brcs .+2 ; 0x3de - 3dc: 20 e0 ldi r18, 0x00 ; 0 - 3de: 32 2b or r19, r18 - 3e0: 46 2f mov r20, r22 - 3e2: 4c 19 sub r20, r12 - 3e4: 21 e0 ldi r18, 0x01 ; 1 - 3e6: 64 17 cp r22, r20 - 3e8: 08 f0 brcs .+2 ; 0x3ec - 3ea: 20 e0 ldi r18, 0x00 ; 0 - 3ec: a4 2f mov r26, r20 - 3ee: a3 1b sub r26, r19 - 3f0: 31 e0 ldi r19, 0x01 ; 1 - 3f2: 4a 17 cp r20, r26 - 3f4: 08 f0 brcs .+2 ; 0x3f8 - 3f6: 30 e0 ldi r19, 0x00 ; 0 - 3f8: 23 2b or r18, r19 - 3fa: 47 2f mov r20, r23 - 3fc: 4b 19 sub r20, r11 - 3fe: 31 e0 ldi r19, 0x01 ; 1 - 400: 74 17 cp r23, r20 - 402: 08 f0 brcs .+2 ; 0x406 - 404: 30 e0 ldi r19, 0x00 ; 0 - 406: e4 2f mov r30, r20 - 408: e2 1b sub r30, r18 - 40a: 21 e0 ldi r18, 0x01 ; 1 - 40c: 4e 17 cp r20, r30 - 40e: 08 f0 brcs .+2 ; 0x412 - 410: 20 e0 ldi r18, 0x00 ; 0 - 412: 32 2b or r19, r18 - 414: 48 2f mov r20, r24 - 416: 4a 19 sub r20, r10 - 418: 21 e0 ldi r18, 0x01 ; 1 - 41a: 84 17 cp r24, r20 - 41c: 08 f0 brcs .+2 ; 0x420 - 41e: 20 e0 ldi r18, 0x00 ; 0 - 420: f4 2f mov r31, r20 - 422: f3 1b sub r31, r19 - 424: 81 e0 ldi r24, 0x01 ; 1 - 426: 4f 17 cp r20, r31 - 428: 08 f0 brcs .+2 ; 0x42c - 42a: 80 e0 ldi r24, 0x00 ; 0 - 42c: 28 2b or r18, r24 - 42e: 99 19 sub r25, r9 - 430: 92 1b sub r25, r18 - 432: 2b 2f mov r18, r27 - 434: 28 0d add r18, r8 - 436: 31 e0 ldi r19, 0x01 ; 1 - 438: 2b 17 cp r18, r27 - 43a: 08 f0 brcs .+2 ; 0x43e - 43c: 30 e0 ldi r19, 0x00 ; 0 - 43e: 70 0e add r7, r16 - 440: 41 e0 ldi r20, 0x01 ; 1 - 442: 70 16 cp r7, r16 - 444: 08 f0 brcs .+2 ; 0x448 - 446: 40 e0 ldi r20, 0x00 ; 0 - 448: 37 0d add r19, r7 - 44a: 81 e0 ldi r24, 0x01 ; 1 - 44c: 37 15 cp r19, r7 - 44e: 08 f0 brcs .+2 ; 0x452 - 450: 80 e0 ldi r24, 0x00 ; 0 - 452: 48 2b or r20, r24 - 454: 6f 0c add r6, r15 - 456: 51 e0 ldi r21, 0x01 ; 1 - 458: 6f 14 cp r6, r15 - 45a: 08 f0 brcs .+2 ; 0x45e - 45c: 50 e0 ldi r21, 0x00 ; 0 - 45e: 46 0d add r20, r6 - 460: 81 e0 ldi r24, 0x01 ; 1 - 462: 46 15 cp r20, r6 - 464: 08 f0 brcs .+2 ; 0x468 - 466: 80 e0 ldi r24, 0x00 ; 0 - 468: 58 2b or r21, r24 - 46a: 51 0e add r5, r17 - 46c: 61 e0 ldi r22, 0x01 ; 1 - 46e: 51 16 cp r5, r17 - 470: 08 f0 brcs .+2 ; 0x474 - 472: 60 e0 ldi r22, 0x00 ; 0 - 474: 55 0d add r21, r5 - 476: 81 e0 ldi r24, 0x01 ; 1 - 478: 55 15 cp r21, r5 - 47a: 08 f0 brcs .+2 ; 0x47e - 47c: 80 e0 ldi r24, 0x00 ; 0 - 47e: 68 2b or r22, r24 - 480: 4a 0e add r4, r26 - 482: 71 e0 ldi r23, 0x01 ; 1 - 484: 4a 16 cp r4, r26 - 486: 08 f0 brcs .+2 ; 0x48a - 488: 70 e0 ldi r23, 0x00 ; 0 - 48a: 64 0d add r22, r4 - 48c: 81 e0 ldi r24, 0x01 ; 1 - 48e: 64 15 cp r22, r4 - 490: 08 f0 brcs .+2 ; 0x494 - 492: 80 e0 ldi r24, 0x00 ; 0 - 494: 78 2b or r23, r24 - 496: 3e 0e add r3, r30 - 498: 81 e0 ldi r24, 0x01 ; 1 - 49a: 3e 16 cp r3, r30 - 49c: 08 f0 brcs .+2 ; 0x4a0 - 49e: 80 e0 ldi r24, 0x00 ; 0 - 4a0: 73 0d add r23, r3 - 4a2: e1 e0 ldi r30, 0x01 ; 1 - 4a4: 73 15 cp r23, r3 - 4a6: 08 f0 brcs .+2 ; 0x4aa - 4a8: e0 e0 ldi r30, 0x00 ; 0 - 4aa: 8e 2b or r24, r30 - 4ac: 2f 0e add r2, r31 - 4ae: e1 e0 ldi r30, 0x01 ; 1 - 4b0: 2f 16 cp r2, r31 - 4b2: 08 f0 brcs .+2 ; 0x4b6 - 4b4: e0 e0 ldi r30, 0x00 ; 0 - 4b6: 82 0d add r24, r2 - 4b8: f1 e0 ldi r31, 0x01 ; 1 - 4ba: 82 15 cp r24, r2 - 4bc: 08 f0 brcs .+2 ; 0x4c0 - 4be: f0 e0 ldi r31, 0x00 ; 0 - 4c0: ef 2b or r30, r31 - 4c2: a9 81 ldd r26, Y+1 ; 0x01 - 4c4: 9a 0f add r25, r26 - 4c6: 9e 0f add r25, r30 - 4c8: 03 e0 ldi r16, 0x03 ; 3 - 4ca: 0e 94 e1 02 call 0x5c2 ; 0x5c2 <__ashldi3> -} - 4ce: 0f 90 pop r0 - 4d0: df 91 pop r29 - 4d2: cf 91 pop r28 - 4d4: 1f 91 pop r17 - 4d6: 0f 91 pop r16 - 4d8: ff 90 pop r15 - 4da: ef 90 pop r14 - 4dc: df 90 pop r13 - 4de: cf 90 pop r12 - 4e0: bf 90 pop r11 - 4e2: af 90 pop r10 - 4e4: 9f 90 pop r9 - 4e6: 8f 90 pop r8 - 4e8: 7f 90 pop r7 - 4ea: 6f 90 pop r6 - 4ec: 5f 90 pop r5 - 4ee: 4f 90 pop r4 - 4f0: 3f 90 pop r3 - 4f2: 2f 90 pop r2 - 4f4: 08 95 ret - -000004f6 <__vector_14>: - -/* - * The ISR for timer0 overflow. Increment the _timer_count here, and do the calculcations - * to increment _timer_millis as needed. - */ -ISR(TIMER0_COMPA_vect){ - 4f6: 1f 92 push r1 - 4f8: 0f 92 push r0 - 4fa: 0f b6 in r0, 0x3f ; 63 - 4fc: 0f 92 push r0 - 4fe: 11 24 eor r1, r1 - 500: 2f 93 push r18 - 502: 3f 93 push r19 - 504: 4f 93 push r20 - 506: 5f 93 push r21 - 508: 6f 93 push r22 - 50a: 7f 93 push r23 - 50c: 8f 93 push r24 - 50e: 9f 93 push r25 - 510: af 93 push r26 - 512: ef 93 push r30 - 514: ff 93 push r31 - TCNT0 = 0; - 516: 16 bc out 0x26, r1 ; 38 - _timer_millis++; - 518: 40 91 98 03 lds r20, 0x0398 - 51c: 30 91 99 03 lds r19, 0x0399 - 520: 20 91 9a 03 lds r18, 0x039A - 524: 90 91 9b 03 lds r25, 0x039B - 528: 80 91 9c 03 lds r24, 0x039C - 52c: f0 91 9d 03 lds r31, 0x039D - 530: e0 91 9e 03 lds r30, 0x039E - 534: a0 91 9f 03 lds r26, 0x039F - 538: 64 2f mov r22, r20 - 53a: 6f 5f subi r22, 0xFF ; 255 - 53c: 51 e0 ldi r21, 0x01 ; 1 - 53e: 64 17 cp r22, r20 - 540: 08 f0 brcs .+2 ; 0x544 <__vector_14+0x4e> - 542: 50 e0 ldi r21, 0x00 ; 0 - 544: 53 0f add r21, r19 - 546: 41 e0 ldi r20, 0x01 ; 1 - 548: 53 17 cp r21, r19 - 54a: 08 f0 brcs .+2 ; 0x54e <__vector_14+0x58> - 54c: 40 e0 ldi r20, 0x00 ; 0 - 54e: 42 0f add r20, r18 - 550: 31 e0 ldi r19, 0x01 ; 1 - 552: 42 17 cp r20, r18 - 554: 08 f0 brcs .+2 ; 0x558 <__vector_14+0x62> - 556: 30 e0 ldi r19, 0x00 ; 0 - 558: 39 0f add r19, r25 - 55a: 21 e0 ldi r18, 0x01 ; 1 - 55c: 39 17 cp r19, r25 - 55e: 08 f0 brcs .+2 ; 0x562 <__vector_14+0x6c> - 560: 20 e0 ldi r18, 0x00 ; 0 - 562: 28 0f add r18, r24 - 564: 91 e0 ldi r25, 0x01 ; 1 - 566: 28 17 cp r18, r24 - 568: 08 f0 brcs .+2 ; 0x56c <__vector_14+0x76> - 56a: 90 e0 ldi r25, 0x00 ; 0 - 56c: 9f 0f add r25, r31 - 56e: 81 e0 ldi r24, 0x01 ; 1 - 570: 9f 17 cp r25, r31 - 572: 08 f0 brcs .+2 ; 0x576 <__vector_14+0x80> - 574: 80 e0 ldi r24, 0x00 ; 0 - 576: 8e 0f add r24, r30 - 578: 71 e0 ldi r23, 0x01 ; 1 - 57a: 8e 17 cp r24, r30 - 57c: 08 f0 brcs .+2 ; 0x580 <__vector_14+0x8a> - 57e: 70 e0 ldi r23, 0x00 ; 0 - 580: 7a 0f add r23, r26 - 582: 60 93 98 03 sts 0x0398, r22 - 586: 50 93 99 03 sts 0x0399, r21 - 58a: 40 93 9a 03 sts 0x039A, r20 - 58e: 30 93 9b 03 sts 0x039B, r19 - 592: 20 93 9c 03 sts 0x039C, r18 - 596: 90 93 9d 03 sts 0x039D, r25 - 59a: 80 93 9e 03 sts 0x039E, r24 - 59e: 70 93 9f 03 sts 0x039F, r23 -} - 5a2: ff 91 pop r31 - 5a4: ef 91 pop r30 - 5a6: af 91 pop r26 - 5a8: 9f 91 pop r25 - 5aa: 8f 91 pop r24 - 5ac: 7f 91 pop r23 - 5ae: 6f 91 pop r22 - 5b0: 5f 91 pop r21 - 5b2: 4f 91 pop r20 - 5b4: 3f 91 pop r19 - 5b6: 2f 91 pop r18 - 5b8: 0f 90 pop r0 - 5ba: 0f be out 0x3f, r0 ; 63 - 5bc: 0f 90 pop r0 - 5be: 1f 90 pop r1 - 5c0: 18 95 reti - -000005c2 <__ashldi3>: - 5c2: cf 92 push r12 - 5c4: df 92 push r13 - 5c6: ef 92 push r14 - 5c8: ff 92 push r15 - 5ca: 0f 93 push r16 - 5cc: cf 93 push r28 - 5ce: df 93 push r29 - 5d0: cd b7 in r28, 0x3d ; 61 - 5d2: de b7 in r29, 0x3e ; 62 - 5d4: 60 97 sbiw r28, 0x10 ; 16 - 5d6: 0f b6 in r0, 0x3f ; 63 - 5d8: f8 94 cli - 5da: de bf out 0x3e, r29 ; 62 - 5dc: 0f be out 0x3f, r0 ; 63 - 5de: cd bf out 0x3d, r28 ; 61 - 5e0: 00 23 and r16, r16 - 5e2: 09 f4 brne .+2 ; 0x5e6 <__ashldi3+0x24> - 5e4: 5a c0 rjmp .+180 ; 0x69a <__ashldi3+0xd8> - 5e6: 29 87 std Y+9, r18 ; 0x09 - 5e8: 3a 87 std Y+10, r19 ; 0x0a - 5ea: 4b 87 std Y+11, r20 ; 0x0b - 5ec: 5c 87 std Y+12, r21 ; 0x0c - 5ee: 6d 87 std Y+13, r22 ; 0x0d - 5f0: 7e 87 std Y+14, r23 ; 0x0e - 5f2: 8f 87 std Y+15, r24 ; 0x0f - 5f4: 98 8b std Y+16, r25 ; 0x10 - 5f6: 80 e2 ldi r24, 0x20 ; 32 - 5f8: 80 1b sub r24, r16 - 5fa: 49 85 ldd r20, Y+9 ; 0x09 - 5fc: 5a 85 ldd r21, Y+10 ; 0x0a - 5fe: 6b 85 ldd r22, Y+11 ; 0x0b - 600: 7c 85 ldd r23, Y+12 ; 0x0c - 602: 18 16 cp r1, r24 - 604: b4 f0 brlt .+44 ; 0x632 <__ashldi3+0x70> - 606: 19 82 std Y+1, r1 ; 0x01 - 608: 1a 82 std Y+2, r1 ; 0x02 - 60a: 1b 82 std Y+3, r1 ; 0x03 - 60c: 1c 82 std Y+4, r1 ; 0x04 - 60e: 99 27 eor r25, r25 - 610: 87 fd sbrc r24, 7 - 612: 90 95 com r25 - 614: 90 95 com r25 - 616: 81 95 neg r24 - 618: 9f 4f sbci r25, 0xFF ; 255 - 61a: 04 c0 rjmp .+8 ; 0x624 <__ashldi3+0x62> - 61c: 44 0f add r20, r20 - 61e: 55 1f adc r21, r21 - 620: 66 1f adc r22, r22 - 622: 77 1f adc r23, r23 - 624: 8a 95 dec r24 - 626: d2 f7 brpl .-12 ; 0x61c <__ashldi3+0x5a> - 628: 4d 83 std Y+5, r20 ; 0x05 - 62a: 5e 83 std Y+6, r21 ; 0x06 - 62c: 6f 83 std Y+7, r22 ; 0x07 - 62e: 78 87 std Y+8, r23 ; 0x08 - 630: 2c c0 rjmp .+88 ; 0x68a <__ashldi3+0xc8> - 632: 6a 01 movw r12, r20 - 634: 7b 01 movw r14, r22 - 636: 00 2e mov r0, r16 - 638: 04 c0 rjmp .+8 ; 0x642 <__ashldi3+0x80> - 63a: cc 0c add r12, r12 - 63c: dd 1c adc r13, r13 - 63e: ee 1c adc r14, r14 - 640: ff 1c adc r15, r15 - 642: 0a 94 dec r0 - 644: d2 f7 brpl .-12 ; 0x63a <__ashldi3+0x78> - 646: c9 82 std Y+1, r12 ; 0x01 - 648: da 82 std Y+2, r13 ; 0x02 - 64a: eb 82 std Y+3, r14 ; 0x03 - 64c: fc 82 std Y+4, r15 ; 0x04 - 64e: 6a 01 movw r12, r20 - 650: 7b 01 movw r14, r22 - 652: 04 c0 rjmp .+8 ; 0x65c <__ashldi3+0x9a> - 654: f6 94 lsr r15 - 656: e7 94 ror r14 - 658: d7 94 ror r13 - 65a: c7 94 ror r12 - 65c: 8a 95 dec r24 - 65e: d2 f7 brpl .-12 ; 0x654 <__ashldi3+0x92> - 660: d7 01 movw r26, r14 - 662: c6 01 movw r24, r12 - 664: 4d 85 ldd r20, Y+13 ; 0x0d - 666: 5e 85 ldd r21, Y+14 ; 0x0e - 668: 6f 85 ldd r22, Y+15 ; 0x0f - 66a: 78 89 ldd r23, Y+16 ; 0x10 - 66c: 04 c0 rjmp .+8 ; 0x676 <__ashldi3+0xb4> - 66e: 44 0f add r20, r20 - 670: 55 1f adc r21, r21 - 672: 66 1f adc r22, r22 - 674: 77 1f adc r23, r23 - 676: 0a 95 dec r16 - 678: d2 f7 brpl .-12 ; 0x66e <__ashldi3+0xac> - 67a: 84 2b or r24, r20 - 67c: 95 2b or r25, r21 - 67e: a6 2b or r26, r22 - 680: b7 2b or r27, r23 - 682: 8d 83 std Y+5, r24 ; 0x05 - 684: 9e 83 std Y+6, r25 ; 0x06 - 686: af 83 std Y+7, r26 ; 0x07 - 688: b8 87 std Y+8, r27 ; 0x08 - 68a: 29 81 ldd r18, Y+1 ; 0x01 - 68c: 3a 81 ldd r19, Y+2 ; 0x02 - 68e: 4b 81 ldd r20, Y+3 ; 0x03 - 690: 5c 81 ldd r21, Y+4 ; 0x04 - 692: 6d 81 ldd r22, Y+5 ; 0x05 - 694: 7e 81 ldd r23, Y+6 ; 0x06 - 696: 8f 81 ldd r24, Y+7 ; 0x07 - 698: 98 85 ldd r25, Y+8 ; 0x08 - 69a: 60 96 adiw r28, 0x10 ; 16 - 69c: 0f b6 in r0, 0x3f ; 63 - 69e: f8 94 cli - 6a0: de bf out 0x3e, r29 ; 62 - 6a2: 0f be out 0x3f, r0 ; 63 - 6a4: cd bf out 0x3d, r28 ; 61 - 6a6: df 91 pop r29 - 6a8: cf 91 pop r28 - 6aa: 0f 91 pop r16 - 6ac: ff 90 pop r15 - 6ae: ef 90 pop r14 - 6b0: df 90 pop r13 - 6b2: cf 90 pop r12 - 6b4: 08 95 ret - -000006b6
: - } -} - -int main(void) { - 6b6: cf 93 push r28 - 6b8: df 93 push r29 - 6ba: 00 d0 rcall .+0 ; 0x6bc - 6bc: cd b7 in r28, 0x3d ; 61 - 6be: de b7 in r29, 0x3e ; 62 -#include "timer.h" - -void init(void) { - - /* Make PORTD2 (Arduino digital 2) input by clearing bit in DDR */ - DDRD &= ~(_BV(PORTD2)); - 6c0: 52 98 cbi 0x0a, 2 ; 10 - /* you don’t connect anything to pin and if you try to read it, it will read as 1. Now, */ - /* when you externally drive that pin to zero(i.e. connect to ground / or pull-down), */ - /* only then it will be read as 0. */ - - /* Enable pullups by setting bits in PORT. Default state is now high. */ - PORTD |= (_BV(PORTD2)); - 6c2: 5a 9a sbi 0x0b, 2 ; 11 - - /* Make PORTB5 (Arduino digital 13) an output by setting bit in DDR. */ - DDRB |= _BV(PORTB5); - 6c4: 25 9a sbi 0x04, 5 ; 4 -} - -int main(void) { - - init(); - timer_init(); - 6c6: 0e 94 59 01 call 0x2b2 ; 0x2b2 - uart_init(); - 6ca: 0e 94 79 00 call 0xf2 ; 0xf2 - stdout = &uart_output; - 6ce: 82 e4 ldi r24, 0x42 ; 66 - 6d0: 91 e0 ldi r25, 0x01 ; 1 - 6d2: 90 93 a3 03 sts 0x03A3, r25 - 6d6: 80 93 a2 03 sts 0x03A2, r24 - stdin = &uart_input; - 6da: 84 e3 ldi r24, 0x34 ; 52 - 6dc: 91 e0 ldi r25, 0x01 ; 1 - 6de: 90 93 a1 03 sts 0x03A1, r25 - 6e2: 80 93 a0 03 sts 0x03A0, r24 - - uint8_t current_reading; - uint8_t previous_reading = 0; - uint8_t current_state = 0; - uint8_t previous_state = 0; - 6e6: 77 24 eor r7, r7 - stdout = &uart_output; - stdin = &uart_input; - - uint8_t current_reading; - uint8_t previous_reading = 0; - uint8_t current_state = 0; - 6e8: 00 e0 ldi r16, 0x00 ; 0 - uart_init(); - stdout = &uart_output; - stdin = &uart_input; - - uint8_t current_reading; - uint8_t previous_reading = 0; - 6ea: 20 e0 ldi r18, 0x00 ; 0 - - current_reading = digital_read(PIND, PIND2); - if (current_reading != previous_reading) { - /* Note the time in millis of last change of button state. */ - last_toggle_time = timer_millis(); - printf("- Reading toggled %d (%d)\n", current_reading, last_toggle_time); - 6ec: 40 e0 ldi r20, 0x00 ; 0 - 6ee: 44 2e mov r4, r20 - 6f0: 41 e0 ldi r20, 0x01 ; 1 - 6f2: 54 2e mov r5, r20 - current_state = current_reading; - } - - /* Just for debugging purposes. */ - if (current_state != previous_state) { - printf("+ State toggled %d (%d)\n", current_state, last_toggle_time); - 6f4: 5b e1 ldi r21, 0x1B ; 27 - 6f6: 25 2e mov r2, r21 - 6f8: 51 e0 ldi r21, 0x01 ; 1 - 6fa: 35 2e mov r3, r21 - 6fc: 01 c0 rjmp .+2 ; 0x700 - DDRB |= _BV(PORTB5); - -} - -uint8_t digital_read(int input_register, int pin) { - return bit_is_set(input_register, pin) != 0 ? 1 : 0; - 6fe: 21 2f mov r18, r17 - - uint64_t last_toggle_time; - - while (1) { - - current_reading = digital_read(PIND, PIND2); - 700: 89 b1 in r24, 0x09 ; 9 - 702: 89 83 std Y+1, r24 ; 0x01 - 704: 1a 82 std Y+2, r1 ; 0x02 - DDRB |= _BV(PORTB5); - -} - -uint8_t digital_read(int input_register, int pin) { - return bit_is_set(input_register, pin) != 0 ? 1 : 0; - 706: 89 81 ldd r24, Y+1 ; 0x01 - 708: 90 e0 ldi r25, 0x00 ; 0 - 70a: 95 95 asr r25 - 70c: 87 95 ror r24 - 70e: 95 95 asr r25 - 710: 87 95 ror r24 - 712: 18 2f mov r17, r24 - 714: 11 70 andi r17, 0x01 ; 1 - uint64_t last_toggle_time; - - while (1) { - - current_reading = digital_read(PIND, PIND2); - if (current_reading != previous_reading) { - 716: 12 17 cp r17, r18 - 718: 59 f1 breq .+86 ; 0x770 - /* Note the time in millis of last change of button state. */ - last_toggle_time = timer_millis(); - 71a: 0e 94 76 01 call 0x2ec ; 0x2ec - 71e: 49 01 movw r8, r18 - 720: 5a 01 movw r10, r20 - 722: 6b 01 movw r12, r22 - 724: 7c 01 movw r14, r24 - printf("- Reading toggled %d (%d)\n", current_reading, last_toggle_time); - 726: 8d b7 in r24, 0x3d ; 61 - 728: 9e b7 in r25, 0x3e ; 62 - 72a: 0c 97 sbiw r24, 0x0c ; 12 - 72c: 0f b6 in r0, 0x3f ; 63 - 72e: f8 94 cli - 730: 9e bf out 0x3e, r25 ; 62 - 732: 0f be out 0x3f, r0 ; 63 - 734: 8d bf out 0x3d, r24 ; 61 - 736: ed b7 in r30, 0x3d ; 61 - 738: fe b7 in r31, 0x3e ; 62 - 73a: 31 96 adiw r30, 0x01 ; 1 - 73c: ad b7 in r26, 0x3d ; 61 - 73e: be b7 in r27, 0x3e ; 62 - 740: 12 96 adiw r26, 0x02 ; 2 - 742: 5c 92 st X, r5 - 744: 4e 92 st -X, r4 - 746: 11 97 sbiw r26, 0x01 ; 1 - 748: 12 83 std Z+2, r17 ; 0x02 - 74a: 13 82 std Z+3, r1 ; 0x03 - 74c: 84 82 std Z+4, r8 ; 0x04 - 74e: 95 82 std Z+5, r9 ; 0x05 - 750: a6 82 std Z+6, r10 ; 0x06 - 752: b7 82 std Z+7, r11 ; 0x07 - 754: c0 86 std Z+8, r12 ; 0x08 - 756: d1 86 std Z+9, r13 ; 0x09 - 758: e2 86 std Z+10, r14 ; 0x0a - 75a: f3 86 std Z+11, r15 ; 0x0b - 75c: 0e 94 6f 04 call 0x8de ; 0x8de - 760: 8d b7 in r24, 0x3d ; 61 - 762: 9e b7 in r25, 0x3e ; 62 - 764: 0c 96 adiw r24, 0x0c ; 12 - 766: 0f b6 in r0, 0x3f ; 63 - 768: f8 94 cli - 76a: 9e bf out 0x3e, r25 ; 62 - 76c: 0f be out 0x3f, r0 ; 63 - 76e: 8d bf out 0x3d, r24 ; 61 - } - - /* If there has been more than 10 millis since last toggling */ - /* of button state, assume it is real and not bouncing noise. */ - if ((timer_millis() - last_toggle_time) > 10) { - 770: 0e 94 76 01 call 0x2ec ; 0x2ec - 774: e2 2f mov r30, r18 - 776: e8 19 sub r30, r8 - 778: f1 e0 ldi r31, 0x01 ; 1 - 77a: 2e 17 cp r18, r30 - 77c: 08 f0 brcs .+2 ; 0x780 - 77e: f0 e0 ldi r31, 0x00 ; 0 - 780: a3 2f mov r26, r19 - 782: a9 19 sub r26, r9 - 784: 21 e0 ldi r18, 0x01 ; 1 - 786: 3a 17 cp r19, r26 - 788: 08 f0 brcs .+2 ; 0x78c - 78a: 20 e0 ldi r18, 0x00 ; 0 - 78c: 3a 2f mov r19, r26 - 78e: 3f 1b sub r19, r31 - 790: f1 e0 ldi r31, 0x01 ; 1 - 792: a3 17 cp r26, r19 - 794: 08 f0 brcs .+2 ; 0x798 - 796: f0 e0 ldi r31, 0x00 ; 0 - 798: 2f 2b or r18, r31 - 79a: a4 2f mov r26, r20 - 79c: aa 19 sub r26, r10 - 79e: f1 e0 ldi r31, 0x01 ; 1 - 7a0: 4a 17 cp r20, r26 - 7a2: 08 f0 brcs .+2 ; 0x7a6 - 7a4: f0 e0 ldi r31, 0x00 ; 0 - 7a6: 4a 2f mov r20, r26 - 7a8: 42 1b sub r20, r18 - 7aa: 21 e0 ldi r18, 0x01 ; 1 - 7ac: a4 17 cp r26, r20 - 7ae: 08 f0 brcs .+2 ; 0x7b2 - 7b0: 20 e0 ldi r18, 0x00 ; 0 - 7b2: f2 2b or r31, r18 - 7b4: a5 2f mov r26, r21 - 7b6: ab 19 sub r26, r11 - 7b8: 21 e0 ldi r18, 0x01 ; 1 - 7ba: 5a 17 cp r21, r26 - 7bc: 08 f0 brcs .+2 ; 0x7c0 - 7be: 20 e0 ldi r18, 0x00 ; 0 - 7c0: 5a 2f mov r21, r26 - 7c2: 5f 1b sub r21, r31 - 7c4: f1 e0 ldi r31, 0x01 ; 1 - 7c6: a5 17 cp r26, r21 - 7c8: 08 f0 brcs .+2 ; 0x7cc - 7ca: f0 e0 ldi r31, 0x00 ; 0 - 7cc: 2f 2b or r18, r31 - 7ce: a6 2f mov r26, r22 - 7d0: ac 19 sub r26, r12 - 7d2: f1 e0 ldi r31, 0x01 ; 1 - 7d4: 6a 17 cp r22, r26 - 7d6: 08 f0 brcs .+2 ; 0x7da - 7d8: f0 e0 ldi r31, 0x00 ; 0 - 7da: 6a 2f mov r22, r26 - 7dc: 62 1b sub r22, r18 - 7de: 21 e0 ldi r18, 0x01 ; 1 - 7e0: a6 17 cp r26, r22 - 7e2: 08 f0 brcs .+2 ; 0x7e6 - 7e4: 20 e0 ldi r18, 0x00 ; 0 - 7e6: f2 2b or r31, r18 - 7e8: 27 2f mov r18, r23 - 7ea: 2d 19 sub r18, r13 - 7ec: a1 e0 ldi r26, 0x01 ; 1 - 7ee: 72 17 cp r23, r18 - 7f0: 08 f0 brcs .+2 ; 0x7f4 - 7f2: a0 e0 ldi r26, 0x00 ; 0 - 7f4: 72 2f mov r23, r18 - 7f6: 7f 1b sub r23, r31 - 7f8: f1 e0 ldi r31, 0x01 ; 1 - 7fa: 27 17 cp r18, r23 - 7fc: 08 f0 brcs .+2 ; 0x800 - 7fe: f0 e0 ldi r31, 0x00 ; 0 - 800: af 2b or r26, r31 - 802: f8 2f mov r31, r24 - 804: fe 19 sub r31, r14 - 806: 21 e0 ldi r18, 0x01 ; 1 - 808: 8f 17 cp r24, r31 - 80a: 08 f0 brcs .+2 ; 0x80e - 80c: 20 e0 ldi r18, 0x00 ; 0 - 80e: 8f 2f mov r24, r31 - 810: 8a 1b sub r24, r26 - 812: a1 e0 ldi r26, 0x01 ; 1 - 814: f8 17 cp r31, r24 - 816: 08 f0 brcs .+2 ; 0x81a - 818: a0 e0 ldi r26, 0x00 ; 0 - 81a: 2a 2b or r18, r26 - 81c: 9f 19 sub r25, r15 - 81e: 92 17 cp r25, r18 - 820: 71 f4 brne .+28 ; 0x83e - 822: 88 23 and r24, r24 - 824: 61 f4 brne .+24 ; 0x83e - 826: 77 23 and r23, r23 - 828: 51 f4 brne .+20 ; 0x83e - 82a: 66 23 and r22, r22 - 82c: 41 f4 brne .+16 ; 0x83e - 82e: 55 23 and r21, r21 - 830: 31 f4 brne .+12 ; 0x83e - 832: 44 23 and r20, r20 - 834: 21 f4 brne .+8 ; 0x83e - 836: 33 23 and r19, r19 - 838: 11 f4 brne .+4 ; 0x83e - 83a: eb 30 cpi r30, 0x0B ; 11 - 83c: 08 f0 brcs .+2 ; 0x840 - DDRB |= _BV(PORTB5); - -} - -uint8_t digital_read(int input_register, int pin) { - return bit_is_set(input_register, pin) != 0 ? 1 : 0; - 83e: 01 2f mov r16, r17 - if ((timer_millis() - last_toggle_time) > 10) { - current_state = current_reading; - } - - /* Just for debugging purposes. */ - if (current_state != previous_state) { - 840: 07 15 cp r16, r7 - 842: 09 f4 brne .+2 ; 0x846 - 844: 5c cf rjmp .-328 ; 0x6fe - printf("+ State toggled %d (%d)\n", current_state, last_toggle_time); - 846: ad b7 in r26, 0x3d ; 61 - 848: be b7 in r27, 0x3e ; 62 - 84a: 1c 97 sbiw r26, 0x0c ; 12 - 84c: 0f b6 in r0, 0x3f ; 63 - 84e: f8 94 cli - 850: be bf out 0x3e, r27 ; 62 - 852: 0f be out 0x3f, r0 ; 63 - 854: ad bf out 0x3d, r26 ; 61 - 856: ed b7 in r30, 0x3d ; 61 - 858: fe b7 in r31, 0x3e ; 62 - 85a: 31 96 adiw r30, 0x01 ; 1 - 85c: 12 96 adiw r26, 0x02 ; 2 - 85e: 3c 92 st X, r3 - 860: 2e 92 st -X, r2 - 862: 11 97 sbiw r26, 0x01 ; 1 - 864: 02 83 std Z+2, r16 ; 0x02 - 866: 13 82 std Z+3, r1 ; 0x03 - 868: 84 82 std Z+4, r8 ; 0x04 - 86a: 95 82 std Z+5, r9 ; 0x05 - 86c: a6 82 std Z+6, r10 ; 0x06 - 86e: b7 82 std Z+7, r11 ; 0x07 - 870: c0 86 std Z+8, r12 ; 0x08 - 872: d1 86 std Z+9, r13 ; 0x09 - 874: e2 86 std Z+10, r14 ; 0x0a - 876: f3 86 std Z+11, r15 ; 0x0b - 878: 0e 94 6f 04 call 0x8de ; 0x8de - 87c: 8d b7 in r24, 0x3d ; 61 - 87e: 9e b7 in r25, 0x3e ; 62 - 880: 0c 96 adiw r24, 0x0c ; 12 - 882: 0f b6 in r0, 0x3f ; 63 - 884: f8 94 cli - 886: 9e bf out 0x3e, r25 ; 62 - 888: 0f be out 0x3f, r0 ; 63 - 88a: 8d bf out 0x3d, r24 ; 61 - 88c: 70 2e mov r7, r16 - 88e: 37 cf rjmp .-402 ; 0x6fe - -00000890 <__divmodhi4>: - 890: 97 fb bst r25, 7 - 892: 09 2e mov r0, r25 - 894: 07 26 eor r0, r23 - 896: 0a d0 rcall .+20 ; 0x8ac <__divmodhi4_neg1> - 898: 77 fd sbrc r23, 7 - 89a: 04 d0 rcall .+8 ; 0x8a4 <__divmodhi4_neg2> - 89c: 0c d0 rcall .+24 ; 0x8b6 <__udivmodhi4> - 89e: 06 d0 rcall .+12 ; 0x8ac <__divmodhi4_neg1> - 8a0: 00 20 and r0, r0 - 8a2: 1a f4 brpl .+6 ; 0x8aa <__divmodhi4_exit> - -000008a4 <__divmodhi4_neg2>: - 8a4: 70 95 com r23 - 8a6: 61 95 neg r22 - 8a8: 7f 4f sbci r23, 0xFF ; 255 - -000008aa <__divmodhi4_exit>: - 8aa: 08 95 ret - -000008ac <__divmodhi4_neg1>: - 8ac: f6 f7 brtc .-4 ; 0x8aa <__divmodhi4_exit> - 8ae: 90 95 com r25 - 8b0: 81 95 neg r24 - 8b2: 9f 4f sbci r25, 0xFF ; 255 - 8b4: 08 95 ret - -000008b6 <__udivmodhi4>: - 8b6: aa 1b sub r26, r26 - 8b8: bb 1b sub r27, r27 - 8ba: 51 e1 ldi r21, 0x11 ; 17 - 8bc: 07 c0 rjmp .+14 ; 0x8cc <__udivmodhi4_ep> - -000008be <__udivmodhi4_loop>: - 8be: aa 1f adc r26, r26 - 8c0: bb 1f adc r27, r27 - 8c2: a6 17 cp r26, r22 - 8c4: b7 07 cpc r27, r23 - 8c6: 10 f0 brcs .+4 ; 0x8cc <__udivmodhi4_ep> - 8c8: a6 1b sub r26, r22 - 8ca: b7 0b sbc r27, r23 - -000008cc <__udivmodhi4_ep>: - 8cc: 88 1f adc r24, r24 - 8ce: 99 1f adc r25, r25 - 8d0: 5a 95 dec r21 - 8d2: a9 f7 brne .-22 ; 0x8be <__udivmodhi4_loop> - 8d4: 80 95 com r24 - 8d6: 90 95 com r25 - 8d8: bc 01 movw r22, r24 - 8da: cd 01 movw r24, r26 - 8dc: 08 95 ret - -000008de : - 8de: a0 e0 ldi r26, 0x00 ; 0 - 8e0: b0 e0 ldi r27, 0x00 ; 0 - 8e2: e5 e7 ldi r30, 0x75 ; 117 - 8e4: f4 e0 ldi r31, 0x04 ; 4 - 8e6: 0c 94 14 07 jmp 0xe28 ; 0xe28 <__prologue_saves__+0x20> - 8ea: fe 01 movw r30, r28 - 8ec: 35 96 adiw r30, 0x05 ; 5 - 8ee: 61 91 ld r22, Z+ - 8f0: 71 91 ld r23, Z+ - 8f2: 80 91 a2 03 lds r24, 0x03A2 - 8f6: 90 91 a3 03 lds r25, 0x03A3 - 8fa: af 01 movw r20, r30 - 8fc: 0e 94 84 04 call 0x908 ; 0x908 - 900: 20 96 adiw r28, 0x00 ; 0 - 902: e2 e0 ldi r30, 0x02 ; 2 - 904: 0c 94 30 07 jmp 0xe60 ; 0xe60 <__epilogue_restores__+0x20> - -00000908 : - 908: ad e0 ldi r26, 0x0D ; 13 - 90a: b0 e0 ldi r27, 0x00 ; 0 - 90c: ea e8 ldi r30, 0x8A ; 138 - 90e: f4 e0 ldi r31, 0x04 ; 4 - 910: 0c 94 04 07 jmp 0xe08 ; 0xe08 <__prologue_saves__> - 914: 3c 01 movw r6, r24 - 916: 7d 87 std Y+13, r23 ; 0x0d - 918: 6c 87 std Y+12, r22 ; 0x0c - 91a: 5a 01 movw r10, r20 - 91c: fc 01 movw r30, r24 - 91e: 17 82 std Z+7, r1 ; 0x07 - 920: 16 82 std Z+6, r1 ; 0x06 - 922: 83 81 ldd r24, Z+3 ; 0x03 - 924: 81 ff sbrs r24, 1 - 926: ca c1 rjmp .+916 ; 0xcbc - 928: 3f e3 ldi r19, 0x3F ; 63 - 92a: c3 2e mov r12, r19 - 92c: 2e 01 movw r4, r28 - 92e: 08 94 sec - 930: 41 1c adc r4, r1 - 932: 51 1c adc r5, r1 - 934: f3 01 movw r30, r6 - 936: 93 81 ldd r25, Z+3 ; 0x03 - 938: ec 85 ldd r30, Y+12 ; 0x0c - 93a: fd 85 ldd r31, Y+13 ; 0x0d - 93c: 93 fd sbrc r25, 3 - 93e: 85 91 lpm r24, Z+ - 940: 93 ff sbrs r25, 3 - 942: 81 91 ld r24, Z+ - 944: fd 87 std Y+13, r31 ; 0x0d - 946: ec 87 std Y+12, r30 ; 0x0c - 948: 88 23 and r24, r24 - 94a: 09 f4 brne .+2 ; 0x94e - 94c: b3 c1 rjmp .+870 ; 0xcb4 - 94e: 85 32 cpi r24, 0x25 ; 37 - 950: 41 f4 brne .+16 ; 0x962 - 952: 93 fd sbrc r25, 3 - 954: 85 91 lpm r24, Z+ - 956: 93 ff sbrs r25, 3 - 958: 81 91 ld r24, Z+ - 95a: fd 87 std Y+13, r31 ; 0x0d - 95c: ec 87 std Y+12, r30 ; 0x0c - 95e: 85 32 cpi r24, 0x25 ; 37 - 960: 29 f4 brne .+10 ; 0x96c - 962: 90 e0 ldi r25, 0x00 ; 0 - 964: b3 01 movw r22, r6 - 966: 0e 94 7a 06 call 0xcf4 ; 0xcf4 - 96a: e4 cf rjmp .-56 ; 0x934 - 96c: ee 24 eor r14, r14 - 96e: dd 24 eor r13, r13 - 970: 10 e0 ldi r17, 0x00 ; 0 - 972: 10 32 cpi r17, 0x20 ; 32 - 974: b0 f4 brcc .+44 ; 0x9a2 - 976: 8b 32 cpi r24, 0x2B ; 43 - 978: 69 f0 breq .+26 ; 0x994 - 97a: 8c 32 cpi r24, 0x2C ; 44 - 97c: 28 f4 brcc .+10 ; 0x988 - 97e: 80 32 cpi r24, 0x20 ; 32 - 980: 51 f0 breq .+20 ; 0x996 - 982: 83 32 cpi r24, 0x23 ; 35 - 984: 71 f4 brne .+28 ; 0x9a2 - 986: 0b c0 rjmp .+22 ; 0x99e - 988: 8d 32 cpi r24, 0x2D ; 45 - 98a: 39 f0 breq .+14 ; 0x99a - 98c: 80 33 cpi r24, 0x30 ; 48 - 98e: 49 f4 brne .+18 ; 0x9a2 - 990: 11 60 ori r17, 0x01 ; 1 - 992: 2c c0 rjmp .+88 ; 0x9ec - 994: 12 60 ori r17, 0x02 ; 2 - 996: 14 60 ori r17, 0x04 ; 4 - 998: 29 c0 rjmp .+82 ; 0x9ec - 99a: 18 60 ori r17, 0x08 ; 8 - 99c: 27 c0 rjmp .+78 ; 0x9ec - 99e: 10 61 ori r17, 0x10 ; 16 - 9a0: 25 c0 rjmp .+74 ; 0x9ec - 9a2: 17 fd sbrc r17, 7 - 9a4: 2e c0 rjmp .+92 ; 0xa02 - 9a6: 28 2f mov r18, r24 - 9a8: 20 53 subi r18, 0x30 ; 48 - 9aa: 2a 30 cpi r18, 0x0A ; 10 - 9ac: 98 f4 brcc .+38 ; 0x9d4 - 9ae: 16 ff sbrs r17, 6 - 9b0: 08 c0 rjmp .+16 ; 0x9c2 - 9b2: 8e 2d mov r24, r14 - 9b4: 88 0f add r24, r24 - 9b6: e8 2e mov r14, r24 - 9b8: ee 0c add r14, r14 - 9ba: ee 0c add r14, r14 - 9bc: e8 0e add r14, r24 - 9be: e2 0e add r14, r18 - 9c0: 15 c0 rjmp .+42 ; 0x9ec - 9c2: 8d 2d mov r24, r13 - 9c4: 88 0f add r24, r24 - 9c6: d8 2e mov r13, r24 - 9c8: dd 0c add r13, r13 - 9ca: dd 0c add r13, r13 - 9cc: d8 0e add r13, r24 - 9ce: d2 0e add r13, r18 - 9d0: 10 62 ori r17, 0x20 ; 32 - 9d2: 0c c0 rjmp .+24 ; 0x9ec - 9d4: 8e 32 cpi r24, 0x2E ; 46 - 9d6: 21 f4 brne .+8 ; 0x9e0 - 9d8: 16 fd sbrc r17, 6 - 9da: 6c c1 rjmp .+728 ; 0xcb4 - 9dc: 10 64 ori r17, 0x40 ; 64 - 9de: 06 c0 rjmp .+12 ; 0x9ec - 9e0: 8c 36 cpi r24, 0x6C ; 108 - 9e2: 11 f4 brne .+4 ; 0x9e8 - 9e4: 10 68 ori r17, 0x80 ; 128 - 9e6: 02 c0 rjmp .+4 ; 0x9ec - 9e8: 88 36 cpi r24, 0x68 ; 104 - 9ea: 59 f4 brne .+22 ; 0xa02 - 9ec: ec 85 ldd r30, Y+12 ; 0x0c - 9ee: fd 85 ldd r31, Y+13 ; 0x0d - 9f0: 93 fd sbrc r25, 3 - 9f2: 85 91 lpm r24, Z+ - 9f4: 93 ff sbrs r25, 3 - 9f6: 81 91 ld r24, Z+ - 9f8: fd 87 std Y+13, r31 ; 0x0d - 9fa: ec 87 std Y+12, r30 ; 0x0c - 9fc: 88 23 and r24, r24 - 9fe: 09 f0 breq .+2 ; 0xa02 - a00: b8 cf rjmp .-144 ; 0x972 - a02: 98 2f mov r25, r24 - a04: 95 54 subi r25, 0x45 ; 69 - a06: 93 30 cpi r25, 0x03 ; 3 - a08: 18 f0 brcs .+6 ; 0xa10 - a0a: 90 52 subi r25, 0x20 ; 32 - a0c: 93 30 cpi r25, 0x03 ; 3 - a0e: 30 f4 brcc .+12 ; 0xa1c - a10: 24 e0 ldi r18, 0x04 ; 4 - a12: 30 e0 ldi r19, 0x00 ; 0 - a14: a2 0e add r10, r18 - a16: b3 1e adc r11, r19 - a18: c9 82 std Y+1, r12 ; 0x01 - a1a: 0f c0 rjmp .+30 ; 0xa3a - a1c: 83 36 cpi r24, 0x63 ; 99 - a1e: 31 f0 breq .+12 ; 0xa2c - a20: 83 37 cpi r24, 0x73 ; 115 - a22: 81 f0 breq .+32 ; 0xa44 - a24: 83 35 cpi r24, 0x53 ; 83 - a26: 09 f0 breq .+2 ; 0xa2a - a28: 5a c0 rjmp .+180 ; 0xade - a2a: 22 c0 rjmp .+68 ; 0xa70 - a2c: f5 01 movw r30, r10 - a2e: 80 81 ld r24, Z - a30: 89 83 std Y+1, r24 ; 0x01 - a32: 22 e0 ldi r18, 0x02 ; 2 - a34: 30 e0 ldi r19, 0x00 ; 0 - a36: a2 0e add r10, r18 - a38: b3 1e adc r11, r19 - a3a: 21 e0 ldi r18, 0x01 ; 1 - a3c: e2 2e mov r14, r18 - a3e: f1 2c mov r15, r1 - a40: 42 01 movw r8, r4 - a42: 14 c0 rjmp .+40 ; 0xa6c - a44: 92 e0 ldi r25, 0x02 ; 2 - a46: 29 2e mov r2, r25 - a48: 31 2c mov r3, r1 - a4a: 2a 0c add r2, r10 - a4c: 3b 1c adc r3, r11 - a4e: f5 01 movw r30, r10 - a50: 80 80 ld r8, Z - a52: 91 80 ldd r9, Z+1 ; 0x01 - a54: 16 ff sbrs r17, 6 - a56: 03 c0 rjmp .+6 ; 0xa5e - a58: 6e 2d mov r22, r14 - a5a: 70 e0 ldi r23, 0x00 ; 0 - a5c: 02 c0 rjmp .+4 ; 0xa62 - a5e: 6f ef ldi r22, 0xFF ; 255 - a60: 7f ef ldi r23, 0xFF ; 255 - a62: c4 01 movw r24, r8 - a64: 0e 94 6f 06 call 0xcde ; 0xcde - a68: 7c 01 movw r14, r24 - a6a: 51 01 movw r10, r2 - a6c: 1f 77 andi r17, 0x7F ; 127 - a6e: 15 c0 rjmp .+42 ; 0xa9a - a70: 82 e0 ldi r24, 0x02 ; 2 - a72: 28 2e mov r2, r24 - a74: 31 2c mov r3, r1 - a76: 2a 0c add r2, r10 - a78: 3b 1c adc r3, r11 - a7a: f5 01 movw r30, r10 - a7c: 80 80 ld r8, Z - a7e: 91 80 ldd r9, Z+1 ; 0x01 - a80: 16 ff sbrs r17, 6 - a82: 03 c0 rjmp .+6 ; 0xa8a - a84: 6e 2d mov r22, r14 - a86: 70 e0 ldi r23, 0x00 ; 0 - a88: 02 c0 rjmp .+4 ; 0xa8e - a8a: 6f ef ldi r22, 0xFF ; 255 - a8c: 7f ef ldi r23, 0xFF ; 255 - a8e: c4 01 movw r24, r8 - a90: 0e 94 64 06 call 0xcc8 ; 0xcc8 - a94: 7c 01 movw r14, r24 - a96: 10 68 ori r17, 0x80 ; 128 - a98: 51 01 movw r10, r2 - a9a: 13 fd sbrc r17, 3 - a9c: 1c c0 rjmp .+56 ; 0xad6 - a9e: 06 c0 rjmp .+12 ; 0xaac - aa0: 80 e2 ldi r24, 0x20 ; 32 - aa2: 90 e0 ldi r25, 0x00 ; 0 - aa4: b3 01 movw r22, r6 - aa6: 0e 94 7a 06 call 0xcf4 ; 0xcf4 - aaa: da 94 dec r13 - aac: 8d 2d mov r24, r13 - aae: 90 e0 ldi r25, 0x00 ; 0 - ab0: e8 16 cp r14, r24 - ab2: f9 06 cpc r15, r25 - ab4: a8 f3 brcs .-22 ; 0xaa0 - ab6: 0f c0 rjmp .+30 ; 0xad6 - ab8: f4 01 movw r30, r8 - aba: 17 fd sbrc r17, 7 - abc: 85 91 lpm r24, Z+ - abe: 17 ff sbrs r17, 7 - ac0: 81 91 ld r24, Z+ - ac2: 4f 01 movw r8, r30 - ac4: 90 e0 ldi r25, 0x00 ; 0 - ac6: b3 01 movw r22, r6 - ac8: 0e 94 7a 06 call 0xcf4 ; 0xcf4 - acc: d1 10 cpse r13, r1 - ace: da 94 dec r13 - ad0: 08 94 sec - ad2: e1 08 sbc r14, r1 - ad4: f1 08 sbc r15, r1 - ad6: e1 14 cp r14, r1 - ad8: f1 04 cpc r15, r1 - ada: 71 f7 brne .-36 ; 0xab8 - adc: e8 c0 rjmp .+464 ; 0xcae - ade: 84 36 cpi r24, 0x64 ; 100 - ae0: 11 f0 breq .+4 ; 0xae6 - ae2: 89 36 cpi r24, 0x69 ; 105 - ae4: 59 f5 brne .+86 ; 0xb3c - ae6: f5 01 movw r30, r10 - ae8: 17 ff sbrs r17, 7 - aea: 07 c0 rjmp .+14 ; 0xafa - aec: 80 81 ld r24, Z - aee: 91 81 ldd r25, Z+1 ; 0x01 - af0: a2 81 ldd r26, Z+2 ; 0x02 - af2: b3 81 ldd r27, Z+3 ; 0x03 - af4: 24 e0 ldi r18, 0x04 ; 4 - af6: 30 e0 ldi r19, 0x00 ; 0 - af8: 09 c0 rjmp .+18 ; 0xb0c - afa: 60 81 ld r22, Z - afc: 71 81 ldd r23, Z+1 ; 0x01 - afe: cb 01 movw r24, r22 - b00: aa 27 eor r26, r26 - b02: 97 fd sbrc r25, 7 - b04: a0 95 com r26 - b06: ba 2f mov r27, r26 - b08: 22 e0 ldi r18, 0x02 ; 2 - b0a: 30 e0 ldi r19, 0x00 ; 0 - b0c: a2 0e add r10, r18 - b0e: b3 1e adc r11, r19 - b10: 01 2f mov r16, r17 - b12: 0f 76 andi r16, 0x6F ; 111 - b14: b7 ff sbrs r27, 7 - b16: 08 c0 rjmp .+16 ; 0xb28 - b18: b0 95 com r27 - b1a: a0 95 com r26 - b1c: 90 95 com r25 - b1e: 81 95 neg r24 - b20: 9f 4f sbci r25, 0xFF ; 255 - b22: af 4f sbci r26, 0xFF ; 255 - b24: bf 4f sbci r27, 0xFF ; 255 - b26: 00 68 ori r16, 0x80 ; 128 - b28: bc 01 movw r22, r24 - b2a: cd 01 movw r24, r26 - b2c: a2 01 movw r20, r4 - b2e: 2a e0 ldi r18, 0x0A ; 10 - b30: 30 e0 ldi r19, 0x00 ; 0 - b32: 0e 94 a6 06 call 0xd4c ; 0xd4c <__ultoa_invert> - b36: f8 2e mov r15, r24 - b38: f4 18 sub r15, r4 - b3a: 3f c0 rjmp .+126 ; 0xbba - b3c: 85 37 cpi r24, 0x75 ; 117 - b3e: 21 f4 brne .+8 ; 0xb48 - b40: 1f 7e andi r17, 0xEF ; 239 - b42: 2a e0 ldi r18, 0x0A ; 10 - b44: 30 e0 ldi r19, 0x00 ; 0 - b46: 20 c0 rjmp .+64 ; 0xb88 - b48: 19 7f andi r17, 0xF9 ; 249 - b4a: 8f 36 cpi r24, 0x6F ; 111 - b4c: a9 f0 breq .+42 ; 0xb78 - b4e: 80 37 cpi r24, 0x70 ; 112 - b50: 20 f4 brcc .+8 ; 0xb5a - b52: 88 35 cpi r24, 0x58 ; 88 - b54: 09 f0 breq .+2 ; 0xb58 - b56: ae c0 rjmp .+348 ; 0xcb4 - b58: 0b c0 rjmp .+22 ; 0xb70 - b5a: 80 37 cpi r24, 0x70 ; 112 - b5c: 21 f0 breq .+8 ; 0xb66 - b5e: 88 37 cpi r24, 0x78 ; 120 - b60: 09 f0 breq .+2 ; 0xb64 - b62: a8 c0 rjmp .+336 ; 0xcb4 - b64: 01 c0 rjmp .+2 ; 0xb68 - b66: 10 61 ori r17, 0x10 ; 16 - b68: 14 ff sbrs r17, 4 - b6a: 09 c0 rjmp .+18 ; 0xb7e - b6c: 14 60 ori r17, 0x04 ; 4 - b6e: 07 c0 rjmp .+14 ; 0xb7e - b70: 14 ff sbrs r17, 4 - b72: 08 c0 rjmp .+16 ; 0xb84 - b74: 16 60 ori r17, 0x06 ; 6 - b76: 06 c0 rjmp .+12 ; 0xb84 - b78: 28 e0 ldi r18, 0x08 ; 8 - b7a: 30 e0 ldi r19, 0x00 ; 0 - b7c: 05 c0 rjmp .+10 ; 0xb88 - b7e: 20 e1 ldi r18, 0x10 ; 16 - b80: 30 e0 ldi r19, 0x00 ; 0 - b82: 02 c0 rjmp .+4 ; 0xb88 - b84: 20 e1 ldi r18, 0x10 ; 16 - b86: 32 e0 ldi r19, 0x02 ; 2 - b88: f5 01 movw r30, r10 - b8a: 17 ff sbrs r17, 7 - b8c: 07 c0 rjmp .+14 ; 0xb9c - b8e: 60 81 ld r22, Z - b90: 71 81 ldd r23, Z+1 ; 0x01 - b92: 82 81 ldd r24, Z+2 ; 0x02 - b94: 93 81 ldd r25, Z+3 ; 0x03 - b96: 44 e0 ldi r20, 0x04 ; 4 - b98: 50 e0 ldi r21, 0x00 ; 0 - b9a: 06 c0 rjmp .+12 ; 0xba8 - b9c: 60 81 ld r22, Z - b9e: 71 81 ldd r23, Z+1 ; 0x01 - ba0: 80 e0 ldi r24, 0x00 ; 0 - ba2: 90 e0 ldi r25, 0x00 ; 0 - ba4: 42 e0 ldi r20, 0x02 ; 2 - ba6: 50 e0 ldi r21, 0x00 ; 0 - ba8: a4 0e add r10, r20 - baa: b5 1e adc r11, r21 - bac: a2 01 movw r20, r4 - bae: 0e 94 a6 06 call 0xd4c ; 0xd4c <__ultoa_invert> - bb2: f8 2e mov r15, r24 - bb4: f4 18 sub r15, r4 - bb6: 01 2f mov r16, r17 - bb8: 0f 77 andi r16, 0x7F ; 127 - bba: 06 ff sbrs r16, 6 - bbc: 09 c0 rjmp .+18 ; 0xbd0 - bbe: 0e 7f andi r16, 0xFE ; 254 - bc0: fe 14 cp r15, r14 - bc2: 30 f4 brcc .+12 ; 0xbd0 - bc4: 04 ff sbrs r16, 4 - bc6: 06 c0 rjmp .+12 ; 0xbd4 - bc8: 02 fd sbrc r16, 2 - bca: 04 c0 rjmp .+8 ; 0xbd4 - bcc: 0f 7e andi r16, 0xEF ; 239 - bce: 02 c0 rjmp .+4 ; 0xbd4 - bd0: 1f 2d mov r17, r15 - bd2: 01 c0 rjmp .+2 ; 0xbd6 - bd4: 1e 2d mov r17, r14 - bd6: 80 2f mov r24, r16 - bd8: 90 e0 ldi r25, 0x00 ; 0 - bda: 04 ff sbrs r16, 4 - bdc: 0c c0 rjmp .+24 ; 0xbf6 - bde: fe 01 movw r30, r28 - be0: ef 0d add r30, r15 - be2: f1 1d adc r31, r1 - be4: 20 81 ld r18, Z - be6: 20 33 cpi r18, 0x30 ; 48 - be8: 11 f4 brne .+4 ; 0xbee - bea: 09 7e andi r16, 0xE9 ; 233 - bec: 09 c0 rjmp .+18 ; 0xc00 - bee: 02 ff sbrs r16, 2 - bf0: 06 c0 rjmp .+12 ; 0xbfe - bf2: 1e 5f subi r17, 0xFE ; 254 - bf4: 05 c0 rjmp .+10 ; 0xc00 - bf6: 86 78 andi r24, 0x86 ; 134 - bf8: 90 70 andi r25, 0x00 ; 0 - bfa: 00 97 sbiw r24, 0x00 ; 0 - bfc: 09 f0 breq .+2 ; 0xc00 - bfe: 1f 5f subi r17, 0xFF ; 255 - c00: 80 2e mov r8, r16 - c02: 99 24 eor r9, r9 - c04: 03 fd sbrc r16, 3 - c06: 12 c0 rjmp .+36 ; 0xc2c - c08: 00 ff sbrs r16, 0 - c0a: 0d c0 rjmp .+26 ; 0xc26 - c0c: ef 2c mov r14, r15 - c0e: 1d 15 cp r17, r13 - c10: 50 f4 brcc .+20 ; 0xc26 - c12: ed 0c add r14, r13 - c14: e1 1a sub r14, r17 - c16: 1d 2d mov r17, r13 - c18: 06 c0 rjmp .+12 ; 0xc26 - c1a: 80 e2 ldi r24, 0x20 ; 32 - c1c: 90 e0 ldi r25, 0x00 ; 0 - c1e: b3 01 movw r22, r6 - c20: 0e 94 7a 06 call 0xcf4 ; 0xcf4 - c24: 1f 5f subi r17, 0xFF ; 255 - c26: 1d 15 cp r17, r13 - c28: c0 f3 brcs .-16 ; 0xc1a - c2a: 04 c0 rjmp .+8 ; 0xc34 - c2c: 1d 15 cp r17, r13 - c2e: 10 f4 brcc .+4 ; 0xc34 - c30: d1 1a sub r13, r17 - c32: 01 c0 rjmp .+2 ; 0xc36 - c34: dd 24 eor r13, r13 - c36: 84 fe sbrs r8, 4 - c38: 0f c0 rjmp .+30 ; 0xc58 - c3a: 80 e3 ldi r24, 0x30 ; 48 - c3c: 90 e0 ldi r25, 0x00 ; 0 - c3e: b3 01 movw r22, r6 - c40: 0e 94 7a 06 call 0xcf4 ; 0xcf4 - c44: 82 fe sbrs r8, 2 - c46: 1f c0 rjmp .+62 ; 0xc86 - c48: 81 fe sbrs r8, 1 - c4a: 03 c0 rjmp .+6 ; 0xc52 - c4c: 88 e5 ldi r24, 0x58 ; 88 - c4e: 90 e0 ldi r25, 0x00 ; 0 - c50: 10 c0 rjmp .+32 ; 0xc72 - c52: 88 e7 ldi r24, 0x78 ; 120 - c54: 90 e0 ldi r25, 0x00 ; 0 - c56: 0d c0 rjmp .+26 ; 0xc72 - c58: c4 01 movw r24, r8 - c5a: 86 78 andi r24, 0x86 ; 134 - c5c: 90 70 andi r25, 0x00 ; 0 - c5e: 00 97 sbiw r24, 0x00 ; 0 - c60: 91 f0 breq .+36 ; 0xc86 - c62: 81 fc sbrc r8, 1 - c64: 02 c0 rjmp .+4 ; 0xc6a - c66: 80 e2 ldi r24, 0x20 ; 32 - c68: 01 c0 rjmp .+2 ; 0xc6c - c6a: 8b e2 ldi r24, 0x2B ; 43 - c6c: 07 fd sbrc r16, 7 - c6e: 8d e2 ldi r24, 0x2D ; 45 - c70: 90 e0 ldi r25, 0x00 ; 0 - c72: b3 01 movw r22, r6 - c74: 0e 94 7a 06 call 0xcf4 ; 0xcf4 - c78: 06 c0 rjmp .+12 ; 0xc86 - c7a: 80 e3 ldi r24, 0x30 ; 48 - c7c: 90 e0 ldi r25, 0x00 ; 0 - c7e: b3 01 movw r22, r6 - c80: 0e 94 7a 06 call 0xcf4 ; 0xcf4 - c84: ea 94 dec r14 - c86: fe 14 cp r15, r14 - c88: c0 f3 brcs .-16 ; 0xc7a - c8a: fa 94 dec r15 - c8c: f2 01 movw r30, r4 - c8e: ef 0d add r30, r15 - c90: f1 1d adc r31, r1 - c92: 80 81 ld r24, Z - c94: 90 e0 ldi r25, 0x00 ; 0 - c96: b3 01 movw r22, r6 - c98: 0e 94 7a 06 call 0xcf4 ; 0xcf4 - c9c: ff 20 and r15, r15 - c9e: a9 f7 brne .-22 ; 0xc8a - ca0: 06 c0 rjmp .+12 ; 0xcae - ca2: 80 e2 ldi r24, 0x20 ; 32 - ca4: 90 e0 ldi r25, 0x00 ; 0 - ca6: b3 01 movw r22, r6 - ca8: 0e 94 7a 06 call 0xcf4 ; 0xcf4 - cac: da 94 dec r13 - cae: dd 20 and r13, r13 - cb0: c1 f7 brne .-16 ; 0xca2 - cb2: 40 ce rjmp .-896 ; 0x934 - cb4: f3 01 movw r30, r6 - cb6: 86 81 ldd r24, Z+6 ; 0x06 - cb8: 97 81 ldd r25, Z+7 ; 0x07 - cba: 02 c0 rjmp .+4 ; 0xcc0 - cbc: 8f ef ldi r24, 0xFF ; 255 - cbe: 9f ef ldi r25, 0xFF ; 255 - cc0: 2d 96 adiw r28, 0x0d ; 13 - cc2: e2 e1 ldi r30, 0x12 ; 18 - cc4: 0c 94 20 07 jmp 0xe40 ; 0xe40 <__epilogue_restores__> - -00000cc8 : - cc8: fc 01 movw r30, r24 - cca: 05 90 lpm r0, Z+ - ccc: 61 50 subi r22, 0x01 ; 1 - cce: 70 40 sbci r23, 0x00 ; 0 - cd0: 01 10 cpse r0, r1 - cd2: d8 f7 brcc .-10 ; 0xcca - cd4: 80 95 com r24 - cd6: 90 95 com r25 - cd8: 8e 0f add r24, r30 - cda: 9f 1f adc r25, r31 - cdc: 08 95 ret - -00000cde : - cde: fc 01 movw r30, r24 - ce0: 61 50 subi r22, 0x01 ; 1 - ce2: 70 40 sbci r23, 0x00 ; 0 - ce4: 01 90 ld r0, Z+ - ce6: 01 10 cpse r0, r1 - ce8: d8 f7 brcc .-10 ; 0xce0 - cea: 80 95 com r24 - cec: 90 95 com r25 - cee: 8e 0f add r24, r30 - cf0: 9f 1f adc r25, r31 - cf2: 08 95 ret - -00000cf4 : - cf4: 0f 93 push r16 - cf6: 1f 93 push r17 - cf8: cf 93 push r28 - cfa: df 93 push r29 - cfc: 8c 01 movw r16, r24 - cfe: eb 01 movw r28, r22 - d00: 8b 81 ldd r24, Y+3 ; 0x03 - d02: 81 ff sbrs r24, 1 - d04: 1b c0 rjmp .+54 ; 0xd3c - d06: 82 ff sbrs r24, 2 - d08: 0d c0 rjmp .+26 ; 0xd24 - d0a: 2e 81 ldd r18, Y+6 ; 0x06 - d0c: 3f 81 ldd r19, Y+7 ; 0x07 - d0e: 8c 81 ldd r24, Y+4 ; 0x04 - d10: 9d 81 ldd r25, Y+5 ; 0x05 - d12: 28 17 cp r18, r24 - d14: 39 07 cpc r19, r25 - d16: 64 f4 brge .+24 ; 0xd30 - d18: e8 81 ld r30, Y - d1a: f9 81 ldd r31, Y+1 ; 0x01 - d1c: 01 93 st Z+, r16 - d1e: f9 83 std Y+1, r31 ; 0x01 - d20: e8 83 st Y, r30 - d22: 06 c0 rjmp .+12 ; 0xd30 - d24: e8 85 ldd r30, Y+8 ; 0x08 - d26: f9 85 ldd r31, Y+9 ; 0x09 - d28: 80 2f mov r24, r16 - d2a: 09 95 icall - d2c: 00 97 sbiw r24, 0x00 ; 0 - d2e: 31 f4 brne .+12 ; 0xd3c - d30: 8e 81 ldd r24, Y+6 ; 0x06 - d32: 9f 81 ldd r25, Y+7 ; 0x07 - d34: 01 96 adiw r24, 0x01 ; 1 - d36: 9f 83 std Y+7, r25 ; 0x07 - d38: 8e 83 std Y+6, r24 ; 0x06 - d3a: 02 c0 rjmp .+4 ; 0xd40 - d3c: 0f ef ldi r16, 0xFF ; 255 - d3e: 1f ef ldi r17, 0xFF ; 255 - d40: c8 01 movw r24, r16 - d42: df 91 pop r29 - d44: cf 91 pop r28 - d46: 1f 91 pop r17 - d48: 0f 91 pop r16 - d4a: 08 95 ret - -00000d4c <__ultoa_invert>: - d4c: fa 01 movw r30, r20 - d4e: aa 27 eor r26, r26 - d50: 28 30 cpi r18, 0x08 ; 8 - d52: 51 f1 breq .+84 ; 0xda8 <__ultoa_invert+0x5c> - d54: 20 31 cpi r18, 0x10 ; 16 - d56: 81 f1 breq .+96 ; 0xdb8 <__ultoa_invert+0x6c> - d58: e8 94 clt - d5a: 6f 93 push r22 - d5c: 6e 7f andi r22, 0xFE ; 254 - d5e: 6e 5f subi r22, 0xFE ; 254 - d60: 7f 4f sbci r23, 0xFF ; 255 - d62: 8f 4f sbci r24, 0xFF ; 255 - d64: 9f 4f sbci r25, 0xFF ; 255 - d66: af 4f sbci r26, 0xFF ; 255 - d68: b1 e0 ldi r27, 0x01 ; 1 - d6a: 3e d0 rcall .+124 ; 0xde8 <__ultoa_invert+0x9c> - d6c: b4 e0 ldi r27, 0x04 ; 4 - d6e: 3c d0 rcall .+120 ; 0xde8 <__ultoa_invert+0x9c> - d70: 67 0f add r22, r23 - d72: 78 1f adc r23, r24 - d74: 89 1f adc r24, r25 - d76: 9a 1f adc r25, r26 - d78: a1 1d adc r26, r1 - d7a: 68 0f add r22, r24 - d7c: 79 1f adc r23, r25 - d7e: 8a 1f adc r24, r26 - d80: 91 1d adc r25, r1 - d82: a1 1d adc r26, r1 - d84: 6a 0f add r22, r26 - d86: 71 1d adc r23, r1 - d88: 81 1d adc r24, r1 - d8a: 91 1d adc r25, r1 - d8c: a1 1d adc r26, r1 - d8e: 20 d0 rcall .+64 ; 0xdd0 <__ultoa_invert+0x84> - d90: 09 f4 brne .+2 ; 0xd94 <__ultoa_invert+0x48> - d92: 68 94 set - d94: 3f 91 pop r19 - d96: 2a e0 ldi r18, 0x0A ; 10 - d98: 26 9f mul r18, r22 - d9a: 11 24 eor r1, r1 - d9c: 30 19 sub r19, r0 - d9e: 30 5d subi r19, 0xD0 ; 208 - da0: 31 93 st Z+, r19 - da2: de f6 brtc .-74 ; 0xd5a <__ultoa_invert+0xe> - da4: cf 01 movw r24, r30 - da6: 08 95 ret - da8: 46 2f mov r20, r22 - daa: 47 70 andi r20, 0x07 ; 7 - dac: 40 5d subi r20, 0xD0 ; 208 - dae: 41 93 st Z+, r20 - db0: b3 e0 ldi r27, 0x03 ; 3 - db2: 0f d0 rcall .+30 ; 0xdd2 <__ultoa_invert+0x86> - db4: c9 f7 brne .-14 ; 0xda8 <__ultoa_invert+0x5c> - db6: f6 cf rjmp .-20 ; 0xda4 <__ultoa_invert+0x58> - db8: 46 2f mov r20, r22 - dba: 4f 70 andi r20, 0x0F ; 15 - dbc: 40 5d subi r20, 0xD0 ; 208 - dbe: 4a 33 cpi r20, 0x3A ; 58 - dc0: 18 f0 brcs .+6 ; 0xdc8 <__ultoa_invert+0x7c> - dc2: 49 5d subi r20, 0xD9 ; 217 - dc4: 31 fd sbrc r19, 1 - dc6: 40 52 subi r20, 0x20 ; 32 - dc8: 41 93 st Z+, r20 - dca: 02 d0 rcall .+4 ; 0xdd0 <__ultoa_invert+0x84> - dcc: a9 f7 brne .-22 ; 0xdb8 <__ultoa_invert+0x6c> - dce: ea cf rjmp .-44 ; 0xda4 <__ultoa_invert+0x58> - dd0: b4 e0 ldi r27, 0x04 ; 4 - dd2: a6 95 lsr r26 - dd4: 97 95 ror r25 - dd6: 87 95 ror r24 - dd8: 77 95 ror r23 - dda: 67 95 ror r22 - ddc: ba 95 dec r27 - dde: c9 f7 brne .-14 ; 0xdd2 <__ultoa_invert+0x86> - de0: 00 97 sbiw r24, 0x00 ; 0 - de2: 61 05 cpc r22, r1 - de4: 71 05 cpc r23, r1 - de6: 08 95 ret - de8: 9b 01 movw r18, r22 - dea: ac 01 movw r20, r24 - dec: 0a 2e mov r0, r26 - dee: 06 94 lsr r0 - df0: 57 95 ror r21 - df2: 47 95 ror r20 - df4: 37 95 ror r19 - df6: 27 95 ror r18 - df8: ba 95 dec r27 - dfa: c9 f7 brne .-14 ; 0xdee <__ultoa_invert+0xa2> - dfc: 62 0f add r22, r18 - dfe: 73 1f adc r23, r19 - e00: 84 1f adc r24, r20 - e02: 95 1f adc r25, r21 - e04: a0 1d adc r26, r0 - e06: 08 95 ret - -00000e08 <__prologue_saves__>: - e08: 2f 92 push r2 - e0a: 3f 92 push r3 - e0c: 4f 92 push r4 - e0e: 5f 92 push r5 - e10: 6f 92 push r6 - e12: 7f 92 push r7 - e14: 8f 92 push r8 - e16: 9f 92 push r9 - e18: af 92 push r10 - e1a: bf 92 push r11 - e1c: cf 92 push r12 - e1e: df 92 push r13 - e20: ef 92 push r14 - e22: ff 92 push r15 - e24: 0f 93 push r16 - e26: 1f 93 push r17 - e28: cf 93 push r28 - e2a: df 93 push r29 - e2c: cd b7 in r28, 0x3d ; 61 - e2e: de b7 in r29, 0x3e ; 62 - e30: ca 1b sub r28, r26 - e32: db 0b sbc r29, r27 - e34: 0f b6 in r0, 0x3f ; 63 - e36: f8 94 cli - e38: de bf out 0x3e, r29 ; 62 - e3a: 0f be out 0x3f, r0 ; 63 - e3c: cd bf out 0x3d, r28 ; 61 - e3e: 09 94 ijmp - -00000e40 <__epilogue_restores__>: - e40: 2a 88 ldd r2, Y+18 ; 0x12 - e42: 39 88 ldd r3, Y+17 ; 0x11 - e44: 48 88 ldd r4, Y+16 ; 0x10 - e46: 5f 84 ldd r5, Y+15 ; 0x0f - e48: 6e 84 ldd r6, Y+14 ; 0x0e - e4a: 7d 84 ldd r7, Y+13 ; 0x0d - e4c: 8c 84 ldd r8, Y+12 ; 0x0c - e4e: 9b 84 ldd r9, Y+11 ; 0x0b - e50: aa 84 ldd r10, Y+10 ; 0x0a - e52: b9 84 ldd r11, Y+9 ; 0x09 - e54: c8 84 ldd r12, Y+8 ; 0x08 - e56: df 80 ldd r13, Y+7 ; 0x07 - e58: ee 80 ldd r14, Y+6 ; 0x06 - e5a: fd 80 ldd r15, Y+5 ; 0x05 - e5c: 0c 81 ldd r16, Y+4 ; 0x04 - e5e: 1b 81 ldd r17, Y+3 ; 0x03 - e60: aa 81 ldd r26, Y+2 ; 0x02 - e62: b9 81 ldd r27, Y+1 ; 0x01 - e64: ce 0f add r28, r30 - e66: d1 1d adc r29, r1 - e68: 0f b6 in r0, 0x3f ; 63 - e6a: f8 94 cli - e6c: de bf out 0x3e, r29 ; 62 - e6e: 0f be out 0x3f, r0 ; 63 - e70: cd bf out 0x3d, r28 ; 61 - e72: ed 01 movw r28, r26 - e74: 08 95 ret - -00000e76 <_exit>: - e76: f8 94 cli - -00000e78 <__stop_program>: - e78: ff cf rjmp .-2 ; 0xe78 <__stop_program> diff --git a/button_debounce/main.lst b/button_debounce/main.lst deleted file mode 100644 index b42f0df..0000000 --- a/button_debounce/main.lst +++ /dev/null @@ -1,552 +0,0 @@ - 1 .file "main.c" - 2 __SREG__ = 0x3f - 3 __SP_H__ = 0x3e - 4 __SP_L__ = 0x3d - 5 __tmp_reg__ = 0 - 6 __zero_reg__ = 1 - 7 .global __do_copy_data - 8 .global __do_clear_bss - 9 .text - 10 .Ltext0: - 11 .global digital_read - 13 digital_read: - 14 .LFB6: - 15 .file 1 "main.c" - 1:main.c **** /* - 2:main.c **** * Button with debouncing. Based on the Arduino example but without - 3:main.c **** * Arduino libraries. - 4:main.c **** * - 5:main.c **** * http://www.arduino.cc/en/Tutorial/Debounce - 6:main.c **** * - 7:main.c **** * To compile and upload run: make clean; make; make program; - 8:main.c **** * - 9:main.c **** * Copyright 2011 Mika Tuupola - 10:main.c **** * - 11:main.c **** * Licensed under the MIT license: - 12:main.c **** * http://www.opensource.org/licenses/mit-license.php - 13:main.c **** * - 14:main.c **** */ - 15:main.c **** - 16:main.c **** - 17:main.c **** #ifndef F_CPU - 18:main.c **** #define F_CPU 16000000UL - 19:main.c **** #endif - 20:main.c **** - 21:main.c **** #include - 22:main.c **** #include - 23:main.c **** #include - 24:main.c **** #include - 25:main.c **** #include - 26:main.c **** #include - 27:main.c **** - 28:main.c **** #include "main.h" - 29:main.c **** #include "uart.h" - 30:main.c **** #include "timer.h" - 31:main.c **** - 32:main.c **** void init(void) { - 33:main.c **** - 34:main.c **** /* Make PORTD2 (Arduino digital 2) input by clearing bit in DDR */ - 35:main.c **** DDRD &= ~(_BV(PORTD2)); - 36:main.c **** - 37:main.c **** /* In input mode, when pull-up is enabled, default state of pin becomes ’1′. So even if */ - 38:main.c **** /* you don’t connect anything to pin and if you try to read it, it will read as 1. Now, */ - 39:main.c **** /* when you externally drive that pin to zero(i.e. connect to ground / or pull-down), */ - 40:main.c **** /* only then it will be read as 0. */ - 41:main.c **** - 42:main.c **** /* Enable pullups by setting bits in PORT. Default state is now high. */ - 43:main.c **** PORTD |= (_BV(PORTD2)); - 44:main.c **** - 45:main.c **** /* Make PORTB5 (Arduino digital 13) an output by setting bit in DDR. */ - 46:main.c **** DDRB |= _BV(PORTB5); - 47:main.c **** - 48:main.c **** } - 49:main.c **** - 50:main.c **** uint8_t digital_read(int input_register, int pin) { - 16 .loc 1 50 0 - 17 .LVL0: - 18 0000 CF93 push r28 - 19 .LCFI0: - 20 0002 DF93 push r29 - 21 .LCFI1: - 22 0004 00D0 rcall . - 23 .LCFI2: - 24 0006 CDB7 in r28,__SP_L__ - 25 0008 DEB7 in r29,__SP_H__ - 26 .LCFI3: - 27 /* prologue: function */ - 28 /* frame size = 2 */ - 29 /* stack size = 4 */ - 30 .L__stack_usage = 4 - 31 000a 9A83 std Y+2,r25 - 32 000c 8983 std Y+1,r24 - 51:main.c **** return bit_is_set(input_register, pin) != 0 ? 1 : 0; - 33 .loc 1 51 0 - 34 000e 8981 ldd r24,Y+1 - 35 .LVL1: - 36 0010 90E0 ldi r25,lo8(0) - 37 0012 00C0 rjmp 2f - 38 0014 9595 1: asr r25 - 39 0016 8795 ror r24 - 40 0018 6A95 2: dec r22 - 41 001a 02F4 brpl 1b - 52:main.c **** } - 42 .loc 1 52 0 - 43 001c 8170 andi r24,lo8(1) - 44 /* epilogue start */ - 45 001e 0F90 pop __tmp_reg__ - 46 0020 0F90 pop __tmp_reg__ - 47 0022 DF91 pop r29 - 48 0024 CF91 pop r28 - 49 0026 0895 ret - 50 .LFE6: - 52 .global digital_write - 54 digital_write: - 55 .LFB7: - 53:main.c **** - 54:main.c **** /* You could use cbi ie &= ~ or sbi ie |= but this makes code more readable. */ - 55:main.c **** void digital_write(volatile uint8_t *data_port, uint8_t pin, uint8_t value) { - 56 .loc 1 55 0 - 57 .LVL2: - 58 /* prologue: function */ - 59 /* frame size = 0 */ - 60 /* stack size = 0 */ - 61 .L__stack_usage = 0 - 62 0028 FC01 movw r30,r24 - 56:main.c **** if (0 == value) { - 57:main.c **** *data_port &= ~(_BV(pin)); - 63 .loc 1 57 0 - 64 002a 2081 ld r18,Z - 65 002c 81E0 ldi r24,lo8(1) - 66 002e 90E0 ldi r25,hi8(1) - 67 .LVL3: - 68 0030 00C0 rjmp 2f - 69 0032 880F 1: lsl r24 - 70 0034 991F rol r25 - 71 0036 6A95 2: dec r22 - 72 0038 02F4 brpl 1b - 56:main.c **** if (0 == value) { - 73 .loc 1 56 0 - 74 003a 4423 tst r20 - 75 003c 01F4 brne .L3 - 76 .loc 1 57 0 - 77 003e 8095 com r24 - 78 0040 8223 and r24,r18 - 79 0042 8083 st Z,r24 - 80 0044 0895 ret - 81 .L3: - 58:main.c **** } else { - 59:main.c **** *data_port |= _BV(pin); - 82 .loc 1 59 0 - 83 0046 282B or r18,r24 - 84 0048 2083 st Z,r18 - 85 004a 0895 ret - 86 .LFE7: - 88 .data - 89 .LC0: - 90 0000 2D20 5265 .string "- Reading toggled %d (%d)\n" - 90 6164 696E - 90 6720 746F - 90 6767 6C65 - 90 6420 2564 - 91 .LC1: - 92 001b 2B20 5374 .string "+ State toggled %d (%d)\n" - 92 6174 6520 - 92 746F 6767 - 92 6C65 6420 - 92 2564 2028 - 93 .section .text.startup,"ax",@progbits - 94 .global main - 96 main: - 97 .LFB8: - 60:main.c **** } - 61:main.c **** } - 62:main.c **** - 63:main.c **** int main(void) { - 98 .loc 1 63 0 - 99 0000 CF93 push r28 - 100 .LCFI4: - 101 0002 DF93 push r29 - 102 .LCFI5: - 103 0004 00D0 rcall . - 104 .LCFI6: - 105 0006 CDB7 in r28,__SP_L__ - 106 0008 DEB7 in r29,__SP_H__ - 107 .LCFI7: - 108 /* prologue: function */ - 109 /* frame size = 2 */ - 110 /* stack size = 4 */ - 111 .L__stack_usage = 4 - 112 .LBB6: - 113 .LBB7: - 35:main.c **** DDRD &= ~(_BV(PORTD2)); - 114 .loc 1 35 0 - 115 000a 5298 cbi 42-0x20,2 - 43:main.c **** PORTD |= (_BV(PORTD2)); - 116 .loc 1 43 0 - 117 000c 5A9A sbi 43-0x20,2 - 46:main.c **** DDRB |= _BV(PORTB5); - 118 .loc 1 46 0 - 119 000e 259A sbi 36-0x20,5 - 120 .LBE7: - 121 .LBE6: - 64:main.c **** - 65:main.c **** init(); - 66:main.c **** timer_init(); - 122 .loc 1 66 0 - 123 0010 0E94 0000 call timer_init - 67:main.c **** uart_init(); - 124 .loc 1 67 0 - 125 0014 0E94 0000 call uart_init - 68:main.c **** stdout = &uart_output; - 126 .loc 1 68 0 - 127 0018 80E0 ldi r24,lo8(uart_output) - 128 001a 90E0 ldi r25,hi8(uart_output) - 129 001c 9093 0000 sts __iob+2+1,r25 - 130 0020 8093 0000 sts __iob+2,r24 - 69:main.c **** stdin = &uart_input; - 131 .loc 1 69 0 - 132 0024 80E0 ldi r24,lo8(uart_input) - 133 0026 90E0 ldi r25,hi8(uart_input) - 134 0028 9093 0000 sts __iob+1,r25 - 135 002c 8093 0000 sts __iob,r24 - 136 .LVL4: - 70:main.c **** - 71:main.c **** uint8_t current_reading; - 72:main.c **** uint8_t previous_reading = 0; - 73:main.c **** uint8_t current_state = 0; - 74:main.c **** uint8_t previous_state = 0; - 137 .loc 1 74 0 - 138 0030 7724 clr r7 - 73:main.c **** uint8_t current_state = 0; - 139 .loc 1 73 0 - 140 0032 00E0 ldi r16,lo8(0) - 72:main.c **** uint8_t previous_reading = 0; - 141 .loc 1 72 0 - 142 0034 20E0 ldi r18,lo8(0) - 75:main.c **** - 76:main.c **** uint64_t last_toggle_time; - 77:main.c **** - 78:main.c **** while (1) { - 79:main.c **** - 80:main.c **** current_reading = digital_read(PIND, PIND2); - 81:main.c **** if (current_reading != previous_reading) { - 82:main.c **** /* Note the time in millis of last change of button state. */ - 83:main.c **** last_toggle_time = timer_millis(); - 84:main.c **** printf("- Reading toggled %d (%d)\n", current_reading, last_toggle_time); - 143 .loc 1 84 0 - 144 0036 40E0 ldi r20,lo8(.LC0) - 145 0038 442E mov r4,r20 - 146 003a 40E0 ldi r20,hi8(.LC0) - 147 003c 542E mov r5,r20 - 85:main.c **** } - 86:main.c **** - 87:main.c **** /* If there has been more than 10 millis since last toggling */ - 88:main.c **** /* of button state, assume it is real and not bouncing noise. */ - 89:main.c **** if ((timer_millis() - last_toggle_time) > 10) { - 90:main.c **** current_state = current_reading; - 91:main.c **** } - 92:main.c **** - 93:main.c **** /* Just for debugging purposes. */ - 94:main.c **** if (current_state != previous_state) { - 95:main.c **** printf("+ State toggled %d (%d)\n", current_state, last_toggle_time); - 148 .loc 1 95 0 - 149 003e 50E0 ldi r21,lo8(.LC1) - 150 0040 252E mov r2,r21 - 151 0042 50E0 ldi r21,hi8(.LC1) - 152 0044 352E mov r3,r21 - 153 0046 00C0 rjmp .L6 - 154 .LVL5: - 155 .L23: - 51:main.c **** return bit_is_set(input_register, pin) != 0 ? 1 : 0; - 156 .loc 1 51 0 - 157 0048 212F mov r18,r17 - 158 .LVL6: - 159 .L6: - 80:main.c **** current_reading = digital_read(PIND, PIND2); - 160 .loc 1 80 0 - 161 004a 89B1 in r24,41-0x20 - 162 004c 8983 std Y+1,r24 - 163 004e 1A82 std Y+2,__zero_reg__ - 164 .LVL7: - 165 .LBB8: - 166 .LBB9: - 51:main.c **** return bit_is_set(input_register, pin) != 0 ? 1 : 0; - 167 .loc 1 51 0 - 168 0050 8981 ldd r24,Y+1 - 169 0052 90E0 ldi r25,lo8(0) - 170 0054 9595 asr r25 - 171 0056 8795 ror r24 - 172 0058 9595 asr r25 - 173 005a 8795 ror r24 - 174 005c 182F mov r17,r24 - 175 005e 1170 andi r17,lo8(1) - 176 .LBE9: - 177 .LBE8: - 81:main.c **** if (current_reading != previous_reading) { - 178 .loc 1 81 0 - 179 0060 1217 cp r17,r18 - 180 0062 01F0 breq .L7 - 83:main.c **** last_toggle_time = timer_millis(); - 181 .loc 1 83 0 - 182 0064 0E94 0000 call timer_millis - 183 .LVL8: - 184 0068 4901 movw r8,r18 - 185 .LVL9: - 186 006a 5A01 movw r10,r20 - 187 006c 6B01 movw r12,r22 - 188 006e 7C01 movw r14,r24 - 189 .LVL10: - 84:main.c **** printf("- Reading toggled %d (%d)\n", current_reading, last_toggle_time); - 190 .loc 1 84 0 - 191 0070 8DB7 in r24,__SP_L__ - 192 0072 9EB7 in r25,__SP_H__ - 193 0074 0C97 sbiw r24,12 - 194 0076 0FB6 in __tmp_reg__,__SREG__ - 195 0078 F894 cli - 196 007a 9EBF out __SP_H__,r25 - 197 007c 0FBE out __SREG__,__tmp_reg__ - 198 007e 8DBF out __SP_L__,r24 - 199 0080 EDB7 in r30,__SP_L__ - 200 0082 FEB7 in r31,__SP_H__ - 201 0084 3196 adiw r30,1 - 202 0086 ADB7 in r26,__SP_L__ - 203 0088 BEB7 in r27,__SP_H__ - 204 008a 1296 adiw r26,1+1 - 205 008c 5C92 st X,r5 - 206 008e 4E92 st -X,r4 - 207 0090 1197 sbiw r26,1 - 208 0092 1283 std Z+2,r17 - 209 0094 1382 std Z+3,__zero_reg__ - 210 0096 8482 std Z+4,r8 - 211 0098 9582 std Z+5,r9 - 212 009a A682 std Z+6,r10 - 213 009c B782 std Z+7,r11 - 214 009e C086 std Z+8,r12 - 215 00a0 D186 std Z+9,r13 - 216 00a2 E286 std Z+10,r14 - 217 00a4 F386 std Z+11,r15 - 218 .LCFI8: - 219 00a6 0E94 0000 call printf - 220 00aa 8DB7 in r24,__SP_L__ - 221 00ac 9EB7 in r25,__SP_H__ - 222 00ae 0C96 adiw r24,12 - 223 00b0 0FB6 in __tmp_reg__,__SREG__ - 224 00b2 F894 cli - 225 00b4 9EBF out __SP_H__,r25 - 226 00b6 0FBE out __SREG__,__tmp_reg__ - 227 00b8 8DBF out __SP_L__,r24 - 228 .LVL11: - 229 .L7: - 89:main.c **** if ((timer_millis() - last_toggle_time) > 10) { - 230 .loc 1 89 0 - 231 .LCFI9: - 232 00ba 0E94 0000 call timer_millis - 233 00be E22F mov r30,r18 - 234 00c0 E819 sub r30,r8 - 235 00c2 F1E0 ldi r31,lo8(1) - 236 00c4 2E17 cp r18,r30 - 237 00c6 00F0 brlo .L9 - 238 00c8 F0E0 ldi r31,lo8(0) - 239 .L9: - 240 00ca A32F mov r26,r19 - 241 00cc A919 sub r26,r9 - 242 00ce 21E0 ldi r18,lo8(1) - 243 00d0 3A17 cp r19,r26 - 244 00d2 00F0 brlo .L10 - 245 00d4 20E0 ldi r18,lo8(0) - 246 .L10: - 247 00d6 3A2F mov r19,r26 - 248 00d8 3F1B sub r19,r31 - 249 00da F1E0 ldi r31,lo8(1) - 250 00dc A317 cp r26,r19 - 251 00de 00F0 brlo .L11 - 252 00e0 F0E0 ldi r31,lo8(0) - 253 .L11: - 254 00e2 2F2B or r18,r31 - 255 00e4 A42F mov r26,r20 - 256 00e6 AA19 sub r26,r10 - 257 00e8 F1E0 ldi r31,lo8(1) - 258 00ea 4A17 cp r20,r26 - 259 00ec 00F0 brlo .L12 - 260 00ee F0E0 ldi r31,lo8(0) - 261 .L12: - 262 00f0 4A2F mov r20,r26 - 263 00f2 421B sub r20,r18 - 264 00f4 21E0 ldi r18,lo8(1) - 265 00f6 A417 cp r26,r20 - 266 00f8 00F0 brlo .L13 - 267 00fa 20E0 ldi r18,lo8(0) - 268 .L13: - 269 00fc F22B or r31,r18 - 270 00fe A52F mov r26,r21 - 271 0100 AB19 sub r26,r11 - 272 0102 21E0 ldi r18,lo8(1) - 273 0104 5A17 cp r21,r26 - 274 0106 00F0 brlo .L14 - 275 0108 20E0 ldi r18,lo8(0) - 276 .L14: - 277 010a 5A2F mov r21,r26 - 278 010c 5F1B sub r21,r31 - 279 010e F1E0 ldi r31,lo8(1) - 280 0110 A517 cp r26,r21 - 281 0112 00F0 brlo .L15 - 282 0114 F0E0 ldi r31,lo8(0) - 283 .L15: - 284 0116 2F2B or r18,r31 - 285 0118 A62F mov r26,r22 - 286 011a AC19 sub r26,r12 - 287 011c F1E0 ldi r31,lo8(1) - 288 011e 6A17 cp r22,r26 - 289 0120 00F0 brlo .L16 - 290 0122 F0E0 ldi r31,lo8(0) - 291 .L16: - 292 0124 6A2F mov r22,r26 - 293 0126 621B sub r22,r18 - 294 0128 21E0 ldi r18,lo8(1) - 295 012a A617 cp r26,r22 - 296 012c 00F0 brlo .L17 - 297 012e 20E0 ldi r18,lo8(0) - 298 .L17: - 299 0130 F22B or r31,r18 - 300 0132 272F mov r18,r23 - 301 0134 2D19 sub r18,r13 - 302 0136 A1E0 ldi r26,lo8(1) - 303 0138 7217 cp r23,r18 - 304 013a 00F0 brlo .L18 - 305 013c A0E0 ldi r26,lo8(0) - 306 .L18: - 307 013e 722F mov r23,r18 - 308 0140 7F1B sub r23,r31 - 309 0142 F1E0 ldi r31,lo8(1) - 310 0144 2717 cp r18,r23 - 311 0146 00F0 brlo .L19 - 312 0148 F0E0 ldi r31,lo8(0) - 313 .L19: - 314 014a AF2B or r26,r31 - 315 014c F82F mov r31,r24 - 316 014e FE19 sub r31,r14 - 317 0150 21E0 ldi r18,lo8(1) - 318 0152 8F17 cp r24,r31 - 319 0154 00F0 brlo .L20 - 320 0156 20E0 ldi r18,lo8(0) - 321 .L20: - 322 0158 8F2F mov r24,r31 - 323 015a 8A1B sub r24,r26 - 324 015c A1E0 ldi r26,lo8(1) - 325 015e F817 cp r31,r24 - 326 0160 00F0 brlo .L21 - 327 0162 A0E0 ldi r26,lo8(0) - 328 .L21: - 329 0164 2A2B or r18,r26 - 330 0166 9F19 sub r25,r15 - 331 0168 9217 cp r25,r18 - 332 016a 01F4 brne .L24 - 333 016c 8823 tst r24 - 334 016e 01F4 brne .L24 - 335 0170 7723 tst r23 - 336 0172 01F4 brne .L24 - 337 0174 6623 tst r22 - 338 0176 01F4 brne .L24 - 339 0178 5523 tst r21 - 340 017a 01F4 brne .L24 - 341 017c 4423 tst r20 - 342 017e 01F4 brne .L24 - 343 0180 3323 tst r19 - 344 0182 01F4 brne .L24 - 345 0184 EB30 cpi r30,lo8(11) - 346 0186 00F0 brlo .L8 - 347 .L24: - 51:main.c **** return bit_is_set(input_register, pin) != 0 ? 1 : 0; - 348 .loc 1 51 0 - 349 0188 012F mov r16,r17 - 350 .LVL12: - 351 .L8: - 94:main.c **** if (current_state != previous_state) { - 352 .loc 1 94 0 - 353 018a 0715 cp r16,r7 - 354 018c 01F4 brne .+2 - 355 018e 00C0 rjmp .L23 - 356 .loc 1 95 0 - 357 0190 ADB7 in r26,__SP_L__ - 358 0192 BEB7 in r27,__SP_H__ - 359 0194 1C97 sbiw r26,12 - 360 0196 0FB6 in __tmp_reg__,__SREG__ - 361 0198 F894 cli - 362 019a BEBF out __SP_H__,r27 - 363 019c 0FBE out __SREG__,__tmp_reg__ - 364 019e ADBF out __SP_L__,r26 - 365 01a0 EDB7 in r30,__SP_L__ - 366 01a2 FEB7 in r31,__SP_H__ - 367 01a4 3196 adiw r30,1 - 368 01a6 1296 adiw r26,1+1 - 369 01a8 3C92 st X,r3 - 370 01aa 2E92 st -X,r2 - 371 01ac 1197 sbiw r26,1 - 372 01ae 0283 std Z+2,r16 - 373 01b0 1382 std Z+3,__zero_reg__ - 374 01b2 8482 std Z+4,r8 - 375 01b4 9582 std Z+5,r9 - 376 01b6 A682 std Z+6,r10 - 377 01b8 B782 std Z+7,r11 - 378 01ba C086 std Z+8,r12 - 379 01bc D186 std Z+9,r13 - 380 01be E286 std Z+10,r14 - 381 01c0 F386 std Z+11,r15 - 382 .LCFI10: - 383 01c2 0E94 0000 call printf - 384 .LVL13: - 385 01c6 8DB7 in r24,__SP_L__ - 386 01c8 9EB7 in r25,__SP_H__ - 387 01ca 0C96 adiw r24,12 - 388 01cc 0FB6 in __tmp_reg__,__SREG__ - 389 01ce F894 cli - 390 01d0 9EBF out __SP_H__,r25 - 391 01d2 0FBE out __SREG__,__tmp_reg__ - 392 01d4 8DBF out __SP_L__,r24 - 393 01d6 702E mov r7,r16 - 394 01d8 00C0 rjmp .L23 - 395 .LFE8: - 397 .global uart_input - 398 .data - 401 uart_input: - 402 0034 0000 00 .skip 3,0 - 403 0037 01 .byte 1 - 404 0038 0000 0000 .skip 4,0 - 405 003c 0000 .word 0 - 406 003e 0000 .word gs(uart_getchar) - 407 0040 0000 .word 0 - 408 .global uart_output - 411 uart_output: - 412 0042 0000 00 .skip 3,0 - 413 0045 02 .byte 2 - 414 0046 0000 0000 .skip 4,0 - 415 004a 0000 .word gs(uart_putchar) - 416 004c 0000 .word 0 - 417 004e 0000 .word 0 - 512 .Letext0: - 513 .file 2 "/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/stdint.h" - 514 .file 3 "/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/stdio.h" - 515 .file 4 "uart.h" -DEFINED SYMBOLS - *ABS*:0000000000000000 main.c -/var/folders/6p/hvps1d6n58jfd6qghfhb96600000gn/T//ccYMcvqY.s:2 *ABS*:000000000000003f __SREG__ -/var/folders/6p/hvps1d6n58jfd6qghfhb96600000gn/T//ccYMcvqY.s:3 *ABS*:000000000000003e __SP_H__ -/var/folders/6p/hvps1d6n58jfd6qghfhb96600000gn/T//ccYMcvqY.s:4 *ABS*:000000000000003d __SP_L__ -/var/folders/6p/hvps1d6n58jfd6qghfhb96600000gn/T//ccYMcvqY.s:5 *ABS*:0000000000000000 __tmp_reg__ -/var/folders/6p/hvps1d6n58jfd6qghfhb96600000gn/T//ccYMcvqY.s:6 *ABS*:0000000000000001 __zero_reg__ -/var/folders/6p/hvps1d6n58jfd6qghfhb96600000gn/T//ccYMcvqY.s:13 .text:0000000000000000 digital_read -/var/folders/6p/hvps1d6n58jfd6qghfhb96600000gn/T//ccYMcvqY.s:54 .text:0000000000000028 digital_write -/var/folders/6p/hvps1d6n58jfd6qghfhb96600000gn/T//ccYMcvqY.s:96 .text.startup:0000000000000000 main -/var/folders/6p/hvps1d6n58jfd6qghfhb96600000gn/T//ccYMcvqY.s:411 .data:0000000000000042 uart_output -/var/folders/6p/hvps1d6n58jfd6qghfhb96600000gn/T//ccYMcvqY.s:401 .data:0000000000000034 uart_input - -UNDEFINED SYMBOLS -__do_copy_data -__do_clear_bss -timer_init -uart_init -__iob -timer_millis -printf -uart_getchar -uart_putchar diff --git a/button_debounce/main.map b/button_debounce/main.map deleted file mode 100644 index 8d01d25..0000000 --- a/button_debounce/main.map +++ /dev/null @@ -1,679 +0,0 @@ -Archive member included because of file (symbol) - -/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_divmodhi4.o) - uart_async.o (__divmodhi4) -/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_exit.o) - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o (exit) -/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_copy_data.o) - main.o (__do_copy_data) -/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_clear_bss.o) - main.o (__do_clear_bss) -/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_ashldi3.o) - timer.o (__ashldi3) -/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_udivmodhi4.o) - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_divmodhi4.o) (__udivmodhi4) -/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(iob.o) - main.o (__iob) -/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(printf.o) - main.o (printf) -/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(vfprintf_std.o) - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(printf.o) (vfprintf) -/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(strnlen_P.o) - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(vfprintf_std.o) (strnlen_P) -/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(strnlen.o) - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(vfprintf_std.o) (strnlen) -/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(fputc.o) - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(vfprintf_std.o) (fputc) -/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(ultoa_invert.o) - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(vfprintf_std.o) (__ultoa_invert) -/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_prologue.o) - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(printf.o) (__prologue_saves__) -/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_epilogue.o) - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(printf.o) (__epilogue_restores__) - -Allocating common symbols -Common symbol size file - -__iob 0x6 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(iob.o) - -Memory Configuration - -Name Origin Length Attributes -text 0x0000000000000000 0x0000000000020000 xr -data 0x0000000000800060 0x000000000000ffa0 rw !x -eeprom 0x0000000000810000 0x0000000000010000 rw !x -*default* 0x0000000000000000 0xffffffffffffffff - -Linker script and memory map - -Address of section .data set to 0x800100 -LOAD /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o -LOAD main.o -LOAD uart_async.o -LOAD timer.o -LOAD /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libm.a -LOAD /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a -LOAD /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a -LOAD /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a - -.hash - *(.hash) - -.dynsym - *(.dynsym) - -.dynstr - *(.dynstr) - -.gnu.version - *(.gnu.version) - -.gnu.version_d - *(.gnu.version_d) - -.gnu.version_r - *(.gnu.version_r) - -.rel.init - *(.rel.init) - -.rela.init - *(.rela.init) - -.rel.text - *(.rel.text) - *(.rel.text.*) - *(.rel.gnu.linkonce.t*) - -.rela.text - *(.rela.text) - *(.rela.text.*) - *(.rela.gnu.linkonce.t*) - -.rel.fini - *(.rel.fini) - -.rela.fini - *(.rela.fini) - -.rel.rodata - *(.rel.rodata) - *(.rel.rodata.*) - *(.rel.gnu.linkonce.r*) - -.rela.rodata - *(.rela.rodata) - *(.rela.rodata.*) - *(.rela.gnu.linkonce.r*) - -.rel.data - *(.rel.data) - *(.rel.data.*) - *(.rel.gnu.linkonce.d*) - -.rela.data - *(.rela.data) - *(.rela.data.*) - *(.rela.gnu.linkonce.d*) - -.rel.ctors - *(.rel.ctors) - -.rela.ctors - *(.rela.ctors) - -.rel.dtors - *(.rel.dtors) - -.rela.dtors - *(.rela.dtors) - -.rel.got - *(.rel.got) - -.rela.got - *(.rela.got) - -.rel.bss - *(.rel.bss) - -.rela.bss - *(.rela.bss) - -.rel.plt - *(.rel.plt) - -.rela.plt - *(.rela.plt) - -.text 0x0000000000000000 0xe7a - *(.vectors) - .vectors 0x0000000000000000 0x68 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o - 0x0000000000000000 __vectors - 0x0000000000000000 __vector_default - *(.vectors) - *(.progmem.gcc*) - *(.progmem*) - 0x0000000000000068 . = ALIGN (0x2) - 0x0000000000000068 __trampolines_start = . - *(.trampolines) - .trampolines 0x0000000000000068 0x0 linker stubs - *(.trampolines*) - 0x0000000000000068 __trampolines_end = . - *(.jumptables) - *(.jumptables*) - *(.lowtext) - *(.lowtext*) - 0x0000000000000068 __ctors_start = . - *(.ctors) - 0x0000000000000068 __ctors_end = . - 0x0000000000000068 __dtors_start = . - *(.dtors) - 0x0000000000000068 __dtors_end = . - SORT(*)(.ctors) - SORT(*)(.dtors) - *(.init0) - .init0 0x0000000000000068 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o - 0x0000000000000068 __init - *(.init0) - *(.init1) - *(.init1) - *(.init2) - .init2 0x0000000000000068 0xc /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o - *(.init2) - *(.init3) - *(.init3) - *(.init4) - .init4 0x0000000000000074 0x16 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_copy_data.o) - 0x0000000000000074 __do_copy_data - .init4 0x000000000000008a 0x10 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_clear_bss.o) - 0x000000000000008a __do_clear_bss - *(.init4) - *(.init5) - *(.init5) - *(.init6) - *(.init6) - *(.init7) - *(.init7) - *(.init8) - *(.init8) - *(.init9) - .init9 0x000000000000009a 0x8 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o - *(.init9) - *(.text) - .text 0x00000000000000a2 0x4 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o - 0x00000000000000a2 __vector_20 - 0x00000000000000a2 __vector_1 - 0x00000000000000a2 __vector_24 - 0x00000000000000a2 __vector_12 - 0x00000000000000a2 __bad_interrupt - 0x00000000000000a2 __vector_6 - 0x00000000000000a2 __vector_3 - 0x00000000000000a2 __vector_23 - 0x00000000000000a2 __vector_25 - 0x00000000000000a2 __vector_11 - 0x00000000000000a2 __vector_13 - 0x00000000000000a2 __vector_17 - 0x00000000000000a2 __vector_7 - 0x00000000000000a2 __vector_5 - 0x00000000000000a2 __vector_4 - 0x00000000000000a2 __vector_9 - 0x00000000000000a2 __vector_2 - 0x00000000000000a2 __vector_21 - 0x00000000000000a2 __vector_15 - 0x00000000000000a2 __vector_8 - 0x00000000000000a2 __vector_10 - 0x00000000000000a2 __vector_16 - 0x00000000000000a2 __vector_22 - .text 0x00000000000000a6 0x4c main.o - 0x00000000000000a6 digital_read - 0x00000000000000ce digital_write - .text 0x00000000000000f2 0x1c0 uart_async.o - 0x00000000000000f2 uart_init - 0x000000000000012c uart_putchar - 0x0000000000000184 uart_getchar - 0x00000000000001ae __vector_18 - 0x000000000000022e __vector_19 - .text 0x00000000000002b2 0x310 timer.o - 0x00000000000002b2 timer_init - 0x00000000000002ec timer_millis - 0x000000000000030e timer_micros - 0x00000000000004f6 __vector_14 - .text 0x00000000000005c2 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_divmodhi4.o) - .text 0x00000000000005c2 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_exit.o) - .text 0x00000000000005c2 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_copy_data.o) - .text 0x00000000000005c2 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_clear_bss.o) - .text 0x00000000000005c2 0xf4 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_ashldi3.o) - 0x00000000000005c2 __ashldi3 - .text 0x00000000000006b6 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_udivmodhi4.o) - .text 0x00000000000006b6 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(iob.o) - .text 0x00000000000006b6 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(printf.o) - .text 0x00000000000006b6 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(vfprintf_std.o) - .text 0x00000000000006b6 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(strnlen_P.o) - .text 0x00000000000006b6 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(strnlen.o) - .text 0x00000000000006b6 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(fputc.o) - .text 0x00000000000006b6 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(ultoa_invert.o) - .text 0x00000000000006b6 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_prologue.o) - .text 0x00000000000006b6 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_epilogue.o) - 0x00000000000006b6 . = ALIGN (0x2) - *(.text.*) - .text.startup 0x00000000000006b6 0x1da main.o - 0x00000000000006b6 main - .text.libgcc 0x0000000000000890 0x26 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_divmodhi4.o) - 0x0000000000000890 __divmodhi4 - 0x0000000000000890 _div - .text.libgcc 0x00000000000008b6 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_exit.o) - .text.libgcc 0x00000000000008b6 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_copy_data.o) - .text.libgcc 0x00000000000008b6 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_clear_bss.o) - .text.libgcc 0x00000000000008b6 0x28 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_udivmodhi4.o) - 0x00000000000008b6 __udivmodhi4 - .text.avr-libc - 0x00000000000008de 0x2a /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(printf.o) - 0x00000000000008de printf - .text.avr-libc - 0x0000000000000908 0x3c0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(vfprintf_std.o) - 0x0000000000000908 vfprintf - .text.avr-libc - 0x0000000000000cc8 0x16 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(strnlen_P.o) - 0x0000000000000cc8 strnlen_P - .text.avr-libc - 0x0000000000000cde 0x16 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(strnlen.o) - 0x0000000000000cde strnlen - .text.avr-libc - 0x0000000000000cf4 0x58 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(fputc.o) - 0x0000000000000cf4 fputc - .text.avr-libc - 0x0000000000000d4c 0xbc /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(ultoa_invert.o) - 0x0000000000000d4c __ultoa_invert - .text.libgcc 0x0000000000000e08 0x38 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_prologue.o) - 0x0000000000000e08 __prologue_saves__ - .text.libgcc 0x0000000000000e40 0x36 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_epilogue.o) - 0x0000000000000e40 __epilogue_restores__ - 0x0000000000000e76 . = ALIGN (0x2) - *(.fini9) - .fini9 0x0000000000000e76 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_exit.o) - 0x0000000000000e76 exit - 0x0000000000000e76 _exit - *(.fini9) - *(.fini8) - *(.fini8) - *(.fini7) - *(.fini7) - *(.fini6) - *(.fini6) - *(.fini5) - *(.fini5) - *(.fini4) - *(.fini4) - *(.fini3) - *(.fini3) - *(.fini2) - *(.fini2) - *(.fini1) - *(.fini1) - *(.fini0) - .fini0 0x0000000000000e76 0x4 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_exit.o) - *(.fini0) - 0x0000000000000e7a _etext = . - -.data 0x0000000000800100 0x50 load address 0x0000000000000e7a - 0x0000000000800100 PROVIDE (__data_start, .) - *(.data) - .data 0x0000000000800100 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o - .data 0x0000000000800100 0x50 main.o - 0x0000000000800134 uart_input - 0x0000000000800142 uart_output - .data 0x0000000000800150 0x0 uart_async.o - .data 0x0000000000800150 0x0 timer.o - .data 0x0000000000800150 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_divmodhi4.o) - .data 0x0000000000800150 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_exit.o) - .data 0x0000000000800150 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_copy_data.o) - .data 0x0000000000800150 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_clear_bss.o) - .data 0x0000000000800150 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_ashldi3.o) - .data 0x0000000000800150 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_udivmodhi4.o) - .data 0x0000000000800150 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(iob.o) - .data 0x0000000000800150 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(printf.o) - .data 0x0000000000800150 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(vfprintf_std.o) - .data 0x0000000000800150 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(strnlen_P.o) - .data 0x0000000000800150 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(strnlen.o) - .data 0x0000000000800150 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(fputc.o) - .data 0x0000000000800150 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(ultoa_invert.o) - .data 0x0000000000800150 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_prologue.o) - .data 0x0000000000800150 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_epilogue.o) - *(.data*) - *(.rodata) - *(.rodata*) - *(.gnu.linkonce.d*) - 0x0000000000800150 . = ALIGN (0x2) - 0x0000000000800150 _edata = . - 0x0000000000800150 PROVIDE (__data_end, .) - -.bss 0x0000000000800150 0x256 - 0x0000000000800150 PROVIDE (__bss_start, .) - *(.bss) - .bss 0x0000000000800150 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o - .bss 0x0000000000800150 0x0 main.o - .bss 0x0000000000800150 0x248 uart_async.o - .bss 0x0000000000800398 0x8 timer.o - .bss 0x00000000008003a0 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_divmodhi4.o) - .bss 0x00000000008003a0 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_exit.o) - .bss 0x00000000008003a0 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_copy_data.o) - .bss 0x00000000008003a0 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_clear_bss.o) - .bss 0x00000000008003a0 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_ashldi3.o) - .bss 0x00000000008003a0 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_udivmodhi4.o) - .bss 0x00000000008003a0 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(iob.o) - .bss 0x00000000008003a0 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(printf.o) - .bss 0x00000000008003a0 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(vfprintf_std.o) - .bss 0x00000000008003a0 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(strnlen_P.o) - .bss 0x00000000008003a0 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(strnlen.o) - .bss 0x00000000008003a0 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(fputc.o) - .bss 0x00000000008003a0 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(ultoa_invert.o) - .bss 0x00000000008003a0 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_prologue.o) - .bss 0x00000000008003a0 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_epilogue.o) - *(.bss*) - *(COMMON) - COMMON 0x00000000008003a0 0x6 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(iob.o) - 0x00000000008003a0 __iob - 0x00000000008003a6 PROVIDE (__bss_end, .) - 0x0000000000000e7a __data_load_start = LOADADDR (.data) - 0x0000000000000eca __data_load_end = (__data_load_start + SIZEOF (.data)) - -.noinit 0x00000000008003a6 0x0 - 0x00000000008003a6 PROVIDE (__noinit_start, .) - *(.noinit*) - 0x00000000008003a6 PROVIDE (__noinit_end, .) - 0x00000000008003a6 _end = . - 0x00000000008003a6 PROVIDE (__heap_start, .) - -.eeprom 0x0000000000810000 0x0 - *(.eeprom*) - 0x0000000000810000 __eeprom_end = . - -.stab 0x0000000000000000 0xc84 - *(.stab) - .stab 0x0000000000000000 0x6cc /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o - .stab 0x00000000000006cc 0x9c /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(strnlen_P.o) - 0xa8 (size before relaxing) - .stab 0x0000000000000768 0x9c /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(strnlen.o) - 0xa8 (size before relaxing) - .stab 0x0000000000000804 0x480 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(ultoa_invert.o) - 0x48c (size before relaxing) - -.stabstr 0x0000000000000000 0x19d - *(.stabstr) - .stabstr 0x0000000000000000 0x19d /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o - -.stab.excl - *(.stab.excl) - -.stab.exclstr - *(.stab.exclstr) - -.stab.index - *(.stab.index) - -.stab.indexstr - *(.stab.indexstr) - -.comment - *(.comment) - -.debug - *(.debug) - -.line - *(.line) - -.debug_srcinfo - *(.debug_srcinfo) - -.debug_sfnames - *(.debug_sfnames) - -.debug_aranges 0x0000000000000000 0x1c8 - *(.debug_aranges) - .debug_aranges - 0x0000000000000000 0x28 main.o - .debug_aranges - 0x0000000000000028 0x20 uart_async.o - .debug_aranges - 0x0000000000000048 0x20 timer.o - .debug_aranges - 0x0000000000000068 0x20 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_divmodhi4.o) - .debug_aranges - 0x0000000000000088 0x20 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_exit.o) - .debug_aranges - 0x00000000000000a8 0x20 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_copy_data.o) - .debug_aranges - 0x00000000000000c8 0x20 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_clear_bss.o) - .debug_aranges - 0x00000000000000e8 0x20 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_ashldi3.o) - .debug_aranges - 0x0000000000000108 0x20 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_udivmodhi4.o) - .debug_aranges - 0x0000000000000128 0x20 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(printf.o) - .debug_aranges - 0x0000000000000148 0x20 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(vfprintf_std.o) - .debug_aranges - 0x0000000000000168 0x20 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(fputc.o) - .debug_aranges - 0x0000000000000188 0x20 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_prologue.o) - .debug_aranges - 0x00000000000001a8 0x20 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_epilogue.o) - -.debug_pubnames - *(.debug_pubnames) - -.debug_info 0x0000000000000000 0x145e - *(.debug_info) - .debug_info 0x0000000000000000 0x2f2 main.o - .debug_info 0x00000000000002f2 0x2d0 uart_async.o - .debug_info 0x00000000000005c2 0xe3 timer.o - .debug_info 0x00000000000006a5 0x9f /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_divmodhi4.o) - .debug_info 0x0000000000000744 0x9f /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_exit.o) - .debug_info 0x00000000000007e3 0x9f /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_copy_data.o) - .debug_info 0x0000000000000882 0x9f /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_clear_bss.o) - .debug_info 0x0000000000000921 0x184 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_ashldi3.o) - .debug_info 0x0000000000000aa5 0x9f /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_udivmodhi4.o) - .debug_info 0x0000000000000b44 0x153 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(iob.o) - .debug_info 0x0000000000000c97 0x1ca /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(printf.o) - .debug_info 0x0000000000000e61 0x354 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(vfprintf_std.o) - .debug_info 0x00000000000011b5 0x16b /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(fputc.o) - .debug_info 0x0000000000001320 0x9f /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_prologue.o) - .debug_info 0x00000000000013bf 0x9f /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_epilogue.o) - *(.gnu.linkonce.wi.*) - -.debug_abbrev 0x0000000000000000 0x983 - *(.debug_abbrev) - .debug_abbrev 0x0000000000000000 0x1e6 main.o - .debug_abbrev 0x00000000000001e6 0x15f uart_async.o - .debug_abbrev 0x0000000000000345 0x9f timer.o - .debug_abbrev 0x00000000000003e4 0x14 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_divmodhi4.o) - .debug_abbrev 0x00000000000003f8 0x14 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_exit.o) - .debug_abbrev 0x000000000000040c 0x14 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_copy_data.o) - .debug_abbrev 0x0000000000000420 0x14 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_clear_bss.o) - .debug_abbrev 0x0000000000000434 0xf0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_ashldi3.o) - .debug_abbrev 0x0000000000000524 0x14 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_udivmodhi4.o) - .debug_abbrev 0x0000000000000538 0xc7 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(iob.o) - .debug_abbrev 0x00000000000005ff 0x11e /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(printf.o) - .debug_abbrev 0x000000000000071d 0x163 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(vfprintf_std.o) - .debug_abbrev 0x0000000000000880 0xdb /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(fputc.o) - .debug_abbrev 0x000000000000095b 0x14 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_prologue.o) - .debug_abbrev 0x000000000000096f 0x14 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_epilogue.o) - -.debug_line 0x0000000000000000 0x953 - *(.debug_line) - .debug_line 0x0000000000000000 0xe5 main.o - .debug_line 0x00000000000000e5 0xc4 uart_async.o - .debug_line 0x00000000000001a9 0xa6 timer.o - .debug_line 0x000000000000024f 0x70 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_divmodhi4.o) - .debug_line 0x00000000000002bf 0x5f /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_exit.o) - .debug_line 0x000000000000031e 0x68 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_copy_data.o) - .debug_line 0x0000000000000386 0x65 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_clear_bss.o) - .debug_line 0x00000000000003eb 0x6e /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_ashldi3.o) - .debug_line 0x0000000000000459 0x71 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_udivmodhi4.o) - .debug_line 0x00000000000004ca 0x62 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(iob.o) - .debug_line 0x000000000000052c 0xbc /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(printf.o) - .debug_line 0x00000000000005e8 0x1fe /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(vfprintf_std.o) - .debug_line 0x00000000000007e6 0x7c /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(fputc.o) - .debug_line 0x0000000000000862 0x79 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_prologue.o) - .debug_line 0x00000000000008db 0x78 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_epilogue.o) - -.debug_frame 0x0000000000000000 0x35c - *(.debug_frame) - .debug_frame 0x0000000000000000 0x70 main.o - .debug_frame 0x0000000000000070 0xf8 uart_async.o - .debug_frame 0x0000000000000168 0xf8 timer.o - .debug_frame 0x0000000000000260 0x4c /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_ashldi3.o) - .debug_frame 0x00000000000002ac 0x2c /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(printf.o) - .debug_frame 0x00000000000002d8 0x4c /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(vfprintf_std.o) - .debug_frame 0x0000000000000324 0x38 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(fputc.o) - -.debug_str 0x0000000000000000 0x421 - *(.debug_str) - .debug_str 0x0000000000000000 0x15a main.o - 0x198 (size before relaxing) - .debug_str 0x000000000000015a 0x95 uart_async.o - 0x16b (size before relaxing) - .debug_str 0x00000000000001ef 0x3a timer.o - 0xfc (size before relaxing) - .debug_str 0x0000000000000229 0xc3 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_ashldi3.o) - 0x148 (size before relaxing) - .debug_str 0x00000000000002ec 0x60 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(iob.o) - 0x104 (size before relaxing) - .debug_str 0x000000000000034c 0x3e /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(printf.o) - 0x137 (size before relaxing) - .debug_str 0x000000000000038a 0x75 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(vfprintf_std.o) - 0x189 (size before relaxing) - .debug_str 0x00000000000003ff 0x22 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(fputc.o) - 0x10d (size before relaxing) - -.debug_loc 0x0000000000000000 0xcc7 - *(.debug_loc) - .debug_loc 0x0000000000000000 0x1b0 main.o - .debug_loc 0x00000000000001b0 0x277 uart_async.o - .debug_loc 0x0000000000000427 0x1d6 timer.o - .debug_loc 0x00000000000005fd 0xf4 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_ashldi3.o) - .debug_loc 0x00000000000006f1 0x21 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(printf.o) - .debug_loc 0x0000000000000712 0x51c /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(vfprintf_std.o) - .debug_loc 0x0000000000000c2e 0x99 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(fputc.o) - -.debug_macinfo - *(.debug_macinfo) -OUTPUT(main.elf elf32-avr) -LOAD linker stubs - -.debug_ranges 0x0000000000000000 0x48 - .debug_ranges 0x0000000000000000 0x18 main.o - .debug_ranges 0x0000000000000018 0x10 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(printf.o) - .debug_ranges 0x0000000000000028 0x10 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(vfprintf_std.o) - .debug_ranges 0x0000000000000038 0x10 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(fputc.o) - -Cross Reference Table - -Symbol File -__ashldi3 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_ashldi3.o) - timer.o -__bad_interrupt /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o -__bss_end /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_clear_bss.o) -__bss_start /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_clear_bss.o) -__data_end /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_copy_data.o) -__data_load_start /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_copy_data.o) -__data_start /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_copy_data.o) -__divmodhi4 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_divmodhi4.o) - uart_async.o -__do_clear_bss /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_clear_bss.o) - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(fputc.o) - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(vfprintf_std.o) - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(printf.o) - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(iob.o) - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_ashldi3.o) - timer.o - uart_async.o - main.o -__do_copy_data /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_copy_data.o) - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(fputc.o) - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(vfprintf_std.o) - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(printf.o) - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(iob.o) - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_ashldi3.o) - timer.o - uart_async.o - main.o -__epilogue_restores__ /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_epilogue.o) - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(vfprintf_std.o) - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(printf.o) -__heap_end /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o -__init /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o -__iob /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(printf.o) - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(iob.o) - main.o -__prologue_saves__ /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_prologue.o) - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(vfprintf_std.o) - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(printf.o) -__stack /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o -__udivmodhi4 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_udivmodhi4.o) - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_divmodhi4.o) -__ultoa_invert /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(ultoa_invert.o) - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(vfprintf_std.o) -__vector_1 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o -__vector_10 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o -__vector_11 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o -__vector_12 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o -__vector_13 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o -__vector_14 timer.o - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o -__vector_15 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o -__vector_16 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o -__vector_17 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o -__vector_18 uart_async.o - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o -__vector_19 uart_async.o - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o -__vector_2 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o -__vector_20 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o -__vector_21 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o -__vector_22 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o -__vector_23 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o -__vector_24 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o -__vector_25 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o -__vector_3 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o -__vector_4 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o -__vector_5 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o -__vector_6 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o -__vector_7 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o -__vector_8 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o -__vector_9 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o -__vector_default /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o -__vectors /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o -_div /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_divmodhi4.o) -_exit /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_exit.o) -digital_read main.o -digital_write main.o -exit /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_exit.o) - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o -fputc /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(fputc.o) - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(vfprintf_std.o) -main main.o - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o -printf /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(printf.o) - main.o -strnlen /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(strnlen.o) - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(vfprintf_std.o) -strnlen_P /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(strnlen_P.o) - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(vfprintf_std.o) -timer_init timer.o - main.o -timer_micros timer.o -timer_millis timer.o - main.o -uart_getchar uart_async.o - main.o -uart_init uart_async.o - main.o -uart_input main.o -uart_output main.o -uart_putchar uart_async.o - main.o -vfprintf /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(vfprintf_std.o) - /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(printf.o) diff --git a/button_debounce/main.o b/button_debounce/main.o deleted file mode 100644 index 3a3f21e..0000000 Binary files a/button_debounce/main.o and /dev/null differ diff --git a/button_debounce/main.sym b/button_debounce/main.sym deleted file mode 100644 index fa4214d..0000000 --- a/button_debounce/main.sym +++ /dev/null @@ -1,126 +0,0 @@ -00000000 W __heap_end -00000000 a __tmp_reg__ -00000000 a __tmp_reg__ -00000000 a __tmp_reg__ -00000000 a __tmp_reg__ -00000000 a __tmp_reg__ -00000000 a __tmp_reg__ -00000000 a __tmp_reg__ -00000000 a __tmp_reg__ -00000000 W __vector_default -00000000 T __vectors -00000001 a __zero_reg__ -00000001 a __zero_reg__ -00000001 a __zero_reg__ -00000001 a __zero_reg__ -00000001 a __zero_reg__ -00000001 a __zero_reg__ -00000001 a __zero_reg__ -00000001 a __zero_reg__ -0000003d a __SP_L__ -0000003d a __SP_L__ -0000003d a __SP_L__ -0000003d a __SP_L__ -0000003d a __SP_L__ -0000003d a __SP_L__ -0000003d a __SP_L__ -0000003d a __SP_L__ -0000003e a __SP_H__ -0000003e a __SP_H__ -0000003e a __SP_H__ -0000003e a __SP_H__ -0000003e a __SP_H__ -0000003e a __SP_H__ -0000003e a __SP_H__ -0000003e a __SP_H__ -0000003f a __SREG__ -0000003f a __SREG__ -0000003f a __SREG__ -0000003f a __SREG__ -0000003f a __SREG__ -0000003f a __SREG__ -0000003f a __SREG__ -0000003f a __SREG__ -00000068 T __ctors_end -00000068 T __ctors_start -00000068 T __dtors_end -00000068 T __dtors_start -00000068 W __init -00000068 T __trampolines_end -00000068 T __trampolines_start -00000074 T __do_copy_data -0000008a T __do_clear_bss -00000092 t .do_clear_bss_loop -00000094 t .do_clear_bss_start -000000a2 T __bad_interrupt -000000a2 W __vector_1 -000000a2 W __vector_10 -000000a2 W __vector_11 -000000a2 W __vector_12 -000000a2 W __vector_13 -000000a2 W __vector_15 -000000a2 W __vector_16 -000000a2 W __vector_17 -000000a2 W __vector_2 -000000a2 W __vector_20 -000000a2 W __vector_21 -000000a2 W __vector_22 -000000a2 W __vector_23 -000000a2 W __vector_24 -000000a2 W __vector_25 -000000a2 W __vector_3 -000000a2 W __vector_4 -000000a2 W __vector_5 -000000a2 W __vector_6 -000000a2 W __vector_7 -000000a2 W __vector_8 -000000a2 W __vector_9 -000000a6 T digital_read -000000ce T digital_write -000000f2 T uart_init -0000012c T uart_putchar -00000184 T uart_getchar -000001ae T __vector_18 -0000022e T __vector_19 -000002b2 T timer_init -000002ec T timer_millis -0000030e T timer_micros -000004f6 T __vector_14 -000005c2 T __ashldi3 -000006b6 T main -00000890 T __divmodhi4 -00000890 T _div -000008a4 t __divmodhi4_neg2 -000008aa t __divmodhi4_exit -000008ac t __divmodhi4_neg1 -000008b6 T __udivmodhi4 -000008be t __udivmodhi4_loop -000008cc t __udivmodhi4_ep -000008de T printf -000008ff W __stack -00000908 T vfprintf -00000cc8 T strnlen_P -00000cde T strnlen -00000cf4 T fputc -00000d4c T __ultoa_invert -00000e08 T __prologue_saves__ -00000e40 T __epilogue_restores__ -00000e76 T _exit -00000e76 W exit -00000e78 t __stop_program -00000e7a A __data_load_start -00000e7a T _etext -00000eca A __data_load_end -00800100 D __data_start -00800134 D uart_input -00800142 D uart_output -00800150 B __bss_start -00800150 D __data_end -00800150 D _edata -00800150 b tx_buffer -00800354 b rx_buffer -00800398 b _timer_millis -008003a0 B __iob -008003a6 B __bss_end -008003a6 N _end -00810000 N __eeprom_end diff --git a/button_debounce/timer.lst b/button_debounce/timer.lst deleted file mode 100644 index b1dd48c..0000000 --- a/button_debounce/timer.lst +++ /dev/null @@ -1,567 +0,0 @@ - 1 .file "timer.c" - 2 __SREG__ = 0x3f - 3 __SP_H__ = 0x3e - 4 __SP_L__ = 0x3d - 5 __tmp_reg__ = 0 - 6 __zero_reg__ = 1 - 7 .global __do_copy_data - 8 .global __do_clear_bss - 9 .text - 10 .Ltext0: - 11 .global timer_init - 13 timer_init: - 14 .LFB0: - 15 .file 1 "timer.c" - 1:timer.c **** /* - 2:timer.c **** * Low resolution implementation of timer using a 8 bit clock with prescaler, - 3:timer.c **** * etc. Clicks approximately every millisecond. Microseconds are not available, - 4:timer.c **** * and any queries to the function will just return milliseconds * 1000. - 5:timer.c **** * You can use this file when you don't need high resolution timing, and don't care - 6:timer.c **** * about slight clock drift, inaccuracy, etc. For timing most human-related activities, - 7:timer.c **** * though, it should be more than sufficient. - 8:timer.c **** */ - 9:timer.c **** #include "timer.h" - 10:timer.c **** - 11:timer.c **** static volatile uint64_t _timer_millis; - 12:timer.c **** - 13:timer.c **** /* - 14:timer.c **** * Initializes the timer, and resets the timer count to 0. Sets up the ISRs - 15:timer.c **** * linked with timer0. - 16:timer.c **** */ - 17:timer.c **** void timer_init(){ - 16 .loc 1 17 0 - 17 /* prologue: function */ - 18 /* frame size = 0 */ - 19 /* stack size = 0 */ - 20 .L__stack_usage = 0 - 18:timer.c **** //Set up the timer to run at F_CPU / 256, in normal mode (we reset TCNT0 in the ISR) - 19:timer.c **** TCCR0A = 0x0; - 21 .loc 1 19 0 - 22 0000 14BC out 68-0x20,__zero_reg__ - 20:timer.c **** TCCR0B |= _BV(CS02); - 23 .loc 1 20 0 - 24 0002 85B5 in r24,69-0x20 - 25 0004 8460 ori r24,lo8(4) - 26 0006 85BD out 69-0x20,r24 - 21:timer.c **** - 22:timer.c **** //Set compare value to be F_CPU / 1000 -- fire interrupt every millisecond - 23:timer.c **** OCR0A = F_CPU / 256 / 1000; - 27 .loc 1 23 0 - 28 0008 8EE3 ldi r24,lo8(62) - 29 000a 87BD out 71-0x20,r24 - 24:timer.c **** - 25:timer.c **** //Enable compare interrupt - 26:timer.c **** TIMSK0 = _BV(OCIE0A); - 30 .loc 1 26 0 - 31 000c 82E0 ldi r24,lo8(2) - 32 000e 8093 6E00 sts 110,r24 - 27:timer.c **** - 28:timer.c **** //Reset count variables - 29:timer.c **** _timer_millis = 0; - 33 .loc 1 29 0 - 34 0012 1092 0000 sts _timer_millis,__zero_reg__ - 35 0016 1092 0000 sts _timer_millis+1,__zero_reg__ - 36 001a 1092 0000 sts _timer_millis+2,__zero_reg__ - 37 001e 1092 0000 sts _timer_millis+3,__zero_reg__ - 38 0022 1092 0000 sts _timer_millis+4,__zero_reg__ - 39 0026 1092 0000 sts _timer_millis+5,__zero_reg__ - 40 002a 1092 0000 sts _timer_millis+6,__zero_reg__ - 41 002e 1092 0000 sts _timer_millis+7,__zero_reg__ - 30:timer.c **** - 31:timer.c **** //Enable interrupts if the NO_INTERRUPT_ENABLE define is not set. If it is, you need to call sei( - 32:timer.c **** #ifndef NO_INTERRUPT_ENABLE - 33:timer.c **** sei(); - 42 .loc 1 33 0 - 43 /* #APP */ - 44 ; 33 "timer.c" 1 - 45 0032 7894 sei - 46 ; 0 "" 2 - 34:timer.c **** #endif - 35:timer.c **** - 36:timer.c **** DDRB = 0xFF; - 47 .loc 1 36 0 - 48 /* #NOAPP */ - 49 0034 8FEF ldi r24,lo8(-1) - 50 0036 84B9 out 36-0x20,r24 - 51 /* epilogue start */ - 37:timer.c **** } - 52 .loc 1 37 0 - 53 0038 0895 ret - 54 .LFE0: - 56 .global timer_millis - 58 timer_millis: - 59 .LFB1: - 38:timer.c **** - 39:timer.c **** /* - 40:timer.c **** * Returns the number of milliseconds which have elapsed since the - 41:timer.c **** * last time timer_init() was called. Overflows after about 49 days. - 42:timer.c **** */ - 43:timer.c **** uint64_t timer_millis(){ - 60 .loc 1 43 0 - 61 /* prologue: function */ - 62 /* frame size = 0 */ - 63 /* stack size = 0 */ - 64 .L__stack_usage = 0 - 44:timer.c **** return _timer_millis; - 65 .loc 1 44 0 - 66 003a 2091 0000 lds r18,_timer_millis - 67 003e 3091 0000 lds r19,_timer_millis+1 - 68 0042 4091 0000 lds r20,_timer_millis+2 - 69 0046 5091 0000 lds r21,_timer_millis+3 - 70 004a 6091 0000 lds r22,_timer_millis+4 - 71 004e 7091 0000 lds r23,_timer_millis+5 - 72 0052 8091 0000 lds r24,_timer_millis+6 - 73 0056 9091 0000 lds r25,_timer_millis+7 - 74 /* epilogue start */ - 45:timer.c **** } - 75 .loc 1 45 0 - 76 005a 0895 ret - 77 .LFE1: - 79 .global timer_micros - 81 timer_micros: - 82 .LFB2: - 46:timer.c **** - 47:timer.c **** /* - 48:timer.c **** * Returns the number of microseconds which have elapsed since the - 49:timer.c **** * last time timer_init() was called. Overflows after about 71 minutes. - 50:timer.c **** */ - 51:timer.c **** uint64_t timer_micros(){ - 83 .loc 1 51 0 - 84 005c 2F92 push r2 - 85 .LCFI0: - 86 005e 3F92 push r3 - 87 .LCFI1: - 88 0060 4F92 push r4 - 89 .LCFI2: - 90 0062 5F92 push r5 - 91 .LCFI3: - 92 0064 6F92 push r6 - 93 .LCFI4: - 94 0066 7F92 push r7 - 95 .LCFI5: - 96 0068 8F92 push r8 - 97 .LCFI6: - 98 006a 9F92 push r9 - 99 .LCFI7: - 100 006c AF92 push r10 - 101 .LCFI8: - 102 006e BF92 push r11 - 103 .LCFI9: - 104 0070 CF92 push r12 - 105 .LCFI10: - 106 0072 DF92 push r13 - 107 .LCFI11: - 108 0074 EF92 push r14 - 109 .LCFI12: - 110 0076 FF92 push r15 - 111 .LCFI13: - 112 0078 0F93 push r16 - 113 .LCFI14: - 114 007a 1F93 push r17 - 115 .LCFI15: - 116 007c CF93 push r28 - 117 .LCFI16: - 118 007e DF93 push r29 - 119 .LCFI17: - 120 0080 0F92 push __tmp_reg__ - 121 .LCFI18: - 122 0082 CDB7 in r28,__SP_L__ - 123 0084 DEB7 in r29,__SP_H__ - 124 .LCFI19: - 125 /* prologue: function */ - 126 /* frame size = 1 */ - 127 /* stack size = 19 */ - 128 .L__stack_usage = 19 - 52:timer.c **** return (_timer_millis * 1000); - 129 .loc 1 52 0 - 130 0086 8090 0000 lds r8,_timer_millis - 131 008a 7090 0000 lds r7,_timer_millis+1 - 132 008e 6090 0000 lds r6,_timer_millis+2 - 133 0092 5090 0000 lds r5,_timer_millis+3 - 134 0096 4090 0000 lds r4,_timer_millis+4 - 135 009a 3090 0000 lds r3,_timer_millis+5 - 136 009e 2090 0000 lds r2,_timer_millis+6 - 137 00a2 8091 0000 lds r24,_timer_millis+7 - 138 00a6 8983 std Y+1,r24 - 139 00a8 282D mov r18,r8 - 140 00aa 372D mov r19,r7 - 141 00ac 462D mov r20,r6 - 142 00ae 552D mov r21,r5 - 143 00b0 642D mov r22,r4 - 144 00b2 732D mov r23,r3 - 145 00b4 822D mov r24,r2 - 146 00b6 9981 ldd r25,Y+1 - 147 00b8 02E0 ldi r16,lo8(2) - 148 00ba 0E94 0000 call __ashldi3 - 149 00be F22E mov r15,r18 - 150 00c0 132F mov r17,r19 - 151 00c2 E42E mov r14,r20 - 152 00c4 D52E mov r13,r21 - 153 00c6 C62E mov r12,r22 - 154 00c8 B72E mov r11,r23 - 155 00ca A82E mov r10,r24 - 156 00cc 992E mov r9,r25 - 157 00ce 05E0 ldi r16,lo8(5) - 158 00d0 0E94 0000 call __ashldi3 - 159 00d4 B22F mov r27,r18 - 160 00d6 BF19 sub r27,r15 - 161 00d8 F1E0 ldi r31,lo8(1) - 162 00da 2B17 cp r18,r27 - 163 00dc 00F0 brlo .L4 - 164 00de F0E0 ldi r31,lo8(0) - 165 .L4: - 166 00e0 232F mov r18,r19 - 167 00e2 211B sub r18,r17 - 168 00e4 E1E0 ldi r30,lo8(1) - 169 00e6 3217 cp r19,r18 - 170 00e8 00F0 brlo .L5 - 171 00ea E0E0 ldi r30,lo8(0) - 172 .L5: - 173 00ec 022F mov r16,r18 - 174 00ee 0F1B sub r16,r31 - 175 00f0 31E0 ldi r19,lo8(1) - 176 00f2 2017 cp r18,r16 - 177 00f4 00F0 brlo .L6 - 178 00f6 30E0 ldi r19,lo8(0) - 179 .L6: - 180 00f8 E32B or r30,r19 - 181 00fa 342F mov r19,r20 - 182 00fc 3E19 sub r19,r14 - 183 00fe 21E0 ldi r18,lo8(1) - 184 0100 4317 cp r20,r19 - 185 0102 00F0 brlo .L7 - 186 0104 20E0 ldi r18,lo8(0) - 187 .L7: - 188 0106 F32E mov r15,r19 - 189 0108 FE1A sub r15,r30 - 190 010a 41E0 ldi r20,lo8(1) - 191 010c 3F15 cp r19,r15 - 192 010e 00F0 brlo .L8 - 193 0110 40E0 ldi r20,lo8(0) - 194 .L8: - 195 0112 242B or r18,r20 - 196 0114 452F mov r20,r21 - 197 0116 4D19 sub r20,r13 - 198 0118 31E0 ldi r19,lo8(1) - 199 011a 5417 cp r21,r20 - 200 011c 00F0 brlo .L9 - 201 011e 30E0 ldi r19,lo8(0) - 202 .L9: - 203 0120 142F mov r17,r20 - 204 0122 121B sub r17,r18 - 205 0124 21E0 ldi r18,lo8(1) - 206 0126 4117 cp r20,r17 - 207 0128 00F0 brlo .L10 - 208 012a 20E0 ldi r18,lo8(0) - 209 .L10: - 210 012c 322B or r19,r18 - 211 012e 462F mov r20,r22 - 212 0130 4C19 sub r20,r12 - 213 0132 21E0 ldi r18,lo8(1) - 214 0134 6417 cp r22,r20 - 215 0136 00F0 brlo .L11 - 216 0138 20E0 ldi r18,lo8(0) - 217 .L11: - 218 013a A42F mov r26,r20 - 219 013c A31B sub r26,r19 - 220 013e 31E0 ldi r19,lo8(1) - 221 0140 4A17 cp r20,r26 - 222 0142 00F0 brlo .L12 - 223 0144 30E0 ldi r19,lo8(0) - 224 .L12: - 225 0146 232B or r18,r19 - 226 0148 472F mov r20,r23 - 227 014a 4B19 sub r20,r11 - 228 014c 31E0 ldi r19,lo8(1) - 229 014e 7417 cp r23,r20 - 230 0150 00F0 brlo .L13 - 231 0152 30E0 ldi r19,lo8(0) - 232 .L13: - 233 0154 E42F mov r30,r20 - 234 0156 E21B sub r30,r18 - 235 0158 21E0 ldi r18,lo8(1) - 236 015a 4E17 cp r20,r30 - 237 015c 00F0 brlo .L14 - 238 015e 20E0 ldi r18,lo8(0) - 239 .L14: - 240 0160 322B or r19,r18 - 241 0162 482F mov r20,r24 - 242 0164 4A19 sub r20,r10 - 243 0166 21E0 ldi r18,lo8(1) - 244 0168 8417 cp r24,r20 - 245 016a 00F0 brlo .L15 - 246 016c 20E0 ldi r18,lo8(0) - 247 .L15: - 248 016e F42F mov r31,r20 - 249 0170 F31B sub r31,r19 - 250 0172 81E0 ldi r24,lo8(1) - 251 0174 4F17 cp r20,r31 - 252 0176 00F0 brlo .L16 - 253 0178 80E0 ldi r24,lo8(0) - 254 .L16: - 255 017a 282B or r18,r24 - 256 017c 9919 sub r25,r9 - 257 017e 921B sub r25,r18 - 258 0180 2B2F mov r18,r27 - 259 0182 280D add r18,r8 - 260 0184 31E0 ldi r19,lo8(1) - 261 0186 2B17 cp r18,r27 - 262 0188 00F0 brlo .L17 - 263 018a 30E0 ldi r19,lo8(0) - 264 .L17: - 265 018c 700E add r7,r16 - 266 018e 41E0 ldi r20,lo8(1) - 267 0190 7016 cp r7,r16 - 268 0192 00F0 brlo .L18 - 269 0194 40E0 ldi r20,lo8(0) - 270 .L18: - 271 0196 370D add r19,r7 - 272 0198 81E0 ldi r24,lo8(1) - 273 019a 3715 cp r19,r7 - 274 019c 00F0 brlo .L19 - 275 019e 80E0 ldi r24,lo8(0) - 276 .L19: - 277 01a0 482B or r20,r24 - 278 01a2 6F0C add r6,r15 - 279 01a4 51E0 ldi r21,lo8(1) - 280 01a6 6F14 cp r6,r15 - 281 01a8 00F0 brlo .L20 - 282 01aa 50E0 ldi r21,lo8(0) - 283 .L20: - 284 01ac 460D add r20,r6 - 285 01ae 81E0 ldi r24,lo8(1) - 286 01b0 4615 cp r20,r6 - 287 01b2 00F0 brlo .L21 - 288 01b4 80E0 ldi r24,lo8(0) - 289 .L21: - 290 01b6 582B or r21,r24 - 291 01b8 510E add r5,r17 - 292 01ba 61E0 ldi r22,lo8(1) - 293 01bc 5116 cp r5,r17 - 294 01be 00F0 brlo .L22 - 295 01c0 60E0 ldi r22,lo8(0) - 296 .L22: - 297 01c2 550D add r21,r5 - 298 01c4 81E0 ldi r24,lo8(1) - 299 01c6 5515 cp r21,r5 - 300 01c8 00F0 brlo .L23 - 301 01ca 80E0 ldi r24,lo8(0) - 302 .L23: - 303 01cc 682B or r22,r24 - 304 01ce 4A0E add r4,r26 - 305 01d0 71E0 ldi r23,lo8(1) - 306 01d2 4A16 cp r4,r26 - 307 01d4 00F0 brlo .L24 - 308 01d6 70E0 ldi r23,lo8(0) - 309 .L24: - 310 01d8 640D add r22,r4 - 311 01da 81E0 ldi r24,lo8(1) - 312 01dc 6415 cp r22,r4 - 313 01de 00F0 brlo .L25 - 314 01e0 80E0 ldi r24,lo8(0) - 315 .L25: - 316 01e2 782B or r23,r24 - 317 01e4 3E0E add r3,r30 - 318 01e6 81E0 ldi r24,lo8(1) - 319 01e8 3E16 cp r3,r30 - 320 01ea 00F0 brlo .L26 - 321 01ec 80E0 ldi r24,lo8(0) - 322 .L26: - 323 01ee 730D add r23,r3 - 324 01f0 E1E0 ldi r30,lo8(1) - 325 01f2 7315 cp r23,r3 - 326 01f4 00F0 brlo .L27 - 327 01f6 E0E0 ldi r30,lo8(0) - 328 .L27: - 329 01f8 8E2B or r24,r30 - 330 01fa 2F0E add r2,r31 - 331 01fc E1E0 ldi r30,lo8(1) - 332 01fe 2F16 cp r2,r31 - 333 0200 00F0 brlo .L28 - 334 0202 E0E0 ldi r30,lo8(0) - 335 .L28: - 336 0204 820D add r24,r2 - 337 0206 F1E0 ldi r31,lo8(1) - 338 0208 8215 cp r24,r2 - 339 020a 00F0 brlo .L29 - 340 020c F0E0 ldi r31,lo8(0) - 341 .L29: - 342 020e EF2B or r30,r31 - 343 0210 A981 ldd r26,Y+1 - 344 0212 9A0F add r25,r26 - 345 0214 9E0F add r25,r30 - 346 0216 03E0 ldi r16,lo8(3) - 347 0218 0E94 0000 call __ashldi3 - 348 /* epilogue start */ - 53:timer.c **** } - 349 .loc 1 53 0 - 350 021c 0F90 pop __tmp_reg__ - 351 021e DF91 pop r29 - 352 0220 CF91 pop r28 - 353 0222 1F91 pop r17 - 354 0224 0F91 pop r16 - 355 0226 FF90 pop r15 - 356 0228 EF90 pop r14 - 357 022a DF90 pop r13 - 358 022c CF90 pop r12 - 359 022e BF90 pop r11 - 360 0230 AF90 pop r10 - 361 0232 9F90 pop r9 - 362 0234 8F90 pop r8 - 363 0236 7F90 pop r7 - 364 0238 6F90 pop r6 - 365 023a 5F90 pop r5 - 366 023c 4F90 pop r4 - 367 023e 3F90 pop r3 - 368 0240 2F90 pop r2 - 369 0242 0895 ret - 370 .LFE2: - 372 .global __vector_14 - 374 __vector_14: - 375 .LFB3: - 54:timer.c **** - 55:timer.c **** - 56:timer.c **** /* - 57:timer.c **** * The ISR for timer0 overflow. Increment the _timer_count here, and do the calculcations - 58:timer.c **** * to increment _timer_millis as needed. - 59:timer.c **** */ - 60:timer.c **** ISR(TIMER0_COMPA_vect){ - 376 .loc 1 60 0 - 377 0244 1F92 push r1 - 378 .LCFI20: - 379 0246 0F92 push r0 - 380 .LCFI21: - 381 0248 0FB6 in r0,__SREG__ - 382 024a 0F92 push r0 - 383 024c 1124 clr __zero_reg__ - 384 024e 2F93 push r18 - 385 .LCFI22: - 386 0250 3F93 push r19 - 387 .LCFI23: - 388 0252 4F93 push r20 - 389 .LCFI24: - 390 0254 5F93 push r21 - 391 .LCFI25: - 392 0256 6F93 push r22 - 393 .LCFI26: - 394 0258 7F93 push r23 - 395 .LCFI27: - 396 025a 8F93 push r24 - 397 .LCFI28: - 398 025c 9F93 push r25 - 399 .LCFI29: - 400 025e AF93 push r26 - 401 .LCFI30: - 402 0260 EF93 push r30 - 403 .LCFI31: - 404 0262 FF93 push r31 - 405 .LCFI32: - 406 /* prologue: Signal */ - 407 /* frame size = 0 */ - 408 /* stack size = 14 */ - 409 .L__stack_usage = 14 - 61:timer.c **** TCNT0 = 0; - 410 .loc 1 61 0 - 411 0264 16BC out 70-0x20,__zero_reg__ - 62:timer.c **** _timer_millis++; - 412 .loc 1 62 0 - 413 0266 4091 0000 lds r20,_timer_millis - 414 026a 3091 0000 lds r19,_timer_millis+1 - 415 026e 2091 0000 lds r18,_timer_millis+2 - 416 0272 9091 0000 lds r25,_timer_millis+3 - 417 0276 8091 0000 lds r24,_timer_millis+4 - 418 027a F091 0000 lds r31,_timer_millis+5 - 419 027e E091 0000 lds r30,_timer_millis+6 - 420 0282 A091 0000 lds r26,_timer_millis+7 - 421 0286 642F mov r22,r20 - 422 0288 6F5F subi r22,lo8(-(1)) - 423 028a 51E0 ldi r21,lo8(1) - 424 028c 6417 cp r22,r20 - 425 028e 00F0 brlo .L31 - 426 0290 50E0 ldi r21,lo8(0) - 427 .L31: - 428 0292 530F add r21,r19 - 429 0294 41E0 ldi r20,lo8(1) - 430 0296 5317 cp r21,r19 - 431 0298 00F0 brlo .L33 - 432 029a 40E0 ldi r20,lo8(0) - 433 .L33: - 434 029c 420F add r20,r18 - 435 029e 31E0 ldi r19,lo8(1) - 436 02a0 4217 cp r20,r18 - 437 02a2 00F0 brlo .L35 - 438 02a4 30E0 ldi r19,lo8(0) - 439 .L35: - 440 02a6 390F add r19,r25 - 441 02a8 21E0 ldi r18,lo8(1) - 442 02aa 3917 cp r19,r25 - 443 02ac 00F0 brlo .L37 - 444 02ae 20E0 ldi r18,lo8(0) - 445 .L37: - 446 02b0 280F add r18,r24 - 447 02b2 91E0 ldi r25,lo8(1) - 448 02b4 2817 cp r18,r24 - 449 02b6 00F0 brlo .L39 - 450 02b8 90E0 ldi r25,lo8(0) - 451 .L39: - 452 02ba 9F0F add r25,r31 - 453 02bc 81E0 ldi r24,lo8(1) - 454 02be 9F17 cp r25,r31 - 455 02c0 00F0 brlo .L41 - 456 02c2 80E0 ldi r24,lo8(0) - 457 .L41: - 458 02c4 8E0F add r24,r30 - 459 02c6 71E0 ldi r23,lo8(1) - 460 02c8 8E17 cp r24,r30 - 461 02ca 00F0 brlo .L43 - 462 02cc 70E0 ldi r23,lo8(0) - 463 .L43: - 464 02ce 7A0F add r23,r26 - 465 02d0 6093 0000 sts _timer_millis,r22 - 466 02d4 5093 0000 sts _timer_millis+1,r21 - 467 02d8 4093 0000 sts _timer_millis+2,r20 - 468 02dc 3093 0000 sts _timer_millis+3,r19 - 469 02e0 2093 0000 sts _timer_millis+4,r18 - 470 02e4 9093 0000 sts _timer_millis+5,r25 - 471 02e8 8093 0000 sts _timer_millis+6,r24 - 472 02ec 7093 0000 sts _timer_millis+7,r23 - 473 /* epilogue start */ - 63:timer.c **** } - 474 .loc 1 63 0 - 475 02f0 FF91 pop r31 - 476 02f2 EF91 pop r30 - 477 02f4 AF91 pop r26 - 478 02f6 9F91 pop r25 - 479 02f8 8F91 pop r24 - 480 02fa 7F91 pop r23 - 481 02fc 6F91 pop r22 - 482 02fe 5F91 pop r21 - 483 0300 4F91 pop r20 - 484 0302 3F91 pop r19 - 485 0304 2F91 pop r18 - 486 0306 0F90 pop r0 - 487 0308 0FBE out __SREG__,r0 - 488 030a 0F90 pop r0 - 489 030c 1F90 pop r1 - 490 030e 1895 reti - 491 .LFE3: - 493 .lcomm _timer_millis,8 - 738 .Letext0: - 739 .file 2 "/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/stdint.h" -DEFINED SYMBOLS - *ABS*:0000000000000000 timer.c -/var/folders/6p/hvps1d6n58jfd6qghfhb96600000gn/T//ccElzoTR.s:2 *ABS*:000000000000003f __SREG__ -/var/folders/6p/hvps1d6n58jfd6qghfhb96600000gn/T//ccElzoTR.s:3 *ABS*:000000000000003e __SP_H__ -/var/folders/6p/hvps1d6n58jfd6qghfhb96600000gn/T//ccElzoTR.s:4 *ABS*:000000000000003d __SP_L__ -/var/folders/6p/hvps1d6n58jfd6qghfhb96600000gn/T//ccElzoTR.s:5 *ABS*:0000000000000000 __tmp_reg__ -/var/folders/6p/hvps1d6n58jfd6qghfhb96600000gn/T//ccElzoTR.s:6 *ABS*:0000000000000001 __zero_reg__ -/var/folders/6p/hvps1d6n58jfd6qghfhb96600000gn/T//ccElzoTR.s:13 .text:0000000000000000 timer_init - .bss:0000000000000000 _timer_millis -/var/folders/6p/hvps1d6n58jfd6qghfhb96600000gn/T//ccElzoTR.s:58 .text:000000000000003a timer_millis -/var/folders/6p/hvps1d6n58jfd6qghfhb96600000gn/T//ccElzoTR.s:81 .text:000000000000005c timer_micros -/var/folders/6p/hvps1d6n58jfd6qghfhb96600000gn/T//ccElzoTR.s:374 .text:0000000000000244 __vector_14 - -UNDEFINED SYMBOLS -__do_copy_data -__do_clear_bss -__ashldi3 diff --git a/button_debounce/timer.o b/button_debounce/timer.o deleted file mode 100644 index 24f4e3c..0000000 Binary files a/button_debounce/timer.o and /dev/null differ diff --git a/button_debounce/uart_async.lst b/button_debounce/uart_async.lst deleted file mode 100644 index 8c86d5e..0000000 --- a/button_debounce/uart_async.lst +++ /dev/null @@ -1,449 +0,0 @@ - 1 .file "uart_async.c" - 2 __SREG__ = 0x3f - 3 __SP_H__ = 0x3e - 4 __SP_L__ = 0x3d - 5 __tmp_reg__ = 0 - 6 __zero_reg__ = 1 - 7 .global __do_copy_data - 8 .global __do_clear_bss - 9 .text - 10 .Ltext0: - 11 .global uart_init - 13 uart_init: - 14 .LFB1: - 15 .file 1 "uart_async.c" - 1:uart_async.c **** /* Based on Atmel Application Note AVR 306 */ - 2:uart_async.c **** - 3:uart_async.c **** #include - 4:uart_async.c **** #include - 5:uart_async.c **** #include - 6:uart_async.c **** - 7:uart_async.c **** #ifndef BAUD - 8:uart_async.c **** #define BAUD 9600 - 9:uart_async.c **** #endif - 10:uart_async.c **** #include - 11:uart_async.c **** - 12:uart_async.c **** #ifndef UART_RX_BUFFER_SIZE - 13:uart_async.c **** #define UART_RX_BUFFER_SIZE 32 - 14:uart_async.c **** #endif - 15:uart_async.c **** - 16:uart_async.c **** #ifndef UART_TX_BUFFER_SIZE - 17:uart_async.c **** #define UART_TX_BUFFER_SIZE 256 - 18:uart_async.c **** #endif - 19:uart_async.c **** - 20:uart_async.c **** struct tx_ring { - 21:uart_async.c **** int buffer[UART_TX_BUFFER_SIZE]; - 22:uart_async.c **** int start; - 23:uart_async.c **** int end; - 24:uart_async.c **** }; - 25:uart_async.c **** - 26:uart_async.c **** struct rx_ring { - 27:uart_async.c **** int buffer[UART_RX_BUFFER_SIZE]; - 28:uart_async.c **** int start; - 29:uart_async.c **** int end; - 30:uart_async.c **** }; - 31:uart_async.c **** - 32:uart_async.c **** static struct tx_ring tx_buffer; - 33:uart_async.c **** static struct rx_ring rx_buffer; - 34:uart_async.c **** - 35:uart_async.c **** /* http://www.cs.mun.ca/~rod/Winter2007/4723/notes/serial/serial.html */ - 36:uart_async.c **** - 37:uart_async.c **** void uart_init(void) { - 16 .loc 1 37 0 - 17 /* prologue: function */ - 18 /* frame size = 0 */ - 19 /* stack size = 0 */ - 20 .L__stack_usage = 0 - 38:uart_async.c **** - 39:uart_async.c **** tx_buffer.start = 0; - 21 .loc 1 39 0 - 22 0000 1092 0000 sts tx_buffer+512+1,__zero_reg__ - 23 0004 1092 0000 sts tx_buffer+512,__zero_reg__ - 40:uart_async.c **** tx_buffer.end = 0; - 24 .loc 1 40 0 - 25 0008 1092 0000 sts tx_buffer+514+1,__zero_reg__ - 26 000c 1092 0000 sts tx_buffer+514,__zero_reg__ - 41:uart_async.c **** - 42:uart_async.c **** rx_buffer.start = 0; - 27 .loc 1 42 0 - 28 0010 1092 0000 sts rx_buffer+64+1,__zero_reg__ - 29 0014 1092 0000 sts rx_buffer+64,__zero_reg__ - 43:uart_async.c **** rx_buffer.end = 0; - 30 .loc 1 43 0 - 31 0018 1092 0000 sts rx_buffer+66+1,__zero_reg__ - 32 001c 1092 0000 sts rx_buffer+66,__zero_reg__ - 44:uart_async.c **** - 45:uart_async.c **** UBRR0H = UBRRH_VALUE; - 33 .loc 1 45 0 - 34 0020 1092 C500 sts 197,__zero_reg__ - 46:uart_async.c **** UBRR0L = UBRRL_VALUE; - 35 .loc 1 46 0 - 36 0024 87E6 ldi r24,lo8(103) - 37 0026 8093 C400 sts 196,r24 - 47:uart_async.c **** - 48:uart_async.c **** UCSR0C = _BV(UCSZ01) | _BV(UCSZ00); /* 8-bit data */ - 38 .loc 1 48 0 - 39 002a 86E0 ldi r24,lo8(6) - 40 002c 8093 C200 sts 194,r24 - 49:uart_async.c **** UCSR0B = _BV(RXEN0) | _BV(TXEN0); /* Enable RX and TX */ - 41 .loc 1 49 0 - 42 0030 88E1 ldi r24,lo8(24) - 43 0032 8093 C100 sts 193,r24 - 50:uart_async.c **** - 51:uart_async.c **** sei(); - 44 .loc 1 51 0 - 45 /* #APP */ - 46 ; 51 "uart_async.c" 1 - 47 0036 7894 sei - 48 ; 0 "" 2 - 49 /* epilogue start */ - 52:uart_async.c **** } - 50 .loc 1 52 0 - 51 /* #NOAPP */ - 52 0038 0895 ret - 53 .LFE1: - 55 .global uart_putchar - 57 uart_putchar: - 58 .LFB2: - 53:uart_async.c **** - 54:uart_async.c **** int uart_putchar(char c, FILE *stream) { - 59 .loc 1 54 0 - 60 .LVL0: - 61 003a 1F93 push r17 - 62 .LCFI0: - 63 /* prologue: function */ - 64 /* frame size = 0 */ - 65 /* stack size = 1 */ - 66 .L__stack_usage = 1 - 67 003c 182F mov r17,r24 - 55:uart_async.c **** if (c == '\n') { - 68 .loc 1 55 0 - 69 003e 8A30 cpi r24,lo8(10) - 70 0040 01F4 brne .L3 - 71 .LVL1: - 56:uart_async.c **** uart_putchar('\r', stream); - 72 .loc 1 56 0 - 73 0042 8DE0 ldi r24,lo8(13) - 74 0044 0E94 0000 call uart_putchar - 75 .LVL2: - 76 .L3: - 57:uart_async.c **** } - 58:uart_async.c **** - 59:uart_async.c **** int write_pointer = (tx_buffer.end + 1) % UART_TX_BUFFER_SIZE; - 77 .loc 1 59 0 - 78 0048 2091 0000 lds r18,tx_buffer+514 - 79 004c 3091 0000 lds r19,tx_buffer+514+1 - 80 0050 C901 movw r24,r18 - 81 0052 0196 adiw r24,1 - 82 0054 60E0 ldi r22,lo8(256) - 83 0056 71E0 ldi r23,hi8(256) - 84 0058 0E94 0000 call __divmodhi4 - 85 .LVL3: - 60:uart_async.c **** - 61:uart_async.c **** if (write_pointer != tx_buffer.start){ - 86 .loc 1 61 0 - 87 005c 4091 0000 lds r20,tx_buffer+512 - 88 0060 5091 0000 lds r21,tx_buffer+512+1 - 89 0064 8417 cp r24,r20 - 90 0066 9507 cpc r25,r21 - 91 0068 01F0 breq .L4 - 62:uart_async.c **** tx_buffer.buffer[tx_buffer.end] = c; - 92 .loc 1 62 0 - 93 006a F901 movw r30,r18 - 94 006c EE0F lsl r30 - 95 006e FF1F rol r31 - 96 0070 E050 subi r30,lo8(-(tx_buffer)) - 97 0072 F040 sbci r31,hi8(-(tx_buffer)) - 98 0074 1083 st Z,r17 - 99 0076 1182 std Z+1,__zero_reg__ - 63:uart_async.c **** tx_buffer.end = write_pointer; - 100 .loc 1 63 0 - 101 0078 9093 0000 sts tx_buffer+514+1,r25 - 102 007c 8093 0000 sts tx_buffer+514,r24 - 64:uart_async.c **** - 65:uart_async.c **** /* Data available. Enable the transmit interrupt for serial port 0. */ - 66:uart_async.c **** UCSR0B |= _BV(UDRIE0); - 103 .loc 1 66 0 - 104 0080 8091 C100 lds r24,193 - 105 .LVL4: - 106 0084 8062 ori r24,lo8(32) - 107 0086 8093 C100 sts 193,r24 - 108 .LVL5: - 109 .L4: - 67:uart_async.c **** } - 68:uart_async.c **** - 69:uart_async.c **** return 0; - 70:uart_async.c **** } - 110 .loc 1 70 0 - 111 008a 80E0 ldi r24,lo8(0) - 112 008c 90E0 ldi r25,hi8(0) - 113 /* epilogue start */ - 114 008e 1F91 pop r17 - 115 .LVL6: - 116 0090 0895 ret - 117 .LFE2: - 119 .global uart_getchar - 121 uart_getchar: - 122 .LFB3: - 71:uart_async.c **** - 72:uart_async.c **** int uart_getchar(FILE *stream) { - 123 .loc 1 72 0 - 124 .LVL7: - 125 /* prologue: function */ - 126 /* frame size = 0 */ - 127 /* stack size = 0 */ - 128 .L__stack_usage = 0 - 73:uart_async.c **** int read_pointer = (rx_buffer.start + 1) % UART_RX_BUFFER_SIZE; - 129 .loc 1 73 0 - 130 0092 8091 0000 lds r24,rx_buffer+64 - 131 0096 9091 0000 lds r25,rx_buffer+64+1 - 132 .LVL8: - 133 009a 0196 adiw r24,1 - 134 009c 60E2 ldi r22,lo8(32) - 135 009e 70E0 ldi r23,hi8(32) - 136 00a0 0E94 0000 call __divmodhi4 - 137 .LVL9: - 74:uart_async.c **** - 75:uart_async.c **** rx_buffer.start = read_pointer; - 138 .loc 1 75 0 - 139 00a4 9093 0000 sts rx_buffer+64+1,r25 - 140 00a8 8093 0000 sts rx_buffer+64,r24 - 76:uart_async.c **** return rx_buffer.buffer[read_pointer]; - 141 .loc 1 76 0 - 142 00ac FC01 movw r30,r24 - 143 00ae EE0F lsl r30 - 144 00b0 FF1F rol r31 - 145 00b2 E050 subi r30,lo8(-(rx_buffer)) - 146 00b4 F040 sbci r31,hi8(-(rx_buffer)) - 77:uart_async.c **** } - 147 .loc 1 77 0 - 148 00b6 8081 ld r24,Z - 149 .LVL10: - 150 00b8 9181 ldd r25,Z+1 - 151 /* epilogue start */ - 152 00ba 0895 ret - 153 .LFE3: - 155 .global __vector_18 - 157 __vector_18: - 158 .LFB4: - 78:uart_async.c **** - 79:uart_async.c **** ISR(USART_RX_vect) { - 159 .loc 1 79 0 - 160 00bc 1F92 push r1 - 161 .LCFI1: - 162 00be 0F92 push r0 - 163 .LCFI2: - 164 00c0 0FB6 in r0,__SREG__ - 165 00c2 0F92 push r0 - 166 00c4 1124 clr __zero_reg__ - 167 00c6 2F93 push r18 - 168 .LCFI3: - 169 00c8 3F93 push r19 - 170 .LCFI4: - 171 00ca 4F93 push r20 - 172 .LCFI5: - 173 00cc 5F93 push r21 - 174 .LCFI6: - 175 00ce 6F93 push r22 - 176 .LCFI7: - 177 00d0 7F93 push r23 - 178 .LCFI8: - 179 00d2 8F93 push r24 - 180 .LCFI9: - 181 00d4 9F93 push r25 - 182 .LCFI10: - 183 00d6 AF93 push r26 - 184 .LCFI11: - 185 00d8 BF93 push r27 - 186 .LCFI12: - 187 00da EF93 push r30 - 188 .LCFI13: - 189 00dc FF93 push r31 - 190 .LCFI14: - 191 /* prologue: Signal */ - 192 /* frame size = 0 */ - 193 /* stack size = 15 */ - 194 .L__stack_usage = 15 - 80:uart_async.c **** int write_pointer = (rx_buffer.end + 1) % UART_RX_BUFFER_SIZE; - 195 .loc 1 80 0 - 196 00de 2091 0000 lds r18,rx_buffer+66 - 197 00e2 3091 0000 lds r19,rx_buffer+66+1 - 198 00e6 C901 movw r24,r18 - 199 00e8 0196 adiw r24,1 - 200 00ea 60E2 ldi r22,lo8(32) - 201 00ec 70E0 ldi r23,hi8(32) - 202 00ee 0E94 0000 call __divmodhi4 - 203 .LVL11: - 81:uart_async.c **** - 82:uart_async.c **** /* Add next byte to ringbuffer if it has space available. */ - 83:uart_async.c **** if (write_pointer != rx_buffer.start){ - 204 .loc 1 83 0 - 205 00f2 4091 0000 lds r20,rx_buffer+64 - 206 00f6 5091 0000 lds r21,rx_buffer+64+1 - 207 00fa 8417 cp r24,r20 - 208 00fc 9507 cpc r25,r21 - 209 00fe 01F0 breq .L6 - 84:uart_async.c **** rx_buffer.buffer[rx_buffer.end] = UDR0; - 210 .loc 1 84 0 - 211 0100 4091 C600 lds r20,198 - 212 0104 F901 movw r30,r18 - 213 0106 EE0F lsl r30 - 214 0108 FF1F rol r31 - 215 010a E050 subi r30,lo8(-(rx_buffer)) - 216 010c F040 sbci r31,hi8(-(rx_buffer)) - 217 010e 4083 st Z,r20 - 218 0110 1182 std Z+1,__zero_reg__ - 85:uart_async.c **** rx_buffer.end = write_pointer; - 219 .loc 1 85 0 - 220 0112 9093 0000 sts rx_buffer+66+1,r25 - 221 0116 8093 0000 sts rx_buffer+66,r24 - 222 .L6: - 223 /* epilogue start */ - 86:uart_async.c **** } - 87:uart_async.c **** } - 224 .loc 1 87 0 - 225 011a FF91 pop r31 - 226 011c EF91 pop r30 - 227 011e BF91 pop r27 - 228 0120 AF91 pop r26 - 229 0122 9F91 pop r25 - 230 0124 8F91 pop r24 - 231 .LVL12: - 232 0126 7F91 pop r23 - 233 0128 6F91 pop r22 - 234 012a 5F91 pop r21 - 235 012c 4F91 pop r20 - 236 012e 3F91 pop r19 - 237 0130 2F91 pop r18 - 238 0132 0F90 pop r0 - 239 0134 0FBE out __SREG__,r0 - 240 0136 0F90 pop r0 - 241 0138 1F90 pop r1 - 242 013a 1895 reti - 243 .LFE4: - 245 .global __vector_19 - 247 __vector_19: - 248 .LFB5: - 88:uart_async.c **** - 89:uart_async.c **** ISR(USART_UDRE_vect){ - 249 .loc 1 89 0 - 250 013c 1F92 push r1 - 251 .LCFI15: - 252 013e 0F92 push r0 - 253 .LCFI16: - 254 0140 0FB6 in r0,__SREG__ - 255 0142 0F92 push r0 - 256 0144 1124 clr __zero_reg__ - 257 0146 2F93 push r18 - 258 .LCFI17: - 259 0148 3F93 push r19 - 260 .LCFI18: - 261 014a 5F93 push r21 - 262 .LCFI19: - 263 014c 6F93 push r22 - 264 .LCFI20: - 265 014e 7F93 push r23 - 266 .LCFI21: - 267 0150 8F93 push r24 - 268 .LCFI22: - 269 0152 9F93 push r25 - 270 .LCFI23: - 271 0154 AF93 push r26 - 272 .LCFI24: - 273 0156 BF93 push r27 - 274 .LCFI25: - 275 0158 EF93 push r30 - 276 .LCFI26: - 277 015a FF93 push r31 - 278 .LCFI27: - 279 /* prologue: Signal */ - 280 /* frame size = 0 */ - 281 /* stack size = 14 */ - 282 .L__stack_usage = 14 - 90:uart_async.c **** int read_pointer = (tx_buffer.start + 1) % UART_TX_BUFFER_SIZE; - 283 .loc 1 90 0 - 284 015c 8091 0000 lds r24,tx_buffer+512 - 285 0160 9091 0000 lds r25,tx_buffer+512+1 - 286 0164 0196 adiw r24,1 - 287 0166 60E0 ldi r22,lo8(256) - 288 0168 71E0 ldi r23,hi8(256) - 289 016a 0E94 0000 call __divmodhi4 - 290 .LVL13: - 91:uart_async.c **** - 92:uart_async.c **** /* Transmit next byte if data available in ringbuffer. */ - 93:uart_async.c **** if (read_pointer != tx_buffer.end) { - 291 .loc 1 93 0 - 292 016e 2091 0000 lds r18,tx_buffer+514 - 293 0172 3091 0000 lds r19,tx_buffer+514+1 - 294 0176 8217 cp r24,r18 - 295 0178 9307 cpc r25,r19 - 296 017a 01F0 breq .L9 - 94:uart_async.c **** UDR0 = tx_buffer.buffer[read_pointer]; - 297 .loc 1 94 0 - 298 017c FC01 movw r30,r24 - 299 017e EE0F lsl r30 - 300 0180 FF1F rol r31 - 301 0182 E050 subi r30,lo8(-(tx_buffer)) - 302 0184 F040 sbci r31,hi8(-(tx_buffer)) - 303 0186 2081 ld r18,Z - 304 0188 2093 C600 sts 198,r18 - 95:uart_async.c **** tx_buffer.start = read_pointer; - 305 .loc 1 95 0 - 306 018c 9093 0000 sts tx_buffer+512+1,r25 - 307 0190 8093 0000 sts tx_buffer+512,r24 - 308 0194 00C0 rjmp .L8 - 309 .L9: - 96:uart_async.c **** } else { - 97:uart_async.c **** /* Nothing to send. Disable the transmit interrupt for serial port 0. */ - 98:uart_async.c **** UCSR0B &= ~_BV(UDRIE0); - 310 .loc 1 98 0 - 311 0196 8091 C100 lds r24,193 - 312 .LVL14: - 313 019a 8F7D andi r24,lo8(-33) - 314 019c 8093 C100 sts 193,r24 - 315 .L8: - 316 /* epilogue start */ - 99:uart_async.c **** } - 100:uart_async.c **** } - 317 .loc 1 100 0 - 318 01a0 FF91 pop r31 - 319 01a2 EF91 pop r30 - 320 01a4 BF91 pop r27 - 321 01a6 AF91 pop r26 - 322 01a8 9F91 pop r25 - 323 01aa 8F91 pop r24 - 324 01ac 7F91 pop r23 - 325 01ae 6F91 pop r22 - 326 01b0 5F91 pop r21 - 327 01b2 3F91 pop r19 - 328 01b4 2F91 pop r18 - 329 01b6 0F90 pop r0 - 330 01b8 0FBE out __SREG__,r0 - 331 01ba 0F90 pop r0 - 332 01bc 1F90 pop r1 - 333 01be 1895 reti - 334 .LFE5: - 336 .lcomm tx_buffer,516 - 337 .lcomm rx_buffer,68 - 564 .Letext0: - 565 .file 2 "/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/stdio.h" - 566 .file 3 "/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/stdint.h" -DEFINED SYMBOLS - *ABS*:0000000000000000 uart_async.c -/var/folders/6p/hvps1d6n58jfd6qghfhb96600000gn/T//ccGlpivZ.s:2 *ABS*:000000000000003f __SREG__ -/var/folders/6p/hvps1d6n58jfd6qghfhb96600000gn/T//ccGlpivZ.s:3 *ABS*:000000000000003e __SP_H__ -/var/folders/6p/hvps1d6n58jfd6qghfhb96600000gn/T//ccGlpivZ.s:4 *ABS*:000000000000003d __SP_L__ -/var/folders/6p/hvps1d6n58jfd6qghfhb96600000gn/T//ccGlpivZ.s:5 *ABS*:0000000000000000 __tmp_reg__ -/var/folders/6p/hvps1d6n58jfd6qghfhb96600000gn/T//ccGlpivZ.s:6 *ABS*:0000000000000001 __zero_reg__ -/var/folders/6p/hvps1d6n58jfd6qghfhb96600000gn/T//ccGlpivZ.s:13 .text:0000000000000000 uart_init - .bss:0000000000000000 tx_buffer -/var/folders/6p/hvps1d6n58jfd6qghfhb96600000gn/T//ccGlpivZ.s:336 .bss:0000000000000204 rx_buffer -/var/folders/6p/hvps1d6n58jfd6qghfhb96600000gn/T//ccGlpivZ.s:57 .text:000000000000003a uart_putchar -/var/folders/6p/hvps1d6n58jfd6qghfhb96600000gn/T//ccGlpivZ.s:121 .text:0000000000000092 uart_getchar -/var/folders/6p/hvps1d6n58jfd6qghfhb96600000gn/T//ccGlpivZ.s:157 .text:00000000000000bc __vector_18 -/var/folders/6p/hvps1d6n58jfd6qghfhb96600000gn/T//ccGlpivZ.s:247 .text:000000000000013c __vector_19 - -UNDEFINED SYMBOLS -__do_copy_data -__do_clear_bss -__divmodhi4 diff --git a/button_debounce/uart_async.o b/button_debounce/uart_async.o deleted file mode 100644 index 68a65b6..0000000 Binary files a/button_debounce/uart_async.o and /dev/null differ