From 03f4d72f16a90006b3c6b75e31d30985443e7eb8 Mon Sep 17 00:00:00 2001 From: stijn Date: Wed, 31 Mar 2021 13:10:25 +0200 Subject: [PATCH] [add] init check --- .../.vs/Microcontrollers/v14/.atsuo | Bin 89600 -> 80384 bytes .../Eindopdracht/Debug/Eindopdracht.elf | Bin 0 -> 24892 bytes .../Eindopdracht/Debug/Eindopdracht.hex | 177 ++ .../Eindopdracht/Debug/Eindopdracht.lss | 1706 +++++++++++++++++ .../Eindopdracht/Debug/Eindopdracht.map | 676 +++++++ .../Eindopdracht/Debug/Eindopdracht.srec | 178 ++ Microcontrollers/Eindopdracht/Debug/Makefile | 12 + .../Eindopdracht/Debug/lcd_control.d | 61 + .../Eindopdracht/Debug/lcd_control.o | Bin 0 -> 13652 bytes Microcontrollers/Eindopdracht/Debug/main.d | 56 + Microcontrollers/Eindopdracht/Debug/main.o | Bin 0 -> 8928 bytes .../Eindopdracht/Debug/makedep.mk | 2 + .../Eindopdracht/Debug/stepper_driver.d | 61 + .../Eindopdracht/Debug/stepper_driver.o | Bin 0 -> 8668 bytes .../Eindopdracht/Debug/ultrasonic_sensor.d | 49 + .../Eindopdracht/Debug/ultrasonic_sensor.o | Bin 0 -> 8880 bytes .../Eindopdracht/Eindopdracht.cproj | 164 +- Microcontrollers/Eindopdracht/lcd_control.c | 2 +- Microcontrollers/Eindopdracht/main.c | 25 +- .../Eindopdracht/stepper_driver.c | 113 ++ .../Eindopdracht/stepper_driver.h | 25 + .../Eindopdracht/ultrasonic_sensor.c | 10 + .../Eindopdracht/ultrasonic_sensor.h | 1 + Microcontrollers/Microcontrollers.atsln | 3 - 24 files changed, 3237 insertions(+), 84 deletions(-) create mode 100644 Microcontrollers/Eindopdracht/Debug/Eindopdracht.elf create mode 100644 Microcontrollers/Eindopdracht/Debug/Eindopdracht.hex create mode 100644 Microcontrollers/Eindopdracht/Debug/Eindopdracht.lss create mode 100644 Microcontrollers/Eindopdracht/Debug/Eindopdracht.map create mode 100644 Microcontrollers/Eindopdracht/Debug/Eindopdracht.srec create mode 100644 Microcontrollers/Eindopdracht/Debug/lcd_control.d create mode 100644 Microcontrollers/Eindopdracht/Debug/lcd_control.o create mode 100644 Microcontrollers/Eindopdracht/Debug/main.d create mode 100644 Microcontrollers/Eindopdracht/Debug/main.o create mode 100644 Microcontrollers/Eindopdracht/Debug/stepper_driver.d create mode 100644 Microcontrollers/Eindopdracht/Debug/stepper_driver.o create mode 100644 Microcontrollers/Eindopdracht/Debug/ultrasonic_sensor.d create mode 100644 Microcontrollers/Eindopdracht/Debug/ultrasonic_sensor.o create mode 100644 Microcontrollers/Eindopdracht/stepper_driver.c create mode 100644 Microcontrollers/Eindopdracht/stepper_driver.h diff --git a/Microcontrollers/.vs/Microcontrollers/v14/.atsuo b/Microcontrollers/.vs/Microcontrollers/v14/.atsuo index 3dabb46d2a80ed6e3afb59fccc1a7da414c95555..bbde1a2bb7b403634f6bbd401b661ddab55a6e64 100644 GIT binary patch delta 9306 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 delta 3097 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 SK^jZ)nDSO_(6r!1^!vX()YpXo literal 0 HcmV?d00001 diff --git a/Microcontrollers/Eindopdracht/Debug/Eindopdracht.hex b/Microcontrollers/Eindopdracht/Debug/Eindopdracht.hex new file mode 100644 index 0000000..886889b --- /dev/null +++ b/Microcontrollers/Eindopdracht/Debug/Eindopdracht.hex @@ -0,0 +1,177 @@ +:1000000045C0000049C100005EC000005CC00000A7 +:100010005AC0000058C0000056C0000054C0000084 +:1000200052C0000092C100004EC000004CC0000051 +:100030004AC0000048C0000046C0000044C00000A4 +:1000400042C0000040C000003EC000003CC00000B4 +:100050003AC0000038C0000036C0000034C00000C4 +:1000600032C0000030C000002EC000002CC00000D4 +:100070002AC0000028C0000026C0000024C00000E4 +:1000800022C0000020C000001EC0000011241FBEBE +:10009000CFEFD0E1DEBFCDBF11E0A0E0B1E0EEEDEB +:1000A000FAE000E00BBF02C007900D92A631B10745 +:1000B000D9F721E0A6E1B1E001C01D92A232B2075A +:1000C000E1F711D10AC59CCF9BB321E030E002C01B +:1000D000220F331F8A95E2F7292B2BBB08959BB380 +:1000E00021E030E002C0220F331F8A95E2F720950D +:1000F00029232BBB089586E090E0E6DF83EC99E0AE +:100100000197F1F700C0000086E090E0E8DF87E8A3 +:1001100093E10197F1F700C000000895CF93C82F35 +:1001200085BB84E090E0D0DFE6DFC295C07FC5BB31 +:1001300084E090E0C9DFDFDFCF910895CF93C82F2F +:1001400085BB84E090E0CBDFD6DFC295C07FC5BB26 +:1001500084E090E0C4DFCFDFCF91089581E0EEDF4F +:1001600087E893E10197F1F700C0000080E8E6CF4F +:100170000895CF938FEF84BB85BB8ABB15BA1BBA9A +:10018000C0E2C5BBB8DFC5BBB6DF80E885BBB3DF67 +:1001900015BAB1DF80EF85BBAEDF15BAACDF80E604 +:1001A00085BBA9DF82E0CADFA6DFCF910895CF9398 +:1001B000DF93EC0102C0B2DF219688818111FBCF71 +:1001C000DF91CF910895AF92BF92CF92DF92EF92DD +:1001D000FF920F931F93CF93DF93CDB7DEB7D82E47 +:1001E000C92EADB6BEB69F938F930F2EF2E1EF2EC0 +:1001F000F1E0FF2EF02DFF92EF921F921F921F92BF +:100200001F9282D101962DB73EB7285F3F4F0FB6A0 +:10021000F8943EBF0FBE2DBF281B390B0FB6F894C4 +:100220003EBF0FBE2DBF0DB71EB70F5F1F4FCF9242 +:10023000DF92FF92EF929F938F931F930F9364D15E +:10024000802F912FB4DF8DB79EB708960FB6F89424 +:100250009EBF0FBE8DBF0FB6F894BEBE0FBEADBE23 +:10026000DF91CF911F910F91FF90EF90DF90CF9092 +:10027000BF90AF90089520910001222351F0019783 +:10028000439738F4D1D01092000161E080E092E011 +:10029000BEC0089504C108951F920F920FB60F9229 +:1002A00011240BB60F922F933F934F935F936F934D +:1002B0007F938F939F93AF93BF93EF93FF93FCD064 +:1002C000FF91EF91BF91AF919F918F917F916F912E +:1002D0005F914F913F912F910F900BBE0F900FBEEA +:1002E0000F901F901895CCD044DFA0D08AE491E005 +:1002F00027D08BE391E0FED087EA91E60197F1F7F2 +:1003000000C000002BDF60E088E592E080D026DFAF +:10031000F6D059DF84E690E0A4D0F9CF90911D018A +:10032000911107C0E82FF0E0EF5FFE4F808183B9A5 +:100330000895E82FF0E0E75FFE4F808183B90895CC +:1003400090931F0180931E0108951F920F920FB684 +:100350000F9211240BB60F922F933F934F935F93FD +:100360006F937F938F939F93AF93BF93EF93FF937D +:1003700014BC80911601D2DF80911601873020F4E1 +:100380008F5F8093160130C0109216018091170183 +:1003900090911801009799F480911D01811104C07A +:1003A00081E080931D0102C010921D01809119010E +:1003B00090911A01909318018093170115C09C0128 +:1003C0002F713327232B39F4E0911E01F0911F0187 +:1003D000309709F0099580911701909118010197C4 +:1003E0009093180180931701FF91EF91BF91AF9106 +:1003F0009F918F917F916F915F914F913F912F913D +:100400000F900BBE0F900FBE0F901F9018959093FA +:1004100018018093170190931A018093190160933A +:100420001D018CE085BD089515BC08958FEF82B93C +:100430008093640081E08093650013B886E983BDF2 +:1004400080E887BF7894089520E030E006C043E05C +:100450004A95F1F700002F5F3F4F28173907B8F38F +:10046000089520E030E008C0E3ECF9E03197F1F7BF +:1004700000C000002F5F3F4F28173907A8F30895E9 +:100480008FEF8093640011BA83E080936A0089B78C +:10049000816089BF1FBC8CE08EBD78940895CF9396 +:1004A000DF93C5E6D0E018828AE090E0CDDF81E0FE +:1004B0008883DF91CF91089580911101813041F4BB +:1004C00082E080936A001DBC1CBC1092110108954B +:1004D00083E080936A008CB59DB590931C01809356 +:1004E0001B01E0912001F0912101099581E08093A9 +:1004F0001101089590932101809320010895809126 +:100500001B0190911C0108950F931F93CF93DF93CC +:10051000CDB7DEB72E970FB6F894DEBF0FBECDBFB6 +:100520000D891E898F89988D26E02C831A83098373 +:1005300097FF02C080E090E801979E838D83AE0113 +:10054000455E5F4F698D7A8DCE01019619D04D8140 +:100550005E8157FD0AC02F813885421753070CF47E +:100560009A01F801E20FF31F10822E960FB6F8944D +:10057000DEBF0FBECDBFDF91CF911F910F910895C8 +:100580002F923F924F925F926F927F928F929F92A3 +:10059000AF92BF92CF92DF92EF92FF920F931F9391 +:1005A000CF93DF93CDB7DEB72B970FB6F894DEBFAE +:1005B0000FBECDBF6C017B018A01FC011782168240 +:1005C000838181FFBFC1CE0101963C01F601938179 +:1005D000F70193FD859193FF81917F01882309F4B1 +:1005E000ADC1853239F493FD859193FF81917F01EF +:1005F000853221F4B60190E0D6D1E8CF912C212CA0 +:10060000312CFFE1F315D8F08B3279F038F48032D9 +:1006100079F08332A1F4232D20611DC08D3261F069 +:10062000803369F4232D216016C0832D8260382E1B +:10063000E32DE4603E2E2AC0F32DF8601DC037FC88 +:100640002DC020ED280F2A3040F08E32B9F436FC50 +:1006500075C1232D2064322E19C036FE06C08AE0F3 +:10066000989E200D1124922E11C0EAE02E9E200D9E +:100670001124222EF32DF0623F2E08C08C3621F477 +:10068000832D8068382E02C0883641F4F70193FD2F +:10069000859193FF81917F018111B3CF982F9F7D29 +:1006A0009554933028F40C5F1F4F9FE399830DC03E +:1006B000833631F0833771F0833509F055C020C09F +:1006C000F801808189830E5F1F4F88248394912CC9 +:1006D000530112C02801F2E04F0E511CF801A08016 +:1006E000B18036FE03C0692D70E002C06FEF7FEF6E +:1006F000C5014ED14C018201F32DFF773F2E15C06D +:10070000280122E0420E511CF801A080B18036FE83 +:1007100003C0692D70E002C06FEF7FEFC5012DD1DE +:100720004C01F32DF0683F2E820133FC19C0822D5D +:1007300090E088169906A0F4B60180E290E033D1EB +:100740002A94F5CFF50137FC859137FE81915F0141 +:10075000B60190E028D121102A9421E0821A910854 +:100760008114910479F7E1C0843611F0893639F5A6 +:10077000F80137FE07C060817181828193810C5F2F +:100780001F4F08C060817181072E000C880B990BE8 +:100790000E5F1F4FF32DFF763F2E97FF09C09095F8 +:1007A0008095709561957F4F8F4F9F4FF0683F2EDA +:1007B0002AE030E0A30133D1882E861844C0853763 +:1007C00031F4232D2F7EB22E2AE030E025C0932D68 +:1007D000997FB92E8F36C1F018F4883579F0AEC004 +:1007E000803719F0883721F0A9C0E92FE061BE2ECB +:1007F000B4FE0DC0FB2DF460BF2E09C034FE0AC04C +:10080000292F2660B22E06C028E030E005C020E186 +:1008100030E002C020E132E0F801B7FE07C060819D +:100820007181828193810C5F1F4F06C0608171814D +:1008300080E090E00E5F1F4FA301F1D0882E861854 +:10084000FB2DFF773F2E36FE0DC0232D2E7FA22ECF +:10085000891458F434FE0BC032FC09C0832D8E7EFF +:10086000A82E05C0B82CA32C03C0B82C01C0B92CED +:10087000A4FE0FC0FE01E80DF11D8081803321F43C +:100880009A2D997EA92E09C0A2FE06C0B394B394F6 +:1008900004C08A2D867809F0B394A3FC10C0A0FE92 +:1008A00006C0B21480F4280C922C9B180DC0B21410 +:1008B00058F4B60180E290E076D0B394F8CFB21449 +:1008C00018F42B1802C0982C212CA4FE0FC0B601DE +:1008D00080E390E068D0A2FE16C0A1FC03C088E7C8 +:1008E00090E002C088E590E0B6010CC08A2D8678C1 +:1008F00051F0A1FE02C08BE201C080E2A7FC8DE2B4 +:10090000B60190E050D0891430F4B60180E390E055 +:100910004AD09A94F8CF8A94F301E80DF11D8081B2 +:10092000B60190E040D08110F6CF222009F44ECEDF +:10093000B60180E290E037D02A94F7CFF6018681A5 +:10094000978102C08FEF9FEF2B960FB6F894DEBF12 +:100950000FBECDBFDF91CF911F910F91FF90EF9010 +:10096000DF90CF90BF90AF909F908F907F906F90CF +:100970005F904F903F902F900895FC01059061503B +:1009800070400110D8F7809590958E0F9F1F0895A5 +:10099000FC016150704001900110D8F7809590954E +:1009A0008E0F9F1F08950F931F93CF93DF93FB012B +:1009B000238121FD03C08FEF9FEF2CC022FF16C0C3 +:1009C00046815781248135814217530744F4A08121 +:1009D000B1819D012F5F3F4F318320838C9326810E +:1009E00037812F5F3F4F3783268314C08B01EC0183 +:1009F000FB010084F185E02D0995892BE1F6D801F2 +:100A000016968D919C911797019617969C938E93AD +:100A10001697CE01DF91CF911F910F910895FA01A2 +:100A2000AA27283051F1203181F1E8946F936E7F2D +:100A30006E5F7F4F8F4F9F4FAF4FB1E03ED0B4E01E +:100A40003CD0670F781F891F9A1FA11D680F791F5F +:100A50008A1F911DA11D6A0F711D811D911DA11D70 +:100A600020D009F468943F912AE0269F1124301980 +:100A7000305D3193DEF6CF010895462F4770405D1B +:100A80004193B3E00FD0C9F7F6CF462F4F70405DCA +:100A90004A3318F0495D31FD4052419302D0A9F725 +:100AA000EACFB4E0A6959795879577956795BA951F +:100AB000C9F700976105710508959B01AC010A2EE5 +:100AC00006945795479537952795BA95C9F7620FBC +:0E0AD000731F841F951FA01D0895F894FFCF7B +:100ADE0001080C0406020301090901030206040CB5 +:060AEE0008012564000070 +:00000001FF diff --git a/Microcontrollers/Eindopdracht/Debug/Eindopdracht.lss b/Microcontrollers/Eindopdracht/Debug/Eindopdracht.lss new file mode 100644 index 0000000..d3ddaec --- /dev/null +++ b/Microcontrollers/Eindopdracht/Debug/Eindopdracht.lss @@ -0,0 +1,1706 @@ + +Eindopdracht.elf: file format elf32-avr + +Sections: +Idx Name Size VMA LMA File off Algn + 0 .data 00000016 00800100 00000ade 00000b72 2**0 + CONTENTS, ALLOC, LOAD, DATA + 1 .text 00000ade 00000000 00000000 00000094 2**1 + CONTENTS, ALLOC, LOAD, READONLY, CODE + 2 .bss 0000000c 00800116 00800116 00000b88 2**0 + ALLOC + 3 .comment 0000005c 00000000 00000000 00000b88 2**0 + CONTENTS, READONLY + 4 .note.gnu.avr.deviceinfo 0000003c 00000000 00000000 00000be4 2**2 + CONTENTS, READONLY + 5 .debug_aranges 00000148 00000000 00000000 00000c20 2**0 + CONTENTS, READONLY, DEBUGGING + 6 .debug_info 000014e2 00000000 00000000 00000d68 2**0 + CONTENTS, READONLY, DEBUGGING + 7 .debug_abbrev 00000d38 00000000 00000000 0000224a 2**0 + CONTENTS, READONLY, DEBUGGING + 8 .debug_line 00000aaa 00000000 00000000 00002f82 2**0 + CONTENTS, READONLY, DEBUGGING + 9 .debug_frame 00000318 00000000 00000000 00003a2c 2**2 + CONTENTS, READONLY, DEBUGGING + 10 .debug_str 00000754 00000000 00000000 00003d44 2**0 + CONTENTS, READONLY, DEBUGGING + 11 .debug_loc 0000068c 00000000 00000000 00004498 2**0 + CONTENTS, READONLY, DEBUGGING + 12 .debug_ranges 00000108 00000000 00000000 00004b24 2**0 + CONTENTS, READONLY, DEBUGGING + +Disassembly of section .text: + +00000000 <__vectors>: + 0: 45 c0 rjmp .+138 ; 0x8c <__ctors_end> + 2: 00 00 nop + 4: 49 c1 rjmp .+658 ; 0x298 <__vector_1> + 6: 00 00 nop + 8: 5e c0 rjmp .+188 ; 0xc6 <__bad_interrupt> + a: 00 00 nop + c: 5c c0 rjmp .+184 ; 0xc6 <__bad_interrupt> + e: 00 00 nop + 10: 5a c0 rjmp .+180 ; 0xc6 <__bad_interrupt> + 12: 00 00 nop + 14: 58 c0 rjmp .+176 ; 0xc6 <__bad_interrupt> + 16: 00 00 nop + 18: 56 c0 rjmp .+172 ; 0xc6 <__bad_interrupt> + 1a: 00 00 nop + 1c: 54 c0 rjmp .+168 ; 0xc6 <__bad_interrupt> + 1e: 00 00 nop + 20: 52 c0 rjmp .+164 ; 0xc6 <__bad_interrupt> + 22: 00 00 nop + 24: 92 c1 rjmp .+804 ; 0x34a <__vector_9> + 26: 00 00 nop + 28: 4e c0 rjmp .+156 ; 0xc6 <__bad_interrupt> + 2a: 00 00 nop + 2c: 4c c0 rjmp .+152 ; 0xc6 <__bad_interrupt> + 2e: 00 00 nop + 30: 4a c0 rjmp .+148 ; 0xc6 <__bad_interrupt> + 32: 00 00 nop + 34: 48 c0 rjmp .+144 ; 0xc6 <__bad_interrupt> + 36: 00 00 nop + 38: 46 c0 rjmp .+140 ; 0xc6 <__bad_interrupt> + 3a: 00 00 nop + 3c: 44 c0 rjmp .+136 ; 0xc6 <__bad_interrupt> + 3e: 00 00 nop + 40: 42 c0 rjmp .+132 ; 0xc6 <__bad_interrupt> + 42: 00 00 nop + 44: 40 c0 rjmp .+128 ; 0xc6 <__bad_interrupt> + 46: 00 00 nop + 48: 3e c0 rjmp .+124 ; 0xc6 <__bad_interrupt> + 4a: 00 00 nop + 4c: 3c c0 rjmp .+120 ; 0xc6 <__bad_interrupt> + 4e: 00 00 nop + 50: 3a c0 rjmp .+116 ; 0xc6 <__bad_interrupt> + 52: 00 00 nop + 54: 38 c0 rjmp .+112 ; 0xc6 <__bad_interrupt> + 56: 00 00 nop + 58: 36 c0 rjmp .+108 ; 0xc6 <__bad_interrupt> + 5a: 00 00 nop + 5c: 34 c0 rjmp .+104 ; 0xc6 <__bad_interrupt> + 5e: 00 00 nop + 60: 32 c0 rjmp .+100 ; 0xc6 <__bad_interrupt> + 62: 00 00 nop + 64: 30 c0 rjmp .+96 ; 0xc6 <__bad_interrupt> + 66: 00 00 nop + 68: 2e c0 rjmp .+92 ; 0xc6 <__bad_interrupt> + 6a: 00 00 nop + 6c: 2c c0 rjmp .+88 ; 0xc6 <__bad_interrupt> + 6e: 00 00 nop + 70: 2a c0 rjmp .+84 ; 0xc6 <__bad_interrupt> + 72: 00 00 nop + 74: 28 c0 rjmp .+80 ; 0xc6 <__bad_interrupt> + 76: 00 00 nop + 78: 26 c0 rjmp .+76 ; 0xc6 <__bad_interrupt> + 7a: 00 00 nop + 7c: 24 c0 rjmp .+72 ; 0xc6 <__bad_interrupt> + 7e: 00 00 nop + 80: 22 c0 rjmp .+68 ; 0xc6 <__bad_interrupt> + 82: 00 00 nop + 84: 20 c0 rjmp .+64 ; 0xc6 <__bad_interrupt> + 86: 00 00 nop + 88: 1e c0 rjmp .+60 ; 0xc6 <__bad_interrupt> + ... + +0000008c <__ctors_end>: + 8c: 11 24 eor r1, r1 + 8e: 1f be out 0x3f, r1 ; 63 + 90: cf ef ldi r28, 0xFF ; 255 + 92: d0 e1 ldi r29, 0x10 ; 16 + 94: de bf out 0x3e, r29 ; 62 + 96: cd bf out 0x3d, r28 ; 61 + +00000098 <__do_copy_data>: + 98: 11 e0 ldi r17, 0x01 ; 1 + 9a: a0 e0 ldi r26, 0x00 ; 0 + 9c: b1 e0 ldi r27, 0x01 ; 1 + 9e: ee ed ldi r30, 0xDE ; 222 + a0: fa e0 ldi r31, 0x0A ; 10 + a2: 00 e0 ldi r16, 0x00 ; 0 + a4: 0b bf out 0x3b, r16 ; 59 + a6: 02 c0 rjmp .+4 ; 0xac <__do_copy_data+0x14> + a8: 07 90 elpm r0, Z+ + aa: 0d 92 st X+, r0 + ac: a6 31 cpi r26, 0x16 ; 22 + ae: b1 07 cpc r27, r17 + b0: d9 f7 brne .-10 ; 0xa8 <__do_copy_data+0x10> + +000000b2 <__do_clear_bss>: + b2: 21 e0 ldi r18, 0x01 ; 1 + b4: a6 e1 ldi r26, 0x16 ; 22 + b6: b1 e0 ldi r27, 0x01 ; 1 + b8: 01 c0 rjmp .+2 ; 0xbc <.do_clear_bss_start> + +000000ba <.do_clear_bss_loop>: + ba: 1d 92 st X+, r1 + +000000bc <.do_clear_bss_start>: + bc: a2 32 cpi r26, 0x22 ; 34 + be: b2 07 cpc r27, r18 + c0: e1 f7 brne .-8 ; 0xba <.do_clear_bss_loop> + c2: 11 d1 rcall .+546 ; 0x2e6
+ c4: 0a c5 rjmp .+2580 ; 0xada <_exit> + +000000c6 <__bad_interrupt>: + c6: 9c cf rjmp .-200 ; 0x0 <__vectors> + +000000c8 : + } +} + +void lcd_move_right(void){ + + lcd_write_command(0x1E); + c8: 9b b3 in r25, 0x1b ; 27 + ca: 21 e0 ldi r18, 0x01 ; 1 + cc: 30 e0 ldi r19, 0x00 ; 0 + ce: 02 c0 rjmp .+4 ; 0xd4 + d0: 22 0f add r18, r18 + d2: 33 1f adc r19, r19 + d4: 8a 95 dec r24 + d6: e2 f7 brpl .-8 ; 0xd0 + d8: 29 2b or r18, r25 + da: 2b bb out 0x1b, r18 ; 27 + dc: 08 95 ret + +000000de : + de: 9b b3 in r25, 0x1b ; 27 + e0: 21 e0 ldi r18, 0x01 ; 1 + e2: 30 e0 ldi r19, 0x00 ; 0 + e4: 02 c0 rjmp .+4 ; 0xea + e6: 22 0f add r18, r18 + e8: 33 1f adc r19, r19 + ea: 8a 95 dec r24 + ec: e2 f7 brpl .-8 ; 0xe6 + ee: 20 95 com r18 + f0: 29 23 and r18, r25 + f2: 2b bb out 0x1b, r18 ; 27 + f4: 08 95 ret + +000000f6 : + f6: 86 e0 ldi r24, 0x06 ; 6 + f8: 90 e0 ldi r25, 0x00 ; 0 + fa: e6 df rcall .-52 ; 0xc8 + fc: 83 ec ldi r24, 0xC3 ; 195 + fe: 99 e0 ldi r25, 0x09 ; 9 + 100: 01 97 sbiw r24, 0x01 ; 1 + 102: f1 f7 brne .-4 ; 0x100 + 104: 00 c0 rjmp .+0 ; 0x106 + 106: 00 00 nop + 108: 86 e0 ldi r24, 0x06 ; 6 + 10a: 90 e0 ldi r25, 0x00 ; 0 + 10c: e8 df rcall .-48 ; 0xde + 10e: 87 e8 ldi r24, 0x87 ; 135 + 110: 93 e1 ldi r25, 0x13 ; 19 + 112: 01 97 sbiw r24, 0x01 ; 1 + 114: f1 f7 brne .-4 ; 0x112 + 116: 00 c0 rjmp .+0 ; 0x118 + 118: 00 00 nop + 11a: 08 95 ret + +0000011c : + 11c: cf 93 push r28 + 11e: c8 2f mov r28, r24 + 120: 85 bb out 0x15, r24 ; 21 + 122: 84 e0 ldi r24, 0x04 ; 4 + 124: 90 e0 ldi r25, 0x00 ; 0 + 126: d0 df rcall .-96 ; 0xc8 + 128: e6 df rcall .-52 ; 0xf6 + 12a: c2 95 swap r28 + 12c: c0 7f andi r28, 0xF0 ; 240 + 12e: c5 bb out 0x15, r28 ; 21 + 130: 84 e0 ldi r24, 0x04 ; 4 + 132: 90 e0 ldi r25, 0x00 ; 0 + 134: c9 df rcall .-110 ; 0xc8 + 136: df df rcall .-66 ; 0xf6 + 138: cf 91 pop r28 + 13a: 08 95 ret + +0000013c : + 13c: cf 93 push r28 + 13e: c8 2f mov r28, r24 + 140: 85 bb out 0x15, r24 ; 21 + 142: 84 e0 ldi r24, 0x04 ; 4 + 144: 90 e0 ldi r25, 0x00 ; 0 + 146: cb df rcall .-106 ; 0xde + 148: d6 df rcall .-84 ; 0xf6 + 14a: c2 95 swap r28 + 14c: c0 7f andi r28, 0xF0 ; 240 + 14e: c5 bb out 0x15, r28 ; 21 + 150: 84 e0 ldi r24, 0x04 ; 4 + 152: 90 e0 ldi r25, 0x00 ; 0 + 154: c4 df rcall .-120 ; 0xde + 156: cf df rcall .-98 ; 0xf6 + 158: cf 91 pop r28 + 15a: 08 95 ret + +0000015c : + 15c: 81 e0 ldi r24, 0x01 ; 1 + 15e: ee df rcall .-36 ; 0x13c + 160: 87 e8 ldi r24, 0x87 ; 135 + 162: 93 e1 ldi r25, 0x13 ; 19 + 164: 01 97 sbiw r24, 0x01 ; 1 + 166: f1 f7 brne .-4 ; 0x164 + 168: 00 c0 rjmp .+0 ; 0x16a + 16a: 00 00 nop + 16c: 80 e8 ldi r24, 0x80 ; 128 + 16e: e6 cf rjmp .-52 ; 0x13c + 170: 08 95 ret + +00000172 : + 172: cf 93 push r28 + 174: 8f ef ldi r24, 0xFF ; 255 + 176: 84 bb out 0x14, r24 ; 20 + 178: 85 bb out 0x15, r24 ; 21 + 17a: 8a bb out 0x1a, r24 ; 26 + 17c: 15 ba out 0x15, r1 ; 21 + 17e: 1b ba out 0x1b, r1 ; 27 + 180: c0 e2 ldi r28, 0x20 ; 32 + 182: c5 bb out 0x15, r28 ; 21 + 184: b8 df rcall .-144 ; 0xf6 + 186: c5 bb out 0x15, r28 ; 21 + 188: b6 df rcall .-148 ; 0xf6 + 18a: 80 e8 ldi r24, 0x80 ; 128 + 18c: 85 bb out 0x15, r24 ; 21 + 18e: b3 df rcall .-154 ; 0xf6 + 190: 15 ba out 0x15, r1 ; 21 + 192: b1 df rcall .-158 ; 0xf6 + 194: 80 ef ldi r24, 0xF0 ; 240 + 196: 85 bb out 0x15, r24 ; 21 + 198: ae df rcall .-164 ; 0xf6 + 19a: 15 ba out 0x15, r1 ; 21 + 19c: ac df rcall .-168 ; 0xf6 + 19e: 80 e6 ldi r24, 0x60 ; 96 + 1a0: 85 bb out 0x15, r24 ; 21 + 1a2: a9 df rcall .-174 ; 0xf6 + 1a4: 82 e0 ldi r24, 0x02 ; 2 + 1a6: ca df rcall .-108 ; 0x13c + 1a8: a6 df rcall .-180 ; 0xf6 + 1aa: cf 91 pop r28 + 1ac: 08 95 ret + +000001ae : + 1ae: cf 93 push r28 + 1b0: df 93 push r29 + 1b2: ec 01 movw r28, r24 + 1b4: 02 c0 rjmp .+4 ; 0x1ba + 1b6: b2 df rcall .-156 ; 0x11c + 1b8: 21 96 adiw r28, 0x01 ; 1 + 1ba: 88 81 ld r24, Y + 1bc: 81 11 cpse r24, r1 + 1be: fb cf rjmp .-10 ; 0x1b6 + 1c0: df 91 pop r29 + 1c2: cf 91 pop r28 + 1c4: 08 95 ret + +000001c6 : +} + +void lcd_write_int(int number) +{ + 1c6: af 92 push r10 + 1c8: bf 92 push r11 + 1ca: cf 92 push r12 + 1cc: df 92 push r13 + 1ce: ef 92 push r14 + 1d0: ff 92 push r15 + 1d2: 0f 93 push r16 + 1d4: 1f 93 push r17 + 1d6: cf 93 push r28 + 1d8: df 93 push r29 + 1da: cd b7 in r28, 0x3d ; 61 + 1dc: de b7 in r29, 0x3e ; 62 + 1de: d8 2e mov r13, r24 + 1e0: c9 2e mov r12, r25 + int length = snprintf(NULL, 0, "%d", number); + char str[length + 1]; + snprintf(str, length + 1, "%d", number); + lcd_write_string(str); +} + 1e2: ad b6 in r10, 0x3d ; 61 + 1e4: be b6 in r11, 0x3e ; 62 + lcd_write_command(0x1E); +} + +void lcd_write_int(int number) +{ + int length = snprintf(NULL, 0, "%d", number); + 1e6: 9f 93 push r25 + 1e8: 8f 93 push r24 + 1ea: 0f 2e mov r0, r31 + 1ec: f2 e1 ldi r31, 0x12 ; 18 + 1ee: ef 2e mov r14, r31 + 1f0: f1 e0 ldi r31, 0x01 ; 1 + 1f2: ff 2e mov r15, r31 + 1f4: f0 2d mov r31, r0 + 1f6: ff 92 push r15 + 1f8: ef 92 push r14 + 1fa: 1f 92 push r1 + 1fc: 1f 92 push r1 + 1fe: 1f 92 push r1 + 200: 1f 92 push r1 + 202: 82 d1 rcall .+772 ; 0x508 + char str[length + 1]; + 204: 01 96 adiw r24, 0x01 ; 1 + 206: 2d b7 in r18, 0x3d ; 61 + 208: 3e b7 in r19, 0x3e ; 62 + 20a: 28 5f subi r18, 0xF8 ; 248 + 20c: 3f 4f sbci r19, 0xFF ; 255 + 20e: 0f b6 in r0, 0x3f ; 63 + 210: f8 94 cli + 212: 3e bf out 0x3e, r19 ; 62 + 214: 0f be out 0x3f, r0 ; 63 + 216: 2d bf out 0x3d, r18 ; 61 + 218: 28 1b sub r18, r24 + 21a: 39 0b sbc r19, r25 + 21c: 0f b6 in r0, 0x3f ; 63 + 21e: f8 94 cli + 220: 3e bf out 0x3e, r19 ; 62 + 222: 0f be out 0x3f, r0 ; 63 + 224: 2d bf out 0x3d, r18 ; 61 + 226: 0d b7 in r16, 0x3d ; 61 + 228: 1e b7 in r17, 0x3e ; 62 + 22a: 0f 5f subi r16, 0xFF ; 255 + 22c: 1f 4f sbci r17, 0xFF ; 255 + snprintf(str, length + 1, "%d", number); + 22e: cf 92 push r12 + 230: df 92 push r13 + 232: ff 92 push r15 + 234: ef 92 push r14 + 236: 9f 93 push r25 + 238: 8f 93 push r24 + 23a: 1f 93 push r17 + 23c: 0f 93 push r16 + 23e: 64 d1 rcall .+712 ; 0x508 + lcd_write_string(str); + 240: 80 2f mov r24, r16 + 242: 91 2f mov r25, r17 + 244: b4 df rcall .-152 ; 0x1ae +} + 246: 8d b7 in r24, 0x3d ; 61 + 248: 9e b7 in r25, 0x3e ; 62 + 24a: 08 96 adiw r24, 0x08 ; 8 + 24c: 0f b6 in r0, 0x3f ; 63 + 24e: f8 94 cli + 250: 9e bf out 0x3e, r25 ; 62 + 252: 0f be out 0x3f, r0 ; 63 + 254: 8d bf out 0x3d, r24 ; 61 + 256: 0f b6 in r0, 0x3f ; 63 + 258: f8 94 cli + 25a: be be out 0x3e, r11 ; 62 + 25c: 0f be out 0x3f, r0 ; 63 + 25e: ad be out 0x3d, r10 ; 61 + 260: df 91 pop r29 + 262: cf 91 pop r28 + 264: 1f 91 pop r17 + 266: 0f 91 pop r16 + 268: ff 90 pop r15 + 26a: ef 90 pop r14 + 26c: df 90 pop r13 + 26e: cf 90 pop r12 + 270: bf 90 pop r11 + 272: af 90 pop r10 + 274: 08 95 ret + +00000276 : +static void snap_event_trigger(uint8_t rotation){ + ultrasonic_send_pulse(); +} + +static void ultrasoon_value_set_event(uint16_t value){ + if(initialising){ + 276: 20 91 00 01 lds r18, 0x0100 ; 0x800100 <__DATA_REGION_ORIGIN__> + 27a: 22 23 and r18, r18 + 27c: 51 f0 breq .+20 ; 0x292 + if(value > 0 && value < 20){ + 27e: 01 97 sbiw r24, 0x01 ; 1 + 280: 43 97 sbiw r24, 0x13 ; 19 + 282: 38 f4 brcc .+14 ; 0x292 + stepper_rotate_stop(); + 284: d1 d0 rcall .+418 ; 0x428 + initialising = false; + 286: 10 92 00 01 sts 0x0100, r1 ; 0x800100 <__DATA_REGION_ORIGIN__> + stepper_rotate_angle(512, CounterClockWise); + 28a: 61 e0 ldi r22, 0x01 ; 1 + 28c: 80 e0 ldi r24, 0x00 ; 0 + 28e: 92 e0 ldi r25, 0x02 ; 2 + 290: be c0 rjmp .+380 ; 0x40e + 292: 08 95 ret + +00000294 : +{ + ultrasonic_handle_interrupt(); +} + +static void snap_event_trigger(uint8_t rotation){ + ultrasonic_send_pulse(); + 294: 04 c1 rjmp .+520 ; 0x49e + 296: 08 95 ret + +00000298 <__vector_1>: +#include "stepper_driver.h" + +bool initialising = true; + +ISR(INT0_vect) +{ + 298: 1f 92 push r1 + 29a: 0f 92 push r0 + 29c: 0f b6 in r0, 0x3f ; 63 + 29e: 0f 92 push r0 + 2a0: 11 24 eor r1, r1 + 2a2: 0b b6 in r0, 0x3b ; 59 + 2a4: 0f 92 push r0 + 2a6: 2f 93 push r18 + 2a8: 3f 93 push r19 + 2aa: 4f 93 push r20 + 2ac: 5f 93 push r21 + 2ae: 6f 93 push r22 + 2b0: 7f 93 push r23 + 2b2: 8f 93 push r24 + 2b4: 9f 93 push r25 + 2b6: af 93 push r26 + 2b8: bf 93 push r27 + 2ba: ef 93 push r30 + 2bc: ff 93 push r31 + ultrasonic_handle_interrupt(); + 2be: fc d0 rcall .+504 ; 0x4b8 +} + 2c0: ff 91 pop r31 + 2c2: ef 91 pop r30 + 2c4: bf 91 pop r27 + 2c6: af 91 pop r26 + 2c8: 9f 91 pop r25 + 2ca: 8f 91 pop r24 + 2cc: 7f 91 pop r23 + 2ce: 6f 91 pop r22 + 2d0: 5f 91 pop r21 + 2d2: 4f 91 pop r20 + 2d4: 3f 91 pop r19 + 2d6: 2f 91 pop r18 + 2d8: 0f 90 pop r0 + 2da: 0b be out 0x3b, r0 ; 59 + 2dc: 0f 90 pop r0 + 2de: 0f be out 0x3f, r0 ; 63 + 2e0: 0f 90 pop r0 + 2e2: 1f 90 pop r1 + 2e4: 18 95 reti + +000002e6
: +} + +int main(void) +{ + /* Replace with your application code */ + ultrasonic_init(); + 2e6: cc d0 rcall .+408 ; 0x480 + init_4bits_mode(); + 2e8: 44 df rcall .-376 ; 0x172 + init_stepper_driver(); + 2ea: a0 d0 rcall .+320 ; 0x42c + set_snap_event(&snap_event_trigger); + 2ec: 8a e4 ldi r24, 0x4A ; 74 + 2ee: 91 e0 ldi r25, 0x01 ; 1 + 2f0: 27 d0 rcall .+78 ; 0x340 + set_value_trigger_event(&ultrasoon_value_set_event); + 2f2: 8b e3 ldi r24, 0x3B ; 59 + 2f4: 91 e0 ldi r25, 0x01 ; 1 + 2f6: fe d0 rcall .+508 ; 0x4f4 + 2f8: 87 ea ldi r24, 0xA7 ; 167 + #else + //round up by default + __ticks_dc = (uint32_t)(ceil(fabs(__tmp))); + #endif + + __builtin_avr_delay_cycles(__ticks_dc); + 2fa: 91 e6 ldi r25, 0x61 ; 97 + 2fc: 01 97 sbiw r24, 0x01 ; 1 + 2fe: f1 f7 brne .-4 ; 0x2fc + 300: 00 c0 rjmp .+0 ; 0x302 + 302: 00 00 nop + + _delay_ms(10); + + lcd_clear(); + 304: 2b df rcall .-426 ; 0x15c + + stepper_rotate_angle(600, ClockWise); + 306: 60 e0 ldi r22, 0x00 ; 0 + 308: 88 e5 ldi r24, 0x58 ; 88 + 30a: 92 e0 ldi r25, 0x02 ; 2 + while (1) + { + // TODO change to use the stepper motor + //ultrasonic_send_pulse(); + + lcd_clear(); + 30c: 80 d0 rcall .+256 ; 0x40e + 30e: 26 df rcall .-436 ; 0x15c + lcd_write_int(ultrasonic_get_timer_dist()); + 310: f6 d0 rcall .+492 ; 0x4fe + 312: 59 df rcall .-334 ; 0x1c6 + 314: 84 e6 ldi r24, 0x64 ; 100 + 316: 90 e0 ldi r25, 0x00 ; 0 + + + wait_ms(100); + 318: a4 d0 rcall .+328 ; 0x462 + 31a: f9 cf rjmp .-14 ; 0x30e + +0000031c : + +void stepper_rotate_full_rotation_CW(); +void stepper_rotate_full_rotation_CCW(); + +void set_stepper_state(uint8_t count){ + if(rotation == ClockWise){ + 31c: 90 91 1d 01 lds r25, 0x011D ; 0x80011d + 320: 91 11 cpse r25, r1 + 322: 07 c0 rjmp .+14 ; 0x332 + PORTE = CW[count]; + 324: e8 2f mov r30, r24 + 326: f0 e0 ldi r31, 0x00 ; 0 + 328: ef 5f subi r30, 0xFF ; 255 + 32a: fe 4f sbci r31, 0xFE ; 254 + 32c: 80 81 ld r24, Z + 32e: 83 b9 out 0x03, r24 ; 3 + 330: 08 95 ret + } else { + PORTE = CCW[count]; + 332: e8 2f mov r30, r24 + 334: f0 e0 ldi r31, 0x00 ; 0 + 336: e7 5f subi r30, 0xF7 ; 247 + 338: fe 4f sbci r31, 0xFE ; 254 + 33a: 80 81 ld r24, Z + 33c: 83 b9 out 0x03, r24 ; 3 + 33e: 08 95 ret + +00000340 : +} + +void (*snap_event)(uint8_t); + +void set_snap_event(void (*snap_event_p)(uint8_t)){ + snap_event = snap_event_p; + 340: 90 93 1f 01 sts 0x011F, r25 ; 0x80011f + 344: 80 93 1e 01 sts 0x011E, r24 ; 0x80011e + 348: 08 95 ret + +0000034a <__vector_9>: +} + +uint16_t steps_each_turn = 0; +uint16_t steps_to_do = 0; +uint8_t stepper_state = 0; +ISR( TIMER2_COMP_vect ){ + 34a: 1f 92 push r1 + 34c: 0f 92 push r0 + 34e: 0f b6 in r0, 0x3f ; 63 + 350: 0f 92 push r0 + 352: 11 24 eor r1, r1 + 354: 0b b6 in r0, 0x3b ; 59 + 356: 0f 92 push r0 + 358: 2f 93 push r18 + 35a: 3f 93 push r19 + 35c: 4f 93 push r20 + 35e: 5f 93 push r21 + 360: 6f 93 push r22 + 362: 7f 93 push r23 + 364: 8f 93 push r24 + 366: 9f 93 push r25 + 368: af 93 push r26 + 36a: bf 93 push r27 + 36c: ef 93 push r30 + 36e: ff 93 push r31 + TCNT2 = 0; + 370: 14 bc out 0x24, r1 ; 36 + + set_stepper_state(stepper_state); + 372: 80 91 16 01 lds r24, 0x0116 ; 0x800116 <__data_end> + 376: d2 df rcall .-92 ; 0x31c + + if(stepper_state < 7){ + 378: 80 91 16 01 lds r24, 0x0116 ; 0x800116 <__data_end> + 37c: 87 30 cpi r24, 0x07 ; 7 + 37e: 20 f4 brcc .+8 ; 0x388 <__vector_9+0x3e> + stepper_state++; + 380: 8f 5f subi r24, 0xFF ; 255 + 382: 80 93 16 01 sts 0x0116, r24 ; 0x800116 <__data_end> + 386: 30 c0 rjmp .+96 ; 0x3e8 <__vector_9+0x9e> + } else { + //OCR2 = ADCH; + stepper_state = 0; + 388: 10 92 16 01 sts 0x0116, r1 ; 0x800116 <__data_end> + + if(steps_to_do == 0){ + 38c: 80 91 17 01 lds r24, 0x0117 ; 0x800117 + 390: 90 91 18 01 lds r25, 0x0118 ; 0x800118 + 394: 00 97 sbiw r24, 0x00 ; 0 + 396: 99 f4 brne .+38 ; 0x3be <__vector_9+0x74> + + if(rotation == ClockWise){ + 398: 80 91 1d 01 lds r24, 0x011D ; 0x80011d + 39c: 81 11 cpse r24, r1 + 39e: 04 c0 rjmp .+8 ; 0x3a8 <__vector_9+0x5e> + rotation = CounterClockWise; + 3a0: 81 e0 ldi r24, 0x01 ; 1 + 3a2: 80 93 1d 01 sts 0x011D, r24 ; 0x80011d + 3a6: 02 c0 rjmp .+4 ; 0x3ac <__vector_9+0x62> + } else { + rotation = ClockWise; + 3a8: 10 92 1d 01 sts 0x011D, r1 ; 0x80011d + } + + steps_to_do = steps_each_turn; + 3ac: 80 91 19 01 lds r24, 0x0119 ; 0x800119 + 3b0: 90 91 1a 01 lds r25, 0x011A ; 0x80011a + 3b4: 90 93 18 01 sts 0x0118, r25 ; 0x800118 + 3b8: 80 93 17 01 sts 0x0117, r24 ; 0x800117 + 3bc: 15 c0 rjmp .+42 ; 0x3e8 <__vector_9+0x9e> + + } else { + + if(steps_to_do % 32 == 0){ + 3be: 9c 01 movw r18, r24 + 3c0: 2f 71 andi r18, 0x1F ; 31 + 3c2: 33 27 eor r19, r19 + 3c4: 23 2b or r18, r19 + 3c6: 39 f4 brne .+14 ; 0x3d6 <__vector_9+0x8c> + + if(snap_event != NULL) + 3c8: e0 91 1e 01 lds r30, 0x011E ; 0x80011e + 3cc: f0 91 1f 01 lds r31, 0x011F ; 0x80011f + 3d0: 30 97 sbiw r30, 0x00 ; 0 + 3d2: 09 f0 breq .+2 ; 0x3d6 <__vector_9+0x8c> + snap_event(steps_to_do); + 3d4: 09 95 icall + } + + steps_to_do--; + 3d6: 80 91 17 01 lds r24, 0x0117 ; 0x800117 + 3da: 90 91 18 01 lds r25, 0x0118 ; 0x800118 + 3de: 01 97 sbiw r24, 0x01 ; 1 + 3e0: 90 93 18 01 sts 0x0118, r25 ; 0x800118 + 3e4: 80 93 17 01 sts 0x0117, r24 ; 0x800117 + } + } +} + 3e8: ff 91 pop r31 + 3ea: ef 91 pop r30 + 3ec: bf 91 pop r27 + 3ee: af 91 pop r26 + 3f0: 9f 91 pop r25 + 3f2: 8f 91 pop r24 + 3f4: 7f 91 pop r23 + 3f6: 6f 91 pop r22 + 3f8: 5f 91 pop r21 + 3fa: 4f 91 pop r20 + 3fc: 3f 91 pop r19 + 3fe: 2f 91 pop r18 + 400: 0f 90 pop r0 + 402: 0b be out 0x3b, r0 ; 59 + 404: 0f 90 pop r0 + 406: 0f be out 0x3f, r0 ; 63 + 408: 0f 90 pop r0 + 40a: 1f 90 pop r1 + 40c: 18 95 reti + +0000040e : + +void stepper_rotate_angle(uint16_t steps, enum rotation_wise rot){ + steps_to_do = steps; + 40e: 90 93 18 01 sts 0x0118, r25 ; 0x800118 + 412: 80 93 17 01 sts 0x0117, r24 ; 0x800117 + steps_each_turn = steps; + 416: 90 93 1a 01 sts 0x011A, r25 ; 0x80011a + 41a: 80 93 19 01 sts 0x0119, r24 ; 0x800119 + rotation = rot; + 41e: 60 93 1d 01 sts 0x011D, r22 ; 0x80011d + TCCR2 = 0b00001100; + 422: 8c e0 ldi r24, 0x0C ; 12 + 424: 85 bd out 0x25, r24 ; 37 + 426: 08 95 ret + +00000428 : +} + +void stepper_rotate_stop(){ + TCCR2 = 0b00000000; + 428: 15 bc out 0x25, r1 ; 37 + 42a: 08 95 ret + +0000042c : +} + +void init_stepper_driver(){ + DDRE = 0xff; + 42c: 8f ef ldi r24, 0xFF ; 255 + 42e: 82 b9 out 0x02, r24 ; 2 + DDRG = 0xff; + 430: 80 93 64 00 sts 0x0064, r24 ; 0x800064 <__TEXT_REGION_LENGTH__+0x7e0064> + PORTG = 0x01; + 434: 81 e0 ldi r24, 0x01 ; 1 + 436: 80 93 65 00 sts 0x0065, r24 ; 0x800065 <__TEXT_REGION_LENGTH__+0x7e0065> + PORTE = 0x00; + 43a: 13 b8 out 0x03, r1 ; 3 + OCR2 = 150; + 43c: 86 e9 ldi r24, 0x96 ; 150 + 43e: 83 bd out 0x23, r24 ; 35 + TIMSK = BIT(7); + 440: 80 e8 ldi r24, 0x80 ; 128 + 442: 87 bf out 0x37, r24 ; 55 + sei(); + 444: 78 94 sei + 446: 08 95 ret + +00000448 : + +void (*value_set_event)(uint16_t); + +void wait_us(unsigned int us) +{ + for(int i = 0; i < us; i++) + 448: 20 e0 ldi r18, 0x00 ; 0 + 44a: 30 e0 ldi r19, 0x00 ; 0 + 44c: 06 c0 rjmp .+12 ; 0x45a + #else + //round up by default + __ticks_dc = (uint32_t)(ceil(fabs(__tmp))); + #endif + + __builtin_avr_delay_cycles(__ticks_dc); + 44e: 43 e0 ldi r20, 0x03 ; 3 + 450: 4a 95 dec r20 + 452: f1 f7 brne .-4 ; 0x450 + 454: 00 00 nop + 456: 2f 5f subi r18, 0xFF ; 255 + 458: 3f 4f sbci r19, 0xFF ; 255 + 45a: 28 17 cp r18, r24 + 45c: 39 07 cpc r19, r25 + 45e: b8 f3 brcs .-18 ; 0x44e + { + _delay_us(1); + } +} + 460: 08 95 ret + +00000462 : + +void wait_ms(unsigned int ms) +{ + + for(int i = 0; i < ms; i++) + 462: 20 e0 ldi r18, 0x00 ; 0 + 464: 30 e0 ldi r19, 0x00 ; 0 + 466: 08 c0 rjmp .+16 ; 0x478 + #else + //round up by default + __ticks_dc = (uint32_t)(ceil(fabs(__tmp))); + #endif + + __builtin_avr_delay_cycles(__ticks_dc); + 468: e3 ec ldi r30, 0xC3 ; 195 + 46a: f9 e0 ldi r31, 0x09 ; 9 + 46c: 31 97 sbiw r30, 0x01 ; 1 + 46e: f1 f7 brne .-4 ; 0x46c + 470: 00 c0 rjmp .+0 ; 0x472 + 472: 00 00 nop + 474: 2f 5f subi r18, 0xFF ; 255 + 476: 3f 4f sbci r19, 0xFF ; 255 + 478: 28 17 cp r18, r24 + 47a: 39 07 cpc r19, r25 + 47c: a8 f3 brcs .-22 ; 0x468 + { + _delay_ms(1); + } +} + 47e: 08 95 ret + +00000480 : +void ultrasonic_init() +{ + DDRG = 0xFF; // port g all output. pin 0 is trig, the rest is for debug + 480: 8f ef ldi r24, 0xFF ; 255 + 482: 80 93 64 00 sts 0x0064, r24 ; 0x800064 <__TEXT_REGION_LENGTH__+0x7e0064> + DDRD = 0x00; // port D pin 0 on input. 0 is echo and also interrupt + 486: 11 ba out 0x11, r1 ; 17 + + EICRA = 0x03; // interrupt PORTD on pin 0, rising edge + 488: 83 e0 ldi r24, 0x03 ; 3 + 48a: 80 93 6a 00 sts 0x006A, r24 ; 0x80006a <__TEXT_REGION_LENGTH__+0x7e006a> + + EIMSK |= 0x01; // enable interrupt on pin 0 (INT0) + 48e: 89 b7 in r24, 0x39 ; 57 + 490: 81 60 ori r24, 0x01 ; 1 + 492: 89 bf out 0x39, r24 ; 57 + + TCCR1A = 0b00000000; // initialize timer1, prescaler=256 + 494: 1f bc out 0x2f, r1 ; 47 + TCCR1B = 0b00001100; // CTC compare A, RUN + 496: 8c e0 ldi r24, 0x0C ; 12 + 498: 8e bd out 0x2e, r24 ; 46 + + sei(); // turn on interrupt system + 49a: 78 94 sei + 49c: 08 95 ret + +0000049e : +} + +void ultrasonic_send_pulse() +{ + 49e: cf 93 push r28 + 4a0: df 93 push r29 + PORTG = 0x00; // 10 us low pulse + 4a2: c5 e6 ldi r28, 0x65 ; 101 + 4a4: d0 e0 ldi r29, 0x00 ; 0 + 4a6: 18 82 st Y, r1 + wait_us(10); + 4a8: 8a e0 ldi r24, 0x0A ; 10 + 4aa: 90 e0 ldi r25, 0x00 ; 0 + 4ac: cd df rcall .-102 ; 0x448 + PORTG = 0x01; + 4ae: 81 e0 ldi r24, 0x01 ; 1 + 4b0: 88 83 st Y, r24 +} + 4b2: df 91 pop r29 + 4b4: cf 91 pop r28 + 4b6: 08 95 ret + +000004b8 : + +void ultrasonic_handle_interrupt() +{ + // if the interrupt was generated on a rising edge (start sending echo) + if (int_stat == INTERRUPT_RISING) + 4b8: 80 91 11 01 lds r24, 0x0111 ; 0x800111 + 4bc: 81 30 cpi r24, 0x01 ; 1 + 4be: 41 f4 brne .+16 ; 0x4d0 + { + // set interrupt pin 0 on PORTD to falling edge + EICRA = 0x02; + 4c0: 82 e0 ldi r24, 0x02 ; 2 + 4c2: 80 93 6a 00 sts 0x006A, r24 ; 0x80006a <__TEXT_REGION_LENGTH__+0x7e006a> + + // reset the time in timer1 + TCNT1 = 0x00; + 4c6: 1d bc out 0x2d, r1 ; 45 + 4c8: 1c bc out 0x2c, r1 ; 44 + + // set interrupt status + int_stat = INTERRUPT_FALLING; + 4ca: 10 92 11 01 sts 0x0111, r1 ; 0x800111 + 4ce: 08 95 ret + } else + // else if it was generated on a falling edge (end sending echo) + { + // set interrupt pin 0 on PORTD to rising edge + EICRA = 0x03; + 4d0: 83 e0 ldi r24, 0x03 ; 3 + 4d2: 80 93 6a 00 sts 0x006A, r24 ; 0x80006a <__TEXT_REGION_LENGTH__+0x7e006a> + + // read timer1 into time_dist + timer_dist = TCNT1; + 4d6: 8c b5 in r24, 0x2c ; 44 + 4d8: 9d b5 in r25, 0x2d ; 45 + 4da: 90 93 1c 01 sts 0x011C, r25 ; 0x80011c + 4de: 80 93 1b 01 sts 0x011B, r24 ; 0x80011b + + //EVENT + value_set_event(timer_dist); + 4e2: e0 91 20 01 lds r30, 0x0120 ; 0x800120 + 4e6: f0 91 21 01 lds r31, 0x0121 ; 0x800121 + 4ea: 09 95 icall + + // set interrupt status + int_stat = INTERRUPT_RISING; + 4ec: 81 e0 ldi r24, 0x01 ; 1 + 4ee: 80 93 11 01 sts 0x0111, r24 ; 0x800111 + 4f2: 08 95 ret + +000004f4 : + } +} + +void set_value_trigger_event(void (*value_set_event_p)(uint16_t)){ + // event that is triggered when a value is set. + value_set_event = value_set_event_p; + 4f4: 90 93 21 01 sts 0x0121, r25 ; 0x800121 + 4f8: 80 93 20 01 sts 0x0120, r24 ; 0x800120 + 4fc: 08 95 ret + +000004fe : +} + +uint16_t ultrasonic_get_timer_dist() +{ + return timer_dist; +} + 4fe: 80 91 1b 01 lds r24, 0x011B ; 0x80011b + 502: 90 91 1c 01 lds r25, 0x011C ; 0x80011c + 506: 08 95 ret + +00000508 : + 508: 0f 93 push r16 + 50a: 1f 93 push r17 + 50c: cf 93 push r28 + 50e: df 93 push r29 + 510: cd b7 in r28, 0x3d ; 61 + 512: de b7 in r29, 0x3e ; 62 + 514: 2e 97 sbiw r28, 0x0e ; 14 + 516: 0f b6 in r0, 0x3f ; 63 + 518: f8 94 cli + 51a: de bf out 0x3e, r29 ; 62 + 51c: 0f be out 0x3f, r0 ; 63 + 51e: cd bf out 0x3d, r28 ; 61 + 520: 0d 89 ldd r16, Y+21 ; 0x15 + 522: 1e 89 ldd r17, Y+22 ; 0x16 + 524: 8f 89 ldd r24, Y+23 ; 0x17 + 526: 98 8d ldd r25, Y+24 ; 0x18 + 528: 26 e0 ldi r18, 0x06 ; 6 + 52a: 2c 83 std Y+4, r18 ; 0x04 + 52c: 1a 83 std Y+2, r17 ; 0x02 + 52e: 09 83 std Y+1, r16 ; 0x01 + 530: 97 ff sbrs r25, 7 + 532: 02 c0 rjmp .+4 ; 0x538 + 534: 80 e0 ldi r24, 0x00 ; 0 + 536: 90 e8 ldi r25, 0x80 ; 128 + 538: 01 97 sbiw r24, 0x01 ; 1 + 53a: 9e 83 std Y+6, r25 ; 0x06 + 53c: 8d 83 std Y+5, r24 ; 0x05 + 53e: ae 01 movw r20, r28 + 540: 45 5e subi r20, 0xE5 ; 229 + 542: 5f 4f sbci r21, 0xFF ; 255 + 544: 69 8d ldd r22, Y+25 ; 0x19 + 546: 7a 8d ldd r23, Y+26 ; 0x1a + 548: ce 01 movw r24, r28 + 54a: 01 96 adiw r24, 0x01 ; 1 + 54c: 19 d0 rcall .+50 ; 0x580 + 54e: 4d 81 ldd r20, Y+5 ; 0x05 + 550: 5e 81 ldd r21, Y+6 ; 0x06 + 552: 57 fd sbrc r21, 7 + 554: 0a c0 rjmp .+20 ; 0x56a + 556: 2f 81 ldd r18, Y+7 ; 0x07 + 558: 38 85 ldd r19, Y+8 ; 0x08 + 55a: 42 17 cp r20, r18 + 55c: 53 07 cpc r21, r19 + 55e: 0c f4 brge .+2 ; 0x562 + 560: 9a 01 movw r18, r20 + 562: f8 01 movw r30, r16 + 564: e2 0f add r30, r18 + 566: f3 1f adc r31, r19 + 568: 10 82 st Z, r1 + 56a: 2e 96 adiw r28, 0x0e ; 14 + 56c: 0f b6 in r0, 0x3f ; 63 + 56e: f8 94 cli + 570: de bf out 0x3e, r29 ; 62 + 572: 0f be out 0x3f, r0 ; 63 + 574: cd bf out 0x3d, r28 ; 61 + 576: df 91 pop r29 + 578: cf 91 pop r28 + 57a: 1f 91 pop r17 + 57c: 0f 91 pop r16 + 57e: 08 95 ret + +00000580 : + 580: 2f 92 push r2 + 582: 3f 92 push r3 + 584: 4f 92 push r4 + 586: 5f 92 push r5 + 588: 6f 92 push r6 + 58a: 7f 92 push r7 + 58c: 8f 92 push r8 + 58e: 9f 92 push r9 + 590: af 92 push r10 + 592: bf 92 push r11 + 594: cf 92 push r12 + 596: df 92 push r13 + 598: ef 92 push r14 + 59a: ff 92 push r15 + 59c: 0f 93 push r16 + 59e: 1f 93 push r17 + 5a0: cf 93 push r28 + 5a2: df 93 push r29 + 5a4: cd b7 in r28, 0x3d ; 61 + 5a6: de b7 in r29, 0x3e ; 62 + 5a8: 2b 97 sbiw r28, 0x0b ; 11 + 5aa: 0f b6 in r0, 0x3f ; 63 + 5ac: f8 94 cli + 5ae: de bf out 0x3e, r29 ; 62 + 5b0: 0f be out 0x3f, r0 ; 63 + 5b2: cd bf out 0x3d, r28 ; 61 + 5b4: 6c 01 movw r12, r24 + 5b6: 7b 01 movw r14, r22 + 5b8: 8a 01 movw r16, r20 + 5ba: fc 01 movw r30, r24 + 5bc: 17 82 std Z+7, r1 ; 0x07 + 5be: 16 82 std Z+6, r1 ; 0x06 + 5c0: 83 81 ldd r24, Z+3 ; 0x03 + 5c2: 81 ff sbrs r24, 1 + 5c4: bf c1 rjmp .+894 ; 0x944 + 5c6: ce 01 movw r24, r28 + 5c8: 01 96 adiw r24, 0x01 ; 1 + 5ca: 3c 01 movw r6, r24 + 5cc: f6 01 movw r30, r12 + 5ce: 93 81 ldd r25, Z+3 ; 0x03 + 5d0: f7 01 movw r30, r14 + 5d2: 93 fd sbrc r25, 3 + 5d4: 85 91 lpm r24, Z+ + 5d6: 93 ff sbrs r25, 3 + 5d8: 81 91 ld r24, Z+ + 5da: 7f 01 movw r14, r30 + 5dc: 88 23 and r24, r24 + 5de: 09 f4 brne .+2 ; 0x5e2 + 5e0: ad c1 rjmp .+858 ; 0x93c + 5e2: 85 32 cpi r24, 0x25 ; 37 + 5e4: 39 f4 brne .+14 ; 0x5f4 + 5e6: 93 fd sbrc r25, 3 + 5e8: 85 91 lpm r24, Z+ + 5ea: 93 ff sbrs r25, 3 + 5ec: 81 91 ld r24, Z+ + 5ee: 7f 01 movw r14, r30 + 5f0: 85 32 cpi r24, 0x25 ; 37 + 5f2: 21 f4 brne .+8 ; 0x5fc + 5f4: b6 01 movw r22, r12 + 5f6: 90 e0 ldi r25, 0x00 ; 0 + 5f8: d6 d1 rcall .+940 ; 0x9a6 + 5fa: e8 cf rjmp .-48 ; 0x5cc + 5fc: 91 2c mov r9, r1 + 5fe: 21 2c mov r2, r1 + 600: 31 2c mov r3, r1 + 602: ff e1 ldi r31, 0x1F ; 31 + 604: f3 15 cp r31, r3 + 606: d8 f0 brcs .+54 ; 0x63e + 608: 8b 32 cpi r24, 0x2B ; 43 + 60a: 79 f0 breq .+30 ; 0x62a + 60c: 38 f4 brcc .+14 ; 0x61c + 60e: 80 32 cpi r24, 0x20 ; 32 + 610: 79 f0 breq .+30 ; 0x630 + 612: 83 32 cpi r24, 0x23 ; 35 + 614: a1 f4 brne .+40 ; 0x63e + 616: 23 2d mov r18, r3 + 618: 20 61 ori r18, 0x10 ; 16 + 61a: 1d c0 rjmp .+58 ; 0x656 + 61c: 8d 32 cpi r24, 0x2D ; 45 + 61e: 61 f0 breq .+24 ; 0x638 + 620: 80 33 cpi r24, 0x30 ; 48 + 622: 69 f4 brne .+26 ; 0x63e + 624: 23 2d mov r18, r3 + 626: 21 60 ori r18, 0x01 ; 1 + 628: 16 c0 rjmp .+44 ; 0x656 + 62a: 83 2d mov r24, r3 + 62c: 82 60 ori r24, 0x02 ; 2 + 62e: 38 2e mov r3, r24 + 630: e3 2d mov r30, r3 + 632: e4 60 ori r30, 0x04 ; 4 + 634: 3e 2e mov r3, r30 + 636: 2a c0 rjmp .+84 ; 0x68c + 638: f3 2d mov r31, r3 + 63a: f8 60 ori r31, 0x08 ; 8 + 63c: 1d c0 rjmp .+58 ; 0x678 + 63e: 37 fc sbrc r3, 7 + 640: 2d c0 rjmp .+90 ; 0x69c + 642: 20 ed ldi r18, 0xD0 ; 208 + 644: 28 0f add r18, r24 + 646: 2a 30 cpi r18, 0x0A ; 10 + 648: 40 f0 brcs .+16 ; 0x65a + 64a: 8e 32 cpi r24, 0x2E ; 46 + 64c: b9 f4 brne .+46 ; 0x67c + 64e: 36 fc sbrc r3, 6 + 650: 75 c1 rjmp .+746 ; 0x93c + 652: 23 2d mov r18, r3 + 654: 20 64 ori r18, 0x40 ; 64 + 656: 32 2e mov r3, r18 + 658: 19 c0 rjmp .+50 ; 0x68c + 65a: 36 fe sbrs r3, 6 + 65c: 06 c0 rjmp .+12 ; 0x66a + 65e: 8a e0 ldi r24, 0x0A ; 10 + 660: 98 9e mul r9, r24 + 662: 20 0d add r18, r0 + 664: 11 24 eor r1, r1 + 666: 92 2e mov r9, r18 + 668: 11 c0 rjmp .+34 ; 0x68c + 66a: ea e0 ldi r30, 0x0A ; 10 + 66c: 2e 9e mul r2, r30 + 66e: 20 0d add r18, r0 + 670: 11 24 eor r1, r1 + 672: 22 2e mov r2, r18 + 674: f3 2d mov r31, r3 + 676: f0 62 ori r31, 0x20 ; 32 + 678: 3f 2e mov r3, r31 + 67a: 08 c0 rjmp .+16 ; 0x68c + 67c: 8c 36 cpi r24, 0x6C ; 108 + 67e: 21 f4 brne .+8 ; 0x688 + 680: 83 2d mov r24, r3 + 682: 80 68 ori r24, 0x80 ; 128 + 684: 38 2e mov r3, r24 + 686: 02 c0 rjmp .+4 ; 0x68c + 688: 88 36 cpi r24, 0x68 ; 104 + 68a: 41 f4 brne .+16 ; 0x69c + 68c: f7 01 movw r30, r14 + 68e: 93 fd sbrc r25, 3 + 690: 85 91 lpm r24, Z+ + 692: 93 ff sbrs r25, 3 + 694: 81 91 ld r24, Z+ + 696: 7f 01 movw r14, r30 + 698: 81 11 cpse r24, r1 + 69a: b3 cf rjmp .-154 ; 0x602 + 69c: 98 2f mov r25, r24 + 69e: 9f 7d andi r25, 0xDF ; 223 + 6a0: 95 54 subi r25, 0x45 ; 69 + 6a2: 93 30 cpi r25, 0x03 ; 3 + 6a4: 28 f4 brcc .+10 ; 0x6b0 + 6a6: 0c 5f subi r16, 0xFC ; 252 + 6a8: 1f 4f sbci r17, 0xFF ; 255 + 6aa: 9f e3 ldi r25, 0x3F ; 63 + 6ac: 99 83 std Y+1, r25 ; 0x01 + 6ae: 0d c0 rjmp .+26 ; 0x6ca + 6b0: 83 36 cpi r24, 0x63 ; 99 + 6b2: 31 f0 breq .+12 ; 0x6c0 + 6b4: 83 37 cpi r24, 0x73 ; 115 + 6b6: 71 f0 breq .+28 ; 0x6d4 + 6b8: 83 35 cpi r24, 0x53 ; 83 + 6ba: 09 f0 breq .+2 ; 0x6be + 6bc: 55 c0 rjmp .+170 ; 0x768 + 6be: 20 c0 rjmp .+64 ; 0x700 + 6c0: f8 01 movw r30, r16 + 6c2: 80 81 ld r24, Z + 6c4: 89 83 std Y+1, r24 ; 0x01 + 6c6: 0e 5f subi r16, 0xFE ; 254 + 6c8: 1f 4f sbci r17, 0xFF ; 255 + 6ca: 88 24 eor r8, r8 + 6cc: 83 94 inc r8 + 6ce: 91 2c mov r9, r1 + 6d0: 53 01 movw r10, r6 + 6d2: 12 c0 rjmp .+36 ; 0x6f8 + 6d4: 28 01 movw r4, r16 + 6d6: f2 e0 ldi r31, 0x02 ; 2 + 6d8: 4f 0e add r4, r31 + 6da: 51 1c adc r5, r1 + 6dc: f8 01 movw r30, r16 + 6de: a0 80 ld r10, Z + 6e0: b1 80 ldd r11, Z+1 ; 0x01 + 6e2: 36 fe sbrs r3, 6 + 6e4: 03 c0 rjmp .+6 ; 0x6ec + 6e6: 69 2d mov r22, r9 + 6e8: 70 e0 ldi r23, 0x00 ; 0 + 6ea: 02 c0 rjmp .+4 ; 0x6f0 + 6ec: 6f ef ldi r22, 0xFF ; 255 + 6ee: 7f ef ldi r23, 0xFF ; 255 + 6f0: c5 01 movw r24, r10 + 6f2: 4e d1 rcall .+668 ; 0x990 + 6f4: 4c 01 movw r8, r24 + 6f6: 82 01 movw r16, r4 + 6f8: f3 2d mov r31, r3 + 6fa: ff 77 andi r31, 0x7F ; 127 + 6fc: 3f 2e mov r3, r31 + 6fe: 15 c0 rjmp .+42 ; 0x72a + 700: 28 01 movw r4, r16 + 702: 22 e0 ldi r18, 0x02 ; 2 + 704: 42 0e add r4, r18 + 706: 51 1c adc r5, r1 + 708: f8 01 movw r30, r16 + 70a: a0 80 ld r10, Z + 70c: b1 80 ldd r11, Z+1 ; 0x01 + 70e: 36 fe sbrs r3, 6 + 710: 03 c0 rjmp .+6 ; 0x718 + 712: 69 2d mov r22, r9 + 714: 70 e0 ldi r23, 0x00 ; 0 + 716: 02 c0 rjmp .+4 ; 0x71c + 718: 6f ef ldi r22, 0xFF ; 255 + 71a: 7f ef ldi r23, 0xFF ; 255 + 71c: c5 01 movw r24, r10 + 71e: 2d d1 rcall .+602 ; 0x97a + 720: 4c 01 movw r8, r24 + 722: f3 2d mov r31, r3 + 724: f0 68 ori r31, 0x80 ; 128 + 726: 3f 2e mov r3, r31 + 728: 82 01 movw r16, r4 + 72a: 33 fc sbrc r3, 3 + 72c: 19 c0 rjmp .+50 ; 0x760 + 72e: 82 2d mov r24, r2 + 730: 90 e0 ldi r25, 0x00 ; 0 + 732: 88 16 cp r8, r24 + 734: 99 06 cpc r9, r25 + 736: a0 f4 brcc .+40 ; 0x760 + 738: b6 01 movw r22, r12 + 73a: 80 e2 ldi r24, 0x20 ; 32 + 73c: 90 e0 ldi r25, 0x00 ; 0 + 73e: 33 d1 rcall .+614 ; 0x9a6 + 740: 2a 94 dec r2 + 742: f5 cf rjmp .-22 ; 0x72e + 744: f5 01 movw r30, r10 + 746: 37 fc sbrc r3, 7 + 748: 85 91 lpm r24, Z+ + 74a: 37 fe sbrs r3, 7 + 74c: 81 91 ld r24, Z+ + 74e: 5f 01 movw r10, r30 + 750: b6 01 movw r22, r12 + 752: 90 e0 ldi r25, 0x00 ; 0 + 754: 28 d1 rcall .+592 ; 0x9a6 + 756: 21 10 cpse r2, r1 + 758: 2a 94 dec r2 + 75a: 21 e0 ldi r18, 0x01 ; 1 + 75c: 82 1a sub r8, r18 + 75e: 91 08 sbc r9, r1 + 760: 81 14 cp r8, r1 + 762: 91 04 cpc r9, r1 + 764: 79 f7 brne .-34 ; 0x744 + 766: e1 c0 rjmp .+450 ; 0x92a + 768: 84 36 cpi r24, 0x64 ; 100 + 76a: 11 f0 breq .+4 ; 0x770 + 76c: 89 36 cpi r24, 0x69 ; 105 + 76e: 39 f5 brne .+78 ; 0x7be + 770: f8 01 movw r30, r16 + 772: 37 fe sbrs r3, 7 + 774: 07 c0 rjmp .+14 ; 0x784 + 776: 60 81 ld r22, Z + 778: 71 81 ldd r23, Z+1 ; 0x01 + 77a: 82 81 ldd r24, Z+2 ; 0x02 + 77c: 93 81 ldd r25, Z+3 ; 0x03 + 77e: 0c 5f subi r16, 0xFC ; 252 + 780: 1f 4f sbci r17, 0xFF ; 255 + 782: 08 c0 rjmp .+16 ; 0x794 + 784: 60 81 ld r22, Z + 786: 71 81 ldd r23, Z+1 ; 0x01 + 788: 07 2e mov r0, r23 + 78a: 00 0c add r0, r0 + 78c: 88 0b sbc r24, r24 + 78e: 99 0b sbc r25, r25 + 790: 0e 5f subi r16, 0xFE ; 254 + 792: 1f 4f sbci r17, 0xFF ; 255 + 794: f3 2d mov r31, r3 + 796: ff 76 andi r31, 0x6F ; 111 + 798: 3f 2e mov r3, r31 + 79a: 97 ff sbrs r25, 7 + 79c: 09 c0 rjmp .+18 ; 0x7b0 + 79e: 90 95 com r25 + 7a0: 80 95 com r24 + 7a2: 70 95 com r23 + 7a4: 61 95 neg r22 + 7a6: 7f 4f sbci r23, 0xFF ; 255 + 7a8: 8f 4f sbci r24, 0xFF ; 255 + 7aa: 9f 4f sbci r25, 0xFF ; 255 + 7ac: f0 68 ori r31, 0x80 ; 128 + 7ae: 3f 2e mov r3, r31 + 7b0: 2a e0 ldi r18, 0x0A ; 10 + 7b2: 30 e0 ldi r19, 0x00 ; 0 + 7b4: a3 01 movw r20, r6 + 7b6: 33 d1 rcall .+614 ; 0xa1e <__ultoa_invert> + 7b8: 88 2e mov r8, r24 + 7ba: 86 18 sub r8, r6 + 7bc: 44 c0 rjmp .+136 ; 0x846 + 7be: 85 37 cpi r24, 0x75 ; 117 + 7c0: 31 f4 brne .+12 ; 0x7ce + 7c2: 23 2d mov r18, r3 + 7c4: 2f 7e andi r18, 0xEF ; 239 + 7c6: b2 2e mov r11, r18 + 7c8: 2a e0 ldi r18, 0x0A ; 10 + 7ca: 30 e0 ldi r19, 0x00 ; 0 + 7cc: 25 c0 rjmp .+74 ; 0x818 + 7ce: 93 2d mov r25, r3 + 7d0: 99 7f andi r25, 0xF9 ; 249 + 7d2: b9 2e mov r11, r25 + 7d4: 8f 36 cpi r24, 0x6F ; 111 + 7d6: c1 f0 breq .+48 ; 0x808 + 7d8: 18 f4 brcc .+6 ; 0x7e0 + 7da: 88 35 cpi r24, 0x58 ; 88 + 7dc: 79 f0 breq .+30 ; 0x7fc + 7de: ae c0 rjmp .+348 ; 0x93c + 7e0: 80 37 cpi r24, 0x70 ; 112 + 7e2: 19 f0 breq .+6 ; 0x7ea + 7e4: 88 37 cpi r24, 0x78 ; 120 + 7e6: 21 f0 breq .+8 ; 0x7f0 + 7e8: a9 c0 rjmp .+338 ; 0x93c + 7ea: e9 2f mov r30, r25 + 7ec: e0 61 ori r30, 0x10 ; 16 + 7ee: be 2e mov r11, r30 + 7f0: b4 fe sbrs r11, 4 + 7f2: 0d c0 rjmp .+26 ; 0x80e + 7f4: fb 2d mov r31, r11 + 7f6: f4 60 ori r31, 0x04 ; 4 + 7f8: bf 2e mov r11, r31 + 7fa: 09 c0 rjmp .+18 ; 0x80e + 7fc: 34 fe sbrs r3, 4 + 7fe: 0a c0 rjmp .+20 ; 0x814 + 800: 29 2f mov r18, r25 + 802: 26 60 ori r18, 0x06 ; 6 + 804: b2 2e mov r11, r18 + 806: 06 c0 rjmp .+12 ; 0x814 + 808: 28 e0 ldi r18, 0x08 ; 8 + 80a: 30 e0 ldi r19, 0x00 ; 0 + 80c: 05 c0 rjmp .+10 ; 0x818 + 80e: 20 e1 ldi r18, 0x10 ; 16 + 810: 30 e0 ldi r19, 0x00 ; 0 + 812: 02 c0 rjmp .+4 ; 0x818 + 814: 20 e1 ldi r18, 0x10 ; 16 + 816: 32 e0 ldi r19, 0x02 ; 2 + 818: f8 01 movw r30, r16 + 81a: b7 fe sbrs r11, 7 + 81c: 07 c0 rjmp .+14 ; 0x82c + 81e: 60 81 ld r22, Z + 820: 71 81 ldd r23, Z+1 ; 0x01 + 822: 82 81 ldd r24, Z+2 ; 0x02 + 824: 93 81 ldd r25, Z+3 ; 0x03 + 826: 0c 5f subi r16, 0xFC ; 252 + 828: 1f 4f sbci r17, 0xFF ; 255 + 82a: 06 c0 rjmp .+12 ; 0x838 + 82c: 60 81 ld r22, Z + 82e: 71 81 ldd r23, Z+1 ; 0x01 + 830: 80 e0 ldi r24, 0x00 ; 0 + 832: 90 e0 ldi r25, 0x00 ; 0 + 834: 0e 5f subi r16, 0xFE ; 254 + 836: 1f 4f sbci r17, 0xFF ; 255 + 838: a3 01 movw r20, r6 + 83a: f1 d0 rcall .+482 ; 0xa1e <__ultoa_invert> + 83c: 88 2e mov r8, r24 + 83e: 86 18 sub r8, r6 + 840: fb 2d mov r31, r11 + 842: ff 77 andi r31, 0x7F ; 127 + 844: 3f 2e mov r3, r31 + 846: 36 fe sbrs r3, 6 + 848: 0d c0 rjmp .+26 ; 0x864 + 84a: 23 2d mov r18, r3 + 84c: 2e 7f andi r18, 0xFE ; 254 + 84e: a2 2e mov r10, r18 + 850: 89 14 cp r8, r9 + 852: 58 f4 brcc .+22 ; 0x86a + 854: 34 fe sbrs r3, 4 + 856: 0b c0 rjmp .+22 ; 0x86e + 858: 32 fc sbrc r3, 2 + 85a: 09 c0 rjmp .+18 ; 0x86e + 85c: 83 2d mov r24, r3 + 85e: 8e 7e andi r24, 0xEE ; 238 + 860: a8 2e mov r10, r24 + 862: 05 c0 rjmp .+10 ; 0x86e + 864: b8 2c mov r11, r8 + 866: a3 2c mov r10, r3 + 868: 03 c0 rjmp .+6 ; 0x870 + 86a: b8 2c mov r11, r8 + 86c: 01 c0 rjmp .+2 ; 0x870 + 86e: b9 2c mov r11, r9 + 870: a4 fe sbrs r10, 4 + 872: 0f c0 rjmp .+30 ; 0x892 + 874: fe 01 movw r30, r28 + 876: e8 0d add r30, r8 + 878: f1 1d adc r31, r1 + 87a: 80 81 ld r24, Z + 87c: 80 33 cpi r24, 0x30 ; 48 + 87e: 21 f4 brne .+8 ; 0x888 + 880: 9a 2d mov r25, r10 + 882: 99 7e andi r25, 0xE9 ; 233 + 884: a9 2e mov r10, r25 + 886: 09 c0 rjmp .+18 ; 0x89a + 888: a2 fe sbrs r10, 2 + 88a: 06 c0 rjmp .+12 ; 0x898 + 88c: b3 94 inc r11 + 88e: b3 94 inc r11 + 890: 04 c0 rjmp .+8 ; 0x89a + 892: 8a 2d mov r24, r10 + 894: 86 78 andi r24, 0x86 ; 134 + 896: 09 f0 breq .+2 ; 0x89a + 898: b3 94 inc r11 + 89a: a3 fc sbrc r10, 3 + 89c: 10 c0 rjmp .+32 ; 0x8be + 89e: a0 fe sbrs r10, 0 + 8a0: 06 c0 rjmp .+12 ; 0x8ae + 8a2: b2 14 cp r11, r2 + 8a4: 80 f4 brcc .+32 ; 0x8c6 + 8a6: 28 0c add r2, r8 + 8a8: 92 2c mov r9, r2 + 8aa: 9b 18 sub r9, r11 + 8ac: 0d c0 rjmp .+26 ; 0x8c8 + 8ae: b2 14 cp r11, r2 + 8b0: 58 f4 brcc .+22 ; 0x8c8 + 8b2: b6 01 movw r22, r12 + 8b4: 80 e2 ldi r24, 0x20 ; 32 + 8b6: 90 e0 ldi r25, 0x00 ; 0 + 8b8: 76 d0 rcall .+236 ; 0x9a6 + 8ba: b3 94 inc r11 + 8bc: f8 cf rjmp .-16 ; 0x8ae + 8be: b2 14 cp r11, r2 + 8c0: 18 f4 brcc .+6 ; 0x8c8 + 8c2: 2b 18 sub r2, r11 + 8c4: 02 c0 rjmp .+4 ; 0x8ca + 8c6: 98 2c mov r9, r8 + 8c8: 21 2c mov r2, r1 + 8ca: a4 fe sbrs r10, 4 + 8cc: 0f c0 rjmp .+30 ; 0x8ec + 8ce: b6 01 movw r22, r12 + 8d0: 80 e3 ldi r24, 0x30 ; 48 + 8d2: 90 e0 ldi r25, 0x00 ; 0 + 8d4: 68 d0 rcall .+208 ; 0x9a6 + 8d6: a2 fe sbrs r10, 2 + 8d8: 16 c0 rjmp .+44 ; 0x906 + 8da: a1 fc sbrc r10, 1 + 8dc: 03 c0 rjmp .+6 ; 0x8e4 + 8de: 88 e7 ldi r24, 0x78 ; 120 + 8e0: 90 e0 ldi r25, 0x00 ; 0 + 8e2: 02 c0 rjmp .+4 ; 0x8e8 + 8e4: 88 e5 ldi r24, 0x58 ; 88 + 8e6: 90 e0 ldi r25, 0x00 ; 0 + 8e8: b6 01 movw r22, r12 + 8ea: 0c c0 rjmp .+24 ; 0x904 + 8ec: 8a 2d mov r24, r10 + 8ee: 86 78 andi r24, 0x86 ; 134 + 8f0: 51 f0 breq .+20 ; 0x906 + 8f2: a1 fe sbrs r10, 1 + 8f4: 02 c0 rjmp .+4 ; 0x8fa + 8f6: 8b e2 ldi r24, 0x2B ; 43 + 8f8: 01 c0 rjmp .+2 ; 0x8fc + 8fa: 80 e2 ldi r24, 0x20 ; 32 + 8fc: a7 fc sbrc r10, 7 + 8fe: 8d e2 ldi r24, 0x2D ; 45 + 900: b6 01 movw r22, r12 + 902: 90 e0 ldi r25, 0x00 ; 0 + 904: 50 d0 rcall .+160 ; 0x9a6 + 906: 89 14 cp r8, r9 + 908: 30 f4 brcc .+12 ; 0x916 + 90a: b6 01 movw r22, r12 + 90c: 80 e3 ldi r24, 0x30 ; 48 + 90e: 90 e0 ldi r25, 0x00 ; 0 + 910: 4a d0 rcall .+148 ; 0x9a6 + 912: 9a 94 dec r9 + 914: f8 cf rjmp .-16 ; 0x906 + 916: 8a 94 dec r8 + 918: f3 01 movw r30, r6 + 91a: e8 0d add r30, r8 + 91c: f1 1d adc r31, r1 + 91e: 80 81 ld r24, Z + 920: b6 01 movw r22, r12 + 922: 90 e0 ldi r25, 0x00 ; 0 + 924: 40 d0 rcall .+128 ; 0x9a6 + 926: 81 10 cpse r8, r1 + 928: f6 cf rjmp .-20 ; 0x916 + 92a: 22 20 and r2, r2 + 92c: 09 f4 brne .+2 ; 0x930 + 92e: 4e ce rjmp .-868 ; 0x5cc + 930: b6 01 movw r22, r12 + 932: 80 e2 ldi r24, 0x20 ; 32 + 934: 90 e0 ldi r25, 0x00 ; 0 + 936: 37 d0 rcall .+110 ; 0x9a6 + 938: 2a 94 dec r2 + 93a: f7 cf rjmp .-18 ; 0x92a + 93c: f6 01 movw r30, r12 + 93e: 86 81 ldd r24, Z+6 ; 0x06 + 940: 97 81 ldd r25, Z+7 ; 0x07 + 942: 02 c0 rjmp .+4 ; 0x948 + 944: 8f ef ldi r24, 0xFF ; 255 + 946: 9f ef ldi r25, 0xFF ; 255 + 948: 2b 96 adiw r28, 0x0b ; 11 + 94a: 0f b6 in r0, 0x3f ; 63 + 94c: f8 94 cli + 94e: de bf out 0x3e, r29 ; 62 + 950: 0f be out 0x3f, r0 ; 63 + 952: cd bf out 0x3d, r28 ; 61 + 954: df 91 pop r29 + 956: cf 91 pop r28 + 958: 1f 91 pop r17 + 95a: 0f 91 pop r16 + 95c: ff 90 pop r15 + 95e: ef 90 pop r14 + 960: df 90 pop r13 + 962: cf 90 pop r12 + 964: bf 90 pop r11 + 966: af 90 pop r10 + 968: 9f 90 pop r9 + 96a: 8f 90 pop r8 + 96c: 7f 90 pop r7 + 96e: 6f 90 pop r6 + 970: 5f 90 pop r5 + 972: 4f 90 pop r4 + 974: 3f 90 pop r3 + 976: 2f 90 pop r2 + 978: 08 95 ret + +0000097a : + 97a: fc 01 movw r30, r24 + 97c: 05 90 lpm r0, Z+ + 97e: 61 50 subi r22, 0x01 ; 1 + 980: 70 40 sbci r23, 0x00 ; 0 + 982: 01 10 cpse r0, r1 + 984: d8 f7 brcc .-10 ; 0x97c + 986: 80 95 com r24 + 988: 90 95 com r25 + 98a: 8e 0f add r24, r30 + 98c: 9f 1f adc r25, r31 + 98e: 08 95 ret + +00000990 : + 990: fc 01 movw r30, r24 + 992: 61 50 subi r22, 0x01 ; 1 + 994: 70 40 sbci r23, 0x00 ; 0 + 996: 01 90 ld r0, Z+ + 998: 01 10 cpse r0, r1 + 99a: d8 f7 brcc .-10 ; 0x992 + 99c: 80 95 com r24 + 99e: 90 95 com r25 + 9a0: 8e 0f add r24, r30 + 9a2: 9f 1f adc r25, r31 + 9a4: 08 95 ret + +000009a6 : + 9a6: 0f 93 push r16 + 9a8: 1f 93 push r17 + 9aa: cf 93 push r28 + 9ac: df 93 push r29 + 9ae: fb 01 movw r30, r22 + 9b0: 23 81 ldd r18, Z+3 ; 0x03 + 9b2: 21 fd sbrc r18, 1 + 9b4: 03 c0 rjmp .+6 ; 0x9bc + 9b6: 8f ef ldi r24, 0xFF ; 255 + 9b8: 9f ef ldi r25, 0xFF ; 255 + 9ba: 2c c0 rjmp .+88 ; 0xa14 + 9bc: 22 ff sbrs r18, 2 + 9be: 16 c0 rjmp .+44 ; 0x9ec + 9c0: 46 81 ldd r20, Z+6 ; 0x06 + 9c2: 57 81 ldd r21, Z+7 ; 0x07 + 9c4: 24 81 ldd r18, Z+4 ; 0x04 + 9c6: 35 81 ldd r19, Z+5 ; 0x05 + 9c8: 42 17 cp r20, r18 + 9ca: 53 07 cpc r21, r19 + 9cc: 44 f4 brge .+16 ; 0x9de + 9ce: a0 81 ld r26, Z + 9d0: b1 81 ldd r27, Z+1 ; 0x01 + 9d2: 9d 01 movw r18, r26 + 9d4: 2f 5f subi r18, 0xFF ; 255 + 9d6: 3f 4f sbci r19, 0xFF ; 255 + 9d8: 31 83 std Z+1, r19 ; 0x01 + 9da: 20 83 st Z, r18 + 9dc: 8c 93 st X, r24 + 9de: 26 81 ldd r18, Z+6 ; 0x06 + 9e0: 37 81 ldd r19, Z+7 ; 0x07 + 9e2: 2f 5f subi r18, 0xFF ; 255 + 9e4: 3f 4f sbci r19, 0xFF ; 255 + 9e6: 37 83 std Z+7, r19 ; 0x07 + 9e8: 26 83 std Z+6, r18 ; 0x06 + 9ea: 14 c0 rjmp .+40 ; 0xa14 + 9ec: 8b 01 movw r16, r22 + 9ee: ec 01 movw r28, r24 + 9f0: fb 01 movw r30, r22 + 9f2: 00 84 ldd r0, Z+8 ; 0x08 + 9f4: f1 85 ldd r31, Z+9 ; 0x09 + 9f6: e0 2d mov r30, r0 + 9f8: 09 95 icall + 9fa: 89 2b or r24, r25 + 9fc: e1 f6 brne .-72 ; 0x9b6 + 9fe: d8 01 movw r26, r16 + a00: 16 96 adiw r26, 0x06 ; 6 + a02: 8d 91 ld r24, X+ + a04: 9c 91 ld r25, X + a06: 17 97 sbiw r26, 0x07 ; 7 + a08: 01 96 adiw r24, 0x01 ; 1 + a0a: 17 96 adiw r26, 0x07 ; 7 + a0c: 9c 93 st X, r25 + a0e: 8e 93 st -X, r24 + a10: 16 97 sbiw r26, 0x06 ; 6 + a12: ce 01 movw r24, r28 + a14: df 91 pop r29 + a16: cf 91 pop r28 + a18: 1f 91 pop r17 + a1a: 0f 91 pop r16 + a1c: 08 95 ret + +00000a1e <__ultoa_invert>: + a1e: fa 01 movw r30, r20 + a20: aa 27 eor r26, r26 + a22: 28 30 cpi r18, 0x08 ; 8 + a24: 51 f1 breq .+84 ; 0xa7a <__ultoa_invert+0x5c> + a26: 20 31 cpi r18, 0x10 ; 16 + a28: 81 f1 breq .+96 ; 0xa8a <__ultoa_invert+0x6c> + a2a: e8 94 clt + a2c: 6f 93 push r22 + a2e: 6e 7f andi r22, 0xFE ; 254 + a30: 6e 5f subi r22, 0xFE ; 254 + a32: 7f 4f sbci r23, 0xFF ; 255 + a34: 8f 4f sbci r24, 0xFF ; 255 + a36: 9f 4f sbci r25, 0xFF ; 255 + a38: af 4f sbci r26, 0xFF ; 255 + a3a: b1 e0 ldi r27, 0x01 ; 1 + a3c: 3e d0 rcall .+124 ; 0xaba <__ultoa_invert+0x9c> + a3e: b4 e0 ldi r27, 0x04 ; 4 + a40: 3c d0 rcall .+120 ; 0xaba <__ultoa_invert+0x9c> + a42: 67 0f add r22, r23 + a44: 78 1f adc r23, r24 + a46: 89 1f adc r24, r25 + a48: 9a 1f adc r25, r26 + a4a: a1 1d adc r26, r1 + a4c: 68 0f add r22, r24 + a4e: 79 1f adc r23, r25 + a50: 8a 1f adc r24, r26 + a52: 91 1d adc r25, r1 + a54: a1 1d adc r26, r1 + a56: 6a 0f add r22, r26 + a58: 71 1d adc r23, r1 + a5a: 81 1d adc r24, r1 + a5c: 91 1d adc r25, r1 + a5e: a1 1d adc r26, r1 + a60: 20 d0 rcall .+64 ; 0xaa2 <__ultoa_invert+0x84> + a62: 09 f4 brne .+2 ; 0xa66 <__ultoa_invert+0x48> + a64: 68 94 set + a66: 3f 91 pop r19 + a68: 2a e0 ldi r18, 0x0A ; 10 + a6a: 26 9f mul r18, r22 + a6c: 11 24 eor r1, r1 + a6e: 30 19 sub r19, r0 + a70: 30 5d subi r19, 0xD0 ; 208 + a72: 31 93 st Z+, r19 + a74: de f6 brtc .-74 ; 0xa2c <__ultoa_invert+0xe> + a76: cf 01 movw r24, r30 + a78: 08 95 ret + a7a: 46 2f mov r20, r22 + a7c: 47 70 andi r20, 0x07 ; 7 + a7e: 40 5d subi r20, 0xD0 ; 208 + a80: 41 93 st Z+, r20 + a82: b3 e0 ldi r27, 0x03 ; 3 + a84: 0f d0 rcall .+30 ; 0xaa4 <__ultoa_invert+0x86> + a86: c9 f7 brne .-14 ; 0xa7a <__ultoa_invert+0x5c> + a88: f6 cf rjmp .-20 ; 0xa76 <__ultoa_invert+0x58> + a8a: 46 2f mov r20, r22 + a8c: 4f 70 andi r20, 0x0F ; 15 + a8e: 40 5d subi r20, 0xD0 ; 208 + a90: 4a 33 cpi r20, 0x3A ; 58 + a92: 18 f0 brcs .+6 ; 0xa9a <__ultoa_invert+0x7c> + a94: 49 5d subi r20, 0xD9 ; 217 + a96: 31 fd sbrc r19, 1 + a98: 40 52 subi r20, 0x20 ; 32 + a9a: 41 93 st Z+, r20 + a9c: 02 d0 rcall .+4 ; 0xaa2 <__ultoa_invert+0x84> + a9e: a9 f7 brne .-22 ; 0xa8a <__ultoa_invert+0x6c> + aa0: ea cf rjmp .-44 ; 0xa76 <__ultoa_invert+0x58> + aa2: b4 e0 ldi r27, 0x04 ; 4 + aa4: a6 95 lsr r26 + aa6: 97 95 ror r25 + aa8: 87 95 ror r24 + aaa: 77 95 ror r23 + aac: 67 95 ror r22 + aae: ba 95 dec r27 + ab0: c9 f7 brne .-14 ; 0xaa4 <__ultoa_invert+0x86> + ab2: 00 97 sbiw r24, 0x00 ; 0 + ab4: 61 05 cpc r22, r1 + ab6: 71 05 cpc r23, r1 + ab8: 08 95 ret + aba: 9b 01 movw r18, r22 + abc: ac 01 movw r20, r24 + abe: 0a 2e mov r0, r26 + ac0: 06 94 lsr r0 + ac2: 57 95 ror r21 + ac4: 47 95 ror r20 + ac6: 37 95 ror r19 + ac8: 27 95 ror r18 + aca: ba 95 dec r27 + acc: c9 f7 brne .-14 ; 0xac0 <__ultoa_invert+0xa2> + ace: 62 0f add r22, r18 + ad0: 73 1f adc r23, r19 + ad2: 84 1f adc r24, r20 + ad4: 95 1f adc r25, r21 + ad6: a0 1d adc r26, r0 + ad8: 08 95 ret + +00000ada <_exit>: + ada: f8 94 cli + +00000adc <__stop_program>: + adc: ff cf rjmp .-2 ; 0xadc <__stop_program> diff --git a/Microcontrollers/Eindopdracht/Debug/Eindopdracht.map b/Microcontrollers/Eindopdracht/Debug/Eindopdracht.map new file mode 100644 index 0000000..8cf36d8 --- /dev/null +++ b/Microcontrollers/Eindopdracht/Debug/Eindopdracht.map @@ -0,0 +1,676 @@ +Archive member included to satisfy reference by file (symbol) + +c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr51\libgcc.a(_exit.o) + C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.6.364/gcc/dev/atmega128/avr51/crtatmega128.o (exit) +c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr51\libgcc.a(_copy_data.o) + lcd_control.o (__do_copy_data) +c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr51\libgcc.a(_clear_bss.o) + stepper_driver.o (__do_clear_bss) +c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libc.a(snprintf.o) + lcd_control.o (snprintf) +c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libc.a(vfprintf_std.o) + c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libc.a(snprintf.o) (vfprintf) +c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libc.a(strnlen_P.o) + c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libc.a(vfprintf_std.o) (strnlen_P) +c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libc.a(strnlen.o) + c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libc.a(vfprintf_std.o) (strnlen) +c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libc.a(fputc.o) + c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libc.a(vfprintf_std.o) (fputc) +c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libc.a(ultoa_invert.o) + c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libc.a(vfprintf_std.o) (__ultoa_invert) + +Allocating common symbols +Common symbol size file + +rotation 0x1 stepper_driver.o +value_set_event 0x2 ultrasonic_sensor.o +snap_event 0x2 stepper_driver.o + +Discarded input sections + + .data 0x00000000 0x0 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.6.364/gcc/dev/atmega128/avr51/crtatmega128.o + .bss 0x00000000 0x0 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.6.364/gcc/dev/atmega128/avr51/crtatmega128.o + .text 0x00000000 0x0 lcd_control.o + .data 0x00000000 0x0 lcd_control.o + .bss 0x00000000 0x0 lcd_control.o + .text.sbi_portc + 0x00000000 0x16 lcd_control.o + .text.cbi_portc + 0x00000000 0x18 lcd_control.o + .text.lcd_move_right + 0x00000000 0x8 lcd_control.o + .text 0x00000000 0x0 main.o + .data 0x00000000 0x0 main.o + .bss 0x00000000 0x0 main.o + .text 0x00000000 0x0 stepper_driver.o + .data 0x00000000 0x0 stepper_driver.o + .bss 0x00000000 0x0 stepper_driver.o + .text 0x00000000 0x0 ultrasonic_sensor.o + .data 0x00000000 0x0 ultrasonic_sensor.o + .bss 0x00000000 0x0 ultrasonic_sensor.o + .text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr51\libgcc.a(_exit.o) + .data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr51\libgcc.a(_exit.o) + .bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr51\libgcc.a(_exit.o) + .text.libgcc.mul + 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr51\libgcc.a(_exit.o) + .text.libgcc.div + 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr51\libgcc.a(_exit.o) + .text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr51\libgcc.a(_exit.o) + .text.libgcc.prologue + 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr51\libgcc.a(_exit.o) + .text.libgcc.builtins + 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr51\libgcc.a(_exit.o) + .text.libgcc.fmul + 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr51\libgcc.a(_exit.o) + .text.libgcc.fixed + 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr51\libgcc.a(_exit.o) + .text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr51\libgcc.a(_copy_data.o) + .data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr51\libgcc.a(_copy_data.o) + .bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr51\libgcc.a(_copy_data.o) + .text.libgcc.mul + 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr51\libgcc.a(_copy_data.o) + .text.libgcc.div + 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr51\libgcc.a(_copy_data.o) + .text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr51\libgcc.a(_copy_data.o) + .text.libgcc.prologue + 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr51\libgcc.a(_copy_data.o) + .text.libgcc.builtins + 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr51\libgcc.a(_copy_data.o) + .text.libgcc.fmul + 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr51\libgcc.a(_copy_data.o) + .text.libgcc.fixed + 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr51\libgcc.a(_copy_data.o) + .text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr51\libgcc.a(_clear_bss.o) + .data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr51\libgcc.a(_clear_bss.o) + .bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr51\libgcc.a(_clear_bss.o) + .text.libgcc.mul + 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr51\libgcc.a(_clear_bss.o) + .text.libgcc.div + 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr51\libgcc.a(_clear_bss.o) + .text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr51\libgcc.a(_clear_bss.o) + .text.libgcc.prologue + 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr51\libgcc.a(_clear_bss.o) + .text.libgcc.builtins + 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr51\libgcc.a(_clear_bss.o) + .text.libgcc.fmul + 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr51\libgcc.a(_clear_bss.o) + .text.libgcc.fixed + 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr51\libgcc.a(_clear_bss.o) + .text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libc.a(snprintf.o) + .data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libc.a(snprintf.o) + .bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libc.a(snprintf.o) + .text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libc.a(vfprintf_std.o) + .data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libc.a(vfprintf_std.o) + .bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libc.a(vfprintf_std.o) + .text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libc.a(strnlen_P.o) + .data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libc.a(strnlen_P.o) + .bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libc.a(strnlen_P.o) + .text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libc.a(strnlen.o) + .data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libc.a(strnlen.o) + .bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libc.a(strnlen.o) + .text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libc.a(fputc.o) + .data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libc.a(fputc.o) + .bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libc.a(fputc.o) + .text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libc.a(ultoa_invert.o) + .data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libc.a(ultoa_invert.o) + .bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libc.a(ultoa_invert.o) + +Memory Configuration + +Name Origin Length Attributes +text 0x00000000 0x00020000 xr +data 0x00800100 0x00001000 rw !x +eeprom 0x00810000 0x00001000 rw !x +fuse 0x00820000 0x00000003 rw !x +lock 0x00830000 0x00000400 rw !x +signature 0x00840000 0x00000400 rw !x +user_signatures 0x00850000 0x00000400 rw !x +*default* 0x00000000 0xffffffff + +Linker script and memory map + +Address of section .data set to 0x800100 +LOAD C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.6.364/gcc/dev/atmega128/avr51/crtatmega128.o +LOAD lcd_control.o +LOAD main.o +LOAD stepper_driver.o +LOAD ultrasonic_sensor.o +START GROUP +LOAD c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a +END GROUP +START GROUP +LOAD c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr51\libgcc.a +LOAD c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a +LOAD c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libc.a +LOAD C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.6.364/gcc/dev/atmega128/avr51\libatmega128.a +END GROUP + 0x00000000 __TEXT_REGION_ORIGIN__ = DEFINED (__TEXT_REGION_ORIGIN__)?__TEXT_REGION_ORIGIN__:0x0 + [0x00800100] __DATA_REGION_ORIGIN__ = DEFINED (__DATA_REGION_ORIGIN__)?__DATA_REGION_ORIGIN__:0x800100 + [0x00020000] __TEXT_REGION_LENGTH__ = DEFINED (__TEXT_REGION_LENGTH__)?__TEXT_REGION_LENGTH__:0x20000 + [0x00001000] __DATA_REGION_LENGTH__ = DEFINED (__DATA_REGION_LENGTH__)?__DATA_REGION_LENGTH__:0xff00 + [0x00001000] __EEPROM_REGION_LENGTH__ = DEFINED (__EEPROM_REGION_LENGTH__)?__EEPROM_REGION_LENGTH__:0x10000 + [0x00000003] __FUSE_REGION_LENGTH__ = DEFINED (__FUSE_REGION_LENGTH__)?__FUSE_REGION_LENGTH__:0x400 + 0x00000400 __LOCK_REGION_LENGTH__ = DEFINED (__LOCK_REGION_LENGTH__)?__LOCK_REGION_LENGTH__:0x400 + 0x00000400 __SIGNATURE_REGION_LENGTH__ = DEFINED (__SIGNATURE_REGION_LENGTH__)?__SIGNATURE_REGION_LENGTH__:0x400 + 0x00000400 __USER_SIGNATURE_REGION_LENGTH__ = DEFINED (__USER_SIGNATURE_REGION_LENGTH__)?__USER_SIGNATURE_REGION_LENGTH__:0x400 + +.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 0x00000000 0xade + *(.vectors) + .vectors 0x00000000 0x8c C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.6.364/gcc/dev/atmega128/avr51/crtatmega128.o + 0x00000000 __vector_default + 0x00000000 __vectors + *(.vectors) + *(.progmem.gcc*) + 0x0000008c . = ALIGN (0x2) + 0x0000008c __trampolines_start = . + *(.trampolines) + .trampolines 0x0000008c 0x0 linker stubs + *(.trampolines*) + 0x0000008c __trampolines_end = . + *libprintf_flt.a:*(.progmem.data) + *libc.a:*(.progmem.data) + *(.progmem*) + 0x0000008c . = ALIGN (0x2) + *(.jumptables) + *(.jumptables*) + *(.lowtext) + *(.lowtext*) + 0x0000008c __ctors_start = . + *(.ctors) + 0x0000008c __ctors_end = . + 0x0000008c __dtors_start = . + *(.dtors) + 0x0000008c __dtors_end = . + SORT(*)(.ctors) + SORT(*)(.dtors) + *(.init0) + .init0 0x0000008c 0x0 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.6.364/gcc/dev/atmega128/avr51/crtatmega128.o + 0x0000008c __init + *(.init0) + *(.init1) + *(.init1) + *(.init2) + .init2 0x0000008c 0xc C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.6.364/gcc/dev/atmega128/avr51/crtatmega128.o + *(.init2) + *(.init3) + *(.init3) + *(.init4) + .init4 0x00000098 0x1a c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr51\libgcc.a(_copy_data.o) + 0x00000098 __do_copy_data + .init4 0x000000b2 0x10 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr51\libgcc.a(_clear_bss.o) + 0x000000b2 __do_clear_bss + *(.init4) + *(.init5) + *(.init5) + *(.init6) + *(.init6) + *(.init7) + *(.init7) + *(.init8) + *(.init8) + *(.init9) + .init9 0x000000c2 0x4 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.6.364/gcc/dev/atmega128/avr51/crtatmega128.o + *(.init9) + *(.text) + .text 0x000000c6 0x2 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.6.364/gcc/dev/atmega128/avr51/crtatmega128.o + 0x000000c6 __vector_22 + 0x000000c6 __vector_28 + 0x000000c6 __vector_32 + 0x000000c6 __vector_34 + 0x000000c6 __vector_24 + 0x000000c6 __vector_12 + 0x000000c6 __bad_interrupt + 0x000000c6 __vector_6 + 0x000000c6 __vector_31 + 0x000000c6 __vector_3 + 0x000000c6 __vector_23 + 0x000000c6 __vector_30 + 0x000000c6 __vector_25 + 0x000000c6 __vector_11 + 0x000000c6 __vector_13 + 0x000000c6 __vector_17 + 0x000000c6 __vector_19 + 0x000000c6 __vector_7 + 0x000000c6 __vector_27 + 0x000000c6 __vector_5 + 0x000000c6 __vector_33 + 0x000000c6 __vector_4 + 0x000000c6 __vector_2 + 0x000000c6 __vector_21 + 0x000000c6 __vector_15 + 0x000000c6 __vector_29 + 0x000000c6 __vector_8 + 0x000000c6 __vector_26 + 0x000000c6 __vector_14 + 0x000000c6 __vector_10 + 0x000000c6 __vector_16 + 0x000000c6 __vector_18 + 0x000000c6 __vector_20 + 0x000000c8 . = ALIGN (0x2) + *(.text.*) + .text.sbi_porta + 0x000000c8 0x16 lcd_control.o + 0x000000c8 sbi_porta + .text.cbi_porta + 0x000000de 0x18 lcd_control.o + 0x000000de cbi_porta + .text.lcd_strobe_lcd_e + 0x000000f6 0x26 lcd_control.o + 0x000000f6 lcd_strobe_lcd_e + .text.lcd_write_character + 0x0000011c 0x20 lcd_control.o + 0x0000011c lcd_write_character + .text.lcd_write_command + 0x0000013c 0x20 lcd_control.o + 0x0000013c lcd_write_command + .text.lcd_clear + 0x0000015c 0x16 lcd_control.o + 0x0000015c lcd_clear + .text.init_4bits_mode + 0x00000172 0x3c lcd_control.o + 0x00000172 init_4bits_mode + .text.lcd_write_string + 0x000001ae 0x18 lcd_control.o + 0x000001ae lcd_write_string + .text.lcd_write_int + 0x000001c6 0xb0 lcd_control.o + 0x000001c6 lcd_write_int + .text.ultrasoon_value_set_event + 0x00000276 0x1e main.o + .text.snap_event_trigger + 0x00000294 0x4 main.o + .text.__vector_1 + 0x00000298 0x4e main.o + 0x00000298 __vector_1 + .text.main 0x000002e6 0x36 main.o + 0x000002e6 main + .text.set_stepper_state + 0x0000031c 0x24 stepper_driver.o + 0x0000031c set_stepper_state + .text.set_snap_event + 0x00000340 0xa stepper_driver.o + 0x00000340 set_snap_event + .text.__vector_9 + 0x0000034a 0xc4 stepper_driver.o + 0x0000034a __vector_9 + .text.stepper_rotate_angle + 0x0000040e 0x1a stepper_driver.o + 0x0000040e stepper_rotate_angle + .text.stepper_rotate_stop + 0x00000428 0x4 stepper_driver.o + 0x00000428 stepper_rotate_stop + .text.init_stepper_driver + 0x0000042c 0x1c stepper_driver.o + 0x0000042c init_stepper_driver + .text.wait_us 0x00000448 0x1a ultrasonic_sensor.o + 0x00000448 wait_us + .text.wait_ms 0x00000462 0x1e ultrasonic_sensor.o + 0x00000462 wait_ms + .text.ultrasonic_init + 0x00000480 0x1e ultrasonic_sensor.o + 0x00000480 ultrasonic_init + .text.ultrasonic_send_pulse + 0x0000049e 0x1a ultrasonic_sensor.o + 0x0000049e ultrasonic_send_pulse + .text.ultrasonic_handle_interrupt + 0x000004b8 0x3c ultrasonic_sensor.o + 0x000004b8 ultrasonic_handle_interrupt + .text.set_value_trigger_event + 0x000004f4 0xa ultrasonic_sensor.o + 0x000004f4 set_value_trigger_event + .text.ultrasonic_get_timer_dist + 0x000004fe 0xa ultrasonic_sensor.o + 0x000004fe ultrasonic_get_timer_dist + .text.avr-libc + 0x00000508 0x78 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libc.a(snprintf.o) + 0x00000508 snprintf + .text.avr-libc + 0x00000580 0x3fa c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libc.a(vfprintf_std.o) + 0x00000580 vfprintf + .text.avr-libc + 0x0000097a 0x16 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libc.a(strnlen_P.o) + 0x0000097a strnlen_P + .text.avr-libc + 0x00000990 0x16 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libc.a(strnlen.o) + 0x00000990 strnlen + .text.avr-libc + 0x000009a6 0x78 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libc.a(fputc.o) + 0x000009a6 fputc + .text.avr-libc + 0x00000a1e 0xbc c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libc.a(ultoa_invert.o) + 0x00000a1e __ultoa_invert + 0x00000ada . = ALIGN (0x2) + *(.fini9) + .fini9 0x00000ada 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr51\libgcc.a(_exit.o) + 0x00000ada _exit + 0x00000ada exit + *(.fini9) + *(.fini8) + *(.fini8) + *(.fini7) + *(.fini7) + *(.fini6) + *(.fini6) + *(.fini5) + *(.fini5) + *(.fini4) + *(.fini4) + *(.fini3) + *(.fini3) + *(.fini2) + *(.fini2) + *(.fini1) + *(.fini1) + *(.fini0) + .fini0 0x00000ada 0x4 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr51\libgcc.a(_exit.o) + *(.fini0) + 0x00000ade _etext = . + +.data 0x00800100 0x16 load address 0x00000ade + 0x00800100 PROVIDE (__data_start, .) + *(.data) + *(.data*) + .data.initialising + 0x00800100 0x1 main.o + 0x00800100 initialising + .data.CW 0x00800101 0x8 stepper_driver.o + 0x00800101 CW + .data.CCW 0x00800109 0x8 stepper_driver.o + 0x00800109 CCW + .data.int_stat + 0x00800111 0x1 ultrasonic_sensor.o + *(.gnu.linkonce.d*) + *(.rodata) + *(.rodata*) + .rodata.str1.1 + 0x00800112 0x3 lcd_control.o + *(.gnu.linkonce.r*) + 0x00800116 . = ALIGN (0x2) + *fill* 0x00800115 0x1 + 0x00800116 _edata = . + 0x00800116 PROVIDE (__data_end, .) + +.bss 0x00800116 0xc + 0x00800116 PROVIDE (__bss_start, .) + *(.bss) + *(.bss*) + .bss.stepper_state + 0x00800116 0x1 stepper_driver.o + 0x00800116 stepper_state + .bss.steps_to_do + 0x00800117 0x2 stepper_driver.o + 0x00800117 steps_to_do + .bss.steps_each_turn + 0x00800119 0x2 stepper_driver.o + 0x00800119 steps_each_turn + .bss.timer_dist + 0x0080011b 0x2 ultrasonic_sensor.o + *(COMMON) + COMMON 0x0080011d 0x3 stepper_driver.o + 0x0080011d rotation + 0x0080011e snap_event + COMMON 0x00800120 0x2 ultrasonic_sensor.o + 0x00800120 value_set_event + 0x00800122 PROVIDE (__bss_end, .) + 0x00000ade __data_load_start = LOADADDR (.data) + 0x00000af4 __data_load_end = (__data_load_start + SIZEOF (.data)) + +.noinit 0x00800122 0x0 + [!provide] PROVIDE (__noinit_start, .) + *(.noinit*) + [!provide] PROVIDE (__noinit_end, .) + 0x00800122 _end = . + [!provide] PROVIDE (__heap_start, .) + +.eeprom 0x00810000 0x0 + *(.eeprom*) + 0x00810000 __eeprom_end = . + +.fuse + *(.fuse) + *(.lfuse) + *(.hfuse) + *(.efuse) + +.lock + *(.lock*) + +.signature + *(.signature*) + +.user_signatures + *(.user_signatures*) + +.stab + *(.stab) + +.stabstr + *(.stabstr) + +.stab.excl + *(.stab.excl) + +.stab.exclstr + *(.stab.exclstr) + +.stab.index + *(.stab.index) + +.stab.indexstr + *(.stab.indexstr) + +.comment 0x00000000 0x5c + *(.comment) + .comment 0x00000000 0x30 lcd_control.o + 0x31 (size before relaxing) + .comment 0x00000030 0x31 main.o + .comment 0x00000030 0x31 stepper_driver.o + .comment 0x00000030 0x31 ultrasonic_sensor.o + .comment 0x00000030 0x31 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libc.a(snprintf.o) + .comment 0x00000030 0x2c c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libc.a(vfprintf_std.o) + 0x2d (size before relaxing) + .comment 0x0000005c 0x31 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libc.a(fputc.o) + +.note.gnu.avr.deviceinfo + 0x00000000 0x3c + .note.gnu.avr.deviceinfo + 0x00000000 0x3c C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.6.364/gcc/dev/atmega128/avr51/crtatmega128.o + +.note.gnu.build-id + *(.note.gnu.build-id) + +.debug + *(.debug) + +.line + *(.line) + +.debug_srcinfo + *(.debug_srcinfo) + +.debug_sfnames + *(.debug_sfnames) + +.debug_aranges 0x00000000 0x148 + *(.debug_aranges) + .debug_aranges + 0x00000000 0x78 lcd_control.o + .debug_aranges + 0x00000078 0x38 main.o + .debug_aranges + 0x000000b0 0x48 stepper_driver.o + .debug_aranges + 0x000000f8 0x50 ultrasonic_sensor.o + +.debug_pubnames + *(.debug_pubnames) + +.debug_info 0x00000000 0x14e2 + *(.debug_info .gnu.linkonce.wi.*) + .debug_info 0x00000000 0x780 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.6.364/gcc/dev/atmega128/avr51/crtatmega128.o + .debug_info 0x00000780 0x4ee lcd_control.o + .debug_info 0x00000c6e 0x366 main.o + .debug_info 0x00000fd4 0x21e stepper_driver.o + .debug_info 0x000011f2 0x2f0 ultrasonic_sensor.o + +.debug_abbrev 0x00000000 0xd38 + *(.debug_abbrev) + .debug_abbrev 0x00000000 0x718 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.6.364/gcc/dev/atmega128/avr51/crtatmega128.o + .debug_abbrev 0x00000718 0x1a4 lcd_control.o + .debug_abbrev 0x000008bc 0x190 main.o + .debug_abbrev 0x00000a4c 0x122 stepper_driver.o + .debug_abbrev 0x00000b6e 0x1ca ultrasonic_sensor.o + +.debug_line 0x00000000 0xaaa + *(.debug_line .debug_line.* .debug_line_end) + .debug_line 0x00000000 0x16a C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.6.364/gcc/dev/atmega128/avr51/crtatmega128.o + .debug_line 0x0000016a 0x347 lcd_control.o + .debug_line 0x000004b1 0x1f1 main.o + .debug_line 0x000006a2 0x1c6 stepper_driver.o + .debug_line 0x00000868 0x242 ultrasonic_sensor.o + +.debug_frame 0x00000000 0x318 + *(.debug_frame) + .debug_frame 0x00000000 0x130 lcd_control.o + .debug_frame 0x00000130 0x9c main.o + .debug_frame 0x000001cc 0xbc stepper_driver.o + .debug_frame 0x00000288 0x90 ultrasonic_sensor.o + +.debug_str 0x00000000 0x754 + *(.debug_str) + .debug_str 0x00000000 0x27d C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.6.364/gcc/dev/atmega128/avr51/crtatmega128.o + .debug_str 0x0000027d 0x295 lcd_control.o + 0x2ce (size before relaxing) + .debug_str 0x00000512 0x15b main.o + 0x371 (size before relaxing) + .debug_str 0x0000066d 0x68 stepper_driver.o + 0x2af (size before relaxing) + .debug_str 0x000006d5 0x7f ultrasonic_sensor.o + 0x303 (size before relaxing) + +.debug_loc 0x00000000 0x68c + *(.debug_loc) + .debug_loc 0x00000000 0x2ea lcd_control.o + .debug_loc 0x000002ea 0x167 main.o + .debug_loc 0x00000451 0x13a stepper_driver.o + .debug_loc 0x0000058b 0x101 ultrasonic_sensor.o + +.debug_macinfo + *(.debug_macinfo) + +.debug_weaknames + *(.debug_weaknames) + +.debug_funcnames + *(.debug_funcnames) + +.debug_typenames + *(.debug_typenames) + +.debug_varnames + *(.debug_varnames) + +.debug_pubtypes + *(.debug_pubtypes) + +.debug_ranges 0x00000000 0x108 + *(.debug_ranges) + .debug_ranges 0x00000000 0x68 lcd_control.o + .debug_ranges 0x00000068 0x28 main.o + .debug_ranges 0x00000090 0x38 stepper_driver.o + .debug_ranges 0x000000c8 0x40 ultrasonic_sensor.o + +.debug_macro + *(.debug_macro) +OUTPUT(Eindopdracht.elf elf32-avr) +LOAD linker stubs diff --git a/Microcontrollers/Eindopdracht/Debug/Eindopdracht.srec b/Microcontrollers/Eindopdracht/Debug/Eindopdracht.srec new file mode 100644 index 0000000..166631e --- /dev/null +++ b/Microcontrollers/Eindopdracht/Debug/Eindopdracht.srec @@ -0,0 +1,178 @@ +S014000045696E646F706472616368742E737265633B +S113000045C0000049C100005EC000005CC00000A3 +S11300105AC0000058C0000056C0000054C0000080 +S113002052C0000092C100004EC000004CC000004D +S11300304AC0000048C0000046C0000044C00000A0 +S113004042C0000040C000003EC000003CC00000B0 +S11300503AC0000038C0000036C0000034C00000C0 +S113006032C0000030C000002EC000002CC00000D0 +S11300702AC0000028C0000026C0000024C00000E0 +S113008022C0000020C000001EC0000011241FBEBA +S1130090CFEFD0E1DEBFCDBF11E0A0E0B1E0EEEDE7 +S11300A0FAE000E00BBF02C007900D92A631B10741 +S11300B0D9F721E0A6E1B1E001C01D92A232B20756 +S11300C0E1F711D10AC59CCF9BB321E030E002C017 +S11300D0220F331F8A95E2F7292B2BBB08959BB37C +S11300E021E030E002C0220F331F8A95E2F7209509 +S11300F029232BBB089586E090E0E6DF83EC99E0AA +S11301000197F1F700C0000086E090E0E8DF87E89F +S113011093E10197F1F700C000000895CF93C82F31 +S113012085BB84E090E0D0DFE6DFC295C07FC5BB2D +S113013084E090E0C9DFDFDFCF910895CF93C82F2B +S113014085BB84E090E0CBDFD6DFC295C07FC5BB22 +S113015084E090E0C4DFCFDFCF91089581E0EEDF4B +S113016087E893E10197F1F700C0000080E8E6CF4B +S11301700895CF938FEF84BB85BB8ABB15BA1BBA96 +S1130180C0E2C5BBB8DFC5BBB6DF80E885BBB3DF63 +S113019015BAB1DF80EF85BBAEDF15BAACDF80E600 +S11301A085BBA9DF82E0CADFA6DFCF910895CF9394 +S11301B0DF93EC0102C0B2DF219688818111FBCF6D +S11301C0DF91CF910895AF92BF92CF92DF92EF92D9 +S11301D0FF920F931F93CF93DF93CDB7DEB7D82E43 +S11301E0C92EADB6BEB69F938F930F2EF2E1EF2EBC +S11301F0F1E0FF2EF02DFF92EF921F921F921F92BB +S11302001F9282D101962DB73EB7285F3F4F0FB69C +S1130210F8943EBF0FBE2DBF281B390B0FB6F894C0 +S11302203EBF0FBE2DBF0DB71EB70F5F1F4FCF923E +S1130230DF92FF92EF929F938F931F930F9364D15A +S1130240802F912FB4DF8DB79EB708960FB6F89420 +S11302509EBF0FBE8DBF0FB6F894BEBE0FBEADBE1F +S1130260DF91CF911F910F91FF90EF90DF90CF908E +S1130270BF90AF90089520910001222351F001977F +S1130280439738F4D1D01092000161E080E092E00D +S1130290BEC0089504C108951F920F920FB60F9225 +S11302A011240BB60F922F933F934F935F936F9349 +S11302B07F938F939F93AF93BF93EF93FF93FCD060 +S11302C0FF91EF91BF91AF919F918F917F916F912A +S11302D05F914F913F912F910F900BBE0F900FBEE6 +S11302E00F901F901895CCD044DFA0D08AE491E001 +S11302F027D08BE391E0FED087EA91E60197F1F7EE +S113030000C000002BDF60E088E592E080D026DFAB +S1130310F6D059DF84E690E0A4D0F9CF90911D0186 +S1130320911107C0E82FF0E0EF5FFE4F808183B9A1 +S11303300895E82FF0E0E75FFE4F808183B90895C8 +S113034090931F0180931E0108951F920F920FB680 +S11303500F9211240BB60F922F933F934F935F93F9 +S11303606F937F938F939F93AF93BF93EF93FF9379 +S113037014BC80911601D2DF80911601873020F4DD +S11303808F5F8093160130C010921601809117017F +S113039090911801009799F480911D01811104C076 +S11303A081E080931D0102C010921D01809119010A +S11303B090911A01909318018093170115C09C0124 +S11303C02F713327232B39F4E0911E01F0911F0183 +S11303D0309709F0099580911701909118010197C0 +S11303E09093180180931701FF91EF91BF91AF9102 +S11303F09F918F917F916F915F914F913F912F9139 +S11304000F900BBE0F900FBE0F901F9018959093F6 +S113041018018093170190931A0180931901609336 +S11304201D018CE085BD089515BC08958FEF82B938 +S11304308093640081E08093650013B886E983BDEE +S113044080E887BF7894089520E030E006C043E058 +S11304504A95F1F700002F5F3F4F28173907B8F38B +S1130460089520E030E008C0E3ECF9E03197F1F7BB +S113047000C000002F5F3F4F28173907A8F30895E5 +S11304808FEF8093640011BA83E080936A0089B788 +S1130490816089BF1FBC8CE08EBD78940895CF9392 +S11304A0DF93C5E6D0E018828AE090E0CDDF81E0FA +S11304B08883DF91CF91089580911101813041F4B7 +S11304C082E080936A001DBC1CBC10921101089547 +S11304D083E080936A008CB59DB590931C01809352 +S11304E01B01E0912001F0912101099581E08093A5 +S11304F01101089590932101809320010895809122 +S11305001B0190911C0108950F931F93CF93DF93C8 +S1130510CDB7DEB72E970FB6F894DEBF0FBECDBFB2 +S11305200D891E898F89988D26E02C831A8309836F +S113053097FF02C080E090E801979E838D83AE010F +S1130540455E5F4F698D7A8DCE01019619D04D813C +S11305505E8157FD0AC02F813885421753070CF47A +S11305609A01F801E20FF31F10822E960FB6F89449 +S1130570DEBF0FBECDBFDF91CF911F910F910895C4 +S11305802F923F924F925F926F927F928F929F929F +S1130590AF92BF92CF92DF92EF92FF920F931F938D +S11305A0CF93DF93CDB7DEB72B970FB6F894DEBFAA +S11305B00FBECDBF6C017B018A01FC01178216823C +S11305C0838181FFBFC1CE0101963C01F601938175 +S11305D0F70193FD859193FF81917F01882309F4AD +S11305E0ADC1853239F493FD859193FF81917F01EB +S11305F0853221F4B60190E0D6D1E8CF912C212C9C +S1130600312CFFE1F315D8F08B3279F038F48032D5 +S113061079F08332A1F4232D20611DC08D3261F065 +S1130620803369F4232D216016C0832D8260382E17 +S1130630E32DE4603E2E2AC0F32DF8601DC037FC84 +S11306402DC020ED280F2A3040F08E32B9F436FC4C +S113065075C1232D2064322E19C036FE06C08AE0EF +S1130660989E200D1124922E11C0EAE02E9E200D9A +S11306701124222EF32DF0623F2E08C08C3621F473 +S1130680832D8068382E02C0883641F4F70193FD2B +S1130690859193FF81917F018111B3CF982F9F7D25 +S11306A09554933028F40C5F1F4F9FE399830DC03A +S11306B0833631F0833771F0833509F055C020C09B +S11306C0F801808189830E5F1F4F88248394912CC5 +S11306D0530112C02801F2E04F0E511CF801A08012 +S11306E0B18036FE03C0692D70E002C06FEF7FEF6A +S11306F0C5014ED14C018201F32DFF773F2E15C069 +S1130700280122E0420E511CF801A080B18036FE7F +S113071003C0692D70E002C06FEF7FEFC5012DD1DA +S11307204C01F32DF0683F2E820133FC19C0822D59 +S113073090E088169906A0F4B60180E290E033D1E7 +S11307402A94F5CFF50137FC859137FE81915F013D +S1130750B60190E028D121102A9421E0821A910850 +S11307608114910479F7E1C0843611F0893639F5A2 +S1130770F80137FE07C060817181828193810C5F2B +S11307801F4F08C060817181072E000C880B990BE4 +S11307900E5F1F4FF32DFF763F2E97FF09C09095F4 +S11307A08095709561957F4F8F4F9F4FF0683F2ED6 +S11307B02AE030E0A30133D1882E861844C085375F +S11307C031F4232D2F7EB22E2AE030E025C0932D64 +S11307D0997FB92E8F36C1F018F4883579F0AEC000 +S11307E0803719F0883721F0A9C0E92FE061BE2EC7 +S11307F0B4FE0DC0FB2DF460BF2E09C034FE0AC048 +S1130800292F2660B22E06C028E030E005C020E182 +S113081030E002C020E132E0F801B7FE07C0608199 +S11308207181828193810C5F1F4F06C06081718149 +S113083080E090E00E5F1F4FA301F1D0882E861850 +S1130840FB2DFF773F2E36FE0DC0232D2E7FA22ECB +S1130850891458F434FE0BC032FC09C0832D8E7EFB +S1130860A82E05C0B82CA32C03C0B82C01C0B92CE9 +S1130870A4FE0FC0FE01E80DF11D8081803321F438 +S11308809A2D997EA92E09C0A2FE06C0B394B394F2 +S113089004C08A2D867809F0B394A3FC10C0A0FE8E +S11308A006C0B21480F4280C922C9B180DC0B2140C +S11308B058F4B60180E290E076D0B394F8CFB21445 +S11308C018F42B1802C0982C212CA4FE0FC0B601DA +S11308D080E390E068D0A2FE16C0A1FC03C088E7C4 +S11308E090E002C088E590E0B6010CC08A2D8678BD +S11308F051F0A1FE02C08BE201C080E2A7FC8DE2B0 +S1130900B60190E050D0891430F4B60180E390E051 +S11309104AD09A94F8CF8A94F301E80DF11D8081AE +S1130920B60190E040D08110F6CF222009F44ECEDB +S1130930B60180E290E037D02A94F7CFF6018681A1 +S1130940978102C08FEF9FEF2B960FB6F894DEBF0E +S11309500FBECDBFDF91CF911F910F91FF90EF900C +S1130960DF90CF90BF90AF909F908F907F906F90CB +S11309705F904F903F902F900895FC010590615037 +S113098070400110D8F7809590958E0F9F1F0895A1 +S1130990FC016150704001900110D8F7809590954A +S11309A08E0F9F1F08950F931F93CF93DF93FB0127 +S11309B0238121FD03C08FEF9FEF2CC022FF16C0BF +S11309C046815781248135814217530744F4A0811D +S11309D0B1819D012F5F3F4F318320838C9326810A +S11309E037812F5F3F4F3783268314C08B01EC017F +S11309F0FB010084F185E02D0995892BE1F6D801EE +S1130A0016968D919C911797019617969C938E93A9 +S1130A101697CE01DF91CF911F910F910895FA019E +S1130A20AA27283051F1203181F1E8946F936E7F29 +S1130A306E5F7F4F8F4F9F4FAF4FB1E03ED0B4E01A +S1130A403CD0670F781F891F9A1FA11D680F791F5B +S1130A508A1F911DA11D6A0F711D811D911DA11D6C +S1130A6020D009F468943F912AE0269F112430197C +S1130A70305D3193DEF6CF010895462F4770405D17 +S1130A804193B3E00FD0C9F7F6CF462F4F70405DC6 +S1130A904A3318F0495D31FD4052419302D0A9F721 +S1130AA0EACFB4E0A6959795879577956795BA951B +S1130AB0C9F700976105710508959B01AC010A2EE1 +S1130AC006945795479537952795BA95C9F7620FB8 +S1110AD0731F841F951FA01D0895F894FFCF77 +S1130ADE01080C0406020301090901030206040CB1 +S1090AEE0801256400006C +S9030000FC diff --git a/Microcontrollers/Eindopdracht/Debug/Makefile b/Microcontrollers/Eindopdracht/Debug/Makefile index 34b5763..d621a9a 100644 --- a/Microcontrollers/Eindopdracht/Debug/Makefile +++ b/Microcontrollers/Eindopdracht/Debug/Makefile @@ -39,6 +39,7 @@ SUBDIRS := C_SRCS += \ ../lcd_control.c \ ../main.c \ +../stepper_driver.c \ ../ultrasonic_sensor.c @@ -51,21 +52,25 @@ ASM_SRCS += OBJS += \ lcd_control.o \ main.o \ +stepper_driver.o \ ultrasonic_sensor.o OBJS_AS_ARGS += \ lcd_control.o \ main.o \ +stepper_driver.o \ ultrasonic_sensor.o C_DEPS += \ lcd_control.d \ main.d \ +stepper_driver.d \ ultrasonic_sensor.d C_DEPS_AS_ARGS += \ lcd_control.d \ main.d \ +stepper_driver.d \ ultrasonic_sensor.d OUTPUT_FILE_PATH +=Eindopdracht.elf @@ -96,6 +101,13 @@ LINKER_SCRIPT_DEP+= @echo Finished building: $< +./stepper_driver.o: .././stepper_driver.c + @echo Building file: $< + @echo Invoking: AVR/GNU C Compiler : 5.4.0 + $(QUOTE)C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -x c -funsigned-char -funsigned-bitfields -DDEBUG -I"C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.6.364\include" -Og -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -mrelax -g2 -Wall -mmcu=atmega128 -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.6.364\gcc\dev\atmega128" -c -std=gnu99 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<" + @echo Finished building: $< + + ./ultrasonic_sensor.o: .././ultrasonic_sensor.c @echo Building file: $< @echo Invoking: AVR/GNU C Compiler : 5.4.0 diff --git a/Microcontrollers/Eindopdracht/Debug/lcd_control.d b/Microcontrollers/Eindopdracht/Debug/lcd_control.d new file mode 100644 index 0000000..4b9075c --- /dev/null +++ b/Microcontrollers/Eindopdracht/Debug/lcd_control.d @@ -0,0 +1,61 @@ +lcd_control.d lcd_control.o: .././lcd_control.c \ + c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\io.h \ + c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h \ + c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h \ + c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h \ + c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h \ + C:\Program\ Files\ (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.6.364\include/avr/iom128.h \ + c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\portpins.h \ + c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\common.h \ + c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\version.h \ + c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\fuse.h \ + c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\lock.h \ + c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay.h \ + c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay_basic.h \ + c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\math.h \ + c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\interrupt.h \ + c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdlib.h \ + c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h \ + c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdio.h \ + c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdarg.h \ + .././lcd_control.h + +c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\io.h: + +c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h: + +c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h: + +c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h: + +c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h: + +C:\Program\ Files\ (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.6.364\include/avr/iom128.h: + +c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\portpins.h: + +c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\common.h: + +c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\version.h: + +c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\fuse.h: + +c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\lock.h: + +c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay.h: + +c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay_basic.h: + +c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\math.h: + +c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\interrupt.h: + +c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdlib.h: + +c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h: + +c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdio.h: + +c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdarg.h: + +.././lcd_control.h: diff --git a/Microcontrollers/Eindopdracht/Debug/lcd_control.o b/Microcontrollers/Eindopdracht/Debug/lcd_control.o new file mode 100644 index 0000000000000000000000000000000000000000..860edbea81f1b74294b5734aa4f2ecbe9fc9e90a GIT binary patch literal 13652 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 literal 0 HcmV?d00001 diff --git a/Microcontrollers/Eindopdracht/Debug/main.d b/Microcontrollers/Eindopdracht/Debug/main.d new file mode 100644 index 0000000..5a25ea3 --- /dev/null +++ b/Microcontrollers/Eindopdracht/Debug/main.d @@ -0,0 +1,56 @@ +main.d main.o: .././main.c \ + c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\io.h \ + c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h \ + c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h \ + c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h \ + c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h \ + C:\Program\ Files\ (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.6.364\include/avr/iom128.h \ + c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\portpins.h \ + c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\common.h \ + c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\version.h \ + c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\fuse.h \ + c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\lock.h \ + c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay.h \ + c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay_basic.h \ + c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\math.h \ + c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\interrupt.h \ + c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdbool.h \ + .././lcd_control.h .././ultrasonic_sensor.h .././stepper_driver.h + +c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\io.h: + +c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h: + +c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h: + +c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h: + +c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h: + +C:\Program\ Files\ (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.6.364\include/avr/iom128.h: + +c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\portpins.h: + +c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\common.h: + +c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\version.h: + +c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\fuse.h: + +c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\lock.h: + +c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay.h: + +c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay_basic.h: + +c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\math.h: + +c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\interrupt.h: + +c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdbool.h: + +.././lcd_control.h: + +.././ultrasonic_sensor.h: + +.././stepper_driver.h: diff --git a/Microcontrollers/Eindopdracht/Debug/main.o b/Microcontrollers/Eindopdracht/Debug/main.o new file mode 100644 index 0000000000000000000000000000000000000000..d6a973c3cdf54c046050a1087a7a2f96af2cc550 GIT binary patch literal 8928 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 VVPBkQ3~!XZ$HBbU7=g^de*u5BZTSEI literal 0 HcmV?d00001 diff --git a/Microcontrollers/Eindopdracht/Debug/makedep.mk b/Microcontrollers/Eindopdracht/Debug/makedep.mk index 3068bb9..7126ad2 100644 --- a/Microcontrollers/Eindopdracht/Debug/makedep.mk +++ b/Microcontrollers/Eindopdracht/Debug/makedep.mk @@ -6,5 +6,7 @@ lcd_control.c main.c +stepper_driver.c + ultrasonic_sensor.c diff --git a/Microcontrollers/Eindopdracht/Debug/stepper_driver.d b/Microcontrollers/Eindopdracht/Debug/stepper_driver.d new file mode 100644 index 0000000..0b63ed4 --- /dev/null +++ b/Microcontrollers/Eindopdracht/Debug/stepper_driver.d @@ -0,0 +1,61 @@ +stepper_driver.d stepper_driver.o: .././stepper_driver.c \ + c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\interrupt.h \ + c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\io.h \ + c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h \ + c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h \ + c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h \ + c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h \ + C:\Program\ Files\ (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.6.364\include/avr/iom128.h \ + c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\portpins.h \ + c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\common.h \ + c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\version.h \ + c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\fuse.h \ + c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\lock.h \ + c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay.h \ + c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay_basic.h \ + c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\math.h \ + c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdbool.h \ + c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdio.h \ + c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdarg.h \ + c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h \ + .././stepper_driver.h + +c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\interrupt.h: + +c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\io.h: + +c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h: + +c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h: + +c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h: + +c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h: + +C:\Program\ Files\ (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.6.364\include/avr/iom128.h: + +c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\portpins.h: + +c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\common.h: + +c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\version.h: + +c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\fuse.h: + +c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\lock.h: + +c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay.h: + +c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay_basic.h: + +c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\math.h: + +c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdbool.h: + +c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdio.h: + +c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdarg.h: + +c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h: + +.././stepper_driver.h: diff --git a/Microcontrollers/Eindopdracht/Debug/stepper_driver.o b/Microcontrollers/Eindopdracht/Debug/stepper_driver.o new file mode 100644 index 0000000000000000000000000000000000000000..ed8345b08fe3412568c2dfe68c22796e327fe714 GIT binary patch literal 8668 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 literal 0 HcmV?d00001 diff --git a/Microcontrollers/Eindopdracht/Debug/ultrasonic_sensor.d b/Microcontrollers/Eindopdracht/Debug/ultrasonic_sensor.d new file mode 100644 index 0000000..370f643 --- /dev/null +++ b/Microcontrollers/Eindopdracht/Debug/ultrasonic_sensor.d @@ -0,0 +1,49 @@ +ultrasonic_sensor.d ultrasonic_sensor.o: .././ultrasonic_sensor.c \ + c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\io.h \ + c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h \ + c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h \ + c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h \ + c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h \ + C:\Program\ Files\ (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.6.364\include/avr/iom128.h \ + c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\portpins.h \ + c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\common.h \ + c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\version.h \ + c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\fuse.h \ + c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\lock.h \ + c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay.h \ + c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay_basic.h \ + c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\math.h \ + c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\interrupt.h \ + .././lcd_control.h + +c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\io.h: + +c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h: + +c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h: + +c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h: + +c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h: + +C:\Program\ Files\ (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.6.364\include/avr/iom128.h: + +c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\portpins.h: + +c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\common.h: + +c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\version.h: + +c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\fuse.h: + +c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\lock.h: + +c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay.h: + +c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay_basic.h: + +c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\math.h: + +c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\interrupt.h: + +.././lcd_control.h: diff --git a/Microcontrollers/Eindopdracht/Debug/ultrasonic_sensor.o b/Microcontrollers/Eindopdracht/Debug/ultrasonic_sensor.o new file mode 100644 index 0000000000000000000000000000000000000000..562de53972d3a469c70838b2c80ee2a922409468 GIT binary patch literal 8880 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 Y*?6e05f9hAGd%Sw7Da - - - - - - - - - + + + + + + + + + - -mmcu=atmega128 -B "%24(PackRepoDir)\atmel\ATmega_DFP\1.6.364\gcc\dev\atmega128" - True - True - True - True - True - False - True - True - - - NDEBUG - - - - - %24(PackRepoDir)\atmel\ATmega_DFP\1.6.364\include\ - - - Optimize for size (-Os) - True - True - True - - - libm - - - - - %24(PackRepoDir)\atmel\ATmega_DFP\1.6.364\include\ - - - + -mmcu=atmega128 -B "%24(PackRepoDir)\atmel\ATmega_DFP\1.6.364\gcc\dev\atmega128" + True + True + True + True + True + False + True + True + + + NDEBUG + + + + + %24(PackRepoDir)\atmel\ATmega_DFP\1.6.364\include\ + + + Optimize for size (-Os) + True + True + True + + + libm + + + + + %24(PackRepoDir)\atmel\ATmega_DFP\1.6.364\include\ + + + - -mmcu=atmega128 -B "%24(PackRepoDir)\atmel\ATmega_DFP\1.6.364\gcc\dev\atmega128" - True - True - True - True - True - False - True - True - - - DEBUG - - - - - %24(PackRepoDir)\atmel\ATmega_DFP\1.6.364\include\ - - - Optimize debugging experience (-Og) - True - True - Default (-g2) - True - - - libm - - - - - %24(PackRepoDir)\atmel\ATmega_DFP\1.6.364\include\ - - - Default (-Wa,-g) - + -mmcu=atmega128 -B "%24(PackRepoDir)\atmel\ATmega_DFP\1.6.364\gcc\dev\atmega128" + True + True + True + True + True + False + True + True + + + DEBUG + + + + + %24(PackRepoDir)\atmel\ATmega_DFP\1.6.364\include\ + + + Optimize debugging experience (-Og) + True + True + Default (-g2) + True + + + libm + + + + + %24(PackRepoDir)\atmel\ATmega_DFP\1.6.364\include\ + + + Default (-Wa,-g) + @@ -131,6 +131,12 @@ compile + + compile + + + compile + compile diff --git a/Microcontrollers/Eindopdracht/lcd_control.c b/Microcontrollers/Eindopdracht/lcd_control.c index 64bacb3..3d76ce7 100644 --- a/Microcontrollers/Eindopdracht/lcd_control.c +++ b/Microcontrollers/Eindopdracht/lcd_control.c @@ -25,7 +25,7 @@ void lcd_strobe_lcd_e(void) { sbi_porta(LCD_E); // E high _delay_ms(1); cbi_porta(LCD_E); // E low - _delay_ms(1); + _delay_ms(2); } diff --git a/Microcontrollers/Eindopdracht/main.c b/Microcontrollers/Eindopdracht/main.c index 1bd21ec..38a4119 100644 --- a/Microcontrollers/Eindopdracht/main.c +++ b/Microcontrollers/Eindopdracht/main.c @@ -10,29 +10,51 @@ #include #include #include +#include #include "lcd_control.h" #include "ultrasonic_sensor.h" +#include "stepper_driver.h" +bool initialising = true; ISR(INT0_vect) { ultrasonic_handle_interrupt(); } +static void snap_event_trigger(uint8_t rotation){ + ultrasonic_send_pulse(); +} + +static void ultrasoon_value_set_event(uint16_t value){ + if(initialising){ + if(value > 0 && value < 20){ + stepper_rotate_stop(); + initialising = false; + stepper_rotate_angle(512, CounterClockWise); + } + } +} + int main(void) { /* Replace with your application code */ ultrasonic_init(); init_4bits_mode(); + init_stepper_driver(); + set_snap_event(&snap_event_trigger); + set_value_trigger_event(&ultrasoon_value_set_event); _delay_ms(10); lcd_clear(); + + stepper_rotate_angle(600, ClockWise); while (1) { // TODO change to use the stepper motor - ultrasonic_send_pulse(); + //ultrasonic_send_pulse(); lcd_clear(); lcd_write_int(ultrasonic_get_timer_dist()); @@ -40,5 +62,6 @@ int main(void) wait_ms(100); } + stepper_rotate_stop(); } diff --git a/Microcontrollers/Eindopdracht/stepper_driver.c b/Microcontrollers/Eindopdracht/stepper_driver.c new file mode 100644 index 0000000..7802cb1 --- /dev/null +++ b/Microcontrollers/Eindopdracht/stepper_driver.c @@ -0,0 +1,113 @@ +/* + * stepper_driver.c + * PORTB + * Created: 10-Mar-21 12:21:47 PM + * Author: lemms + */ +#define F_CPU 10e6 + +#include +#include +#include +#include +#include + +#include "stepper_driver.h" + +#define BIT(x) (1 << (x)) + +uint8_t CCW[8] = {0x09,0x01,0x03,0x02,0x06,0x04,0x0c,0x08}; +uint8_t CW[8] = {0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09}; + +/* + Een timer met interupt routine. + + in de interump routine een state machine voor de 8 nibbles + elke keer dat de interupt routine wordt geroepen wordt de state + incremented. hier houd je ook een var bij om de relatieve + positie te weten van de stappenmotor. + + Nog een timer voor microstepping. + + Timers: + timer voor de speed. + stappen van 100ms naar 10ms + prescaler = 255 +*/ + +enum rotation_wise rotation; + +void stepper_rotate_full_rotation_CW(); +void stepper_rotate_full_rotation_CCW(); + +void set_stepper_state(uint8_t count){ + if(rotation == ClockWise){ + PORTE = CW[count]; + } else { + PORTE = CCW[count]; + } +} + +void (*snap_event)(uint8_t); + +void set_snap_event(void (*snap_event_p)(uint8_t)){ + snap_event = snap_event_p; +} + +uint16_t steps_each_turn = 0; +uint16_t steps_to_do = 0; +uint8_t stepper_state = 0; +ISR( TIMER2_COMP_vect ){ + TCNT2 = 0; + + set_stepper_state(stepper_state); + + if(stepper_state < 7){ + stepper_state++; + } else { + //OCR2 = ADCH; + stepper_state = 0; + + if(steps_to_do == 0){ + + if(rotation == ClockWise){ + rotation = CounterClockWise; + } else { + rotation = ClockWise; + } + + steps_to_do = steps_each_turn; + + } else { + + if(steps_to_do % 32 == 0){ + + if(snap_event != NULL) + snap_event(steps_to_do); + } + + steps_to_do--; + } + } +} + +void stepper_rotate_angle(uint16_t steps, enum rotation_wise rot){ + steps_to_do = steps; + steps_each_turn = steps; + rotation = rot; + TCCR2 = 0b00001100; +} + +void stepper_rotate_stop(){ + TCCR2 = 0b00000000; +} + +void init_stepper_driver(){ + DDRE = 0xff; + DDRG = 0xff; + PORTG = 0x01; + PORTE = 0x00; + OCR2 = 150; + TIMSK = BIT(7); + sei(); +} \ No newline at end of file diff --git a/Microcontrollers/Eindopdracht/stepper_driver.h b/Microcontrollers/Eindopdracht/stepper_driver.h new file mode 100644 index 0000000..af873d1 --- /dev/null +++ b/Microcontrollers/Eindopdracht/stepper_driver.h @@ -0,0 +1,25 @@ +/* + * stepper_driver.h + * + * Created: 10-Mar-21 12:35:30 PM + * Author: lemms + */ + + +#ifndef STEPPER_DRIVER_H_ +#define STEPPER_DRIVER_H_ + +#include + +enum rotation_wise { + ClockWise, + CounterClockWise +}; + +void init_stepper_driver(); +void stepper_rotate(uint16_t steps); +void stepper_rotate_angle(uint16_t steps, enum rotation_wise rot); +void stepper_rotate_stop(); +void set_snap_event(void (*snap_event_p)(uint8_t)); + +#endif /* STEPPER_DRIVER_H_ */ \ No newline at end of file diff --git a/Microcontrollers/Eindopdracht/ultrasonic_sensor.c b/Microcontrollers/Eindopdracht/ultrasonic_sensor.c index 430a118..4071239 100644 --- a/Microcontrollers/Eindopdracht/ultrasonic_sensor.c +++ b/Microcontrollers/Eindopdracht/ultrasonic_sensor.c @@ -19,6 +19,8 @@ enum interrupt_status {INTERRUPT_FALLING, INTERRUPT_RISING}; static enum interrupt_status int_stat = INTERRUPT_RISING; +void (*value_set_event)(uint16_t); + void wait_us(unsigned int us) { for(int i = 0; i < us; i++) @@ -79,11 +81,19 @@ void ultrasonic_handle_interrupt() // read timer1 into time_dist timer_dist = TCNT1; + //EVENT + value_set_event(timer_dist); + // set interrupt status int_stat = INTERRUPT_RISING; } } +void set_value_trigger_event(void (*value_set_event_p)(uint16_t)){ + // event that is triggered when a value is set. + value_set_event = value_set_event_p; +} + uint16_t ultrasonic_get_timer_dist() { return timer_dist; diff --git a/Microcontrollers/Eindopdracht/ultrasonic_sensor.h b/Microcontrollers/Eindopdracht/ultrasonic_sensor.h index 0981c46..b91ae14 100644 --- a/Microcontrollers/Eindopdracht/ultrasonic_sensor.h +++ b/Microcontrollers/Eindopdracht/ultrasonic_sensor.h @@ -10,3 +10,4 @@ void ultrasonic_init(); void ultrasonic_send_pulse(); uint16_t ultrasonic_get_timer_dist(); void ultrasonic_handle_interrupt(); +void set_value_trigger_event(void (*value_set_event_p)(uint16_t)); diff --git a/Microcontrollers/Microcontrollers.atsln b/Microcontrollers/Microcontrollers.atsln index 118a8e2..204e911 100644 --- a/Microcontrollers/Microcontrollers.atsln +++ b/Microcontrollers/Microcontrollers.atsln @@ -119,13 +119,10 @@ Global {FE1D92D4-4858-4112-AD41-E57799A980C9}.Debug|AVR.Build.0 = Debug|AVR {FE1D92D4-4858-4112-AD41-E57799A980C9}.Release|AVR.ActiveCfg = Release|AVR {FE1D92D4-4858-4112-AD41-E57799A980C9}.Release|AVR.Build.0 = Release|AVR -<<<<<<< HEAD {EAFA506A-B042-4CB2-9335-FBC1D7364EFB}.Debug|AVR.ActiveCfg = Debug|AVR {EAFA506A-B042-4CB2-9335-FBC1D7364EFB}.Debug|AVR.Build.0 = Debug|AVR {EAFA506A-B042-4CB2-9335-FBC1D7364EFB}.Release|AVR.ActiveCfg = Release|AVR {EAFA506A-B042-4CB2-9335-FBC1D7364EFB}.Release|AVR.Build.0 = Release|AVR -======= ->>>>>>> fcffefbb7e2c6dd1fafecca07bf84ecaf04b4fd4 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE