From c6080d47db20bd6c943e1eaec7c4cefc9751115f Mon Sep 17 00:00:00 2001 From: S170H <64917343+S170H@users.noreply.github.com> Date: Mon, 27 Nov 2023 19:09:24 +0100 Subject: [PATCH] Switch to Timer0 --- P1/.vs/P1/v14/.atsuo | Bin 9728 -> 21504 bytes P1/P1/Debug/P1.lss | 2 +- P1/P1/Debug/P1.map | 2 +- P3/.vs/P3/v14/.atsuo | Bin 0 -> 18944 bytes P3/{P3 => }/P3.atsln | 0 P3/P3/.idea/.gitignore | 8 + P3/P3/.idea/P3.iml | 8 + P3/P3/.idea/modules.xml | 8 + P3/P3/.idea/vcs.xml | 6 + P3/P3/.vs/P3/v14/.atsuo | Bin 19456 -> 0 bytes P3/P3/Debug/Makefile | 127 ++++++++ P3/P3/Debug/P3.eep | 1 + P3/P3/Debug/P3.elf | Bin 0 -> 9696 bytes P3/P3/Debug/P3.hex | 27 ++ P3/P3/Debug/P3.lss | 254 ++++++++++++++++ P3/P3/Debug/P3.map | 457 ++++++++++++++++++++++++++++ P3/P3/Debug/P3.srec | 28 ++ P3/P3/Debug/main.d | 37 +++ P3/P3/Debug/main.o | Bin 0 -> 7060 bytes P3/P3/Debug/makedep.mk | 6 + P3/P3/{P3 => }/P3.componentinfo.xml | 0 P3/P3/{P3 => }/P3.cproj | 0 P3/P3/P3/main.c | 53 ---- P3/P3/main.c | 51 ++++ 24 files changed, 1020 insertions(+), 55 deletions(-) create mode 100644 P3/.vs/P3/v14/.atsuo rename P3/{P3 => }/P3.atsln (100%) create mode 100644 P3/P3/.idea/.gitignore create mode 100644 P3/P3/.idea/P3.iml create mode 100644 P3/P3/.idea/modules.xml create mode 100644 P3/P3/.idea/vcs.xml delete mode 100644 P3/P3/.vs/P3/v14/.atsuo create mode 100644 P3/P3/Debug/Makefile create mode 100644 P3/P3/Debug/P3.eep create mode 100644 P3/P3/Debug/P3.elf create mode 100644 P3/P3/Debug/P3.hex create mode 100644 P3/P3/Debug/P3.lss create mode 100644 P3/P3/Debug/P3.map create mode 100644 P3/P3/Debug/P3.srec create mode 100644 P3/P3/Debug/main.d create mode 100644 P3/P3/Debug/main.o create mode 100644 P3/P3/Debug/makedep.mk rename P3/P3/{P3 => }/P3.componentinfo.xml (100%) rename P3/P3/{P3 => }/P3.cproj (100%) delete mode 100644 P3/P3/P3/main.c create mode 100644 P3/P3/main.c diff --git a/P1/.vs/P1/v14/.atsuo b/P1/.vs/P1/v14/.atsuo index c8d44348cd7f7517512a8f77827290b8643e2f4a..613d3cb62a23f792d4b88652d1b7d95c22cf17e7 100644 GIT binary patch literal 21504 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 JBRuW+?|)kOu%!S1 delta 676 zcma)(&re!G5XX0)3nJ{Jyr5`Q5Gb@3DZw8{F-ABvgjPs;X?l=D{{jOEp_i8?CND&u@F4U%X(05}Zr&%e^PQcYc{}!rv`a_p($~&iNY`_} z-|w|6r}DU3a*UFK+b7FPIFkydq}d-V2(^C-S==IB6kCa!5BsgX(5=)$h^~*CMpI_! z(Y;NVMwT{H%GiAZ6IBvjeP+MWoy}DpIHV!;s0(e0WF~-E+4_<%( zusT1~4t}oc=$cGZU2p3#$ehAgb3M64kB~W&TOGqa-@pk7YDR7} z7vn~TX$w?e_+Scdm>V7Fcu*$ByUa zpOk2T0<-6Iz4Fx*780gMlBku)yatO@@dhdDQv=!`3-T=S$!+`;^f`5}R9P(3eC7+?nZZtX W!#4appdb)J;=?R<$$r;$Ec-VAmGSQY diff --git a/P1/P1/Debug/P1.lss b/P1/P1/Debug/P1.lss index 6740920..1a9221e 100644 --- a/P1/P1/Debug/P1.lss +++ b/P1/P1/Debug/P1.lss @@ -1,5 +1,5 @@ -AVRASM ver. 2.2.7 C:\Users\Safak\SynologyDrive\UNI\3. Semester\53107 ARBK\Praktikumsunterlagen\ARBKVS-Praktika\P1\P1\main.asm Tue Nov 14 00:02:30 2023 +AVRASM ver. 2.2.7 C:\Users\Safak\SynologyDrive\UNI\3. Semester\53107 ARBK\Praktikumsunterlagen\ARBKVS-Praktika\P1\P1\main.asm Thu Nov 23 17:48:47 2023 [builtin](2): Including file 'C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\avrasm\inc\m328pdef.inc' C:\Users\Safak\SynologyDrive\UNI\3. Semester\53107 ARBK\Praktikumsunterlagen\ARBKVS-Praktika\P1\P1\main.asm(8): Including file 'C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\avrasm\inc\m328pdef.inc' diff --git a/P1/P1/Debug/P1.map b/P1/P1/Debug/P1.map index 254e5c7..63b1268 100644 --- a/P1/P1/Debug/P1.map +++ b/P1/P1/Debug/P1.map @@ -1,5 +1,5 @@ -AVRASM ver. 2.2.7 C:\Users\Safak\SynologyDrive\UNI\3. Semester\53107 ARBK\Praktikumsunterlagen\ARBKVS-Praktika\P1\P1\main.asm Tue Nov 14 00:02:30 2023 +AVRASM ver. 2.2.7 C:\Users\Safak\SynologyDrive\UNI\3. Semester\53107 ARBK\Praktikumsunterlagen\ARBKVS-Praktika\P1\P1\main.asm Thu Nov 23 17:48:47 2023 EQU SIGNATURE_000 0000001e diff --git a/P3/.vs/P3/v14/.atsuo b/P3/.vs/P3/v14/.atsuo new file mode 100644 index 0000000000000000000000000000000000000000..544d4c647843a1c0d0528269c9e5b0643c3ac8f3 GIT binary patch literal 18944 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 ZKRooh`n66^a+W1Usx+i{}1UrwO{}M literal 0 HcmV?d00001 diff --git a/P3/P3/P3.atsln b/P3/P3.atsln similarity index 100% rename from P3/P3/P3.atsln rename to P3/P3.atsln diff --git a/P3/P3/.idea/.gitignore b/P3/P3/.idea/.gitignore new file mode 100644 index 0000000..13566b8 --- /dev/null +++ b/P3/P3/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/P3/P3/.idea/P3.iml b/P3/P3/.idea/P3.iml new file mode 100644 index 0000000..bc2cd87 --- /dev/null +++ b/P3/P3/.idea/P3.iml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/P3/P3/.idea/modules.xml b/P3/P3/.idea/modules.xml new file mode 100644 index 0000000..3413a3f --- /dev/null +++ b/P3/P3/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/P3/P3/.idea/vcs.xml b/P3/P3/.idea/vcs.xml new file mode 100644 index 0000000..b2bdec2 --- /dev/null +++ b/P3/P3/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/P3/P3/.vs/P3/v14/.atsuo b/P3/P3/.vs/P3/v14/.atsuo deleted file mode 100644 index 90445e0fba94c93793beae4df21fa25ccfd9b5ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19456 zcmeHOTWm8&6<(KK{+3&z7ofmTXiF*0AK&8m(!VXW*Oy$J#FyAfT$k3d*LSZSuP@0@ zkt*JcgoIQH3DioI2OcVlc&r5U1s;%EctVH=E)p*wDk1UMmhap3{@EnXdXwJ`6mp!i zGdnXoXXebAnRCue-g@&Be|-71`~D;xfhU9y3GcplyKt)^-DZdjcM8JocxT$X@4fdP zvlvJ80zN<-NC|EHdcuql5oCm2VV^^38SWKsxjyE1O!(@p6Darm-CE%U zD7J;VumtL5#3I7pgjx<~-z(f?GqU?|?)bMWNQU^TuqCvFrjQT{LQ!boSrH^*UFd)l zHMB++lu@~pf(JpLb3|{$N#%^`alAY~O3?eyes|E4Huxa{(`Z2fC>cK-69@h4wAqF+ zMUEwX1}QI%QaNVt=#4)Ta$ette1;zzg&#*q-hBl4QQ(Jxp9J0o6PUeQxqt}Hv=gL94D^(T#I!%V8}I}A?LZi z59s;E^uhk;)KJ_4KtUIDVK9iap01iFB3;5^U+ zTmX83KA;~M06q%53VaOsIPeMJSAkCggTN3_1creTU=$bw>g_UytE2RFgb85MP!3J| zz`?rEhnCTVwj--pF=!rPq;%0gGob##rJOn)J8xE2&s#x+GDZkN<7q?lYC+rSBDAXa zXkSyNZnD|%LfNuPe;H*dTZ9eJRX{h6zAE5ETBxczSP%LjIb%WpyT0~YrN0EaoLdCy zebn;0;C}(*5Jfwhcvm1@nr1AaB|XR|wNaMj^Pp9aqW_#*q)kvOo$#PM>qWw{9i;_uC)ZS`A6B{ z`ep`a(f`*_;Xg-}vaih%&t)Nx^)LllSOH(s!kj9DlnGixw2tyfnLqO6%;h-Q!LOGp zZ@vE8`}ThFtyk}P;ju5Z|3xC?iV?JRbwpkmeE*G?16TiC`rF%E-(GpU@@pAm9mhBn z5bCn2mmL>A1pXhceO#%-Y1Bn@zNXcY=S{GM1AAI)bJsjKAEg>s>h4@*j;*Y4yqYfJfg`%GGDNlH)Z<`?E&PTx#0674*$hO@2nA~qRse}N2Z4;rN zdg}AIk8c#n8P|Bq!g=X`x*lbw|LgjnUUpn)obTryKS}>P?{-X!p4t9mQU9}XJoWad zLOtO@U4DxCpE`f3gR%`1NUPbjC#Ic6yCt@fXN|4-_Fl)WkHe>Un8w8^dZ->CnIs`jT~KgdD@lAwj_8qiTo0|dsvS@ch% z{AI8U(d$ipk9z)Ledw^RKZZPfN2m9HpN9UV^9bmls_jd^w^jb1hCcWI0d{oyHpan~ z8|**p-+?Yr8ChMM7zx_GRisbmK7DvMss3E{oiMJAN7LvREy{ls?CscAwP~AdbJ*bM0wPS<9ubL|^}p(x?4T8;EvEA6nZa8ZBKXtc)@$WzcB-TD|e4zxdb4on}PRr>Vp>GqEqeO)Kk z_b7aJ3}AoR=!@i-TBUECf8*`HGJ0K6`On#)S%$|*s|lEYs{ftiX_Y>GpkJfX4OqwQ ztHbkA!B`(%d9$hqQ!97Ull}+N<(OKfPhS~zAi^SgS5ntr88X*|3`8;NO*Mtq$Rr^B zTTqDmnN|8m{)e#M@Z^>Kr^KJd{wFK-bB0OnW&Zz|{jc(!yeC-czmfkZuRr@(6X+3Z znpSz1_0Np{D%PPEsPZ0yaV#(OebQykKcccEji2%59I$YBymn#;UT^!{=sW~vd+;{W7&t?QrEgX#Y`Gw@?}T(9IKoQ=g`uO&6@ z>0ZB7YunROcTg)zihYTGl5zpjD>GU6T54_iai87E-<27$-|Y3f(&Mt!?{y2!D>I4y zPP0~Ak@h#*4M~2yoYa9Te;;KrFKoa z^vpnG2ZrU!_$G{N?o&^b*_STe&I)z7O?}aaM&23wk4`AjkW3nv@%rf7<;- z!ddEq+}Kx`d zHfM6@x-Wyb4zv~es%po79afi!lV2~MK7{i)X^Y_JM#>yYgpnFR%&(?|5OX5FfHV(I zO9EIm!gvp$)Hl$m5_~pXI}Ye-_ZN*+X(1ghbJ)+qvX|6*7t?IpRrR*TG;6fubW#GZ zc~Z^ulIOsSEYj>)7imdoo{JDll+fb?uJiWCblY*DH(G52wZ0%kh;lMO+eNgwqPFsq zdXxHijaMzm2JL9-pQ9OgNH(sjw_eQqeLz(^bw7*$hxVU-2B0=&!sEjKbF%(_-u|Cy z*#A`jb(k>pYPQk-yRiR_w|vfa{!d%-H0K{i{$Ke2&Cee!`2TIxfoW574yXb?;bG+e zr1KB1&lCLrr@sGUq|c_FM%y^pFSLD6zyERa-pd=8C+|U4?|&FI9-|JRsj60Vfbsk9 z(fda{3DI|SY7LX%htQF^|JsD_*usxG@jIW3B+otfb$@8y@5XP=>vp>5T&}Qd&hPg* z=bV73-?!ikgx%kuUas*-5Nb~zZ=;$2-Kzgz_q|({|2goBd?T3Ax9b1r$Z`y<(l^Tg z6#W0{|GZGcwo3m2l%1ykpE}@a{Qvi({3AfZ!F<;AzXSc_!vCw^gH;ZBqBXwhPxyb; zap%|*^mMb3@;XKTuZ?GKr|~~u_b8kj8!lrycn_|8PyW}9_s9Eg zF1*M+h5vnQT^IiMlg|dM_pqI`amU1eL&I*>{%Pl&{x|5H$h>|V9Yh4xQ*`8^`u2Xy z;oeQUc9N;xY;r3V*>3Gtl2KQ()~*NrdrQh{A`*#hwHAlrSUNatr`^$DyR%uSB;D2I z(q<*Kns!Ax?N&VFu681^&BfB7D3=nk;&yR%KV9|>`m+Hk;J8*yhmuh-)0|!0-(8M0 zYL1?HQR#b%*j-e1UyySd8V%62k7C~e4*VrPGQL(G(esX}hQ z(`r_Gfvnig=6v(+p?lHW+TE-*GNSA%EM!{=(Yw~z8`cy4y-+k#YAS1;@^Wt37xOq` z(Q??A=!>3^xfx#*0U{k+v{tC_GX~o z&JFgfk=b(H70F3Tuv*JhqYt8VPHLRt5$!{f+$ zqv^obz$@wbSZxYsTPR+gNBcyuW4^s}{vki59CSX*i= zJ0-baT6g3;E6&h-JXrC1L-oRZeL-BB?TY@jC8@dVSogGc`m3=Gd3iWU)s(f>dVT1Q zFE2`pd$Uq1&W6H~+_JwF-7Ga0nyzJcb!)5b4G!JXR&pS2tff-1LAqaamZG6@CFN~Z zHcPokqUzZWw1&%zsdz0JnU7a$?LjWS=jpEv=4dcfo$?Zlu zxT_TF!M;aH$yQCseBEes;Vg={Vn zt>uP+`KFZJFV=dC&JcXA{m{_k>Q_2F(ODF0VyPj95~=0bYAO|6osBs9mBqfO?5}%v zUB0+)w>KMXNBVo4D|;&*_gbQ~?Ti "P3.lss" + "C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-objcopy.exe" -O srec -R .eeprom -R .fuse -R .lock -R .signature -R .user_signatures "P3.elf" "P3.srec" + "C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-size.exe" "P3.elf" + + + + + + + +# Other Targets +clean: + -$(RM) $(OBJS_AS_ARGS) $(EXECUTABLES) + -$(RM) $(C_DEPS_AS_ARGS) + rm -rf "P3.elf" "P3.a" "P3.hex" "P3.lss" "P3.eep" "P3.map" "P3.srec" "P3.usersignatures" + \ No newline at end of file diff --git a/P3/P3/Debug/P3.eep b/P3/P3/Debug/P3.eep new file mode 100644 index 0000000..7c166a1 --- /dev/null +++ b/P3/P3/Debug/P3.eep @@ -0,0 +1 @@ +:00000001FF diff --git a/P3/P3/Debug/P3.elf b/P3/P3/Debug/P3.elf new file mode 100644 index 0000000000000000000000000000000000000000..fc43ada99ea27b7b315538f2c933a9303ed19844 GIT binary patch literal 9696 zcmd6td2n0B9mn_SS(aiuvK^CyTvih2f=H3<*l}*llI%F~AtXCVJEjj=dbTx@B_qip z1PabUDU@mLI4RKd2n>apl2V{RTS}m1I)%=(Wv0grOsCXz+Rk*^0%@5-%e3zIx9>e^ zv!Ul--O29$exKiO&$rs$_nh0q-5rXeFe}(tj9Jm3MMs5(*+h8Dcpi*{aTLLG1V+;(`CFOl?E`^RK-1>g?+;{NROEv*%}@ zm{q>D;`BqlCmnCR>pJr!>UtTGu~ScFR0cS@QkoKF+g|&p6MXd*b-)UF$#b4d+?cnMaxH%wBf%O!BQ8XD4T; zW?g5_fqa>j^jo<8?kn$|nR}%(7~JmO5I7LkTD756LF?=t(E794bYe7~%4kjA7O!9P zZ*BH%bT@mqczyhNdd%mEQjicP5&6R>1pyD;iHs177sm9FcvEBRIBBdK(Z=4vlA)Es z*c9S�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 literal 0 HcmV?d00001 diff --git a/P3/P3/Debug/P3.hex b/P3/P3/Debug/P3.hex new file mode 100644 index 0000000..2bea52f --- /dev/null +++ b/P3/P3/Debug/P3.hex @@ -0,0 +1,27 @@ +:100000000C9434000C9446000C9446000C9446006A +:100010000C9446000C9446000C9446000C94460048 +:100020000C9446000C9446000C9446000C94460038 +:100030000C9446000C9446000C9456000C94460018 +:100040000C9446000C9446000C9446000C94460018 +:100050000C9446000C9446000C9446000C94460008 +:100060000C9446000C94460011241FBECFEFD8E03C +:10007000DEBFCDBF21E0A0E0B1E001C01D92A43001 +:10008000B207E1F70E94B2000C94C8000C94000083 +:1000900084B5826084BD85B5836085BD89EF87BDE9 +:1000A000EEE6F0E080818260808308951F920F92D7 +:1000B0000FB60F9211248F939F93AF93BF938091AC +:1000C000000190910101A0910201B09103010196FC +:1000D000A11DB11D8093000190930101A093020125 +:1000E000B0930301BF91AF919F918F910F900FBE7D +:1000F0000F901F9018950F931F930091000110917E +:1001000001012091020130910301AB01BC01400FBC +:10011000511F621F731F8091000190910101A091F6 +:100120000201B091030184179507A607B70798F35A +:100130001F910F910895AB01BC0180910001909136 +:100140000101A0910201B091030184179507A60750 +:10015000B70798F30895509A08959BB181E08927D5 +:100160008BB908950E94AB000E944800789464EF18 +:1001700071E080E090E00E949B000E94AD0064EF7F +:1001800071E080E090E00E947B000E94AD00F7CF1C +:04019000F894FFCF11 +:00000001FF diff --git a/P3/P3/Debug/P3.lss b/P3/P3/Debug/P3.lss new file mode 100644 index 0000000..c18c044 --- /dev/null +++ b/P3/P3/Debug/P3.lss @@ -0,0 +1,254 @@ + +P3.elf: file format elf32-avr + +Sections: +Idx Name Size VMA LMA File off Algn + 0 .data 00000000 00800100 00800100 00000208 2**0 + CONTENTS, ALLOC, LOAD, DATA + 1 .text 00000194 00000000 00000000 00000074 2**1 + CONTENTS, ALLOC, LOAD, READONLY, CODE + 2 .bss 00000004 00800100 00800100 00000208 2**0 + ALLOC + 3 .comment 00000030 00000000 00000000 00000208 2**0 + CONTENTS, READONLY + 4 .note.gnu.avr.deviceinfo 00000040 00000000 00000000 00000238 2**2 + CONTENTS, READONLY + 5 .debug_aranges 00000050 00000000 00000000 00000278 2**0 + CONTENTS, READONLY, DEBUGGING + 6 .debug_info 000007d8 00000000 00000000 000002c8 2**0 + CONTENTS, READONLY, DEBUGGING + 7 .debug_abbrev 000006b6 00000000 00000000 00000aa0 2**0 + CONTENTS, READONLY, DEBUGGING + 8 .debug_line 000002b4 00000000 00000000 00001156 2**0 + CONTENTS, READONLY, DEBUGGING + 9 .debug_frame 000000b0 00000000 00000000 0000140c 2**2 + CONTENTS, READONLY, DEBUGGING + 10 .debug_str 000003c7 00000000 00000000 000014bc 2**0 + CONTENTS, READONLY, DEBUGGING + 11 .debug_loc 00000092 00000000 00000000 00001883 2**0 + CONTENTS, READONLY, DEBUGGING + 12 .debug_ranges 00000040 00000000 00000000 00001915 2**0 + CONTENTS, READONLY, DEBUGGING + +Disassembly of section .text: + +00000000 <__vectors>: + 0: 0c 94 34 00 jmp 0x68 ; 0x68 <__ctors_end> + 4: 0c 94 46 00 jmp 0x8c ; 0x8c <__bad_interrupt> + 8: 0c 94 46 00 jmp 0x8c ; 0x8c <__bad_interrupt> + c: 0c 94 46 00 jmp 0x8c ; 0x8c <__bad_interrupt> + 10: 0c 94 46 00 jmp 0x8c ; 0x8c <__bad_interrupt> + 14: 0c 94 46 00 jmp 0x8c ; 0x8c <__bad_interrupt> + 18: 0c 94 46 00 jmp 0x8c ; 0x8c <__bad_interrupt> + 1c: 0c 94 46 00 jmp 0x8c ; 0x8c <__bad_interrupt> + 20: 0c 94 46 00 jmp 0x8c ; 0x8c <__bad_interrupt> + 24: 0c 94 46 00 jmp 0x8c ; 0x8c <__bad_interrupt> + 28: 0c 94 46 00 jmp 0x8c ; 0x8c <__bad_interrupt> + 2c: 0c 94 46 00 jmp 0x8c ; 0x8c <__bad_interrupt> + 30: 0c 94 46 00 jmp 0x8c ; 0x8c <__bad_interrupt> + 34: 0c 94 46 00 jmp 0x8c ; 0x8c <__bad_interrupt> + 38: 0c 94 56 00 jmp 0xac ; 0xac <__vector_14> + 3c: 0c 94 46 00 jmp 0x8c ; 0x8c <__bad_interrupt> + 40: 0c 94 46 00 jmp 0x8c ; 0x8c <__bad_interrupt> + 44: 0c 94 46 00 jmp 0x8c ; 0x8c <__bad_interrupt> + 48: 0c 94 46 00 jmp 0x8c ; 0x8c <__bad_interrupt> + 4c: 0c 94 46 00 jmp 0x8c ; 0x8c <__bad_interrupt> + 50: 0c 94 46 00 jmp 0x8c ; 0x8c <__bad_interrupt> + 54: 0c 94 46 00 jmp 0x8c ; 0x8c <__bad_interrupt> + 58: 0c 94 46 00 jmp 0x8c ; 0x8c <__bad_interrupt> + 5c: 0c 94 46 00 jmp 0x8c ; 0x8c <__bad_interrupt> + 60: 0c 94 46 00 jmp 0x8c ; 0x8c <__bad_interrupt> + 64: 0c 94 46 00 jmp 0x8c ; 0x8c <__bad_interrupt> + +00000068 <__ctors_end>: + 68: 11 24 eor r1, r1 + 6a: 1f be out 0x3f, r1 ; 63 + 6c: cf ef ldi r28, 0xFF ; 255 + 6e: d8 e0 ldi r29, 0x08 ; 8 + 70: de bf out 0x3e, r29 ; 62 + 72: cd bf out 0x3d, r28 ; 61 + +00000074 <__do_clear_bss>: + 74: 21 e0 ldi r18, 0x01 ; 1 + 76: a0 e0 ldi r26, 0x00 ; 0 + 78: b1 e0 ldi r27, 0x01 ; 1 + 7a: 01 c0 rjmp .+2 ; 0x7e <.do_clear_bss_start> + +0000007c <.do_clear_bss_loop>: + 7c: 1d 92 st X+, r1 + +0000007e <.do_clear_bss_start>: + 7e: a4 30 cpi r26, 0x04 ; 4 + 80: b2 07 cpc r27, r18 + 82: e1 f7 brne .-8 ; 0x7c <.do_clear_bss_loop> + 84: 0e 94 b2 00 call 0x164 ; 0x164

+ 88: 0c 94 c8 00 jmp 0x190 ; 0x190 <_exit> + +0000008c <__bad_interrupt>: + 8c: 0c 94 00 00 jmp 0 ; 0x0 <__vectors> + +00000090 : + +volatile uint32_t systemClock = 0; + +void setupTimer0() { + // Configure Timer0 for CTC mode + TCCR0A |= (1 << WGM01); // Set Waveform Generation Mode bits for CTC + 90: 84 b5 in r24, 0x24 ; 36 + 92: 82 60 ori r24, 0x02 ; 2 + 94: 84 bd out 0x24, r24 ; 36 + TCCR0B |= (1 << CS01) | (1 << CS00); // Set prescaler to 64 + 96: 85 b5 in r24, 0x25 ; 37 + 98: 83 60 ori r24, 0x03 ; 3 + 9a: 85 bd out 0x25, r24 ; 37 + OCR0A = 249; // Set Output Compare Register to 249 for ~1ms interrupt + 9c: 89 ef ldi r24, 0xF9 ; 249 + 9e: 87 bd out 0x27, r24 ; 39 + TIMSK0 |= (1 << OCIE0A); // Enable Timer0 Output Compare A Match interrupt + a0: ee e6 ldi r30, 0x6E ; 110 + a2: f0 e0 ldi r31, 0x00 ; 0 + a4: 80 81 ld r24, Z + a6: 82 60 ori r24, 0x02 ; 2 + a8: 80 83 st Z, r24 + aa: 08 95 ret + +000000ac <__vector_14>: +} + +// Timer0 Output Compare A Match Interrupt Service Routine +ISR(TIMER0_COMPA_vect) { + ac: 1f 92 push r1 + ae: 0f 92 push r0 + b0: 0f b6 in r0, 0x3f ; 63 + b2: 0f 92 push r0 + b4: 11 24 eor r1, r1 + b6: 8f 93 push r24 + b8: 9f 93 push r25 + ba: af 93 push r26 + bc: bf 93 push r27 + systemClock++; // Increment the milliseconds counter + be: 80 91 00 01 lds r24, 0x0100 ; 0x800100 <_edata> + c2: 90 91 01 01 lds r25, 0x0101 ; 0x800101 <_edata+0x1> + c6: a0 91 02 01 lds r26, 0x0102 ; 0x800102 <_edata+0x2> + ca: b0 91 03 01 lds r27, 0x0103 ; 0x800103 <_edata+0x3> + ce: 01 96 adiw r24, 0x01 ; 1 + d0: a1 1d adc r26, r1 + d2: b1 1d adc r27, r1 + d4: 80 93 00 01 sts 0x0100, r24 ; 0x800100 <_edata> + d8: 90 93 01 01 sts 0x0101, r25 ; 0x800101 <_edata+0x1> + dc: a0 93 02 01 sts 0x0102, r26 ; 0x800102 <_edata+0x2> + e0: b0 93 03 01 sts 0x0103, r27 ; 0x800103 <_edata+0x3> +} + e4: bf 91 pop r27 + e6: af 91 pop r26 + e8: 9f 91 pop r25 + ea: 8f 91 pop r24 + ec: 0f 90 pop r0 + ee: 0f be out 0x3f, r0 ; 63 + f0: 0f 90 pop r0 + f2: 1f 90 pop r1 + f4: 18 95 reti + +000000f6 : + +void waitFor(uint32_t ms) { + f6: 0f 93 push r16 + f8: 1f 93 push r17 + uint32_t endTime = systemClock + ms; + fa: 00 91 00 01 lds r16, 0x0100 ; 0x800100 <_edata> + fe: 10 91 01 01 lds r17, 0x0101 ; 0x800101 <_edata+0x1> + 102: 20 91 02 01 lds r18, 0x0102 ; 0x800102 <_edata+0x2> + 106: 30 91 03 01 lds r19, 0x0103 ; 0x800103 <_edata+0x3> + 10a: ab 01 movw r20, r22 + 10c: bc 01 movw r22, r24 + 10e: 40 0f add r20, r16 + 110: 51 1f adc r21, r17 + 112: 62 1f adc r22, r18 + 114: 73 1f adc r23, r19 + while (systemClock < endTime); + 116: 80 91 00 01 lds r24, 0x0100 ; 0x800100 <_edata> + 11a: 90 91 01 01 lds r25, 0x0101 ; 0x800101 <_edata+0x1> + 11e: a0 91 02 01 lds r26, 0x0102 ; 0x800102 <_edata+0x2> + 122: b0 91 03 01 lds r27, 0x0103 ; 0x800103 <_edata+0x3> + 126: 84 17 cp r24, r20 + 128: 95 07 cpc r25, r21 + 12a: a6 07 cpc r26, r22 + 12c: b7 07 cpc r27, r23 + 12e: 98 f3 brcs .-26 ; 0x116 +} + 130: 1f 91 pop r17 + 132: 0f 91 pop r16 + 134: 08 95 ret + +00000136 : + +void waitUntil(uint32_t ms) { + 136: ab 01 movw r20, r22 + 138: bc 01 movw r22, r24 + while (systemClock < ms); + 13a: 80 91 00 01 lds r24, 0x0100 ; 0x800100 <_edata> + 13e: 90 91 01 01 lds r25, 0x0101 ; 0x800101 <_edata+0x1> + 142: a0 91 02 01 lds r26, 0x0102 ; 0x800102 <_edata+0x2> + 146: b0 91 03 01 lds r27, 0x0103 ; 0x800103 <_edata+0x3> + 14a: 84 17 cp r24, r20 + 14c: 95 07 cpc r25, r21 + 14e: a6 07 cpc r26, r22 + 150: b7 07 cpc r27, r23 + 152: 98 f3 brcs .-26 ; 0x13a +} + 154: 08 95 ret + +00000156 : + +void initializeLED() { + DDRD |= (1 << LED_PIN); // Set LED_PIN as an output + 156: 50 9a sbi 0x0a, 0 ; 10 + 158: 08 95 ret + +0000015a : +} + +void toggleLED() { + PORTD ^= (1 << LED_PIN); // Toggle the LED + 15a: 9b b1 in r25, 0x0b ; 11 + 15c: 81 e0 ldi r24, 0x01 ; 1 + 15e: 89 27 eor r24, r25 + 160: 8b b9 out 0x0b, r24 ; 11 + 162: 08 95 ret + +00000164
: +} + +int main(void) { + initializeLED(); // Initialize the LED pin + 164: 0e 94 ab 00 call 0x156 ; 0x156 + setupTimer0(); // Setup Timer0 + 168: 0e 94 48 00 call 0x90 ; 0x90 + sei(); // Enable global interrupts + 16c: 78 94 sei + + waitUntil(500); // Wait until 500 ms have passed + 16e: 64 ef ldi r22, 0xF4 ; 244 + 170: 71 e0 ldi r23, 0x01 ; 1 + 172: 80 e0 ldi r24, 0x00 ; 0 + 174: 90 e0 ldi r25, 0x00 ; 0 + 176: 0e 94 9b 00 call 0x136 ; 0x136 + toggleLED(); // Toggle the LED to turn it on + 17a: 0e 94 ad 00 call 0x15a ; 0x15a + + while (1) { + waitFor(500); // Wait for 500 ms + 17e: 64 ef ldi r22, 0xF4 ; 244 + 180: 71 e0 ldi r23, 0x01 ; 1 + 182: 80 e0 ldi r24, 0x00 ; 0 + 184: 90 e0 ldi r25, 0x00 ; 0 + 186: 0e 94 7b 00 call 0xf6 ; 0xf6 + toggleLED(); // Toggle the LED + 18a: 0e 94 ad 00 call 0x15a ; 0x15a + 18e: f7 cf rjmp .-18 ; 0x17e + +00000190 <_exit>: + 190: f8 94 cli + +00000192 <__stop_program>: + 192: ff cf rjmp .-2 ; 0x192 <__stop_program> diff --git a/P3/P3/Debug/P3.map b/P3/P3/Debug/P3.map new file mode 100644 index 0000000..ec43bd2 --- /dev/null +++ b/P3/P3/Debug/P3.map @@ -0,0 +1,457 @@ +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/avr5\libgcc.a(_exit.o) + C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.209/gcc/dev/atmega328p/avr5/crtatmega328p.o (exit) +c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_clear_bss.o) + main.o (__do_clear_bss) + +Discarded input sections + + .data 0x00000000 0x0 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.209/gcc/dev/atmega328p/avr5/crtatmega328p.o + .bss 0x00000000 0x0 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.209/gcc/dev/atmega328p/avr5/crtatmega328p.o + .text 0x00000000 0x0 main.o + .data 0x00000000 0x0 main.o + .bss 0x00000000 0x0 main.o + .text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\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/avr5\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/avr5\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/avr5\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/avr5\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/avr5\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/avr5\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/avr5\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/avr5\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/avr5\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/avr5\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/avr5\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/avr5\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/avr5\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/avr5\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/avr5\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/avr5\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/avr5\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/avr5\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/avr5\libgcc.a(_clear_bss.o) + +Memory Configuration + +Name Origin Length Attributes +text 0x00000000 0x00020000 xr +data 0x00800060 0x0000ffa0 rw !x +eeprom 0x00810000 0x00010000 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.2.209/gcc/dev/atmega328p/avr5/crtatmega328p.o +LOAD main.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/avr5\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/avr5\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/avr5\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/avr5\libc.a +LOAD C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.209/gcc/dev/atmega328p/avr5\libatmega328p.a +END GROUP + 0x00020000 __TEXT_REGION_LENGTH__ = DEFINED (__TEXT_REGION_LENGTH__)?__TEXT_REGION_LENGTH__:0x20000 + 0x0000ffa0 __DATA_REGION_LENGTH__ = DEFINED (__DATA_REGION_LENGTH__)?__DATA_REGION_LENGTH__:0xffa0 + 0x00010000 __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 0x194 + *(.vectors) + .vectors 0x00000000 0x68 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.209/gcc/dev/atmega328p/avr5/crtatmega328p.o + 0x00000000 __vector_default + 0x00000000 __vectors + *(.vectors) + *(.progmem.gcc*) + 0x00000068 . = ALIGN (0x2) + 0x00000068 __trampolines_start = . + *(.trampolines) + .trampolines 0x00000068 0x0 linker stubs + *(.trampolines*) + 0x00000068 __trampolines_end = . + *libprintf_flt.a:*(.progmem.data) + *libc.a:*(.progmem.data) + *(.progmem*) + 0x00000068 . = ALIGN (0x2) + *(.jumptables) + *(.jumptables*) + *(.lowtext) + *(.lowtext*) + 0x00000068 __ctors_start = . + *(.ctors) + 0x00000068 __ctors_end = . + 0x00000068 __dtors_start = . + *(.dtors) + 0x00000068 __dtors_end = . + SORT(*)(.ctors) + SORT(*)(.dtors) + *(.init0) + .init0 0x00000068 0x0 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.209/gcc/dev/atmega328p/avr5/crtatmega328p.o + 0x00000068 __init + *(.init0) + *(.init1) + *(.init1) + *(.init2) + .init2 0x00000068 0xc C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.209/gcc/dev/atmega328p/avr5/crtatmega328p.o + *(.init2) + *(.init3) + *(.init3) + *(.init4) + .init4 0x00000074 0x10 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_clear_bss.o) + 0x00000074 __do_clear_bss + *(.init4) + *(.init5) + *(.init5) + *(.init6) + *(.init6) + *(.init7) + *(.init7) + *(.init8) + *(.init8) + *(.init9) + .init9 0x00000084 0x8 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.209/gcc/dev/atmega328p/avr5/crtatmega328p.o + *(.init9) + *(.text) + .text 0x0000008c 0x4 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.209/gcc/dev/atmega328p/avr5/crtatmega328p.o + 0x0000008c __vector_22 + 0x0000008c __vector_1 + 0x0000008c __vector_24 + 0x0000008c __vector_12 + 0x0000008c __bad_interrupt + 0x0000008c __vector_6 + 0x0000008c __vector_3 + 0x0000008c __vector_23 + 0x0000008c __vector_25 + 0x0000008c __vector_11 + 0x0000008c __vector_13 + 0x0000008c __vector_17 + 0x0000008c __vector_19 + 0x0000008c __vector_7 + 0x0000008c __vector_5 + 0x0000008c __vector_4 + 0x0000008c __vector_9 + 0x0000008c __vector_2 + 0x0000008c __vector_21 + 0x0000008c __vector_15 + 0x0000008c __vector_8 + 0x0000008c __vector_10 + 0x0000008c __vector_16 + 0x0000008c __vector_18 + 0x0000008c __vector_20 + 0x00000090 . = ALIGN (0x2) + *(.text.*) + .text.setupTimer0 + 0x00000090 0x1c main.o + 0x00000090 setupTimer0 + .text.__vector_14 + 0x000000ac 0x4a main.o + 0x000000ac __vector_14 + .text.waitFor 0x000000f6 0x40 main.o + 0x000000f6 waitFor + .text.waitUntil + 0x00000136 0x20 main.o + 0x00000136 waitUntil + .text.initializeLED + 0x00000156 0x4 main.o + 0x00000156 initializeLED + .text.toggleLED + 0x0000015a 0xa main.o + 0x0000015a toggleLED + .text.main 0x00000164 0x2c main.o + 0x00000164 main + 0x00000190 . = ALIGN (0x2) + *(.fini9) + .fini9 0x00000190 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_exit.o) + 0x00000190 _exit + 0x00000190 exit + *(.fini9) + *(.fini8) + *(.fini8) + *(.fini7) + *(.fini7) + *(.fini6) + *(.fini6) + *(.fini5) + *(.fini5) + *(.fini4) + *(.fini4) + *(.fini3) + *(.fini3) + *(.fini2) + *(.fini2) + *(.fini1) + *(.fini1) + *(.fini0) + .fini0 0x00000190 0x4 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_exit.o) + *(.fini0) + 0x00000194 _etext = . + +.data 0x00800100 0x0 load address 0x00000194 + [!provide] PROVIDE (__data_start, .) + *(.data) + *(.data*) + *(.gnu.linkonce.d*) + *(.rodata) + *(.rodata*) + *(.gnu.linkonce.r*) + 0x00800100 . = ALIGN (0x2) + 0x00800100 _edata = . + [!provide] PROVIDE (__data_end, .) + +.bss 0x00800100 0x4 + 0x00800100 PROVIDE (__bss_start, .) + *(.bss) + *(.bss*) + .bss.systemClock + 0x00800100 0x4 main.o + 0x00800100 systemClock + *(COMMON) + 0x00800104 PROVIDE (__bss_end, .) + 0x00000194 __data_load_start = LOADADDR (.data) + 0x00000194 __data_load_end = (__data_load_start + SIZEOF (.data)) + +.noinit 0x00800104 0x0 + [!provide] PROVIDE (__noinit_start, .) + *(.noinit*) + [!provide] PROVIDE (__noinit_end, .) + 0x00800104 _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 0x30 + *(.comment) + .comment 0x00000000 0x30 main.o + 0x31 (size before relaxing) + +.note.gnu.avr.deviceinfo + 0x00000000 0x40 + .note.gnu.avr.deviceinfo + 0x00000000 0x40 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.209/gcc/dev/atmega328p/avr5/crtatmega328p.o + +.note.gnu.build-id + *(.note.gnu.build-id) + +.debug + *(.debug) + +.line + *(.line) + +.debug_srcinfo + *(.debug_srcinfo) + +.debug_sfnames + *(.debug_sfnames) + +.debug_aranges 0x00000000 0x50 + *(.debug_aranges) + .debug_aranges + 0x00000000 0x50 main.o + +.debug_pubnames + *(.debug_pubnames) + +.debug_info 0x00000000 0x7d8 + *(.debug_info .gnu.linkonce.wi.*) + .debug_info 0x00000000 0x5f4 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.209/gcc/dev/atmega328p/avr5/crtatmega328p.o + .debug_info 0x000005f4 0x1e4 main.o + +.debug_abbrev 0x00000000 0x6b6 + *(.debug_abbrev) + .debug_abbrev 0x00000000 0x5a2 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.209/gcc/dev/atmega328p/avr5/crtatmega328p.o + .debug_abbrev 0x000005a2 0x114 main.o + +.debug_line 0x00000000 0x2b4 + *(.debug_line .debug_line.* .debug_line_end) + .debug_line 0x00000000 0x133 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.209/gcc/dev/atmega328p/avr5/crtatmega328p.o + .debug_line 0x00000133 0x181 main.o + +.debug_frame 0x00000000 0xb0 + *(.debug_frame) + .debug_frame 0x00000000 0xb0 main.o + +.debug_str 0x00000000 0x3c7 + *(.debug_str) + .debug_str 0x00000000 0x208 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.209/gcc/dev/atmega328p/avr5/crtatmega328p.o + .debug_str 0x00000208 0x1bf main.o + 0x1f3 (size before relaxing) + +.debug_loc 0x00000000 0x92 + *(.debug_loc) + .debug_loc 0x00000000 0x92 main.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 0x40 + *(.debug_ranges) + .debug_ranges 0x00000000 0x40 main.o + +.debug_macro + *(.debug_macro) +OUTPUT(P3.elf elf32-avr) +LOAD linker stubs diff --git a/P3/P3/Debug/P3.srec b/P3/P3/Debug/P3.srec new file mode 100644 index 0000000..8e93f0d --- /dev/null +++ b/P3/P3/Debug/P3.srec @@ -0,0 +1,28 @@ +S00A000050332E7372656397 +S11300000C9434000C9446000C9446000C94460066 +S11300100C9446000C9446000C9446000C94460044 +S11300200C9446000C9446000C9446000C94460034 +S11300300C9446000C9446000C9456000C94460014 +S11300400C9446000C9446000C9446000C94460014 +S11300500C9446000C9446000C9446000C94460004 +S11300600C9446000C94460011241FBECFEFD8E038 +S1130070DEBFCDBF21E0A0E0B1E001C01D92A430FD +S1130080B207E1F70E94B2000C94C8000C9400007F +S113009084B5826084BD85B5836085BD89EF87BDE5 +S11300A0EEE6F0E080818260808308951F920F92D3 +S11300B00FB60F9211248F939F93AF93BF938091A8 +S11300C0000190910101A0910201B09103010196F8 +S11300D0A11DB11D8093000190930101A093020121 +S11300E0B0930301BF91AF919F918F910F900FBE79 +S11300F00F901F9018950F931F930091000110917A +S113010001012091020130910301AB01BC01400FB8 +S1130110511F621F731F8091000190910101A091F2 +S11301200201B091030184179507A607B70798F356 +S11301301F910F910895AB01BC0180910001909132 +S11301400101A0910201B091030184179507A6074C +S1130150B70798F30895509A08959BB181E08927D1 +S11301608BB908950E94AB000E944800789464EF14 +S113017071E080E090E00E949B000E94AD0064EF7B +S113018071E080E090E00E947B000E94AD00F7CF18 +S1070190F894FFCF0D +S9030000FC diff --git a/P3/P3/Debug/main.d b/P3/P3/Debug/main.d new file mode 100644 index 0000000..8b670a9 --- /dev/null +++ b/P3/P3/Debug/main.d @@ -0,0 +1,37 @@ +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.2.209\include/avr/iom328p.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\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.2.209\include/avr/iom328p.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\avr\interrupt.h: diff --git a/P3/P3/Debug/main.o b/P3/P3/Debug/main.o new file mode 100644 index 0000000000000000000000000000000000000000..a09028b22d6ac40410b29e032ffd379605401c39 GIT binary patch literal 7060 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 E1=Wo6CjbBd literal 0 HcmV?d00001 diff --git a/P3/P3/Debug/makedep.mk b/P3/P3/Debug/makedep.mk new file mode 100644 index 0000000..6a14fde --- /dev/null +++ b/P3/P3/Debug/makedep.mk @@ -0,0 +1,6 @@ +################################################################################ +# Automatically-generated file. Do not edit or delete the file +################################################################################ + +main.c + diff --git a/P3/P3/P3/P3.componentinfo.xml b/P3/P3/P3.componentinfo.xml similarity index 100% rename from P3/P3/P3/P3.componentinfo.xml rename to P3/P3/P3.componentinfo.xml diff --git a/P3/P3/P3/P3.cproj b/P3/P3/P3.cproj similarity index 100% rename from P3/P3/P3/P3.cproj rename to P3/P3/P3.cproj diff --git a/P3/P3/P3/main.c b/P3/P3/P3/main.c deleted file mode 100644 index cd549fa..0000000 --- a/P3/P3/P3/main.c +++ /dev/null @@ -1,53 +0,0 @@ -/* - * P3.c - * - * Created: 22.11.2023 18:20:05 - * Author : Safak - */ - -#define F_CPU 16000000UL -#include - -#define LED PIND0 - -volatile uint32_t systemClk = 0; - -void setUp_Timer0() { - TCCR0A = (1 << WGM01); // enable CTC mode of Timer/Counter 0 Control Register A - TCCR0B |= (1 << CS01) | (1 << CS00); // set Prescaler 64 - OCR0A = 249; // set up Output Comparison Register A for Timer0 to generate an interrupt when timer counter and OCR0A are equals - - // F_TimerInterrupt = F_clk / ( (prescaler) x (OCR + 1) ) - // => OCR = F_clk / (F_TimerInterrupt x prescaler) - 1 = ( 16MHz/(1000Hz x 64) ) - 1 = 249 - TIMSK0 = (1 << OCIE0A); // enable interrupt -} - -ISR(TIMER0_COMPA_vect) { - systemClk++; -} - -void waitFor(uint32_t ms) { - uint32_t currentTime = systemClk + ms; - while (systemClk < currentTime) {} -} - -void waitUntil(uint32_t ms) { - while (systemClk <= ms) {} -} - -int main(void) { - /* Replace with your application code */ - - DDRD = 0xff; // Data direction register D (D0) as output - PORTD = 0x00; - setUp_Timer0(); - sei(); // set global interrupt enable - - waitUntil(5000); // wait until 5s from the beginning then turn on LED - PORTD |= (1 << LED); // setting bit for LED - - while (1) { - waitFor(200); // wait for 0.2s then toggle LED - PORTD ^= (1 << LED); // toggling LED - } -} \ No newline at end of file diff --git a/P3/P3/main.c b/P3/P3/main.c new file mode 100644 index 0000000..102ef3a --- /dev/null +++ b/P3/P3/main.c @@ -0,0 +1,51 @@ +#include +#include + +#define F_CPU 16000000UL // 16MHz clock frequency +#define LED_PIN PD0 // LED is connected to Pin D0 + +volatile uint32_t systemClock = 0; + +void setupTimer0() { + // Configure Timer0 for CTC mode + TCCR0A |= (1 << WGM01); // Set Waveform Generation Mode bits for CTC + TCCR0B |= (1 << CS01) | (1 << CS00); // Set prescaler to 64 + OCR0A = 249; // Set Output Compare Register to 249 for ~1ms interrupt + TIMSK0 |= (1 << OCIE0A); // Enable Timer0 Output Compare A Match interrupt +} + +// Timer0 Output Compare A Match Interrupt Service Routine +ISR(TIMER0_COMPA_vect) { + systemClock++; // Increment the milliseconds counter +} + +void waitFor(uint32_t ms) { + uint32_t endTime = systemClock + ms; + while (systemClock < endTime); +} + +void waitUntil(uint32_t ms) { + while (systemClock < ms); +} + +void initializeLED() { + DDRD |= (1 << LED_PIN); // Set LED_PIN as an output +} + +void toggleLED() { + PORTD ^= (1 << LED_PIN); // Toggle the LED +} + +int main(void) { + initializeLED(); // Initialize the LED pin + setupTimer0(); // Setup Timer0 + sei(); // Enable global interrupts + + waitUntil(500); // Wait until 500 ms have passed + toggleLED(); // Toggle the LED to turn it on + + while (1) { + waitFor(500); // Wait for 500 ms + toggleLED(); // Toggle the LED + } +} \ No newline at end of file