From be0247a93bc788e3e1816d24a50c1239063ed1ca Mon Sep 17 00:00:00 2001 From: S170H <64917343+S170H@users.noreply.github.com> Date: Wed, 22 Nov 2023 18:25:14 +0100 Subject: [PATCH] P3 initial --- .gitignore | 52 -- Abgaben/Hazinedar_3108590_ARBKVS_2.zip | Bin 0 -> 87214 bytes .../P2/Hazinedar_3108590_ARBKVS_2_Interrupt.c | 68 ++ .../P2/Hazinedar_3108590_ARBKVS_2_Polling.c | 62 ++ Abgaben/P2/Hazinedar_3108590_ARBKVS_2_UML.pdf | Bin 0 -> 105424 bytes P1/.vs/P1/v14/.atsuo | Bin 32256 -> 9728 bytes P1/.vscode/c_cpp_properties.json | 18 - P1/.vscode/launch.json | 15 - P1/.vscode/settings.json | 59 -- P1/P1/Debug/P1.hex | 8 + P1/P1/Debug/P1.lss | 6 +- P1/P1/Debug/P1.map | 704 ++++++++++++++++++ P1/P1/Debug/P1.obj | Bin 0 -> 644 bytes P1/P1/Debug/P1.tmp | 20 +- P2/.vs/P2/v14/.atsuo | Bin 19968 -> 0 bytes P2/P2 Interrups/.vs/P2 Interrups/v14/.atsuo | Bin 22528 -> 28160 bytes P2/P2 Interrups/P2 Interrups/Debug/Makefile | 122 +++ .../P2 Interrups/Debug/libP2 Interrups.a | Bin 0 -> 6598 bytes P2/P2 Interrups/P2 Interrups/Debug/main.d | 49 ++ P2/P2 Interrups/P2 Interrups/Debug/main.o | Bin 0 -> 6388 bytes P2/P2 Interrups/P2 Interrups/Debug/makedep.mk | 6 + P2/P2 Interrups/P2 Interrups/main.c | 60 +- P2/P2 Pooling/.vs/P2 Pooling/v14/.atsuo | Bin 19968 -> 24064 bytes P2/P2 Pooling/P2 Pooling/Debug/Makefile | 127 ++++ P2/P2 Pooling/P2 Pooling/Debug/P2 Pooling.eep | 1 + P2/P2 Pooling/P2 Pooling/Debug/P2 Pooling.elf | Bin 0 -> 9272 bytes P2/P2 Pooling/P2 Pooling/Debug/P2 Pooling.hex | 25 + P2/P2 Pooling/P2 Pooling/Debug/P2 Pooling.lss | 248 ++++++ P2/P2 Pooling/P2 Pooling/Debug/P2 Pooling.map | 470 ++++++++++++ .../P2 Pooling/Debug/P2 Pooling.srec | 26 + P2/P2 Pooling/P2 Pooling/Debug/main.d | 46 ++ P2/P2 Pooling/P2 Pooling/Debug/main.o | Bin 0 -> 5468 bytes P2/P2 Pooling/P2 Pooling/Debug/makedep.mk | 6 + P2/P2 Pooling/P2 Pooling/P2 Pooling.cproj | 153 ++-- P2/P2 Pooling/P2 Pooling/main.c | 81 +- P3/P3/.vs/P3/v14/.atsuo | Bin 0 -> 19456 bytes P3/P3/P3.atsln | 22 + P3/P3/P3/P3.componentinfo.xml | 86 +++ P3/P3/P3/P3.cproj | 116 +++ P3/P3/P3/main.c | 53 ++ 40 files changed, 2406 insertions(+), 303 deletions(-) delete mode 100644 .gitignore create mode 100644 Abgaben/Hazinedar_3108590_ARBKVS_2.zip create mode 100644 Abgaben/P2/Hazinedar_3108590_ARBKVS_2_Interrupt.c create mode 100644 Abgaben/P2/Hazinedar_3108590_ARBKVS_2_Polling.c create mode 100644 Abgaben/P2/Hazinedar_3108590_ARBKVS_2_UML.pdf delete mode 100644 P1/.vscode/c_cpp_properties.json delete mode 100644 P1/.vscode/launch.json delete mode 100644 P1/.vscode/settings.json create mode 100644 P1/P1/Debug/P1.hex create mode 100644 P1/P1/Debug/P1.map create mode 100644 P1/P1/Debug/P1.obj delete mode 100644 P2/.vs/P2/v14/.atsuo create mode 100644 P2/P2 Interrups/P2 Interrups/Debug/Makefile create mode 100644 P2/P2 Interrups/P2 Interrups/Debug/libP2 Interrups.a create mode 100644 P2/P2 Interrups/P2 Interrups/Debug/main.d create mode 100644 P2/P2 Interrups/P2 Interrups/Debug/main.o create mode 100644 P2/P2 Interrups/P2 Interrups/Debug/makedep.mk create mode 100644 P2/P2 Pooling/P2 Pooling/Debug/Makefile create mode 100644 P2/P2 Pooling/P2 Pooling/Debug/P2 Pooling.eep create mode 100644 P2/P2 Pooling/P2 Pooling/Debug/P2 Pooling.elf create mode 100644 P2/P2 Pooling/P2 Pooling/Debug/P2 Pooling.hex create mode 100644 P2/P2 Pooling/P2 Pooling/Debug/P2 Pooling.lss create mode 100644 P2/P2 Pooling/P2 Pooling/Debug/P2 Pooling.map create mode 100644 P2/P2 Pooling/P2 Pooling/Debug/P2 Pooling.srec create mode 100644 P2/P2 Pooling/P2 Pooling/Debug/main.d create mode 100644 P2/P2 Pooling/P2 Pooling/Debug/main.o create mode 100644 P2/P2 Pooling/P2 Pooling/Debug/makedep.mk create mode 100644 P3/P3/.vs/P3/v14/.atsuo create mode 100644 P3/P3/P3.atsln create mode 100644 P3/P3/P3/P3.componentinfo.xml create mode 100644 P3/P3/P3/P3.cproj create mode 100644 P3/P3/P3/main.c diff --git a/.gitignore b/.gitignore deleted file mode 100644 index c6127b3..0000000 --- a/.gitignore +++ /dev/null @@ -1,52 +0,0 @@ -# Prerequisites -*.d - -# Object files -*.o -*.ko -*.obj -*.elf - -# Linker output -*.ilk -*.map -*.exp - -# Precompiled Headers -*.gch -*.pch - -# Libraries -*.lib -*.a -*.la -*.lo - -# Shared objects (inc. Windows DLLs) -*.dll -*.so -*.so.* -*.dylib - -# Executables -*.exe -*.out -*.app -*.i*86 -*.x86_64 -*.hex - -# Debug files -*.dSYM/ -*.su -*.idb -*.pdb - -# Kernel Module Compile Results -*.mod* -*.cmd -.tmp_versions/ -modules.order -Module.symvers -Mkfile.old -dkms.conf diff --git a/Abgaben/Hazinedar_3108590_ARBKVS_2.zip b/Abgaben/Hazinedar_3108590_ARBKVS_2.zip new file mode 100644 index 0000000000000000000000000000000000000000..9e994441a032da7a410e988ed165867913825284 GIT binary patch literal 87214 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%0DC$j6n^}Gk^`!3h*a$ z`aOvI^(b{A@JT>^YX;s_nNW>aGd9CaAJJAXzb0_MMnx$vOlh&^5Fat~Wz}6Dw4~13 zOXgpaymV+P@o3fd^bDW2Y7se%(&T*~h14>S`kwiSh=~)-_LLN)>A)u0wGd%ad!;V4 zRlcSd`MUalr|y(MNHDp)1>l5PORxfpnBh%A8@$a23(a4ud__mtB6Zpt?vFo!4qFfuAal=glz)=p zSP>>Z1s?)F@2;%NI4*>+3v_b9I@85N^0)WSi1RpK@F+)<@?9&x`~gHP-}wWF^vdMp z4-w~AZzmN|on`@d56TQITn&l%-UHQQfz4eP%l1zeB}8W*0%v@KcvMJR6!@~vjmR=Z zUV!y7KdVB8!Gq<8FA7n+9Z3~wr#+-Qbk|)4gL-!kV3lt4hJ?6GE@FIjf7U|3#-h&U z-ES_Q5CQ9v8y9}s^_vd+XFYFoO)GJI4Dd^pF7JWBx3XD1X%U9f%N?Uf!&)M)T#Q6# zggyjYfFCS}6fW9?CRo97Z+HNu_cne+ay*m_hzVPDvFd2P#c(;pzGL`l=LuP?n~gTq z2FMO$WR{{1YZn#jzYm<)29BP3v1rZbK|Bh=qw&jbc!SmYP=Dwy%&X}K_a3Z(iN%qO zBTsHN=u1J%A%x=$TdioEcP@zZO}@`xlrmrzKNd@vh+0|uP?wDFX?2ECS&W^%;sFDE zA9H_}BELn<*m17e(=IuFvZh@YR@<`>FQ0itgP#%=WcUeV#O2_fzO~%nupRkuvaM`x z%u0%^oQ=32XCrRbQlalOlBqtxLUwnu1-;|zT`GAHUI|mc8zZC6@CGg4k~?#e+FP!< zpfFZCDJBwTA}cq1oAv$^As>6(-B7A>F0fy^BKTwDpWG_OST>USI{bto9FdttKF6%^ zcsSdq)j5}Ga20@RH2aSSMKH+6{9mip{-I9Fy27h8B@2@-uu6V2xIa`0ySLvI!V!F2 z96weq_y}51IaT~{>jh<=SIDJex`aut!VRz}!II?Fw~K8Bvdi_b1M-Bpd(iN9yq2>e zuCdH>WuL$qR`?%Mt?XZ``M*?@CM!~0uN2_Afuk5x9dl> zH9*^#mD^MZtW5v24i!r84TKg!VDIS&#kY7HPKJHp9gqWm{&{TWgx@+gERrJ`!W6DrM;QJ^mhMr2f6pLk(STAUHjSZkdkNNMr|B{o_tEMuf7E264C{e*uJ2 zy~)$?vjFW1o6hQ-JXo}G;>dI+#2B8^Kz!gU{Klto(~Jz8<>KMFbczH`raYo#|XG;1H_ek66YLgqx=Rm zp^p|r3dh3RwI}qV4!v+2Z#IhueJ=f}d$)rr)RLFRkPIS;tI)d2F^wl2pz|RudE|qV z!((>yuc}_Bzo-jU0Qo1u?sZu?H?4R9b7CWAD#3 zw3R_t@sB*Mm<+9z)Mhl0j*~3=1P`${uq2xpkbIJ6BRNUTbEWH?8^AZverW6EvzbV<+Jh{MPr!s8T@vR z3g-xOhy-ON42br^v?KC(dss(w6~d%{lJxC80C{{Qmc{ z9zc9F^i6JASNN2>eb<*M15+C{Q;eH0%bSk-!Wskq1+e9py} zYM&r?x(D+s?WhQqnE4{`5V&#AvmR*H0WW;}TV<$!TQcxIW@G&x`iD<%zJ+@Wi9~KN z0>*w+m_6Ol2O`kX*^4r5ZeQDe0x92*1AK!md`5(BztWFwTG`#gAuA1f5Q^W!YzO)h z)1F5En_~PDqm!6?~ouY2dmMBvZpKsJ?7{hrPZagT{h+EflC={^JyF% ztoSK~{rY4Na=_ca88%aM(mGOGDQp!=SAgx_tIZ-?kRh2TT*_uy-IVtWt zGCpjNQF0*!mBMgJk+=!W%w~gt{DFOmG!D1@N4We|FxHG24j~p_n7A{L4t!p6_;BGv z0OA3PvQ0deMjHpHdCfmB2JG=%N#oNXADCS!j|kIbSZniT1gHU`FlS+a#t z!b^Zni_&4Q^lYZ414x{4>l&vNdGo^B?y+?=zk|Vu3?8&dTZ+*7yGL=(WEWks6w*7% z)&(^P+v!EQ^K0@Kh*7k~=Ba}|Uo;R9uCO6UD^`l0`IGAfLo7xi!jXp6Vl31h2yn2_ zW(BSS>myx6#o6uXLU1&KV4UCJvU;AP{CLmT>}H#v&K3Rcq5_v2+yspKL|h^1N61FJ zDYb#GT2}6dC%g45q6gsqnPsdG;$Ek-0#VYv|GiC4nTU@K7w)UEaerv?<48-#2aOUf z^&(-EqS{Ot%eL?mwiNK)XXJ*ws3*f5kGoU|Kh*a_NSBqq=$A&j`rj{&|KYn39;*Gr zcFA2su;ip+Vp_0ri5H{ZuwBg(#|pwmJepc?bO?I9*in(8R;kfSb~f!Ma9D2k@7Fc> zn<2M)9xL5PDSNsU(7ZS19T800L!~4VA5)EMJc8T7sWSCJoC_QBu#86yh7wIHA+k2! zECuTqLcm~bv1pIv64Sy~O|jTC3EmbLrJSiyDu|W#kF=FHJ@)S&(Y*=!yXxz^e`x@f zIVQN7E1+Zny5kAUPv|pNo~5e}Gl-cKfV!WA!|Vk~X@E2RxL*r_er(e_fCY6c(;rlV zl2mu3Vcf|lVb(wdqp}xBm*zHB71UZk;!hAF7$c@O76eY&2S&z3&J`+KHb`l~Uu?mH zgZz6I{#QhOsABpca>2sm;5@P;-kGCe9%1kWOv7E*iiWc6XUkM9YE1^U!P%YL5jlRv zkpuHyMmaD-i}1KyfNTtHwc+-ywf*p1j+)xejS2_xdPCRMf+1A&BCR*ZTKG9h#IiOs zk25;yW>dEcqKjN8ysYDj0mOyZ?=u>vbNOD)n;wGh)Qtvf`d>kKQgC6o%!u(F3@G#^ z3MJ2|&$cW5;NUf(T~*fzwRFnhEL)t>TbAx$na_@NTU?aQ zEiysxh%)?#!i?6u&40`q_g#QL;ppW(Ncw_N9b8ti+FM-qU9}=MKfWh2v4ty38iqHq z1=5j$0v5glc|KFNFd4_{irN4{lsk9=GiBJ;^Oie^d(Y83uGtS7e3YxhxbZi^K&zHD z^Bv}aj`eFz(WV9?Gcm*dv0F|x@o@W{nC`y}hY@Yd?M(nxrwrC9#+tcx7im)B^ zwQ_!5=*$GHWrjLwo(Le1xENo($*+!c#nqlWhwl09*0np-^=-*^W!#?^2YB&n(n@@6 zT{A5@ll1V_c0a+5#b~`U(Rp`o2Y8yeos;%@6C}mUyE=@fl%rz;jtizJH|G9{D7WkI zxKP}v$5)`_26yU5kr_N!g(@Db4{T2VwoTvGh~0HxVu<-oLGRc|?{%EsLXM};gl168FAhj)>DH9m@Z-hW-^-!p%V3XU%T z0<2r1m%ip>-1k@jZfk{vd%YB!=X{@yxQj? zqP5iEc;P2m#|b&lHQ3NzQo8B-c9$S*4e0RJ>UXD{Xm@^2B(?9A7+1jrb0R@d{5P!HzIm$igXh8U$?RU9Fhlp zueg687|Zy`8Pp8|P)w@w+Ph8K2GyQ6)Wco2Jlu{zzJm;J$3nGQ0!6R3+_1!qitulg ztY`Ro5EX8KX7uO>@WIHMz{#rR@WzXb-Z)4;KKIyKSta5`s15CsCX!eKw`i?=jRtjb z7&H6(L)-foW71_k9N{ppfgHQNzzGni8}N{ybTs3Lbg(U0d#!a(G^p#ruL&&i+>b-e zE+g+!>tE?aOmj@hdOE-CNzs<(UodM7hM0cY)H1i9jK-Rd@>-e|DMBG z3)jVKzEP`&YcGEG(br#YgbF6L{^ED{zcK&kWMy9`)fHL(g{FD^Fn zj8J^cWq|*TA_h=BojWNUQv;JjUQ*h1?S$^qs50NcX|5_Nrn)&t^EJoRHa-eW{SF{`pbJ zkVtOS)goxUKXj0ex1C|#UgV>A4cLy>JzA`HEMXtJ@q=H^U44x)t1)*iTiQHwKX`L? zNx|i2CK#N4Ji}TiZNND^#a;sXg-l^KXmW=y5LijGZLT(3{3494-6A;qLXX%=#H6lzB2Az5>L-?#}Fd zVYW7(na@m8MIojVTv^_oWJn}^P(M8hpvgjIfOGO2>J+1QT6qMd>{W3s%YE=~Kc{X} z2wB10?h2S^CoWK!t=~B<59g(f?<~8$DkClwSfAyvNT2F2pKXLEj&6)fvJa8-nk|Y# zk0EXa2mYeOza9XDzZ8KItvP@s5DdQlp`TmWTA{Q)vD|%E*bSqmvXsw1O%=|?OQCs9 zaXTM`73~*LN#pz`H*xd(J0lXpISg*4|1(Y)g4w5+5y`ZdlCbNL|1vt%t5s+J(r&wl-K8tEcfKi2KG2pgeb@0igY&V4Zc z(Z156Zmn-V zKS_BL0om{Rd?3)~d2TBJ!VYm{9>q9z^Ey}2Y~{PFz~Er=M|?VBdnk^-dBTLv^vZc) z9s483>f&QKA&~qYU;}LIfxeglAz~;jB75kqrQ1JN<=5rS0>+dx)}u~-k14n7jzit* zWA?5D?fG#N)&r*4Q^=#f9S7?0F?r=2u<6=qlV^9OyY7MZ?;asQ(S8Mr2v6g>LG`bi z9HVJxU^*B#*VK&%Pj%K1dyacM(h74E9nXKclc<;FvrlJZtMp3$RfQu>$v_DX^WT6t z&6b1=Le2*}(>f#J!Tc7OpK11Y{P7OJ6vxrT8vWmb49rIR`ExvZ3`l6!zP;f*6y`VV zh>S26g>frizFN^4gkmM?>&_MZq`{RYjuWiMS#vz7_b_BpXRSqt<4OI7Sdt7-aoW!l6bQfR*Wf3lT$0<0N3z zM@Y^?-l5`*Xb|rL6pUEmb$*r}Wem@Rbi1sLN?Zgav>+6rT-~C1c)i2=LTnxHci$AA z8=w`jdmVRdVzqYVQm1F}1ZX?-=PaGv?@dEiWGOS%s))d9|9!G@B2SVk=(-PDLVV@liUsQud_0j6Vh|M)>Kr^h|DjIIMYU%a&OQN^oFI)Y5A>1n4T?w**gS2>_i<%7!=xEE zdjU2#wDyik%|cCbLmi=jJ}Gx4s$%i!&oS6AF9?m)(Od|>ahD=GTr^9qw+ZAK1t)gCE?)txSoTzBbov6O6sWJ>?JHHaA(hwvp)zIhM4^CxT|%;NTH>f|D_? zepLfV_{WE}CVW)VGZpChQQf>(0@94&i}GaC{O~&~zyll)#bUqQ=t=VavFN z;*!Nj&FO5bw*#cqew}EKFVk6br~m-aVL~Q4Gf$m$H(_+NXhCg;Q9aV*9x%o44)-+lX8jtc?7kN9!viC^N;{KF>cUgPns)9|l&lYv7ZouyGr1}(LXKsG$NYpapM)dav2M|hC3PP+GslCmTsm@WLiQ5hjxY>=y zTXC-hv@4rdl&*Rl+J^D^64qY%TD{jKr_mB9GuwZff*VeD&!xVb4K>#5v9IEIeJra)@mZe+PnF_hX0|{i#{*aI)& zUh9sikw@N+pgs<@N9Ju*1TL9F2ljIajVUuYmP8HGW0G&`ciZmZFk)w)GFh!p0@Eu- zcbQ?Nc8yXAu)ipb4*i-y2RlI{a=}wPg}tjy2zKgyj)s zU>W$~=sRN^zs$$q0c0S%n3k@UbA^wvcUuPxD`Ubn~@rPP{k;8J`~1bH@8t2eG`qmKC~A>Xy9aY8cX5iwm$)(8!n_G zxib7%aFyuJfA@d5D8^KtA5JYYW|oJq{jHEq1y9zv1uG^M!G)vv1{tNdvvh*HK;0o+ zmytx|zOJTgTLW?L>J4^_v3!yKr44kFwY>HBSgptew(pOPI=EDt|M?#PIY7q0iU4Tm zBCUG>(vc1gVaQno_{C*?vtW1rsKh?S=7^1Mq%#;U)rdsC#eeXVQX79 z)}lgdN(`Wt7g@s`Ef>9G0Aox`&*(|1HP#OY_2^Ef6me^omOEKAxIoLYn>k0f%w-;c zs)l9kTr%uB0K>m|O`{}J6F*m8MlFF$1vOt4=a7LgCWpIS%YJBAL8aKeFJPm_)>>K@ zlY86E?2~J0h5Im_U@hY40`t%ZnDOmJkK_|v7GU{0u}Zeu^4d^}IbIS4x13|3&1k+& zoc&6$zHvb%HrNEePUYXQEKq%V)yobaxJwzVOX#-3?w<9HHJGMdD6pTXn}6%F>ctn4 z>IBh_IHBzj6qH1r9`KcpEWYbD+>%SiqoX1B7&bS9q1cD;sW_((7a=vca#4bXYjT+N z^54dl#OGVJhwmc{qT7Q%pi95RKCKlWoA$C=_)>Bh2ydqv-MyAp_gwV8fi?Ixiul6v z$zwWmvG19^=20-88^8RrT^?L78{i~Z&_)F7S>(rcUELG+ zLq=?3As@J;TZ9uDsh}{sLHkLtFXvEW!JyZkBVtumLT{>F5QpEqB=4Y=^fNtybY{Fctj%{QYAF`P|)wwzJcW zexd0Z%=xaf(W4QEQdCaQ>dxHc_pu7+AB5NFoKADdFDX)lCD@m#Xw ze+^;wgP%Pls4TDXwDzFo4Vcb+A?mZ+w6jXc8RbW~9T2@$sByesyzI08&hplGGd4=l zSl%czs^cz|HWeHxrFv66Tg`+ZQ=(p9u9`oGoso>*<0dB zn+#+N%{p4PA1D>lxwQUX8Sjvdx367i4z6P2v1XKNKg|h`>_4T`Qpu+<+1xQ9$gyUiuEa) zuG9_zb(Y~_#nfNQ;ocI|$aKl`&a&BSW?!ecnH3EB#sO+4Hw^^tiycenegAF5}}8E)YJ;>D~mp zwOco%37Efj?Vqx+y^H!#s-#`oi#BUI2DU452$=$@y@vC@Jk}s+)qBm;ibK50X@F%Q zZtXcnH0(PMXUT${*JsnWt?t+~iLY=Q!Di!d83Fr3u)h>i3$pnND4gnTD3{OdZX8RTcURoNC#`$W2% z?s{bCE%7krg0@s}swx@UcxzZ5g{NWPa6BT9@rP3D;4br$&0c$(x>r6l$B zBF=hxAEEHSpZooTGY+i%$souvEiYSM3A=xjfy@>&ka4u|N);|4pon$IBaaESFw%Eo zJhr5ANNJtxUd)bxo$3IX@w8h3HpTbU=;Q+Tr$O&v*j+b?D%!p8d#RXRj? z@bH0!X>t=N^Fh!$XS8MP>ZueInY;*b>uDSD1%JMk)*g8r$ejF8v!N5 z)f*ZQ2!Raj`R4`KF>P85o##d2rsIU6Jn2!AAE&i{kB}lD-waO>TY*IKzqRIn?Q;XEs$nw=K^V$)o@g}LCp~rRIkeI~L?{FLW zH2(MPmD+LLiGYc@!wmtfrgtaMzDXXcs?09(UHG#e{2Yu?m1kIOKFgl=tr=gV&sZ2J zW6rzoi{e#PJi(q&jQ(XFt+Z;RHalbQFEpJSsPfgU)fivHlj*hDXijvz7&*OMM}$AY zb=mE$6YR;#j5<$lUi`QD>svpO6U*zjsdb{fW75j&T87KxuCc;RVdUc;6v?fRy}21-{Lg)?U@N)y_$j;$VrQGT z%_5XMgq_!()9`^ZUL}d&mNX4HhjTyA)eFyuk47}5?0Hb3K#{WU6r!>O9ewd(x&HOd zIZ(71vBDoiDG2E&)~*X54N55X2K0S`_lnQd4pU#3@5eRklel4Q?oaN--P-wcwTbM= z5)G*dW)5?V^!YRPDlDjinqH09vQ!(br}C2(u0G*&#Ru7xo}MB@fFkHMAJxKm_@(kZ zA+w$dTyuOG&eRyKenkWjogiL)H3#E#x%!5khJYsgV)P&FU&~>sX6E zB)@kUenC;-d#F}@9UNs7LakAVBTIU)vpK5_{P5bA`M8$eX3% zL$BKIO4Qfft+V)-a*cdUqyj)6Cz07q?M`Ldly8VVh)481klwx#v0F(@1x{(rpM-2aC#M_z~MiL2(S7ST89Rm|h; zw~B6Ob)4j#36`61M>CZIK$sovPToU4N5bXV2yX^B4))$vLS4+UV8^Ajy<0VXAu@bo zj`bt~JCfg_Tyq*P(`Nbq2z&E*DBt!CxQ)IQZI&3KA{k2&lC@-sk!Xx9Dob_|Lbeu4 zWr-NdP7G$UCP|_YBKuCHR7e!5s8sKDUH1&?`MvM^&+~acpKoJk?z!*lIFIu@j^o^C z3Tlrl8Zb>qZ2+d}q#1~)9MKYW6~{-X@Z+PExcm3lRfbRtyJKz9d>K?!5+v-Vb2 zK~9AUG9=2uK@O(cfgZa?NYKBv#tueK{4BD=b7+3Q?3;iwWvS79lchV}ua1ALC?s>w zlYnF6S=7fau%%sBNs*visVLYrShB{7ubTNt|A+?k>n)6y{SG8V=O@qw+X-)fBEdG& zJ~=p{M4{F57%c~VlunR2!3GiMpTtD#Ua4U8bPMa{^0q^uRHO}pVA%?imvi= zj_h_IP%HRVq(cR7;>re9JG1p^N%8Cdo0^k&tHreZcebW{jn$;O(HFwpgQhu+q23kH zS4C`<+Gp%q@38gxM>Jb5z@kQ0S+?-&ZhM>k5|U^QB5giuWThAWPq`0;w3QccAbwH@ zoG?~%-dFbM>ck?almb`t_%Fe8y}s}K`*+=z#bn`uL-IX8k3LOFaCxh^HKE~94mg|t z^;b2;->7UbDVwoX|HhKEIQ9z)*&fI(o-kv^=SEZNfqj30_6KmbjolyyE-mR$JGC%m zeuWL0|8_nL#lI*sa=vMT--JI!G@_8w_QnbMKY_#gQLg%z-psbsm*igDTo}*N( z^;gq?fO|Nf-zFr*mCQZ|LqR9M|IX`yuv3c275R`oZ3aM%z1&%>XsN7(G zh&e;ZPFm@CN>XX>G8Px7w>hL&L?;;kG@PKJPXO?f@V0vVkLdw>whI?bD5P8RVL~Pv z@&LAHzu$ME*i5p5x|q@4RucgyjP3B8gEVVkHbS7f>d6RG=o4D(uksd^krtyY+obzu z@AQAtg}QIV6qIfdyJw!K^}%T%E0rvPTAX7!q&){8-679gi~J?87utnt#lJYwR;|YjM*q38@Z%+{W4TiF1AIj!3$co*uMF`x~{n+A|ey z5@4oUZOe(@o5FM&7BuUJ#*J6;oW$Aovb+Q*-lJSl@+8Ip5Crv$$T+)VXTso_Px}3q z_WqQ_%D1hy9SS}Pm(Qpjg~z?mvfbrOy;v7rT9AU__WDe^3=DNJ>8eDie)|T1IF7E0 z(WG=(0-|@5#^`WAI-e$cGx&U~7t2qfArC;B{!+mGI0t*1+rt2AQ^dd(d#YTOA^9g> z1*Qh8<7AO?t7$k|B#P-}0$cBS!L%ol=>$1Sa&J~ zwmq$?`tbH!7%5=VDC0yXjI-rTq)f>z__(TzODh&yS?MJth!DrnHKGWDTGJwUF-Eg) zR3_02wN7NJ+7IUe&qYp~={&brtd{vTxUtw$Cc2TFsJ?udZ7BQF25GyjL!7u9MC~^@ z`6h&k>$wbH6`CE;8{8e$7rwXrHFcf^_#p7 zru9aWs!RGD^RK!G zsk2{7NT!l+yl!HXXcR#j20^$JaP1d?z2JZ0u)g=<%?Ol4GQ0O&s4*xT)E-$v*Y-&2 zlnRs?9`iDB^?QD5&E0~E+NXKnSEd7OK3g14yXN{tjh@8mh9z+x?E3VWtaA*{0b{^M z*3I43COVh}=8Z-#wKVvW@>c8n3$7+ps+uM~T71so>K2?vr1pop{`H*Qt;SoPPQMA? zqAQZcX_Ip{zMyUej26jD2!@X5-&a>NM$Y*|^CM>lGILu^ZeUqnb^JQVmXLK4 z442be;yv$Aj;@ve4r5L*F=YX6_ z!&#tASltAn>Ul;jlz!L-0>)R3;zv>td42-Pb8tQ;_o<&SACo@GNl4VOve|U>$3i#U*Q7FPNqn6V~|{%9$*v{kgn(&B*G;2I?<* zR?v1phT)tUHUeLcFb{4P4?|f{M{$uv8L5=I@#|f^ngtDp_=QUw@**1Nu#a1G{dz;QfOIX8aSnNhA5j{#szYRuMs z6R-4d^cP+0w(0O+`De=@ok#9wt~W`&Vqx+;?=`6zD(tdVG9o{rTdDyHbau8x*sapf zJi@R`@zXWfC$Ij@>G+?Y-c*5UeV1JqJ9&P#PC#L4;1NsGY%`@^Cc<2{&V=UjMUt-s z4V~7k|9{DspJf`90BtYWqw1$~fO}f`w|R1V77orXwN?A5Hq7?18Llr09K&=P=9q-SdR9=u?T86HyG9E;N6A6_=VurYP`( zcB{5Z^>wgU_dK=8Wq9}>9Ate5lfV*88e>hEekKL&kEyAidlVg9fm)TH;qu z8#>rOdbdZLdKtW}#*HrNCjMC%*879=q-y`&lir+pohz>T1pSDws$18@rw?P2bu=M*&^95zsyz3X1F)U8P*3RyLN!S9d$f%UU56E%4 zJ4`A`_WBxH?LpqetV$PrMbEfCzWVZPL+NPnac*|Qchz~-Wk#Q6h_v;GZ8EyxOI9xF z>-XJ$Asd?NuS2Xmc!v_$o;3Kb z2t2T=eC_tEvFE$aS#)hRhE@vUQ!tKmlp7cIf_lxR864kgEs@*9TZj;nOE#Z=&s6C# z?CEHeT%B_3%`QNST*|G#A-58!6on;}lI;#T8{rs~Kl_-Y`re1{DM*`%)Y9`y50RKOXd-G&o7#gz!>N-GO;0ex&L|Mva3@* zq~@(BsPlI$7?_deIU_~7Zg(31V!w2T^f;B2Cmr`<0~NI|t6QPx-UOF+bS#8?;-2Hi zdWX0Jt9^HMf^Xj7?hTW7LqkjmtSA5snRkb{NEy(s5_b}Su*%Lz@@jo)8Wu%4#cm9U zCEdLX=c=t-c$v%sK;&d&Rm<1~Ih*>(E8!N|XP;DB*^TntjvzV(pQDcu@a%TM{+xC;Onvsyz_ zjB+(fFZRW?9bT#i2UTNbk!n$>`UB>tN-vaE+dMM^i_tF|4R-t1*l zFzj2u@3~FHiOiP)Omfm(fVvj!c{sf3*tz_F@R&l!<7Qc3EDd~59!eTPKfXQe-#V-f zqoCJ!hp?Pt4g7-EplmZSu&@meF=3U0TQ}6@LyOoz1f*(DGXwfsn>WanfY+lN# zeA5B;3|5B)@ZwlppTpWq*mrc@9CQ7x@^nAvC(4=NHvq6y(~Zzri>egn0lo3C1+bSn z+WzU8a}v6)FwJIB>pE*NYXx)Sc6uzfzo?A#^+LOTn8}$j#ohvSj>^@)Dl<{{`hOkE zF8Oqwm${uLfnzlGyMORXXprII={l^n{C`E*+BU&q(7V6Y8BkF0NKP@P%0G|l7ZRW# z-b1ui?}n(fAo%%cR=!k5G$&@*7JIZ+S@@&70DQhmww@C;1hprGCx}F*wEp^8$@-h@!A>fl140%l#$Sh3prJNi1(PD zJFGzfNA*m&b_^Rq0fa`;oCXw9wm8mo1_wPGZ}dwV=NmqfUuWhXy#}yIbXb|({@~VE z_F@7RvnYdq7Zzaqm(q*$YAC#?(<1B(j1DU|Nl^iX=MhHM*h|Jhtf&5}>6#`Evh1q#JX%zBB9HfvygS>~FF^G{>^>l#2NVi0m+l zP-6Yv^HcfHS&?Om%y>}MzL||X@HZc>jrmj1ElN2zvhR=r+lS%M1wOmoPWfKY+YTU#T&47yg%vTaUGU#INO#`@B$EXTHnCD%y|X=hpUz`qb=3 zmtk|}=isO_V0#kxg6>d`AxhR%TQb+nyO-iA!$R;D&@dSEdoITMP79tZ>F( z_2glg+3@*=D>?>gLUz){&&`u6L@*%juYJJOA$ifwkYU8K}Z`TLoq#e zwzfw)$(7|9w&3DuHlv7s*!W+P)7t#s7f*aOUX%nDD0M}H!z@vEe-OYQG3iWK0G)99 zOQ4QcP=-vY3tH@Z`nME)9!IY>3k^ewBtM8yotmE5)tzCh3>XUP*{_?sZEF{bp*r2W z16#Eyq*E^Q2vavWD&sWh5N$xX3|CcLOG=e=`PZ;Jaov!j8w` z$%xlxD3Wh=`1+-uuVH76mkV2n>4azH7P)CNk>`<10(Sm|)62s6Rl$A6Kx&dS$^*{s z=-Cn+ug?@+yd@(~)Lt{@Y2WQ5`io3bGk6FCf)ocEe;?x8{U)}2OFP=y_PWeF)&((k z3UTN1=5I)h4RJ~a=7<$QnSnnQ?oX04fSm#s0Iy>(#6<$abZg-H+I;&hPiNN6VMR*6 zlr}0-=yvtTTltVpwmm{j3#Tsx3(ZgZyj3I85T>3Ix#a8Ui^+JJ;NFVyFMcZw{2wb; z=OjkfTzbG*SHfX8ZbBh_H6|PzlzqA#(P7ck0?_y(!?)K6NH_d@Ei? zuSQY&%gS?1IC{7Y6lB9+Mkee-gTNC4&yZ~|%W)j2&j4EpxwwclM{`C$Nhv%D3J7f~ z42rkowcUz()*d(&iZ%zn6Fg}K$5L8FIIR9>aRt3;-N-lj!-|qra|7ZVFAtO&cVw;y zchg1f`5-XnFwC&53ixyl02!52i5@t#yy9RWOIRRx?4Dhn;-rfjI;|JHEwS|#_ixhB z0x4&FXC^p?TxP{{(Aakms7y8I0h$jdm7w{=9_vcjDd(|GjH6_LK-lpcU|ODzjHop`q>Lj}{^r$viRjM6pPtQ?Y$y;fJ1UpqUW zAp(m1m#8Oxe~T}Ur28lC{JBj_`2r;X6?L8Kc_N_7(0+LbLub&Rz#JpOFM52)w4q3; zAmw(Q082SQzpDnVfss3^3DDQOfk?1kGbqcjN!|H<{%-mB{s7+YsmD2Ig}yYLX|`zo z@u@1{fu{QJYs4cf&YYCE7A#^M`bJXq>Ii105>V!26F5(!=XtV+xDG39{2*AdMAY4N zYKKu3*Zrk(-r#YfFSr1&wA!0wcDiYdvTp-S^NfMmN+k~+s+63m=DMDLjnAA9Z;+!U z3(C~c?eRV}mb}*ID%Lk={}McB;`_AOXG7W4Ew5JC*H(L1kyjm+H$QO}1+S3f>r;eD zBa#@3yCne>&--=lSyDxzBPJ4aWdwQ_fkzU&hIWv8Owkei`?M>UxBbyX1Lv;eb=$k= z2hJO!9rMQVFeI!`mrv+_L&8eGC3HHT-v$j^eVdMTzZ9V?d#!q~BoXC#8vC<+`kY6O zQ#sd`=W>X-kQ{6fV@ARoe7GL#wTAgJv19FLwk1vfgj=ZSTs93ZU?w?R*n3>mr^=%u3QWV2sRErLE*P@a!v?L};tpM+Ja`MFq<;DY%yB z0=cDEU%6xvPyGae;cR7v+O6%v&)V_{S~yLKEP;jHR>fLns9;nrc+>Y~68=^@^__0th8(HS+Ur$&uVUQ?*#|?BJ)qI=> zg~aetnE^oAUtfwK-%%F4kEII7U_k#s1c7P}p6QjCXNPX=ErBi(*j514&n}eQH_(&M zt;ql21`(ifIe?H&cB7YdZ^?5(;2K#URL1jQXyFQA-rfRjbOmr4(F4NI24IS(q|raY zV28$X63L$Ru_Hogrx&rQVR+7IpGgJ)o0}~5X|rJL?#TxnyBBiow!>N|TpO9M81<2R^)H;r;#e?wlA0^ud8jo&N}Y=Rszi}P zf8PRl5C1{Yo%l{YfZgILWZG~;zb>b%G;Lf%rOA0R*fd7XiH_fBFls9+LUEG-=q*mE z>`09y_i>!8PH7MvMBG|un^1<)_wxK^vKe>{l7-~Xq_ZccD2~t)|2Nz)r(BdMbf0rFH}1Tao`aE2wn=F;ZsYO`C2V; zqI9fH>X^Kcz|_X^m_rn`;dFQJt}0peU&db~JHs`xhzH9AlYkfOW9map8-}jstKI?F zS(*tho~)69bqLx&wMV$gJq>Vd7s@sVd*c`qvQ+I68m@}>JFxl%_}w9jD>M$|ljF=K z%Wl`k)}D}xYK^6OF_#ILUaL^m+q4~{xsTF$L0p4>$PXQcY- zES-Yxt2Q+JrVd>AK3)T=791kidYvaF*5nL?>6WlwoGFnM=7oWD+IkTb$rImx|Nb<0 z{-oI?S9(5iEHo`?a>x1gVFw9cx4dh!ci#ko=udN>0Oj|u6Tc63$KDD92o*vcllI;i zm^T{hxa#+_r2>Y~fOG&*)T2-MRiu^3+THGayjGGZ`RhE2?0lMB{bx=2I2PF{l}Swa zeqEaXadpa>P=Lxen3}kZ9tULk3g4{JCyvoES?!rg*l)EjTwiYNgj*@}@wKs+-rT+t z9lgb7!A?~gzeo3&cnz{s^$AQ(6Rf(z75$>(KrHZeU;|jc&9Eu-F zTJ_2}6e++CG)dVsjTPSVIAGJJ62hn7 zz=Z9_E6>|*-MiM(!h~zM%}I#Nh7KnoWu>$r&(rB0Zxoo~CDj8<2Ebvob4HV@q!mr9 z!knGVQF1Gnhs8ar^H!2Jl_1ho0yW$eW;^Kze(yKVYAso9`Haun_%&=>2jA-QrUjuadcd)30s8c*v=O7KIx1U!MeDl zlA&i$I-YhH!<7$-_gxN6Fzc65ZuB4S!Bck51M zvA{E%1Zv@w#w?it|GPu*%D}pPY zmAbjX%G4;K@BKowc5fK{6{0&$+A1au(83GJ;j*Fpn*dCQ+pu=n-4wv#2EIrl83qve9U z4^h=VGqobQd?lbE&_gvETVeqNwRylxvJypl$g3QJHR!&!0Cm<00L7F<2OGs|D{Lic zle1IL`vUSq2=#$?(*rRY=?N`CSHX|Pu3ek|$+uc5E)ekgi~A-^OA9QdX3eGocyR{- z0#eDBcMqpl6cbr-A9!R)N-;25#^X?~NyB)JJR5#nbPa(j#7X)V_C9tbSX;qEg5;9a z)(Z|k0=`p+bdwI^iZgly z|Eq!Y+7C5Sx6(V3KD~h}KECO(uI66`>H{$qm7QUR&9m$`$qz+oeTJaSk+EyhJL2S( z#&pkQnKt$KmS11KgS!NJr}kv;Jx6d@DW$A8cx7>Y6(e}$m9vp_FYh+F!thVkbrT(IhEpR6?{|)h!TpcpHTwcKe>*-!OU>9? zaE9e$O`I9pQSCh^BgG9#dH}6_-?fJ)wOXI(L;g&Dp#g3J0krAj_Qmt3-*qt(Y}>IC`qt1Uip`I_tW-WfXyUl( z`4HPZRdQ-YGo^r|(0k5=a17^CqC*^eHB|f<`}@&EFARQj@>0RA?GEmDhjDBz#uR>M z!5LTyga*~fPam)w?gz*!j@{a*!Qdcku52_H1203`8V5O&3_RIC)?`A{R5xF-a}~6z zuUdUqdiK`r%-qjo5PeUllR^b-E4>*3U#C7=ir3uun!L{=A(tGitdos}i(q0e$E_kT zT4daU1=N2B2vjEkJU)UqyQ0>uH4aTH*smvYwRrkB=UXkN&I8;7d!?NaM9}F0AB__~Qv&|>qs2RGT95yu{4HXa_wJ;%YRBBBJ9ItzKd(*?S z#{v6QC*@*Y?VmkGj13ocl=-cX^&dSaV8++gF>XcQk0H5^F44q`lc{O_O~P<&o~<0@ z_1%cj_^PaAwinO@f zu~p>h8<+d-H*3N?5$9)Oj64yXAzXL4&!}Hyd*Idz<0!qFj)OrFl`jY8m0le!`HW;Q z9pSyK&-o5jE0m#EPy(=Rk4xbuTalLkVv33WLr{0>UajOHe5>wHa`lc?7u_$}3}51q zMDiEc#8M07_krnN7PY#`ps25}pr=D$A-GW1+FkQPF|qZ27(| zWs>&jqX0$%?Tp*kYjS=2RW?M#FTGSkjy8azHB9bR3Y)~AIAFZjW|3Hi-YIsvu9EL@ z^uv{(%{@1CVKi7xn}NCjJZ@V+p_}N(BXC%n?>^kplfPN<%Gd?)?NzOzx)^<4FpwFxrN z7uGY9(?My?-)2Li9EnhUL!e#_+eucMHFQV~^X)#}k&Zw+i&yKr3kNlVSF5mdoSnRR| zz#-ob7=<$a-ybDd6Q~TxWiEda z!t5mLS`FvQAEmw8`s@SH*2lJedkgoUz#GsX^Sgq9uY=)G*^MWtYLr0DNDaWTd`t(I z=qyYW!M$%V!+~c!>uxj02?i%sPxIJ?qy#C5^2)HTO};`tSa$o?`(Hb+Ke?h&6_=*h zI|J|U+GGkT2Q8Pvfj0nube8-=EGDML)Op%26$|Nt?SN9({U4pNeUH?@rPC!mfV2;d zmJM-gYo~R}=EfdG$~J)g2Q0u>O}YCsEzm?^!Wk*TikR3HdlN)o2AePsivEsyAx4SO zNWAuCU6WXgl)JLYA*kFO37(dmnwg8Y1%Rul2ji~GIbYvMWz3WNtB>}3nEt*3Th;M@ zT0Mlm?ei^D$Mn2(=mn^=7{v)dB}{zW4pQZM4x2 zLhb_spA_9e+(1i{LVf77n~rrKkBuHWRB5r(%-7l?a-??Hxl3Jz-|mMh zCz<@z!WRN|N#FMvJ-k7wtDLhH4U%u|kXrMDLrtlMcipKZ-)ouqT(vQhywG2D{3lzh zl^0~Y(R=ZXK+V%`8jGRU>N$kk&S2fRn?*)$bzkSBywqT1=a$#;&98HRy|t+Hfd;8G zBFW)iNQ#4;(@f=2ZW%5g1 zS*x5bLJ2n4>y+i+sdQj|r__OUYd0|I%4~r08CUx{BL5@8utbfyq2a}lnWJaWQowGUYJTf3b`|;b%^$vN-wnX*Y+Yezomp?gYL;2>-TGWZYT!Y4S zJ0IA5b56)_XTy8=pU-^&s)IX=G+ryA=oZe9K~YQ+^+_j*@10+{yq4pNZ1`)AVzFyI zJw8yYDoppnf{QMUd|yP7Lwq9I)MKq4UCyU%Ca@8oUl!-dyayB#(;a%6)kkIuJ?1a=lRQY`HPkknC{Q zG?{RIyKZhZy&EeGzfsXt$ zC&<4q4z?NNqXQ=!VTYmZS=Kt3d`+PChOzAloC)5g$!FxBsxYWG!gCC~1vq@cTgVN* z-$sc`yQk0fIR}s1Q^teBL*QMojT7Akhj49&Vf+4wJB$bGf!id}r!qqsn=X`Lb0nrK zDqYHcI9uwhCz`Ku%uB9CkLs`~Js2Vrd!KR)7SmhNeRQQ;4~#Aj;$TgycV>V4F$jG7 z*RT~kFZc@3fJtCR{Yc`-(0lE%9iF>?Ne*|?j<=y?C~`Xo3!s7Yd*Gr*K2*AqS67vT z;ssSjot%0E19!Agkpsshx8@9m^c00{;xS*mzh|0*@JazF_rf2V2qGJ_@6Efny40r2 z8LH<;oOvS>ymR3#uqbVF7@F727-M9>nik_RdeXuSsb?jyWm2cBXR6!K?Jv}gX0Q>= zb)lHXuR*PBuqm+qib%#xY-#HlcOJNvxo3O55lX@&5u-B-+j~ZYhd$f2XD@VxzY?{1BbJpI8F_Fm`y+JHuA`?q_cw(Lg zh?E|QDBS;WsMr#E0horxCmZ-@CssQDd6MTdpYg?E5O&JzO-IkXvkdS&C}&#B+;F7^ zMtqG8(2dHd8!d8QJj~R|6b+yiOyEG7Sg~bO*}MCaDpn%min93wPdVUvijwwzEyv7^ zisYm`r{k?}6h}0`>DAo8`dpQR^!1lkhq(6c9(b_5(?=QD|9u01t5D?flJKtK!BuWn zvIl3|4WhPH72N+=ddnZwX(HgTQBAe;_EaT`FyA=7v?sIQ2GyVRK@@=26y807BPB3n z&jY-Gc8BPY>Id_-B!zLNlJR^b&hI>WUvui%5?aS==ow$MU#p(YLUh%J;BBg--(xWn zXD)l+G9#q@N8H+zI>*5eUj}=A#r>X@Hk0FklUu~_NzklAw)cQC?5@YIt!UWX*veGY zeiNsZ!+!)05-zK(KG>G}pfZih!i+7H2-eKX+@o&FSl zBT)Yg{W+U>?N{@07ro!2#;*%M1bl5YWWJhpRf=h}cZ1d5PgfyK-+#pe{mDsPQ6*cU zC3ox7>2<0}B#BpWa60u=YV_eZ!W>s7OrqY*Be_v&T4!DOe?^l_DR3dx3_ zEKH=k$cS0}OEfW1rLG%hiQLXSI+Fuv^iuQYeS%4V6r0xMFCeH&vE%vtAN`9NarI(G ztmcAT$uD~TuOTtNe0@@Y3irzeoUZu4aT<-HmE;WZ9RGpWOoR^E#f_rIG>rLz9(S{o z%m}3wV8|Cg4BUi!A4~q)`}m|oEkDDSJDvQnT&(8_J1hQ<@oYGmmXkt`i@FD%{_h3E z!DL@2ya8e@YcPNoVg9ai5ADp!b;-SNr->5jp|+aR+Mf%vdQgZ+&uH8Z6F!eQJzo8i z+cyp~XACPoCtd=?gT(b2lX=;wcgJ2y-j-v}(0SFxj>MXyQCvwP^p~_sd07EYt&;ZM zgn61Bg=fBrGa)eT+)RTq^Ul z@vPa1vvCZ`2*&@CgZX$x=DzfX(NcLs$wyCUQ6-9a_V`N}UXdX-We;FPk!UC-Wv>Ze zu_yxDvQdPBO^YRAXBzh*TeTY0DbSItVzXnH&0{lBM64@2Qfc(H45Co$7NX2(S;-txIf3K=lwNu-*(u)xKa-& zvWo4E#Q;Y@xW5}8gY)Qa5woe#9{@Tn4+@G!*eB$3W39VL0D=IX;H-_ljbl3Tqkr(v zvi7zJKmfnCPuG1MK)DU-42TBA)IJju(<`86xtvI(#Vs)eKP4b}WLm5!IMn5_>VyF6 zx?ULW1u+wK@V1FQD~ll$THur%$+f=u=RWxJ5^j({Zm@#+-n5{0Bt72i3b?+@SaE1B zLA8Hn(AIyJIfTAJ>k4Co7Us<@f#m(29WsM8mJBVP64QsI$*Km>k)^$UHAPs=09i@ zr7-5>FasOksp;|yjbR7oGj#0K!@TJFE+d#Uijdi>3T=2p%07PzeGKbn^HJlDtzR&V zVo^DA>P|9=>!oP<`Lu57qx*RVHK|-|VY(_h95PwQHDGUgoVQSuI;$nL8}30kz~Kou zasWOL127#8!BY!G*zVQhsGFnnCZ>z|a@E)n7o1DAJOIToi}cYa8`%v?J!OqoS>0WO z6NzdJIE+pJe^I9xV(D#giP4PM-4E`KqSNL5axN5~3YSzsE?LTr9$l72Jt4hd@n`?N z)nWWrG|?k#*>34`&rccRH}HVVQUnLka2O2mn60*}`^*+c2U%$}YyOr~SpXCrzEL>b@mUyCi|H_R4|JfbH0YYrD=d&=>}L zCG80R&VThAs3vCF=U$D&*f<1DSdo&c8> ztzR_ZItpGGZ56a$*DqiL8Wh*6`mT5yx&iRn>xE4x#9%K7w{))q3RijM`dwixDCEZ?-poH2 z$IVat;rn>MSV`6&Q3GDM*s(c7qN8G@Fmubznsl8@L5x7GLssb|z~lh(9f^ERdQ^Fi zmBWgKQ|f=DTXg;`(So8svh8iw2t&EY*Y39+@MLl?QdcF?yuiVFd=grfE!x>>pW) zs5MMWp)D$o5lMm)u^HkmaPpT{#Ck|!1v4BM`tgaz>Pw7kH1>wguSi0;+;v!_xV_=m z3F^x*P(Vh#@Q_6*5!W>4-9c?aw*p{nnY$(<2^(Wf?>y<=Ajp^wLdJyf*gxWPpr;O< zGp8N}b$0f{N-l6XNpLqH&WxtTBkSgZtzc4BGXNz7$ui_L``at+`IvO~Ol6xbfb!Q0 zxFhQPE7{Tllz1VXa?j?yKX|&g?di$})iZqu!U_N<(4&09J`-Xx79a`bTMmFOT4>G| zdV4`75_}(+4(AmJ_Zq^UGVDDD7o^@OCa$q&Y)hI}_?BT2(OVY+o?8yMHevwF{MbS7 z+#|kB5DzPlCZzj_7D?~P-b+Bcx7SBYO*?DGoZR%;SoDs>yoRYOdoeDrM2m<&=p`1T zeMzPK+D*3N+9F)gg(sn9g*5W@Lj6Y2Lf!V&KliMLzr=N^0)aL@8lcUxnMWfObAKH0 zDo+i-V$K{eW*$xKjoLS93X75w9?qlg5-^1r^$k240_saQO!H#U1R)SUL>%)$ArJ#B zLme5bEukE#Y)B21$}gxO1A`1_M0 zu{s%~U?RP!uZ?=SnZs^8DA=-;M?59WC7sk18ZwGDk!1t2>cC^jyKlQp{LLDM@cQFl zG1vg0hRw4J?fTpL2-Lph6xfa!2Ty&GO-k#sn3Sx(qS6WiSMnv}6VY{ddFG=+oWVopLb=eAkHjI&g;3pwDYhE=^T)Y;4WC{S87@I~Fe7Yk3}Zh6PF082Hdx|=N}?Qt zna}+=U}C$~dh0IfJ>y?e2pJ8E(oVFe0O2KyW6mX$*&4?F&&*=bvexe4mGr5#ZR5-ETh3k{4fdwAB z5_veQ=d_AkD8aX?+mLFjv7+Z_qFp~s1j(3+d0}&QpQ5qzv}4v)aa_*H_s&iO+HiYw zryi7@HM5G|iQ``RPP}-t?dJ1Mhcu=OlSQ3LCIJC&bK*bo%zd00nOkmeHp!K;Y}xw+}7-DEX%ffY9%{Kcn(&KhJl)OljYa=STwuVV6pt znYNO!w_6l)Ema(fx>vxYwn433pyXas1FMB=w4%*_Q*%`ja(5~Oe*0xN2NWP}^)cV= z=R&0hZ_L{BB9qi6Xp*wviLeHI_HT7HUCGrmDqw=GUJeF~*=#);C13DPClv|7`cv}U zmu@M}H^RGEg3j7Z?3ijNSakuOE6MOkWhu@Uo&6j={TE1I*wbA0R38&_eS-gGF@Uy; zhX21!l2Mu$0NgK8!`2hgW^QHk`R0dTP0`e^2QgxTq0zyevO!1evs{#_s?N_NZ+r zW!fR86{<8+T>ky^`wh1VTF@Lt(ShbDY^0o|)4Uswl+{%0cx%+EY%oLVr)mNs4UL%% zaJ4ZM{puy0vy@i+)e zMLY@cTq3zkW2)-Uf>2eRz@hZ_y5)%=H-$zs!28a~B5%|O=OvfRonwQJ)XCD*j24_x zB}16D`llg-Fv9%J#mZW6W!22RO+qQN(Of8@16PNCLnF zsw>{*ZPJ!M9yG1Y1qD%{nPBwB47)F1^&m10FZlpHYzxp-XeYt3HjFjC;^)QEEw-{} z5jKO5x3JD|1wB9nf^*5&-^(8lgh3TEbRu_3uE7MRkz$ymd2#uC?wfqFit|@ zn#DUav%*kJ14d6kv)+MHti;0Tfgl8HHY2|iVu1YL^S5%46-4?n)PPNj75H>3Xdaqa z{jTK0hAv(By$xk=8ks?GLchOfpp>mFIIiC2bnL9C2-TM~>R(V-7a)YPX8U+22wOXC zqzLtFu{|4BtvQL?;l%uj<3vQ^{zpSG+c)qWn-2T<{eaSN84v19Y=`Eit#|{eX4(C} z4GOYHUFlbVqafw;;hHbX?y`c~F^dW`WL|d9EQ;cS4QB_2z&wj_UcY2@%%p5(c)V`> z)z4-bE?(Fhg~WUV!p|sMO*ZbIWuGyng34sUQ%=YKL(rRxf;YQT<>BIt`F3{pB58Gk z=yBv=?w%>5uUqb0hAmk0lAkr33Ne9GO-rjrj5b@n6kYpsT!TV_TCfw2nQ`1Lf@t~G zWfH2*`cNRYo=FVpFI{!p?TuV-Zv(h>-|;Uxr%aAnPqqO5m=xR0`aBZ#wO6Qb&*}fb zy~oaM%3rioI!Od~WhRQ2(LCeImyT5?Xi!!9ph&+Bikw>YPKm+|9@5~;Ls|8iyloUW zn|?uUD!eV*GH>6vsGia%{>-78P{0SX8z4xN-mXRy0-26^(j14x!55y4=$$gAtI7u+ zfS>8!h3&#L&&$lK!$*Si&;|&LXEPW&XVvW4q^+roC5m`i>9r`rlo(1Yp$n2`^rO2T zf_nP0A@N79jekQlV$GFKC0So(&b>NHd8&I_-3W#8p(!)pi*I3d;p*raM$#@7+oi&O zM3oATumar@@!?+9JLHo=qU9MWe%N-0iu;x|K7mF0EbcqH*%vI#K^(QvUL-f29%P8u zS|0vbM&0Ve@j$q`9K4WITW7hxl96Ht#OmXdPy$^P*z7!qdedl?Bfj_uxZ|)z&YyFr z1NrZDbX&r|8}mkW{zgOonc&CJzWk;+)?F6V;5dVrlr7p;$`}9q_=F9dFBQ;+ zL(@*q{;RLf{_}lbGe7?8t}phMG9OK;xHPn?2Qq+eOUbZtdrc4RQe%*>bC z&U$XU`Z=?;s^3LvEORbb+_|v>m+1o8^bd>_Zt5oo7yUIDc`MOdzt=*z# zWB7$bZJ>(m(r5M)%C)$<^#8LpEZWkthpz3Ca^2|Tcd2We55*^hkLb{Pa6K!3hNsG( z^F`n@p}#Io|LcnIGbyh^^Xw|0EzdXEd3}cwI4{lSoIugYz1Fp9En3}}?>r$%`6&K=9aP zClLb3=6W5ekaY?=em+9QYr^VYK5Hv)-rQwME$kJ{tHx)LZ#`pEq0rTCm8FtUcgS$+602PJnEmF6VzKUx$DaPKv2SA9`=E%jn z#IY|81N)hWh3o{CKA0y}-mW<5T=T%@$MVO4AEJqYXKXmrVohWfl{BpXcT)v7?%9)$ zM?{B}7$8^lJKL)fI6Mhd?KBJZhOCDxn0f~y#N_s0C(8?^He@O9R$Kni*@AWyh$(?8dM3+$ zoPYK!=aPfhTN=i? zr33}-w>+!NcXiA+i!L)BxBz9wpE&Xu8esS8k<4ZRr^IWC#IZIzV|R9u_PtwXg7stA zS>F;P!6%b$M4!x4z`<_ibPpe{WuMiUUL9I**N{EjFjq3PtfYLOk=fn1OH}eTsa9_4 zckEZ=DWt%fn_K5xNWYJqnZE|9<{5j}C~O1B_oAXSYMsq7*SbhHxW;5BS(B==x}qI3 zI&F_Z8#+pO_!@(Ap>EG%C~tI+6V!Uu#f}7jxU9Rf%2|)XLXIY8t~BDUx}pJBRDfE6 zYTLv=yE)x2*yxIkXOk07%~i@Q?e4B4{<#mpEw`MNMg|{UePK}rMwVZhQndw$G&?$Nbj@TQfwMb7H8NHJ{&rTPk4;33i7>j;guc`VLC=iT92BH)MtLH1v318u(z5u$ z@R48O*AI$GDU!~OJ*aAx81|*BS%l(qKD53(hPY#W_y<3tmVyUk&GNhB&67}ioZ9*@ z)<0P^x0vXjm6bh~s){2MeY2RWf2HrH?Zo8PXREhUJ_gh7bBvRTtVf4N{pYmA!ty8` zlH3hxmv0B-?ng>XW7i&9q<{4CI|I8PZ?Xu5-)h-B0$L#`0CLnaw9omUmpEk=~ekV5xwG z0@SDXtJ3!@r(At|!c@Yu=St9+btww_!KFL|1*&n2-L{dx5AD)eQ!6|5)RJwJ7ByA%LH&=9(o!u%-!AW}p z0v%ESDPB&^bQk5O+Ynszm4@VFFauF|WjnwFt*> zIi0b9ai8h|CrkO389kJ}!cOig`+^U7?Otsv`5Y@n%r_prsgZb%eEwCpV>pw8ar=4^ zuD-eeF;*dyKe6YxgstHVlsJ30>&C6MP^)DnTNuezdw}kAiKHMO7rhUmvQZ&ftsH&%SB zujKrtNv)KBA2dkt2!BgVOFlBO^-a(2AAm9g{z9-aR0^>HWEOiTmf+EXZ$%Hj@y}XiR%9_`uZkkH@?qaSsD|17+`va`+ zv@ju##*7%Eep%)qDR?%Ik!m;`im>rP-O8idVifNadPo>}{DdFPw25-?K-OM+zoBi&M zJvKW#sj`#t!I(03pAtyyzutI|us|1=ZJLfRZxfmCWCFerY#IaDVoR=;Fa(-$CDNh| z%LfbQ^wWae7<4)M={AbZD$bK$(20AId61CEv?&bBoNQcb_)jkzu8-Q|#2owJB%q{r zlfkA0b*D2I|7ztLsP?j9`zqW33-DC$M&=)0yg{uPbWC~4rV~XV%2r%>Ke9fVhfG}M zc$OtovguM?(_Rv&2^v@&L+Z621=wXWStFNykWHReZ3E? zwV0}mww6ctiI&qFx_;a=GhR+id)}vu06U~5I^C!Na}t-~9%kJAu2^l< z{w1JrV~yB`QYgqy8J9S(WO-jhTTj2#LaMZ&sV_|5N`XkTf24jNlx8K2wl?Woy>r9q z>+9`cZ=F5|fq6lt7} z#>p`-R@1p1{L;TpP@B91p@faD{q_de35qrxEE|>I?Fpe!rea>~hI`CZJ)WQ1;l$iL zF!_gYs!a|`_BZe}U@M^QL21#oN&DAqq47~%Zr=B8Hqzi`{4A(Nm`MFWeu3;?^89S) zn;#EWGlf?y_edv&rX^jNPXB*ZXfxorF`Bp`%~q=<#wTNmlCKSl#Zuk@0C`Qa>;|>= zG{3y0hTrCYTawpp^y66w{Hlrlq}d;Dej&Q#!E6+hCCiHoyOw}DK%k@}36QMmLadkl zwBi5gWgqi3UPqrcgG%;@=aogKWZj|6=$dRE#wsbo^i@7bwBwP{$Nv4qrDk@C1VYQ7 z>2te8vrf8R+CM*Vw(W+2B;Mp9#xAK5#xALMZd2LSd+$FAAWUlzIDTkN-~F~ec#no2_*#QdnHN;bICUQ2$^P=jcMq34qH4R<8*J%rNc?pnq=J!oZm* z^7p{`#Gtg4a{8A@kuH+F_HQGa5x10W#fa_nR~^&!m_wP%BoaE5VMe4@4B7w@Afxnr z%l|{!o5w@B#{d6qbP^RIhE|lZR5G$gl5M0k#-32J3=twkg_2|x4cYg>jD1TIr9#P` zr9ui(q>@BYeXr}fhdSr;`TQP_-@m6bX1VYCdT+1y^Cdw@2<@&XNz@5Q*`?&l-i#+v z4z{DY*3{36dSg5vCxJFv!^^wP?8OoesGVsV?|?w)KjUUCrF&aVz<*YHe5f8$IAbdk z%M2fNxj^LSuor@Gr?h<=%jsRkvU+qmW!D$B;7>6rs@ZjrkFzqhw;6=#(4-0| z@m_(`Z`lRHv=^yjJ*cG5NwWIe3MCF}YW-ACoDU@aO~)Spn~vRGjsOB^_DuJsxAlgv z+>SSLQj;ASi}wwLtMz?cPa_wxww0xj>0@OPCELMN>XHoVajQDZQpD?HEmC5ugtmS7 zx}Vs@(^$CSE<#kOZ)YxO!j>*r#Cz1rjt03UXdcf1M9JjzKH+Knvm`mTF17XTv7pHo@G=VA(^6{3;w)jALu z)!^V2noSfFD5KV}wd*7KH#Otsf1#YxpYuPp81_Q1f@_uwN@dj8CfNt1Cepk(3<=J| zp#=-QZE$EccfPqig=PX|B-o~i6I!-KWso@sO4eBgOVIz*-WFJCiwhb!Isv1#ITA+2 zG|Ar?Svj?!3EPg8Q4d}p{2@n}Q z3>sQ)N@Jlp-D+o-pQ}>)v9=o2xgeKn3N`*q6E-^Q0nSt?2@^Gkm*iOT8;|UHG>PJ5 zujpK9^}~s{{8eLYBaKSr1<#|t>)6;qk^|I*lOMD9E;WU#+L&H@+F@0ll2Z-R&~d7Q z8%#q(=_=g8BMOQi-+-HJ9|aeYhRB>GCL(j19v!b!TFXG5T9ll?hH9CgZ`2d%WxIB2 zOl7i?6jwU)3h^q@y47qK(yV84hl?WuOUzS-ckVDXPqd&{r z;DkI!@tKD^{2~SOXX5_ChA_l$RsI#NyIfTG%D5!MlOyAr&cbzN0wt8a(L)}Ca_T)S zleL1r#+&>|wY=a9{OCpF=k<3@{M4J5ybr}}n7N=0^T^gkF_@Xu?YGcOs&vV^f*H3i z7i{?aFnhq_I(P%PmOE;F-_N0UUk@|&-9kcityx%;aZVA>rhcWtu z?#Vq^{p`?q=In6LUovejr>r`!Mm76)|{&C=0)RS=3bHK z#*L4-Z&h#c*p`?n64Cw#mlyALvQ@4ZXQQ^M&8^?V;#!P zzqcZNS(zHY9?KvSMD1m&l|?pXLTG|RcY`ek!^$Gh9qWH%?d~H6Pg9vstl{)K*Z6T*%Mi^|3FT*_MGCK+e3o!*HlWs zXGnnp^)Mu17R`W+0W_I?``7T!ZOt|J&_^m8N9lAd5Q;3ZQ4q9`#=XN2>4)c$;Z4ZYUi<>%};e06iZNX5yuD2uDU_j$GZnW z9n|{2FI9Vu?B*yScaHJxHN3E615-hgR|}D)VLBM*4!;n3)J_+_}oOYOIGZx zvBatOP)~BerMqtt2b~78hcDCx+egf)D%C!J#@5<-V611pm>3TxRkb^~XlMK-2`a9% zG2_{r58@(L+CZpR(`$dCHt}tvPL>osxDMesH9TJt`RXqas4=Sf9@$cQP`$ZeTA_IV z-!Td5lwg;SnRJ1Z>wVQfgvuIF`H(H6NGs`aTYXPue||P!LHUc(9}IO_VCopwB9+EV zNB@(r(BU6N;=1(d{6PNOeLBS2O#(LHRm}RA41dMkgsV=`ZMpA|T6xJH*{q$mIQH1Y zyD`b-ByJ%{oT8*IOkS-})v0v7{h&-{U!fpGN5h#J6r(bK{1SZ=Ehfn6^Wl$s1pyoL zwI5WR{E*1vhbWQvztPwU&Z(Nnja@4vR}%gnJ7 zDLbz}Xfq6o;xbOFf&0xonGSzx_5}U%S+KBp5eR#M3BwUSyVHV!RNkF~ z(+6#yv&PSNqnOgKE#Un5r!6-Nq1|pKiV3%~b>|1rod)e8;H+;yC?}f&32N|mgQD#a zwkZGOzR4p?yI(pwmMVZSjP;ZD|I`xOsUrqI8=c&g@H+2WBq%I_AXgh)lw|!sY;kGYBgZ|QZ*LA_>mm)EkILvXI)0Ztj zR?jWD>2(}Dq=z(5K5X7py>IO48UORuS1qDD;sUhBjMGxLm^kPVJ6{IDP@N9xoDe$( zw=Y(n({qADH`QPKLq{k6w7GLHDn7K7qdkJ1v`=V}s?UIWvTJW8GJPC>t&zT|qUG)Y z3oY_}>AjarIFmJu(4M{P8!Aj?H{y8`81Lf&Yc~wx$_T@;eZ?#A>2B)H9W82 zNjX|>GdZ2;6GudA13yeXw#5$avUv=a3At8`D~yGD3?G@`%E{Zs?4<@uaWQZFPWXK- z3^usKnOEHWUhMq?&jzJ5+@mT4Y4h))^QW;rs@C`I77T&6eXFX|O!6;fzf*s51KA-) z{e!0$UwW{2S=-LYBj$&a{)627^+BN%6u8CTH zkN;4$dv(O*#Z$XvL0OF1GFO-^`3DBvpvYSAFR`e>{f#rp60>*=U5oETmKks}>t6x7 z>i>{#BZo&uXK(8NzVrMC@>S7OX2QH_HX`F3MY5b}J?vu7OHfZK=X(eP^gw-)+#m6_ zuOweiCDS9N<-kc8*vV8ZX{F4#TuwdPSn64wNMvIob9(I|V$MI@`*hUNXg( z17qa%+aKw0n%=bMNHblW<@BwUBhqtHvUaJ%Q-e)mh}iN zTz^-&V$c$L>; z!Pp~!;l0A=1yQV;+2vnB*~b}edH-3aL7427cgJSW)=rgs=pN7a)}LQJzG96a*%r$9 zahfc+R^ns1eXk+b3v;!E69Mx4dUKu1WoYQA;hs(VKh~#U)ud_#mCADc@4j3zA}p{* z(YL;|8LHuYvZd&Dn%7|exD5+P1>Of*RIaJz!0I=Wgh{pSHwQyMM37?fb8&)5dIBBH z3ygJTv+GATwO=Qi;jlJ+^FlPnr0VZh&qXg-QBR)5ItCEAfiv8Cow(vJG2Fkln^XU& z;a>OWj~*N`;6ppnY|w~#F{+mxz^{r(%TTL*4M~AxLS=wa!(PG3)>aU` zseM?BWTMQA1MakyRTeex57jZ<1i!g2lBmNKW{%*|rhgkt8FV~>7>$Sj-;~W2p+xhF zZdqq+d92P*bMW&yQfFf*^ZIV5odi)VhnYzEtDg@|m}^uYnw?#igQMWK$G&&j`@4}k zk{Sv!tFFVc_Z`hT6wPKgXB3$W5XAINdw1K zO%kGZs;*GiI8odhLgR=|n}E*Cadn=5O6B4kY%f+HamwnW8W*!S%JYUl*U5pKhzz`?*wvdy1(=lJoYqHnw*=r~LITt}(tYzRqW9FFk|Q-RSw&d8Gs{f>Rn+ zFvE>zBaNn_DY;qID|aq+LDE-UIY^MF9sVYLdHl+f-R{l#K!Lfn&MoYEC1Zlf7`<^M zboZGe{=vsTF8{U}iz2mUUFr1xb$>^tD7{W@CiG|pf13Mh3b$Hrh1KoG{W^Ff)2z7! zc@a?W@}Bhh(tH1yFqLheO2l*S*^EF8*rifBri+&=`BJ$-?bHj|{)l7TLG49p_3!e3 zaio1t+);uC%}(4^xz?tKAbV?HX2E5iE=drHJJ2pP{gFLS_#0Tl@;yKf7K4^&#m-LI zjxN9IM&Rc}J?(X0Lq7ExU;B)pVvZXIt;e0*#*sF=@h@$5H?&%=i{RrV@@qG*eGqFT z-N>{LIJna5G)tfT*Isizc&j_mI{9U73HUWQd`-_u8pUjDTInlxv*f5?<;bsNRV0bD z4R|?$>*h_WfAraciI_f{%2rieX*nA!_f9^|cOejWftwRqEu)6^%zHR%PPIj|X5E_f zH`uIMl%2OLZx4G#wOaR039;18;OGIt_XP5iYN=qR3O=I0CEr!;Iw-Rh*D%LHZ#H)c zEd_c0ow~Q#wl4nXKNgi4BG?8?n$1B7lq)y9)=#vA;n#p^Kkx6DUSYZX6V-d?*jW7U z`#X*~$>JJt5lE= zhtsyGMjPiqO>oyjeUdY7ZE!OFy`V+1(WE2?Jd^w-|GUuq*SMMXJxa?%`Pfa64RGab zNJsD|D9!!P9&^&u!T55L;^aH2A65)((At@hObvuy8)K;7`L7aLw?>wd?Yn^d(ne}C z5N#fMeHNBjH6~aG+tx4f$I^5DY)$Pi{3Fcv$(}O?^#lZKL0#{9KXBAFHD+u!BY~$AkbCP_)EYvl) zQ8Q(r=)!qNR*bGCY*FJ^9i7 zd$_-NAh3Q@SQN=#SpNH=Uz>2(Xrt;4^k*CT)hKS=C%&FNk6!{YXgaC zp-uE$ZCL5s1^eLzgw?M97w&rTihjQ(r^h2M3ywvQ`W}XDPl_bf|93?SKa#&^ZEJHw zi}0_b36-By4R6?I#SPCbGT!)Y`}vMmgGf^)HOKz%8Low4aT*CFOJjV>UtbivQe=;n z!8)YT_7sN-gGgKbmevcj(XFa`ZX|iGxfv~`8T9gfm`n_<^Ad_fRqLWi{B4;voQi&;F_#&Kcj>qmg-ED<}~?iTG%(B)uy2NZvw31IiAlwlLo?Lso{%;7(v=V32Bk&49YB%&ow z$ar0Sb}^J=3v})}vvhTZ+zMDjJ$R*IBv%Tln+5a^!Q(r@>5aCdW+CqDIDTqoyWKXQ zNYZ*v!i@1~Od7Yop$;TbO;?+aZn#3PM`|xVwdS<8T$=2x9PZO010VTglmIAmJ?NY( z=wLuUA|62s;tkA-PvOQ^YHpH7S!%bmn%FWSSUe%SB!k05&z*?Qw>Ftvv4%!s^X-zN zWSq6<$LK#|;2Nq&kqE<~-Mlo1IHW<&HS1_yRc(?0Dz2oe5)7sh+w|RROzI7!X;chA zb+FYXaeBBe2wm`+z`k)OqVgwD+>7${J71tsW(YCwtm}>=T+k$XUd!l^ zfpstuBx@uJzc9E_WhZBOS7VM7!g$YPlLoqUDd^$MF$*D0Tm#Bae)|dTPtRNx1!n** z0d^2^P60nzf6TAXDb4NXvC!EN+zEAgiAG%GpbB=>QBIV}H*4H`_$OyFP9mAA)6ciPLHTx}h_$dj58Z4Bkp3h)oq0^fDqt*?U#z;wOU*m2Rwx*k4jk$83cNsGwt| z2vXpOEq|~T@432DX{L^_yu21rQKQRNV6_8EM19=Hx4YC9gB6H@)zs6MDN&p&a0qqeu~tK z2&LV+Q{uZhF>$ZnAj`_pFCVTDU)6O>NT#;CcAdW+o@f$@~QpQ6)hn$bzoRY{fB9>!@KiyD7_5TZj*mM{3`vd%{RQ7#zUZaOG|wUA|AaQ7LHJFp z|M;KnT8a#;;4#BYrk(K|OJUj8(9a;_K@14wes5x1$eC-lui z6>OHOJ0E=&Pk#=`q!sUh1}I}r&{a_rx+;FP)&sEw;xKoG=;=kHD!48&1RTSSZ@U^_ zU0p2KV})jFXPps|m>6%(5qcxnc`+TDy=B^uwplPdULx`^Z@^hi4KOW$;AKT#SwGD4-rKlP9xqKUCLp)bvn2^aB`BxwC}s2+3e zV^zZPw4T`De&YBuMnUNhSzTFs`3uKZ8M){g{1+k8yK0Yz{MMy^5F$$ChH<~_ookan z%xrCDyGdh~)i<9sJsAa$kqc;(rObM*LW-x+edp_`3a|4MpA=wsbeYZFJsO&|4@7a%WNdVU`6F zBM7Uz|3#l9QC350AEaAx#n-?ksb=@>e<0A%iSQLwd%k6QWa7KW{gI{R=hr_sIU?&M z|84bLoT&k8wON$pQO3Tos%{XugP4c?<~CmKHR7QoMd(dBBu4TLAB4y2{9yT zNO8dG<4ywys6`D`_xm>R)Bu`9FHDWYY0MiJ@52S0ssR|C%l6(K=sKte7q;)K5VRbd zUbdWpCXPj=)sZB*l5;#aSlc_Q!33W9R(@{rCni|KM`8(?6WR;Q>l8S%mMJyQ}-l6vE zs6U;J$Nd4LIW*Ug z&BQnKB8W4GpX}LvatqA*+{WyK9^~AtnSA%vf>F{{CDe7WlMUy}b+XZ3-hBVr4DvH? zrb7g2Z6k@|b(~J#t^gjOR3#hDhZx+C@q{>_~ zI@)J=JIIHhPII;7YRG9ByZX)L!O(SN>v7ULdn-o_LZSNHp78~5{E-jqPZpEX4@y=L9 zM^oj_#vku*7_PV9aJ~sLHn^T96>WrGP-TYf4-Nl?6*(Ym^T}mq_1w4PZE#n~jlZ4S zvFw{{NyEvH6BdlVCu|j!Z9n25;>@|v={k{BFXMy9XI0>%UqoUSYDn*aq#j(uCeGsaU$MUjbH$3cmyTWrk*>d%hZv=D+J2MeD{yIkXfFrCrZlkkd4qg6#;6 z)cL3jYPwnKF3CF}Z{N28;z%Ia1i^I9rC{FSszz-x3E-t>IA+V zWV2_{;PCOu87auHk;M3{x*Xgkhin2U;PmKRrLEs zPV>%w;)$CXWCF;!a;5s*Z+1Wsr!2;oE{0<4mVtlL-XE?uIb?T!p8Msq$+nsDxnY_1 zuSNkFNqsNU3{lj6wQOl_MUyN7iiI?^ zYimn0C2nSMuIdL?$mRtl^ATIpTB-}zH_Oss!3^ERF?p8+RxyLKL4m}KIOt-6TNR&# z$Um4(1zN>I`%xoi(OaYtBf4V!fwn?H@!!e0JCqA8yWM{FAHKV$xx%nNJZrM$O+bu} z^zT^G;bny9gv0sf_Id2uT~8Ds+W}6OO`tiWjU1&pEUAEWg=|G1Z zUf}RWP%NC0ar&l8T)O$FR)f%Z+{NO!%6cL)lsqyaNc)GtJQM8kOY-dUb7iXF zAU`7`ayVWDcKkN2)BS_$+yR5RISS^Fo{dqlV4hnCKF|t@0<8o3t#H2V!H(4MSk!zf zNiP;7QT*wN4>~B%IeB9wZVBSGyC}l=vc&0%qD^NEb+J%R#X|Y$7b4@mUpP1ysF1uO zdf$jB*B(LgR20ejr>9v%gv8YD%8Zm^Yy~gTHv*}XHu0@k_zW}kePiq`*8_PF;q=ag zv7cE0#cz~)L8Hu+O=sjX5+m8anC8$Hcwl<1+29A84$)KAOvct|Na4Bqn!Gv#kzxCZ z0(NJ z($5~vuK!v(6ZKJe0vbD5AumU&itB~B6lq!CgiELQo4YdSqqvvhcUf@v5*@`ya>%8x zC+Z7Go-3@4G@gAI2HDKJcxxm~hfK6*m?puvc+*Wd0Deg6=*SHGo?EBGSVk2AmjzU% z&~qWg0-U?&qKJRge{ztzqAZ3L*NCB(wOu`(L{Ul>aT%wHwCF}6`@jt0*qf6jZDx&_ ziQ1nbb1sI(!nU)f_Y8b&sxw7&@0=o=XFf?n%SFq_L`9;-G>+@<6P#>~N!HrAVQr&X zr@<|l%sOV_Kr;L4b+~K<#Wt@lf}|;xeHSO=FS(7{)c{XGu)lDhvok(U1BCSl2k}NX zvrDs=1qUTJkFb2GUy%Qjdld`?e#k6FP4TW)mLmI+375WobE$FrCD|54xZHel*cwiU z-w9Tnfj*PDT4=F3A2~Tv%v}!gfJeQC%-hrHuvlNx>_&}LDderZH$2=^I4}b@sDAR6 zdvQ3tB>!b-Apx&Co^uvn_7_m_P+oeA#O&I(sRYNSxb`%7Ux&qd2IO&sCrRC9W(>VN z?m`PkOX$Tpzc#gdtm;8-_f`ZOiQXODa8z%Q|K+!bByPAABz@PdxjkOcs7TuWIH9-d zO+Fg9MoH&ft%xa&8Y9VmbVc&ac?$XM9YD(BOPWp8oDFehA4 zrskdHBIz<_%xtfuOh7Cc1^3}#(F3(AS>I~n)Wv@Ho|OBB>wJBclRL#9Z*XHxo9Adf zpP$*wEtJ^C5AEzuCzio*3%~i>TgywrZyPmWpiasP>y0=yxH@G?E$@wf)oO|uplf$0 z+RJUBbCfvtwj0qq_Pw}s^VV++E4DrRdxgz7q2^d{9TIvEZ|L!S7#ghJHSO`}d+~I^ z_fN$NuVrrI!`#_z#38xjQH}<4=4S!o@%bJ1j_1CxYae6;WUP~og zN<(z!V0I94lv3vD-YQ^yLh9fz+kkh2`i^Xe%f!b@FaVe;D0>r5g^x1SxclTINtrBr zWw_16ZM^ZT2tDoEyQpevE}dWO?9|ZH4N`S($!+zr9%@&thJWoB^-aIJEqR5Y=kQTM zUW=X6Ww$5cl=<>G>!ij5CMHDBjUFmTJo@!iE@^(f6{h}ugU{N{+EcyBAs;I}tWGDM zeS3Ib?8Tn~f<(znn7-w$?%CiD|RzsN1D9S*`v94JSD95b%@Z}gLd6b zoPF}}A}F~jhqaJ1R>&*=x|9ztBT4DL9}n%n#i>+0Bt2q1wK52Vn=$IJV_D=Hu*hM%cqx{<+Nv49OAfC;I|4H7XJv zhjKcap|PKKGsXG&>7>pOTHJ~)Ty%Zd=!GQEA+NiSpcZ>R9__l)!!7pSBW3J z02jP9oe2TpBxe=bAkkn3&qwB=gr-Bul}&CS1~xvOHDZRa!7u}(CK`3tVc;oGSYd`SK@91e5LB9|_{?1QGzgoR z_zPk>1r_f}+n}TRaUVHSOb>PiRpKc$;{x{Z8Bl|5#`6XHgID~=X4#C2klUEeGTX4m z@nwes*r~`Mu!Hb<_EHP?HPrDJHj57xZysE&@xI8iAKNf%fu?3k+ zj%wWgVOH2pj}h!%O_ZZrm|K9<(%x|W_1^r+nGz{8oV4|dP^Kle4ZStqUnX7xYNYXs4**jOWbeh8oFL!4a7q)UNKBYzQ4t|IXTO1|j+rnO|=_9^|b{)%;U)Ws97KTEV>nxg$gQT4PQQ zOz_bxrU$-Vu6y5kzsjCY<}RUO54?Px8$VY#2LTX>H&5<8^zD9vyVoyUGarPd;A z-*jpbpRAj+zkaoxqWv!kIc+~R$IfrvkJBdX4HTdRb+@hhM@ngRW@omdL9+=X=`*OG z-M;dBOGSIhy>hqkh00s34A)L?Ao35jJNWApC={*okM!~La8w-!4IfS9AYa&IFsoM! zTnQ+aY$z*Mv>5n&$qJLq7V(RC^7V$P@b1P|#BT!R#Gt2CnpH zi+$5&^SpEz95t?(I1A4YHgUo95k={Zi*65BBT=?38z#y=rPax&)mhN#P;On#-qH+f z>o4N-we`w6+`odgnK}yAHc5mX@1l-0`_VsroW(YrD@=CraTX4{wO6pLANlF0u+^!~ zbzciV_dc&kJ{)vTgn8oghu(FTBd;XrOWtIrOEp06NB&0DJ7<2R2M0&iwof&w+wGhV z)<`H>BH*LT$x-$2>czu(pGIaD%pW1C6P$FNVjn&9TiUN^JWciX%S}u>M4g zIy0Q-7p64qQafG{>};X;AIdk;Uk~ogeo{F|Wb9Y!yR7xB0Uep8~^2Ju>*Qem7z{= zNM$!tc-$|Fr_ejRR1G&(tqTaQiz0QB@nr@Q^fb13j<{hn$juJJ6kv+>(In+`&)w~U zW;ad1A+7;VIjyAj;4(uwPzm#fM*FS;SyLD&U~^%dRMqaaf`>Au0h29uT+`t{Cz#VhMFhx#m)z^FM)7IC|Nd^%L{^ zQ5|ppN&0^B3OM_Yyu@oK-4HD?K<}`9#9ri6p%`iO$GPyC?C3pH-h515P@C{Ds=@C8 z!qGA0G9>cxsD`4|ybP@Q>~4PBYap&X(t38c?d>HamfZPH0;|bQ5M@;}5CZo2&ZDek z@FFMxtORLY&0Y-&dg`X1VVPI>6S$sVW_|IO46TnQjQh1Cb)$vYmG2dCA%7ENe%w@L zHzP|1NfLv$vkZqVFCSG!L2O(IhI|x^E0F-MOrR5dliNnbMQ=bXn*Usnb~A8ss1SYo zSYco{QoxCfxu5&CXF#j0x?cqGvT=WS*~@akBZzp}8{9x<<_^mB7;uuO+w^=-pay>6 zh8|-o15P{*G1C*vXLIMbp?*jhi3F7%c&4C~3z8gkr|+P$y+G+gQu_;xr?UO~HS{@~KvCHx+JDzjLjp9@|;o z^}rem!46Y@?LQ5p?@;rTY}siZ$xfcXi`U2C6uWb+;LKE*=GTUmL7S6eXLaXVFHguY zH*m;WIm;-u{H$driumvxu9$Fg8+jOK(VDxy?T}q&4t%fGi;hfwr1P%kZ|m8`ZW=v# z@p?M$=at9NH6@@@?o%Wt@NPq^UVPFq@ew3XPdd5mFYp&e7}+&V+^%S~-}UsjyQXr} z#L+cT9#&U9R*%JkN;&YT;>&;1D2F-hzebZ3CB6mChQ0CT`BycbL*uv@&%%qC@0@-2 z>isnwZVA6$xBT+hns%pEZp|FlLzaQ+0X|N82A$I$e$w=4_F{>X-rF?@O@5`Dq5R-TMN|{;N=Nmi zo@lNEuUJOSw13}dXquDSyUIVIUmslLv64K0<#cGzX{5#xDb4^`bU@;9H)1j z9zJjlBtqd~@p<%)R)yvxOQ;_@6>PF#7#ddX&_97U!iJ7SSgb|eg!GXAy-lrCpmo5t z`^n9@nr+8|%;^8K9EO|931-Ccu>2B-Q?_|^;Nj2QJYHJ8d(SS%cd`qnk1N9!=wz%` zg`o)lBbYtdH+;s8pBh18^VJH!dmP6e8+A9vfA`l*Sui_b=o=wOHtbfPi<(bDbif<^ z#n9MP!q{&2?7A1nCZ#`v=Rd9Lw~sv{p$*PTymnV60z@03tmQw3Qg@dXf(+vrRAY-I z9d!*GJn$i;G=B7={)qoD>?kS6m96PY@&5V$Q^tQA?*bW$W&JA?JDq{L(6fRH- z0u8mk@M!zpBf^%g|8a`k*Cxu}o>H4++18c(3B;@q21USd9#Cc&uCi@~n!h^}eXe+D zDwSP8QfAv-5p)1^75O^>15dFj(Xt=>Xvl1YvSP-Fx!r!q@6)ShdyegPVx!Sw-0}9u z_1guW71;RA)u`qi#zzsh(4&J(4XKV_%N z^~mPrB^tUC@cVl)BT`H5zAb_7g6Ck%Qy}WvOpsZ8g9JS=^`FkrIAaY^6FcdmMm_lF z+oWMG$MFur%(D?^;So@n%7N?h`_8>6C28+qPT# z;ZWGnz`{PSZoXeV+tncjEtWu}MDu12fL0?_JIrbj0_G_~TxLlx~Los5oniJuJpz(X=z)D%?;Zj{u-ch~M; zs&g9#)u$~%ZMORAHGh}YGA&%)FY!Tn^ERI#*1_}(59bquHiFND1{KySYnnIxoO8|~ z--7cQKS=4~d}qn{W(T$BCdq?+>{(x}?6 zo4?yU*}whHty0grVnsi=qrZ$_YG-4Fb^cq0XcAOTJJ#svygbd;|4*8uO?7!viEG^! z-)X^pD!&DGY0G)1#1bd&?W=z`pt#RfyEFa_IPdv`iuZ=sKDqo((LdoQN1BTbkHDe3 z7tfG)mYv|NzY(LzYy(j&NVT0||4UxRcTo(n;snns?YFN2qGC7M=`iX-bMYjmMND5) znaYUFo5Row+FwO>T4(Mq$IKI|&R5K7s^LaxP(^_zXT$eRT)54m+~A408F-vYh$Iya|c4 zo2w%Anz50yaiaOK-r6YnMDv8RrX?Oq(~lp9RtIKV#I&(hWss?%{-0El6z%Yy>1}DV zA7NR1RD!-#lgJesMap6;xt5ILG7;%#Pd{4-%ZqE5^j-gkC#YrAY~H6e0w z*|{Fa#(iNAhO8{P!JnGva(X<{E^B1eYq;p|gQmoVXAF(FPQpsr3Gews!9J3-9RI9z z@IVF*buSYeNTU;$jR(JoLN4{^pcWZT5fbw{iP$ODn-hFT^Vs_d|8Q^LDw*&ShrPsc z3TLQBdiE|hI9sbGCO&sq!o{Sm1flu*zRzF99QJb=UB#%`aLxp!nJ`Kd8C#Jvakz^1 zk&S-fZCK1`Hu>HNlK%=&BK3S1c5}>nRx`Lc|xO_}96N8dFIQ8GF%fj_9T+53n4t7osWZa->A z=x`H}Dx_8iu}YF2%wF~^KbY1TegH=k>jMRXyGnYhhP+=pSk5US_!^lXyvm&QWA}S?2Bg#V`HLIEYSLxs}P#ho` zFJC9yi;=ifWYpnrz^qQ*Z%JZ0ybdYAi(}DxZU%~?4=Fa0m|AtZ?IsL84Zbon;%0vd zijbGmPovR^pQ59YV(S;0*g+(w`qCKY@k$0VwRj{(XK#RdYdxnZQu&P?nr76%UXgQ> z#?S!AT2(tCsxUXW!8X+f?`hgFomZ$!gx@jfYsYhAVjpane0*`6E(x)`#>6R}Fxs7* zR9`a(kP6|X@4gSYS9a@HK>wzy+FL|MkBlex4a1a#XG~ zQSsRkF2}45W@>v}pS}{PkL|G%nT%;{xwY(mbkW9scoQ+L6$YF*8V*&QTy`i(t1vI- ziimSnmxmZVaXZ&^Fy@o$Mb8$uc2)%OQUf zS~g6Y;7cKmdVyRF_3m%bMit@u^Rl;Dy}L=H?axDF6>e2;?T<^4)nzEBkL7mWh9d6N z3DhA+OtGebViL3H8to3@T*FBoy(|l81nFDCfR`EqwjDqehT1+WjkOS&op;u8w%^^N zv-K26Cw_2x{wT#koXBb}B7>c3Sk8LX&2WCxv!CYDPYHh($T&sT|9ZUTnA&^jT)MS_ zxBJLnJdwBOPbUWWxc$Cg5GP7cJ3}Ww68C*;PEmhy;}{()F|&1FdS9Y#33M>0{p!3? zaK2EW-amNFp^oMM#HQm^1_n1Pf3g2Dynnf08($SksxJ17=qm&isUH}+_U?-6D<$JK zMpx&7A|GXc4C*!tLjm_RRh0(?0HtXH{H8ZP>8=MLLcQYGo+KJCu%M@eN;LT zSO_)NXv&;yhf8$QL9@Jj(wc*RDrb-W1?1P3Y6ihBe6&K1 z`^7GAuaA&jqJTe`L56*K^Fk{vVrM7#MbhSl+z->%Bvd35c6byFMNa-fb3zrjsg2=3 z+g3m81eKKwD4XX;%!{7xy0z1T+yaYpUBxpWqb}HW_;6a#$!lGd8q&fBbQlgbAJWfe zvD}%hGJSD^^7vnIM-Ew|?)6P;1M!-5H7UD($0P~2$ACD!(<%ikaAQ%qS_sNj=+ms& zc4UPf<9_Yg8MoonhQy|W<`^F+*~2-Cr$`evq!r4a@}Nx3!6l1dk1+=O*O4UsWS}r#+l6`|aY&}+=xX#XYsC{o>DH3rZM@Zop zYW}+tu~-dissRCVCik-*&)rdFhNyo!KV-He<^(T@pI))xUzA)LGa3TKhrGnNo^_l5E*FF4prRl@289?$wD~~ar4?Qd3#GxSFjk`sOLqJP;c4Iz`+A|=l-DN z)ZtA(aysZm&E}w@u7snl%g|HZc-66S@_gx<#-@A)lzVQEW{sHL_8&YRb$3v1%M1NI zV>asl#C=mr7w7TFiK3O`7*{u6Q#KyAkiw`ce zcR40-St# zB7=1&K*Wq1Y*HMX^mNp3a*)%1CQxIDO|)V8+7MwsE=pg5Ups}>)*NcH8z7_ujs(bs zM8-~5oBQqCMOd4A40X9Pkpzz3kq@=pL7Y_R)X5#M-79e-CCsOV{X+>3%HI$^n__!C zn)b5O6p9SZ7x3AAjF>m(M5CQ#SM!7cZYxax#{+F4KN}pdZzhFW6i z&bcDKd6w7e`kn!ZwI!I-d3d8r-SfrhJOn5K%$y*%J+C^$j7v@3_p-5OQxwu%^q+y> z1-A0VxKwJpdAT}oMYE3`Z9Zi}l%w*umPX3KnM);(nSH5l*=~`9JL+$$q{5*y86td zs*&FRQVl4?8zS7CkFz&)jfPl?EI3Y`kwc#+w63da_?sxWb{heAz`@bT9QP;se4y8;j{|f!o~!zy7k)sGckAk@eK}k zEJ|mYhhbprxiv ze%6G3kMD^f;cH_r4mNMfZCuuNjV6(M!)1RL>1yPjBOcwITYMpuv+<|sx!BpY7(cta z!h~J(>+_kiki}go-QoA^k{hL+6E{t0hKeYmOabi;>=@QRX zo+N2c#K=n5tWv(YsOxJO>h!r+wiiOmQ0HrO9AjpXE)r16b;GQN$ddiE^=?n};h0Qv z9w&=T=XAI*J^86m#+UhOb?p(8=Jy^K!gq>T;f?f77Zllc{Rc2b_WY>%g#iRxgSUGA9agKTHzJDI6zHh8|e87<=5$KI{JulofStVXw_xB$Mu)qDw67`OM$i?s;Fh)o_r2@OFOc%$cS{tjOs zlDxDq;MWmfJ;tIYp^rpHW=#a#t{J!8u&zI_S6^(L46C%=TF3~QxiD*PU}`mkRD^3< z$?1VM>e_z^pVuUliBK=BBm~E;)u_$=M+BEae%($X|BDq30xVsWYp7_!(E*D`KF&^{ zgm52H)ZL9}Zz4{H+_j2A5hP_clCkWrT4l#93KMH}?_U|N@PS@Ll2FFyC7n@p%EAdQ zVY}Ep$*b1o9{GT7Au>TYV*h3Ep(o??nYxzwdjkOLa% zN{;y6;ljaS0r#vvs7|jvA7ze{$Y>HiHS1)X$9_1We&e|RaL3)8wo$>go**F?!!b{? zRYD;g7hkQHocUg%e!r+V#S++I&h5ldVCRXH<+9DEBUFn!C{FF%h%0Y}dhdD=)Ji|sDeAeVWIvBCkqPiWP^gcjV3DpFMT9beXia&lELU6_Dk~WN*i(DkGK86#qCWW-iss~^bSyK z3x2ZfI@l(Sd-qBx|Mz{@{#p}E08V6#s}Mpc+QS|XlT)|cawv@y6StV=K||6 ziwsH9)AW~)4MdP$h~nk)Yw8b=xTPLhdANeTEM#MsbL0IH6GqKObwZfvP2A6a@=Tqn zO7zj9C7Y9G^v@hiCL5T{JkdJPKd6hBOJC(HcFvhqM4MT+rOTT}oESMz_uWHV_VO8t zGLXIFUAN&s_8lqxA@7BB87R_9&=qc+@@`g`F8tV=zD~1p?lN4sIsEamlh2oml*8NP zDrB=CA(7Xk9q;6i{n&sOr+va$9d0cg?}I0er#ht{>Ex zYSiKWYxb;Q32OCG_&&&|Sw!+()bM!kp}2KliQDa~JGPvjxN8au&1`KV7yAis<^K_% ze*}W~-25{P_f_by^o`!}Y7^$o!#*vCcV%sTCnZ;L#`xKz)z;r^<`vpAy0gXmZdiZh zx~yP7eSAo)$VT(nhqK)hk6kuXvMvU1WtmRFbt=mN)$XrSi3*v*L;|fb^%_(dX#J)8 zS`C$~#9>}e0)->gqf%-y+=pA?P0){`K3~n|>5H8CIwB2ya zS|pM4z|Bd&hA|;DdwwE(pzXRNuKtCNJtl@h_hzc?L8!H{*P1?0$0`3m!rnWc>i7R2 zZy-dHQ4Wzrj+HH0$?Vw2u8@&ELS{x0*{egy$T&C$AxR_(A$vzekyS>Ltm6B;p66)1 z-k;y?_t*P&d%c~`d0x-!x*qF3s%fI9J#*#l^u4YEj#S@E?IqnR82JTN*dso+il`2f z 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 + +#define F_CPU 16000000UL +#include +#include +#include // boolean type and values + +#define LED0 PINB0 +#define LED9 PINB1 +#define SW1 PIND2 +#define SW2 PIND3 + +volatile int activeLED = LED0; +volatile bool blink = true; + +void setupPorts() { + DDRB = 0xff; + PORTB = 0x00; + + DDRD = 0x00; + PORTD |= (1 << SW1) | (1 << SW2); // Activate pull-up resistors + + // Falling edge of INT0 and INT1 generates an interrupt request + EICRA |= (1 << ISC11) | (1 << ISC01); + EIMSK |= (1 << INT0) | (1 << INT1); // Enable external interrupt request + sei(); // Set global interrupt enable +} + +// SW1 is pressed +ISR(INT0_vect) { + if (activeLED == LED0) { // if D0 is already on, switching from blink to steady light or vice versa + blink = !blink; + } + else { // else D9 is on, turn off D9 and turn on D0 + PORTB = (1 << LED0); + } + + activeLED = LED0; +} + +// SW2 is pressed +ISR(INT1_vect) { + if (activeLED == LED9) { + blink = !blink; + } + else { + PORTB = (1 << LED9); + } + + activeLED = LED9; +} + +int main(void) { + setupPorts(); + while (1) { + if (blink) { + PORTB ^= (1 << activeLED); // Toggle active LED + } + _delay_ms(50); + } +} \ No newline at end of file diff --git a/Abgaben/P2/Hazinedar_3108590_ARBKVS_2_Polling.c b/Abgaben/P2/Hazinedar_3108590_ARBKVS_2_Polling.c new file mode 100644 index 0000000..f012502 --- /dev/null +++ b/Abgaben/P2/Hazinedar_3108590_ARBKVS_2_Polling.c @@ -0,0 +1,62 @@ +/* + * P2 Pooling.c + * + * Created: 11.11.2023 21:06:54 + * Author : Safak + */ + +#include +#define F_CPU 16000000UL +#include +#include + +#define LED0 PINB0 +#define LED9 PINB1 +#define SW1 PIND2 +#define SW2 PIND3 + +int activeLED = LED0; +bool blinking = true; + +void setupPorts() { + DDRB = 0xff; // DDRB as output + PORTB = 0x00; + + DDRD = 0x00; // DDRD as input + PORTD = 0xff; +} + +void isButtonPressed() { + if ( !(PIND & (1 << SW1)) ) { // SW1 is pressed + if (activeLED == LED0) { // if D0 is on + blinking = !blinking; // toggle blinking + } + else { // switch LED + PORTB = (1 << LED0); + } + activeLED = LED0; + } + else if ( !(PIND & (1 << SW2))) { // SW2 is pressed + if (activeLED == LED9) { // if D9 is on + blinking = !blinking; // toggle blinking + } + else { // switch LED + PORTB = (1 << LED9); + } + activeLED = LED9; + } +} +int main(void) { + setupPorts(); + while (1) { + isButtonPressed(); + if (blinking) { + PORTB ^= (1 << activeLED); + } + else { + PORTB = (1 << activeLED); + } + _delay_ms(250); + } +} + diff --git a/Abgaben/P2/Hazinedar_3108590_ARBKVS_2_UML.pdf b/Abgaben/P2/Hazinedar_3108590_ARBKVS_2_UML.pdf new file mode 100644 index 0000000000000000000000000000000000000000..0033f9cd699d8fa2e294a2fd86039362147b4600 GIT binary patch literal 105424 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 LnU1eC%Devn|K2Of literal 32256 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 JzmC4){r}_Rq1*rf diff --git a/P1/.vscode/c_cpp_properties.json b/P1/.vscode/c_cpp_properties.json deleted file mode 100644 index ec932fb..0000000 --- a/P1/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "windows-msvc-x64", - "includePath": [ - "${workspaceFolder}/**" - ], - "compilerPath": "cl.exe", - "cStandard": "c11", - "cppStandard": "c++14", - "intelliSenseMode": "windows-msvc-x64", - "compilerArgs": [ - "" - ] - } - ], - "version": 4 -} \ No newline at end of file diff --git a/P1/.vscode/launch.json b/P1/.vscode/launch.json deleted file mode 100644 index 664753d..0000000 --- a/P1/.vscode/launch.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "version": "0.2.0", - "configurations": [ - { - "name": "C/C++ Runner: Debug Session", - "type": "cppvsdbg", - "request": "launch", - "args": [], - "stopAtEntry": false, - "console": "externalTerminal", - "cwd": ".", - "program": "build/Debug/outDebug" - } - ] -} \ No newline at end of file diff --git a/P1/.vscode/settings.json b/P1/.vscode/settings.json deleted file mode 100644 index 0009f6d..0000000 --- a/P1/.vscode/settings.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "C_Cpp_Runner.cCompilerPath": "C:/Program Files/Microsoft Visual Studio/2022/Enterprise/VC/Auxiliary/Build/vcvarsall.bat", - "C_Cpp_Runner.cppCompilerPath": "C:/Program Files/Microsoft Visual Studio/2022/Enterprise/VC/Auxiliary/Build/vcvarsall.bat", - "C_Cpp_Runner.debuggerPath": "gdb", - "C_Cpp_Runner.cStandard": "", - "C_Cpp_Runner.cppStandard": "c++14", - "C_Cpp_Runner.msvcBatchPath": "C:/Program Files/Microsoft Visual Studio/2022/Enterprise/VC/Auxiliary/Build/vcvarsall.bat", - "C_Cpp_Runner.useMsvc": true, - "C_Cpp_Runner.warnings": [ - "-Wall", - "-Wextra", - "-Wpedantic", - "-Wshadow", - "-Wformat=2", - "-Wcast-align", - "-Wconversion", - "-Wsign-conversion", - "-Wnull-dereference" - ], - "C_Cpp_Runner.msvcWarnings": [ - "/W4", - "/permissive-", - "/w14242", - "/w14287", - "/w14296", - "/w14311", - "/w14826", - "/w44062", - "/w44242", - "/w14905", - "/w14906", - "/w14263", - "/w44265", - "/w14928" - ], - "C_Cpp_Runner.enableWarnings": true, - "C_Cpp_Runner.warningsAsError": false, - "C_Cpp_Runner.compilerArgs": [], - "C_Cpp_Runner.linkerArgs": [], - "C_Cpp_Runner.includePaths": [], - "C_Cpp_Runner.includeSearch": [ - "*", - "**/*" - ], - "C_Cpp_Runner.excludeSearch": [ - "**/build", - "**/build/**", - "**/.*", - "**/.*/**", - "**/.vscode", - "**/.vscode/**" - ], - "C_Cpp_Runner.useAddressSanitizer": false, - "C_Cpp_Runner.useUndefinedSanitizer": false, - "C_Cpp_Runner.useLeakSanitizer": false, - "C_Cpp_Runner.showCompilationTime": false, - "C_Cpp_Runner.useLinkTimeOptimization": false, - "C_Cpp_Runner.msvcSecureNoWarnings": false -} \ No newline at end of file diff --git a/P1/P1/Debug/P1.hex b/P1/P1/Debug/P1.hex new file mode 100644 index 0000000..3bf981b --- /dev/null +++ b/P1/P1/Debug/P1.hex @@ -0,0 +1,8 @@ +:020000020000FC +:1000000000C00FEF0DBF08E00EBF1FEF1AB923E0CD +:1000100024B911E01BB918D0110F1030D9F71BB952 +:1000200021E025B911D0220F2230D9F725B90CD003 +:1000300026952030D9F725B910E81BB905D01695BB +:100040001130D9F70C940A0031E14CE35CEC5A957D +:0C005000F1F74A95E1F73A95D1F70895D1 +:00000001FF diff --git a/P1/P1/Debug/P1.lss b/P1/P1/Debug/P1.lss index a4ba57e..6740920 100644 --- a/P1/P1/Debug/P1.lss +++ b/P1/P1/Debug/P1.lss @@ -1,10 +1,10 @@ -AVRASM ver. 2.2.7 C:\Users\Safak\Desktop\UNI\3. Semester\53107 ARBK\Praktikumsunterlagen\ARBKVS-Praktika\P1\P1\main.asm Tue Oct 31 15:07:47 2023 +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 [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\Desktop\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' +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' [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\Desktop\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' +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 new file mode 100644 index 0000000..254e5c7 --- /dev/null +++ b/P1/P1/Debug/P1.map @@ -0,0 +1,704 @@ + +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 + + +EQU SIGNATURE_000 0000001e +EQU SIGNATURE_001 00000095 +EQU SIGNATURE_002 0000000f +EQU UDR0 000000c6 +EQU UBRR0L 000000c4 +EQU UBRR0H 000000c5 +EQU UCSR0C 000000c2 +EQU UCSR0B 000000c1 +EQU UCSR0A 000000c0 +EQU TWAMR 000000bd +EQU TWCR 000000bc +EQU TWDR 000000bb +EQU TWAR 000000ba +EQU TWSR 000000b9 +EQU TWBR 000000b8 +EQU ASSR 000000b6 +EQU OCR2B 000000b4 +EQU OCR2A 000000b3 +EQU TCNT2 000000b2 +EQU TCCR2B 000000b1 +EQU TCCR2A 000000b0 +EQU OCR1BL 0000008a +EQU OCR1BH 0000008b +EQU OCR1AL 00000088 +EQU OCR1AH 00000089 +EQU ICR1L 00000086 +EQU ICR1H 00000087 +EQU TCNT1L 00000084 +EQU TCNT1H 00000085 +EQU TCCR1C 00000082 +EQU TCCR1B 00000081 +EQU TCCR1A 00000080 +EQU DIDR1 0000007f +EQU DIDR0 0000007e +EQU ADMUX 0000007c +EQU ADCSRB 0000007b +EQU ADCSRA 0000007a +EQU ADCH 00000079 +EQU ADCL 00000078 +EQU TIMSK2 00000070 +EQU TIMSK1 0000006f +EQU TIMSK0 0000006e +EQU PCMSK1 0000006c +EQU PCMSK2 0000006d +EQU PCMSK0 0000006b +EQU EICRA 00000069 +EQU PCICR 00000068 +EQU OSCCAL 00000066 +EQU PRR 00000064 +EQU CLKPR 00000061 +EQU WDTCSR 00000060 +EQU SREG 0000003f +EQU SPL 0000003d +EQU SPH 0000003e +EQU SPMCSR 00000037 +EQU MCUCR 00000035 +EQU MCUSR 00000034 +EQU SMCR 00000033 +EQU ACSR 00000030 +EQU SPDR 0000002e +EQU SPSR 0000002d +EQU SPCR 0000002c +EQU GPIOR2 0000002b +EQU GPIOR1 0000002a +EQU OCR0B 00000028 +EQU OCR0A 00000027 +EQU TCNT0 00000026 +EQU TCCR0B 00000025 +EQU TCCR0A 00000024 +EQU GTCCR 00000023 +EQU EEARH 00000022 +EQU EEARL 00000021 +EQU EEDR 00000020 +EQU EECR 0000001f +EQU GPIOR0 0000001e +EQU EIMSK 0000001d +EQU EIFR 0000001c +EQU PCIFR 0000001b +EQU TIFR2 00000017 +EQU TIFR1 00000016 +EQU TIFR0 00000015 +EQU PORTD 0000000b +EQU DDRD 0000000a +EQU PIND 00000009 +EQU PORTC 00000008 +EQU DDRC 00000007 +EQU PINC 00000006 +EQU PORTB 00000005 +EQU DDRB 00000004 +EQU PINB 00000003 +EQU UDR0_0 00000000 +EQU UDR0_1 00000001 +EQU UDR0_2 00000002 +EQU UDR0_3 00000003 +EQU UDR0_4 00000004 +EQU UDR0_5 00000005 +EQU UDR0_6 00000006 +EQU UDR0_7 00000007 +EQU MPCM0 00000000 +EQU U2X0 00000001 +EQU UPE0 00000002 +EQU DOR0 00000003 +EQU FE0 00000004 +EQU UDRE0 00000005 +EQU TXC0 00000006 +EQU RXC0 00000007 +EQU TXB80 00000000 +EQU RXB80 00000001 +EQU UCSZ02 00000002 +EQU TXEN0 00000003 +EQU RXEN0 00000004 +EQU UDRIE0 00000005 +EQU TXCIE0 00000006 +EQU RXCIE0 00000007 +EQU UCPOL0 00000000 +EQU UCSZ00 00000001 +EQU UCPHA0 00000001 +EQU UCSZ01 00000002 +EQU UDORD0 00000002 +EQU USBS0 00000003 +EQU UPM00 00000004 +EQU UPM01 00000005 +EQU UMSEL00 00000006 +EQU UMSEL0 00000006 +EQU UMSEL01 00000007 +EQU UMSEL1 00000007 +EQU UBRR8 00000000 +EQU UBRR9 00000001 +EQU UBRR10 00000002 +EQU UBRR11 00000003 +EQU _UBRR0 00000000 +EQU _UBRR1 00000001 +EQU UBRR2 00000002 +EQU UBRR3 00000003 +EQU UBRR4 00000004 +EQU UBRR5 00000005 +EQU UBRR6 00000006 +EQU UBRR7 00000007 +EQU TWAM0 00000001 +EQU TWAMR0 00000001 +EQU TWAM1 00000002 +EQU TWAMR1 00000002 +EQU TWAM2 00000003 +EQU TWAMR2 00000003 +EQU TWAM3 00000004 +EQU TWAMR3 00000004 +EQU TWAM4 00000005 +EQU TWAMR4 00000005 +EQU TWAM5 00000006 +EQU TWAMR5 00000006 +EQU TWAM6 00000007 +EQU TWAMR6 00000007 +EQU TWBR0 00000000 +EQU TWBR1 00000001 +EQU TWBR2 00000002 +EQU TWBR3 00000003 +EQU TWBR4 00000004 +EQU TWBR5 00000005 +EQU TWBR6 00000006 +EQU TWBR7 00000007 +EQU TWIE 00000000 +EQU TWEN 00000002 +EQU TWWC 00000003 +EQU TWSTO 00000004 +EQU TWSTA 00000005 +EQU TWEA 00000006 +EQU TWINT 00000007 +EQU TWPS0 00000000 +EQU TWPS1 00000001 +EQU TWS3 00000003 +EQU TWS4 00000004 +EQU TWS5 00000005 +EQU TWS6 00000006 +EQU TWS7 00000007 +EQU TWD0 00000000 +EQU TWD1 00000001 +EQU TWD2 00000002 +EQU TWD3 00000003 +EQU TWD4 00000004 +EQU TWD5 00000005 +EQU TWD6 00000006 +EQU TWD7 00000007 +EQU TWGCE 00000000 +EQU TWA0 00000001 +EQU TWA1 00000002 +EQU TWA2 00000003 +EQU TWA3 00000004 +EQU TWA4 00000005 +EQU TWA5 00000006 +EQU TWA6 00000007 +EQU TOIE1 00000000 +EQU OCIE1A 00000001 +EQU OCIE1B 00000002 +EQU ICIE1 00000005 +EQU TOV1 00000000 +EQU OCF1A 00000001 +EQU OCF1B 00000002 +EQU ICF1 00000005 +EQU WGM10 00000000 +EQU WGM11 00000001 +EQU COM1B0 00000004 +EQU COM1B1 00000005 +EQU COM1A0 00000006 +EQU COM1A1 00000007 +EQU CS10 00000000 +EQU CS11 00000001 +EQU CS12 00000002 +EQU WGM12 00000003 +EQU WGM13 00000004 +EQU ICES1 00000006 +EQU ICNC1 00000007 +EQU FOC1B 00000006 +EQU FOC1A 00000007 +EQU PSRSYNC 00000000 +EQU TSM 00000007 +EQU TOIE2 00000000 +EQU TOIE2A 00000000 +EQU OCIE2A 00000001 +EQU OCIE2B 00000002 +EQU TOV2 00000000 +EQU OCF2A 00000001 +EQU OCF2B 00000002 +EQU WGM20 00000000 +EQU WGM21 00000001 +EQU COM2B0 00000004 +EQU COM2B1 00000005 +EQU COM2A0 00000006 +EQU COM2A1 00000007 +EQU CS20 00000000 +EQU CS21 00000001 +EQU CS22 00000002 +EQU WGM22 00000003 +EQU FOC2B 00000006 +EQU FOC2A 00000007 +EQU TCNT2_0 00000000 +EQU TCNT2_1 00000001 +EQU TCNT2_2 00000002 +EQU TCNT2_3 00000003 +EQU TCNT2_4 00000004 +EQU TCNT2_5 00000005 +EQU TCNT2_6 00000006 +EQU TCNT2_7 00000007 +EQU OCR2A_0 00000000 +EQU OCR2A_1 00000001 +EQU OCR2A_2 00000002 +EQU OCR2A_3 00000003 +EQU OCR2A_4 00000004 +EQU OCR2A_5 00000005 +EQU OCR2A_6 00000006 +EQU OCR2A_7 00000007 +EQU OCR2B_0 00000000 +EQU OCR2B_1 00000001 +EQU OCR2B_2 00000002 +EQU OCR2B_3 00000003 +EQU OCR2B_4 00000004 +EQU OCR2B_5 00000005 +EQU OCR2B_6 00000006 +EQU OCR2B_7 00000007 +EQU TCR2BUB 00000000 +EQU TCR2AUB 00000001 +EQU OCR2BUB 00000002 +EQU OCR2AUB 00000003 +EQU TCN2UB 00000004 +EQU AS2 00000005 +EQU EXCLK 00000006 +EQU PSRASY 00000001 +EQU PSR2 00000001 +EQU MUX0 00000000 +EQU MUX1 00000001 +EQU MUX2 00000002 +EQU MUX3 00000003 +EQU ADLAR 00000005 +EQU REFS0 00000006 +EQU REFS1 00000007 +EQU ADPS0 00000000 +EQU ADPS1 00000001 +EQU ADPS2 00000002 +EQU ADIE 00000003 +EQU ADIF 00000004 +EQU ADATE 00000005 +EQU ADSC 00000006 +EQU ADEN 00000007 +EQU ADTS0 00000000 +EQU ADTS1 00000001 +EQU ADTS2 00000002 +EQU ACME 00000006 +EQU ADCH0 00000000 +EQU ADCH1 00000001 +EQU ADCH2 00000002 +EQU ADCH3 00000003 +EQU ADCH4 00000004 +EQU ADCH5 00000005 +EQU ADCH6 00000006 +EQU ADCH7 00000007 +EQU ADCL0 00000000 +EQU ADCL1 00000001 +EQU ADCL2 00000002 +EQU ADCL3 00000003 +EQU ADCL4 00000004 +EQU ADCL5 00000005 +EQU ADCL6 00000006 +EQU ADCL7 00000007 +EQU ADC0D 00000000 +EQU ADC1D 00000001 +EQU ADC2D 00000002 +EQU ADC3D 00000003 +EQU ADC4D 00000004 +EQU ADC5D 00000005 +EQU ACIS0 00000000 +EQU ACIS1 00000001 +EQU ACIC 00000002 +EQU ACIE 00000003 +EQU ACI 00000004 +EQU ACO 00000005 +EQU ACBG 00000006 +EQU ACD 00000007 +EQU AIN0D 00000000 +EQU AIN1D 00000001 +EQU PORTB0 00000000 +EQU PB0 00000000 +EQU PORTB1 00000001 +EQU PB1 00000001 +EQU PORTB2 00000002 +EQU PB2 00000002 +EQU PORTB3 00000003 +EQU PB3 00000003 +EQU PORTB4 00000004 +EQU PB4 00000004 +EQU PORTB5 00000005 +EQU PB5 00000005 +EQU PORTB6 00000006 +EQU PB6 00000006 +EQU PORTB7 00000007 +EQU PB7 00000007 +EQU DDB0 00000000 +EQU DDB1 00000001 +EQU DDB2 00000002 +EQU DDB3 00000003 +EQU DDB4 00000004 +EQU DDB5 00000005 +EQU DDB6 00000006 +EQU DDB7 00000007 +EQU PINB0 00000000 +EQU PINB1 00000001 +EQU PINB2 00000002 +EQU PINB3 00000003 +EQU PINB4 00000004 +EQU PINB5 00000005 +EQU PINB6 00000006 +EQU PINB7 00000007 +EQU PORTC0 00000000 +EQU PC0 00000000 +EQU PORTC1 00000001 +EQU PC1 00000001 +EQU PORTC2 00000002 +EQU PC2 00000002 +EQU PORTC3 00000003 +EQU PC3 00000003 +EQU PORTC4 00000004 +EQU PC4 00000004 +EQU PORTC5 00000005 +EQU PC5 00000005 +EQU PORTC6 00000006 +EQU PC6 00000006 +EQU DDC0 00000000 +EQU DDC1 00000001 +EQU DDC2 00000002 +EQU DDC3 00000003 +EQU DDC4 00000004 +EQU DDC5 00000005 +EQU DDC6 00000006 +EQU PINC0 00000000 +EQU PINC1 00000001 +EQU PINC2 00000002 +EQU PINC3 00000003 +EQU PINC4 00000004 +EQU PINC5 00000005 +EQU PINC6 00000006 +EQU PORTD0 00000000 +EQU PD0 00000000 +EQU PORTD1 00000001 +EQU PD1 00000001 +EQU PORTD2 00000002 +EQU PD2 00000002 +EQU PORTD3 00000003 +EQU PD3 00000003 +EQU PORTD4 00000004 +EQU PD4 00000004 +EQU PORTD5 00000005 +EQU PD5 00000005 +EQU PORTD6 00000006 +EQU PD6 00000006 +EQU PORTD7 00000007 +EQU PD7 00000007 +EQU DDD0 00000000 +EQU DDD1 00000001 +EQU DDD2 00000002 +EQU DDD3 00000003 +EQU DDD4 00000004 +EQU DDD5 00000005 +EQU DDD6 00000006 +EQU DDD7 00000007 +EQU PIND0 00000000 +EQU PIND1 00000001 +EQU PIND2 00000002 +EQU PIND3 00000003 +EQU PIND4 00000004 +EQU PIND5 00000005 +EQU PIND6 00000006 +EQU PIND7 00000007 +EQU TOIE0 00000000 +EQU OCIE0A 00000001 +EQU OCIE0B 00000002 +EQU TOV0 00000000 +EQU OCF0A 00000001 +EQU OCF0B 00000002 +EQU WGM00 00000000 +EQU WGM01 00000001 +EQU COM0B0 00000004 +EQU COM0B1 00000005 +EQU COM0A0 00000006 +EQU COM0A1 00000007 +EQU CS00 00000000 +EQU CS01 00000001 +EQU CS02 00000002 +EQU WGM02 00000003 +EQU FOC0B 00000006 +EQU FOC0A 00000007 +EQU TCNT0_0 00000000 +EQU TCNT0_1 00000001 +EQU TCNT0_2 00000002 +EQU TCNT0_3 00000003 +EQU TCNT0_4 00000004 +EQU TCNT0_5 00000005 +EQU TCNT0_6 00000006 +EQU TCNT0_7 00000007 +EQU OCR0A_0 00000000 +EQU OCR0A_1 00000001 +EQU OCR0A_2 00000002 +EQU OCR0A_3 00000003 +EQU OCR0A_4 00000004 +EQU OCR0A_5 00000005 +EQU OCR0A_6 00000006 +EQU OCR0A_7 00000007 +EQU OCR0B_0 00000000 +EQU OCR0B_1 00000001 +EQU OCR0B_2 00000002 +EQU OCR0B_3 00000003 +EQU OCR0B_4 00000004 +EQU OCR0B_5 00000005 +EQU OCR0B_6 00000006 +EQU OCR0B_7 00000007 +EQU PSR10 00000000 +EQU ISC00 00000000 +EQU ISC01 00000001 +EQU ISC10 00000002 +EQU ISC11 00000003 +EQU INT0 00000000 +EQU INT1 00000001 +EQU INTF0 00000000 +EQU INTF1 00000001 +EQU PCIE0 00000000 +EQU PCIE1 00000001 +EQU PCIE2 00000002 +EQU PCINT16 00000000 +EQU PCINT17 00000001 +EQU PCINT18 00000002 +EQU PCINT19 00000003 +EQU PCINT20 00000004 +EQU PCINT21 00000005 +EQU PCINT22 00000006 +EQU PCINT23 00000007 +EQU PCINT8 00000000 +EQU PCINT9 00000001 +EQU PCINT10 00000002 +EQU PCINT11 00000003 +EQU PCINT12 00000004 +EQU PCINT13 00000005 +EQU PCINT14 00000006 +EQU PCINT0 00000000 +EQU PCINT1 00000001 +EQU PCINT2 00000002 +EQU PCINT3 00000003 +EQU PCINT4 00000004 +EQU PCINT5 00000005 +EQU PCINT6 00000006 +EQU PCINT7 00000007 +EQU PCIF0 00000000 +EQU PCIF1 00000001 +EQU PCIF2 00000002 +EQU SPDR0 00000000 +EQU SPDR1 00000001 +EQU SPDR2 00000002 +EQU SPDR3 00000003 +EQU SPDR4 00000004 +EQU SPDR5 00000005 +EQU SPDR6 00000006 +EQU SPDR7 00000007 +EQU SPI2X 00000000 +EQU WCOL 00000006 +EQU SPIF 00000007 +EQU SPR0 00000000 +EQU SPR1 00000001 +EQU CPHA 00000002 +EQU CPOL 00000003 +EQU MSTR 00000004 +EQU DORD 00000005 +EQU SPE 00000006 +EQU SPIE 00000007 +EQU WDP0 00000000 +EQU WDP1 00000001 +EQU WDP2 00000002 +EQU WDE 00000003 +EQU WDCE 00000004 +EQU WDP3 00000005 +EQU WDIE 00000006 +EQU WDIF 00000007 +EQU SREG_C 00000000 +EQU SREG_Z 00000001 +EQU SREG_N 00000002 +EQU SREG_V 00000003 +EQU SREG_S 00000004 +EQU SREG_H 00000005 +EQU SREG_T 00000006 +EQU SREG_I 00000007 +EQU CAL0 00000000 +EQU CAL1 00000001 +EQU CAL2 00000002 +EQU CAL3 00000003 +EQU CAL4 00000004 +EQU CAL5 00000005 +EQU CAL6 00000006 +EQU CAL7 00000007 +EQU CLKPS0 00000000 +EQU CLKPS1 00000001 +EQU CLKPS2 00000002 +EQU CLKPS3 00000003 +EQU CLKPCE 00000007 +EQU SELFPRGEN 00000000 +EQU SPMEN 00000000 +EQU PGERS 00000001 +EQU PGWRT 00000002 +EQU BLBSET 00000003 +EQU RWWSRE 00000004 +EQU SIGRD 00000005 +EQU RWWSB 00000006 +EQU SPMIE 00000007 +EQU IVCE 00000000 +EQU IVSEL 00000001 +EQU PUD 00000004 +EQU BODSE 00000005 +EQU BODS 00000006 +EQU PORF 00000000 +EQU EXTRF 00000001 +EQU EXTREF 00000001 +EQU BORF 00000002 +EQU WDRF 00000003 +EQU SE 00000000 +EQU SM0 00000001 +EQU SM1 00000002 +EQU SM2 00000003 +EQU GPIOR20 00000000 +EQU GPIOR21 00000001 +EQU GPIOR22 00000002 +EQU GPIOR23 00000003 +EQU GPIOR24 00000004 +EQU GPIOR25 00000005 +EQU GPIOR26 00000006 +EQU GPIOR27 00000007 +EQU GPIOR10 00000000 +EQU GPIOR11 00000001 +EQU GPIOR12 00000002 +EQU GPIOR13 00000003 +EQU GPIOR14 00000004 +EQU GPIOR15 00000005 +EQU GPIOR16 00000006 +EQU GPIOR17 00000007 +EQU GPIOR00 00000000 +EQU GPIOR01 00000001 +EQU GPIOR02 00000002 +EQU GPIOR03 00000003 +EQU GPIOR04 00000004 +EQU GPIOR05 00000005 +EQU GPIOR06 00000006 +EQU GPIOR07 00000007 +EQU PRADC 00000000 +EQU PRUSART0 00000001 +EQU PRSPI 00000002 +EQU PRTIM1 00000003 +EQU PRTIM0 00000005 +EQU PRTIM2 00000006 +EQU PRTWI 00000007 +EQU EEAR0 00000000 +EQU EEAR1 00000001 +EQU EEAR2 00000002 +EQU EEAR3 00000003 +EQU EEAR4 00000004 +EQU EEAR5 00000005 +EQU EEAR6 00000006 +EQU EEAR7 00000007 +EQU EEAR8 00000000 +EQU EEAR9 00000001 +EQU EEDR0 00000000 +EQU EEDR1 00000001 +EQU EEDR2 00000002 +EQU EEDR3 00000003 +EQU EEDR4 00000004 +EQU EEDR5 00000005 +EQU EEDR6 00000006 +EQU EEDR7 00000007 +EQU EERE 00000000 +EQU EEPE 00000001 +EQU EEMPE 00000002 +EQU EERIE 00000003 +EQU EEPM0 00000004 +EQU EEPM1 00000005 +EQU LB1 00000000 +EQU LB2 00000001 +EQU BLB01 00000002 +EQU BLB02 00000003 +EQU BLB11 00000004 +EQU BLB12 00000005 +EQU CKSEL0 00000000 +EQU CKSEL1 00000001 +EQU CKSEL2 00000002 +EQU CKSEL3 00000003 +EQU SUT0 00000004 +EQU SUT1 00000005 +EQU CKOUT 00000006 +EQU CKDIV8 00000007 +EQU BOOTRST 00000000 +EQU BOOTSZ0 00000001 +EQU BOOTSZ1 00000002 +EQU EESAVE 00000003 +EQU WDTON 00000004 +EQU SPIEN 00000005 +EQU DWEN 00000006 +EQU RSTDISBL 00000007 +EQU BODLEVEL0 00000000 +EQU BODLEVEL1 00000001 +EQU BODLEVEL2 00000002 +DEF XH r27 +DEF XL r26 +DEF YH r29 +DEF YL r28 +DEF ZH r31 +DEF ZL r30 +EQU FLASHEND 00003fff +EQU IOEND 000000ff +EQU SRAM_START 00000100 +EQU SRAM_SIZE 00000800 +EQU RAMEND 000008ff +EQU XRAMEND 00000000 +EQU E2END 000003ff +EQU EEPROMEND 000003ff +EQU EEADRBITS 0000000a +EQU NRWW_START_ADDR 00003800 +EQU NRWW_STOP_ADDR 00003fff +EQU RWW_START_ADDR 00000000 +EQU RWW_STOP_ADDR 000037ff +EQU PAGESIZE 00000040 +EQU FIRSTBOOTSTART 00003f00 +EQU SECONDBOOTSTART 00003e00 +EQU THIRDBOOTSTART 00003c00 +EQU FOURTHBOOTSTART 00003800 +EQU SMALLBOOTSTART 00003f00 +EQU LARGEBOOTSTART 00003800 +EQU INT0addr 00000002 +EQU INT1addr 00000004 +EQU PCI0addr 00000006 +EQU PCI1addr 00000008 +EQU PCI2addr 0000000a +EQU WDTaddr 0000000c +EQU OC2Aaddr 0000000e +EQU OC2Baddr 00000010 +EQU OVF2addr 00000012 +EQU ICP1addr 00000014 +EQU OC1Aaddr 00000016 +EQU OC1Baddr 00000018 +EQU OVF1addr 0000001a +EQU OC0Aaddr 0000001c +EQU OC0Baddr 0000001e +EQU OVF0addr 00000020 +EQU SPIaddr 00000022 +EQU URXCaddr 00000024 +EQU UDREaddr 00000026 +EQU UTXCaddr 00000028 +EQU ADCCaddr 0000002a +EQU ERDYaddr 0000002c +EQU ACIaddr 0000002e +EQU TWIaddr 00000030 +EQU SPMRaddr 00000032 +EQU INT_VECTORS_SIZE 00000034 +CSEG init 00000001 +CSEG portD_left 0000000a +CSEG delay 00000024 +CSEG portB_left 00000011 +CSEG portB_right 00000016 +CSEG portD_right 0000001d +CSEG L1 00000027 diff --git a/P1/P1/Debug/P1.obj b/P1/P1/Debug/P1.obj new file mode 100644 index 0000000000000000000000000000000000000000..78fcc760a6ec4e7ea15e52b1755c00a5a811e0f3 GIT binary patch literal 644 zcmXZa+fUO_90%|(D9U{x$YtEheN$GtEwDkNrZ8u`L>nqRn3I^}I4pH*XWEX)|6%_Z z_k@4KeDrO^7avTBPkZ%SG&!gF^ml%jwkgo_6+m*J*E~7W-hB9|Dxp?(>WV>p;~wJf zxlRD1MDOJYK;u@Y9~dKUUot*U^j$9j6U3cX5|||Jc2* zaC(tgj?4Fml`kBzPpo3_AJ(qe?GYpEKVJcliH+X^ctUJO?*NlXb^ibdL^^r_91;(@ zS3rq)7_r+^VypWdC=;28U;Y^m_r-Cb{6N_9OxA>b;Wg@w>P5+S&XqWR{aoaA%~q}o zLgkB{eAXyv=F!1RVfnHaI<=-7G(8^GWmS11J~^>7|Iehbvhi}I 2.2.7 "ATmega328P" - C:\Users\Safak\Desktop\UNI\3. Semester\53107 ARBK\Praktikumsunterlagen\ARBKVS-Praktika\P1\P1\Debug + C:\Users\Safak\SynologyDrive\UNI\3. Semester\53107 ARBK\Praktikumsunterlagen\ARBKVS-Praktika\P1\P1\Debug

C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\avrasm\inc C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avrassembler\Include - C:\Users\Safak\Desktop\UNI\3. Semester\53107 ARBK\Praktikumsunterlagen\ARBKVS-Praktika\P1\P1\main.asm + C:\Users\Safak\SynologyDrive\UNI\3. Semester\53107 ARBK\Praktikumsunterlagen\ARBKVS-Praktika\P1\P1\main.asm C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\avrasm\inc\m328pdef.inc - C:\Users\Safak\Desktop\UNI\3. Semester\53107 ARBK\Praktikumsunterlagen\ARBKVS-Praktika\P1\P1\Debug\P1.obj + C:\Users\Safak\SynologyDrive\UNI\3. Semester\53107 ARBK\Praktikumsunterlagen\ARBKVS-Praktika\P1\P1\Debug\P1.obj P1.hex @@ -22,12 +22,12 @@ P1.lss - C:\Users\Safak\Desktop\UNI\3. Semester\53107 ARBK\Praktikumsunterlagen\ARBKVS-Praktika\P1\P1\main.asm13 - C:\Users\Safak\Desktop\UNI\3. Semester\53107 ARBK\Praktikumsunterlagen\ARBKVS-Praktika\P1\P1\main.asm27 - C:\Users\Safak\Desktop\UNI\3. Semester\53107 ARBK\Praktikumsunterlagen\ARBKVS-Praktika\P1\P1\main.asm60 - C:\Users\Safak\Desktop\UNI\3. Semester\53107 ARBK\Praktikumsunterlagen\ARBKVS-Praktika\P1\P1\main.asm36 - C:\Users\Safak\Desktop\UNI\3. Semester\53107 ARBK\Praktikumsunterlagen\ARBKVS-Praktika\P1\P1\main.asm43 - C:\Users\Safak\Desktop\UNI\3. Semester\53107 ARBK\Praktikumsunterlagen\ARBKVS-Praktika\P1\P1\main.asm52 - C:\Users\Safak\Desktop\UNI\3. Semester\53107 ARBK\Praktikumsunterlagen\ARBKVS-Praktika\P1\P1\main.asm65 + C:\Users\Safak\SynologyDrive\UNI\3. Semester\53107 ARBK\Praktikumsunterlagen\ARBKVS-Praktika\P1\P1\main.asm13 + C:\Users\Safak\SynologyDrive\UNI\3. Semester\53107 ARBK\Praktikumsunterlagen\ARBKVS-Praktika\P1\P1\main.asm27 + C:\Users\Safak\SynologyDrive\UNI\3. Semester\53107 ARBK\Praktikumsunterlagen\ARBKVS-Praktika\P1\P1\main.asm60 + C:\Users\Safak\SynologyDrive\UNI\3. Semester\53107 ARBK\Praktikumsunterlagen\ARBKVS-Praktika\P1\P1\main.asm36 + C:\Users\Safak\SynologyDrive\UNI\3. Semester\53107 ARBK\Praktikumsunterlagen\ARBKVS-Praktika\P1\P1\main.asm43 + C:\Users\Safak\SynologyDrive\UNI\3. Semester\53107 ARBK\Praktikumsunterlagen\ARBKVS-Praktika\P1\P1\main.asm52 + C:\Users\Safak\SynologyDrive\UNI\3. Semester\53107 ARBK\Praktikumsunterlagen\ARBKVS-Praktika\P1\P1\main.asm65 diff --git a/P2/.vs/P2/v14/.atsuo b/P2/.vs/P2/v14/.atsuo deleted file mode 100644 index e2b54e768b5a86eb6a8c4595e364f00e67211321..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19968 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 diff --git a/P2/P2 Interrups/.vs/P2 Interrups/v14/.atsuo b/P2/P2 Interrups/.vs/P2 Interrups/v14/.atsuo index 0bada594f0f9bd9b00bf655d49c607d4f94ee865..0db264929c2da422356766f4e6deeee38bfb69aa 100644 GIT binary patch literal 28160 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 delta 2996 zcmdT`Urdu%6uMK|!I4Y;M*H;y}!*28A z-h0lyhkMTX-E+Uh9iF(vN7M?5O*RW-dK_}ZKdDrTq&m2$Z~C-5$~9>V&jY(;HQ)N_ z*E4quzT>!>tt*CO@-f~G52OybCaZ>*P*@IeT`OFb-G&mJeGCtEOF%UmH=1#lhsZ&Y z{aox#2nCUkScG^EQGh5!JdY?v;L@q)!1H)b%Tc-lu@d1-=36?a9WOC-Z^rSY#~#nX zt+*FLFCrKVK4N;6`BiIWYo{+3fU0Nk+B8u>Rs8w zsjP{R7jrGA8%A>VCW=8Bq8w2Huj$JyWQI_Ml4S^ZFQ>eK1S(G42oIu~6gP6ha5~pg z(}|NEh%N*zd>Q-Qh*uD=B6cBy2-1bH-$P??8;dS>hc#t`iBmMlJJhG(R9>ZFJ5I(S zt{msv;DORPB6!~?!)T*9Kb3!}rTVt-XJ_P> z#`~W=`jBBTOCVHXTNzo^OIBoGBo+=g(vY#&H#7vhhW8H*2RnNX^z;Y)`-l6Z1B39; z-?At$Fc9vG91I3Lw#gwBwylI8r2PL=UOE)w`9gAINaqF~E^C8po-HuqSglmxR${YA zAB;J6z;)SaAbWQpzWl7FZh)({wUAIZ!6tj1=03{Z5O===miECXWH_%Q3ITC1mspB2YLIG+8PaozJKGehEp%7Jk>wY0GMWYB&Q^sA z7S$J_gQzQzK1232p}Z6)At^cT-poy$N)X-c%$99CjEkoUl4I2)dVUKo*4t+>^CLKy zR|$#Qb=g!t2n_gYujaGEZOIA=U$dzIYYzEKcoR;QSZ5i@&^zoaNYniLwH9dsccGW7 zSgs3`iKfF6bg!?0ZzOx}Xx2msIQt7O_;+Vz2!E)0Z*`pqf38}O>T$W<``oU&IF&94v-DTE>uyb@wIEHN}Eeh4{?Rozl(Cov%-T-IUYl;&xb zrV^r#K$_!JrZP(%r#W%E)x_yRpejG5yV9gLk_Bq;wZCk7{MIkTclk(99~PoxbJm@G zMf2$3jg~IW>DN=q6i?R__m8KkUXE1X(r%y*{LLBrP*%8a?@-TB9CmG70SUicC5ZlXTkV|rpK?d`er;`>n2o3bknT5K|+z>ma|jAFebcG_PK|#~%BzUf2`BCw3qm^awkMp9cZ_uCU?X znbISejy@J)s~A17RLMl6G2Nkgp4sNv&unnwj*yWVkM%r}5l%yCTNQrKnUkZvCv~ty zDp1nSk|}IpU1LYBaCpg#F9~$7i?y@O*jJ+~J8x3`VDMwT74DUkY9$U(ON(Xl=06CR QTlLzSw~KJiT>*Oj1*0>ODF6Tf diff --git a/P2/P2 Interrups/P2 Interrups/Debug/Makefile b/P2/P2 Interrups/P2 Interrups/Debug/Makefile new file mode 100644 index 0000000..8222f03 --- /dev/null +++ b/P2/P2 Interrups/P2 Interrups/Debug/Makefile @@ -0,0 +1,122 @@ +################################################################################ +# Automatically-generated file. Do not edit! +################################################################################ + +SHELL := cmd.exe +RM := rm -rf + +USER_OBJS := + +LIBS := +PROJ := + +O_SRCS := +C_SRCS := +S_SRCS := +S_UPPER_SRCS := +OBJ_SRCS := +ASM_SRCS := +PREPROCESSING_SRCS := +OBJS := +OBJS_AS_ARGS := +C_DEPS := +C_DEPS_AS_ARGS := +EXECUTABLES := +OUTPUT_FILE_PATH := +OUTPUT_FILE_PATH_AS_ARGS := +AVR_APP_PATH :=$$$AVR_APP_PATH$$$ +QUOTE := " +ADDITIONAL_DEPENDENCIES:= +OUTPUT_FILE_DEP:= +LIB_DEP:= +LINKER_SCRIPT_DEP:= + +# Every subdirectory with source files must be described here +SUBDIRS := + + +# Add inputs and outputs from these tool invocations to the build variables +C_SRCS += \ +../main.c + + +PREPROCESSING_SRCS += + + +ASM_SRCS += + + +OBJS += \ +main.o + +OBJS_AS_ARGS += \ +main.o + +C_DEPS += \ +main.d + +C_DEPS_AS_ARGS += \ +main.d + +OUTPUT_FILE_PATH +=libP2\ Interrups.a + +OUTPUT_FILE_PATH_AS_ARGS +="libP2 Interrups.a" + +ADDITIONAL_DEPENDENCIES:= + +OUTPUT_FILE_DEP:= ./makedep.mk + +LIB_DEP+= + +LINKER_SCRIPT_DEP+= + + +# AVR32/GNU C Compiler +./main.o: .././main.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.2.209\include" -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega328p -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\gcc\dev\atmega328p" -c -std=gnu99 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<" + @echo Finished building: $< + + + + + +# AVR32/GNU Preprocessing Assembler + + + +# AVR32/GNU Assembler + + + + +ifneq ($(MAKECMDGOALS),clean) +ifneq ($(strip $(C_DEPS)),) +-include $(C_DEPS) +endif +endif + +# Add inputs and outputs from these tool invocations to the build variables + +# All Target +all: $(OUTPUT_FILE_PATH) $(ADDITIONAL_DEPENDENCIES) + + +$(OUTPUT_FILE_PATH): $(OBJS) $(USER_OBJS) $(OUTPUT_FILE_DEP) + @echo Building target: $@ + @echo Invoking: AVR/GNU Archiver : 5.4.0 + $(QUOTE)C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-ar.exe$(QUOTE) -r -o$(OUTPUT_FILE_PATH_AS_ARGS) $(OBJS_AS_ARGS) $(USER_OBJS) $(LIBS) + @echo Finished building target: $@ + + + + + + +# Other Targets +clean: + -$(RM) $(OBJS_AS_ARGS) $(EXECUTABLES) + -$(RM) $(C_DEPS_AS_ARGS) + rm -rf "libP2 Interrups.elf" "libP2 Interrups.a" "libP2 Interrups.hex" "libP2 Interrups.lss" "libP2 Interrups.eep" "libP2 Interrups.map" "libP2 Interrups.srec" "libP2 Interrups.usersignatures" + \ No newline at end of file diff --git a/P2/P2 Interrups/P2 Interrups/Debug/libP2 Interrups.a b/P2/P2 Interrups/P2 Interrups/Debug/libP2 Interrups.a new file mode 100644 index 0000000000000000000000000000000000000000..286f95bc2f2d6066973f1187319ddee749bddb54 GIT binary patch literal 6598 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 S5K_4ZOnXDvzZ_SSw)ZdYW9bM0 literal 0 HcmV?d00001 diff --git a/P2/P2 Interrups/P2 Interrups/Debug/makedep.mk b/P2/P2 Interrups/P2 Interrups/Debug/makedep.mk new file mode 100644 index 0000000..6a14fde --- /dev/null +++ b/P2/P2 Interrups/P2 Interrups/Debug/makedep.mk @@ -0,0 +1,6 @@ +################################################################################ +# Automatically-generated file. Do not edit or delete the file +################################################################################ + +main.c + diff --git a/P2/P2 Interrups/P2 Interrups/main.c b/P2/P2 Interrups/P2 Interrups/main.c index 5346a1e..7d6a711 100644 --- a/P2/P2 Interrups/P2 Interrups/main.c +++ b/P2/P2 Interrups/P2 Interrups/main.c @@ -12,55 +12,57 @@ #include #include // boolean type and values -#define LED00 PINB0 -#define LED09 PINB1 -#define SWITCH01 PIND2 -#define SWITCH02 PIND3 +#define LED0 PINB0 +#define LED9 PINB1 +#define SW1 PIND2 +#define SW2 PIND3 -volatile int on = LED00; +volatile int activeLED = LED0; volatile bool blink = true; void setupPorts() { - DDRB = 0xff; // Data direction register B (B0 & B1) as output + DDRB = 0xff; PORTB = 0x00; - DDRD = 0x00; // Data direction register D (D0 & D1) as input - PORTD |= (1 << SWITCH01) | (1 << SWITCH02); // setting bit for switch - //cli(); // clear global interrupt flag: interrupts will be immediately disabled - EICRA |= (1 << ISC11) | (1 << ISC01); // the falling edge of INT1 or INT0 generates an interrupt request. - EIMSK = (1 << INT0) | (1 << INT1); // enable external interrupt request - sei(); // set global interrupt enable + DDRD = 0x00; + PORTD |= (1 << SW1) | (1 << SW2); // Activate pull-up resistors + + // Falling edge of INT0 and INT1 generates an interrupt request + EICRA |= (1 << ISC11) | (1 << ISC01); + EIMSK |= (1 << INT0) | (1 << INT1); // Enable external interrupt request + sei(); // Set global interrupt enable } +// SW1 is pressed ISR(INT0_vect) { - if (on == LED00) { // if D0 is already on, switching from blink to steady light or vice versa + if (activeLED == LED0) { // if D0 is already on, switching from blink to steady light or vice versa blink = !blink; - } else { // else D9 is on, turn off D9 and turn on D0 - PORTB = (1 << LED00); } - on = LED00; + else { // else D9 is on, turn off D9 and turn on D0 + PORTB = (1 << LED0); + } + + activeLED = LED0; } +// SW2 is pressed ISR(INT1_vect) { - if (on == LED09) { + if (activeLED == LED9) { blink = !blink; - } else { - PORTB = (1 << LED09); } - on = LED09; + else { + PORTB = (1 << LED9); + } + + activeLED = LED9; } - -int main(void) -{ - /* Replace with your application code */ +int main(void) { setupPorts(); - while(1){ + while (1) { if (blink) { - PORTB ^= (1 << on); - } else { - PORTB = (1 << on); + PORTB ^= (1 << activeLED); // Toggle active LED } - _delay_ms(200); + _delay_ms(50); } } \ No newline at end of file diff --git a/P2/P2 Pooling/.vs/P2 Pooling/v14/.atsuo b/P2/P2 Pooling/.vs/P2 Pooling/v14/.atsuo index e6038b265bef1ce381eb53df7661d07943dfaf87..8818e3f920606cd7a49535e8ee649bb317bab55b 100644 GIT binary patch delta 3809 zcmeHJYfRf!6u-9=`iB8)84UJ<^4dC{EoE(CBct@+0ewIpFc|BHF)Uqq6=)e0rb81S zS)6e_i6&~IF-D`wG+VPolP#IBmIb&%kbL78cu^6dIKIZ(0LyX&b8Wc;4vgMaPJjL@b z@iH7by$)t2vzvFLh>PRoV3RDshM1QPun-fm4KhFTu`!e;;exCbnscNAZXZj*`S6lL zl{$uk0v04zL531-MCvRT3a=m&$$(4q!6B8Ft;8OAw*uQN%#lDM$`@_wdV0em9`ia{3%;oMWHM@ zedC`(O7KE}+Hfbf zJ;=StyAry%u_I0^9rBSb5$027gm)!4h!n{*rE)q*IHaiJeK3{jmae8QekSgOKdL&V z#fi~O2MRQm=ux>M6Q!xR9a+y@gThUIrN{k>TPJ7!)i-Hkt@dW$x-cupnS-)2o}od^ zRxf7h0RB_f?q?dNW|f%oYceaCgws(_=1|O$0x4$@UOAW6jhaFZiuD!{^G`-p0<@`= zaHPBdnpLVMHBvSGC8=gn;JAwTfT_{b9rR8HJ?{R&{$Y3(f4>*LRZYON z?G^kQJS{I;<7Q#>F2F{ReJG3Qw;#Rq!cqD25U^*j7TxBCEodwnt9U+ zEPrUNu)U?R?5}g1%RM8%ulVH4YJHpa+;_BZvi_1Sd|@e(FPi-2<0~nLN>eq%UWi%L z@>svh-MZ<9GP>QW=Hxl0K-%IGIMLQvP9pK6`{FU>$sn7YcDI0SuXgP);YDk!VuMhaX@e7Y~F&qg#N+ zqoF(p7dBuo0Y_EwsIbqDugy&?`bPv0(mfo}y( zi4(?4>!6}c2g)*K!)1IPtU`}D`<080YW&TKCbQ0@H*2fS<~m(0w5U^ delta 2185 zcmdT_K};J*6rEXnjd5m)jZF**!E0l{Py;qlL@`mR*bpl?@w!gZ3#y7Lnou`@g3|`l z!?ry%id01RpQ=XcAvyF`fmQW_szk}DN~KiFp+dbRmtK14fu?m2asM|qSv3^Gv12{$ z%>RF8-~RdU+gRtu4ZadnB~}@3#_Txdh^M7eiL5rnYUUdbC4P$6!A~AliCijd_%?Vm zdT#q*Nm`O$$Eh0@Z4<(QGu&Aoz`bFSM#Bn%hAFPpE>~XG0Nm~e05LqYXciVIdE-Rfj8t>=F2^fb5rnS2yV{&MHt z0P={L9hxBWSWVj>0Qruz!ig!Rd7E)PE`EmMi3vdopxdvy%zisuN$O6@cGXtcObTvl zn((6WsMV2==)9Z{x{6A8gbQRdhBTd^dDl(XhaO5$5F4f!)DoeSm~Qu>u=#a0rCC}{58^C9P=LCm$ z2u6JoXqOtnh>pVTX6J54RqJ`D@*D%Vx4Wv;az$8`imLo>f2vH2f47=lBnq4Dx{&e9 zS`d{w4ezB5xF^N7xe`Cgf6JTT9qVId>o2xKPcRZQ;S5x zh0T!QV6>{Bj)w*H{#wK{V&iE#_Qe{@Gp&u7K~0df=^z@^og5^oCk|K&o)j*eQju1D zuo+A%tN|?tt=9agE~tsnH&#PsYPwy8ViKF2c27{Jwsr!U_}dG`&LjI5D8tOXs6cn> ul!XWJ7{}^rG_yU>Db??()hGD>^Z(RpVJ7j=1~YzPk?Pj{*X>`f!G8d-8>E;3 diff --git a/P2/P2 Pooling/P2 Pooling/Debug/Makefile b/P2/P2 Pooling/P2 Pooling/Debug/Makefile new file mode 100644 index 0000000..0af4d99 --- /dev/null +++ b/P2/P2 Pooling/P2 Pooling/Debug/Makefile @@ -0,0 +1,127 @@ +################################################################################ +# Automatically-generated file. Do not edit! +################################################################################ + +SHELL := cmd.exe +RM := rm -rf + +USER_OBJS := + +LIBS := +PROJ := + +O_SRCS := +C_SRCS := +S_SRCS := +S_UPPER_SRCS := +OBJ_SRCS := +ASM_SRCS := +PREPROCESSING_SRCS := +OBJS := +OBJS_AS_ARGS := +C_DEPS := +C_DEPS_AS_ARGS := +EXECUTABLES := +OUTPUT_FILE_PATH := +OUTPUT_FILE_PATH_AS_ARGS := +AVR_APP_PATH :=$$$AVR_APP_PATH$$$ +QUOTE := " +ADDITIONAL_DEPENDENCIES:= +OUTPUT_FILE_DEP:= +LIB_DEP:= +LINKER_SCRIPT_DEP:= + +# Every subdirectory with source files must be described here +SUBDIRS := + + +# Add inputs and outputs from these tool invocations to the build variables +C_SRCS += \ +../main.c + + +PREPROCESSING_SRCS += + + +ASM_SRCS += + + +OBJS += \ +main.o + +OBJS_AS_ARGS += \ +main.o + +C_DEPS += \ +main.d + +C_DEPS_AS_ARGS += \ +main.d + +OUTPUT_FILE_PATH +=P2\ Pooling.elf + +OUTPUT_FILE_PATH_AS_ARGS +="P2 Pooling.elf" + +ADDITIONAL_DEPENDENCIES:= + +OUTPUT_FILE_DEP:= ./makedep.mk + +LIB_DEP+= + +LINKER_SCRIPT_DEP+= + + +# AVR32/GNU C Compiler +./main.o: .././main.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.2.209\include" -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega328p -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\gcc\dev\atmega328p" -c -std=gnu99 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<" + @echo Finished building: $< + + + + + +# AVR32/GNU Preprocessing Assembler + + + +# AVR32/GNU Assembler + + + + +ifneq ($(MAKECMDGOALS),clean) +ifneq ($(strip $(C_DEPS)),) +-include $(C_DEPS) +endif +endif + +# Add inputs and outputs from these tool invocations to the build variables + +# All Target +all: $(OUTPUT_FILE_PATH) $(ADDITIONAL_DEPENDENCIES) + +$(OUTPUT_FILE_PATH): $(OBJS) $(USER_OBJS) $(OUTPUT_FILE_DEP) $(LIB_DEP) $(LINKER_SCRIPT_DEP) + @echo Building target: $@ + @echo Invoking: AVR/GNU Linker : 5.4.0 + $(QUOTE)C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -o$(OUTPUT_FILE_PATH_AS_ARGS) $(OBJS_AS_ARGS) $(USER_OBJS) $(LIBS) -Wl,-Map="P2 Pooling.map" -Wl,--start-group -Wl,-lm -Wl,--end-group -Wl,--gc-sections -mmcu=atmega328p -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\gcc\dev\atmega328p" + @echo Finished building target: $@ + "C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-objcopy.exe" -O ihex -R .eeprom -R .fuse -R .lock -R .signature -R .user_signatures "P2 Pooling.elf" "P2 Pooling.hex" + "C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-objcopy.exe" -j .eeprom --set-section-flags=.eeprom=alloc,load --change-section-lma .eeprom=0 --no-change-warnings -O ihex "P2 Pooling.elf" "P2 Pooling.eep" || exit 0 + "C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-objdump.exe" -h -S "P2 Pooling.elf" > "P2 Pooling.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 "P2 Pooling.elf" "P2 Pooling.srec" + "C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-size.exe" "P2 Pooling.elf" + + + + + + + +# Other Targets +clean: + -$(RM) $(OBJS_AS_ARGS) $(EXECUTABLES) + -$(RM) $(C_DEPS_AS_ARGS) + rm -rf "P2 Pooling.elf" "P2 Pooling.a" "P2 Pooling.hex" "P2 Pooling.lss" "P2 Pooling.eep" "P2 Pooling.map" "P2 Pooling.srec" "P2 Pooling.usersignatures" + \ No newline at end of file diff --git a/P2/P2 Pooling/P2 Pooling/Debug/P2 Pooling.eep b/P2/P2 Pooling/P2 Pooling/Debug/P2 Pooling.eep new file mode 100644 index 0000000..7c166a1 --- /dev/null +++ b/P2/P2 Pooling/P2 Pooling/Debug/P2 Pooling.eep @@ -0,0 +1 @@ +:00000001FF diff --git a/P2/P2 Pooling/P2 Pooling/Debug/P2 Pooling.elf b/P2/P2 Pooling/P2 Pooling/Debug/P2 Pooling.elf new file mode 100644 index 0000000000000000000000000000000000000000..a47e99bf05f9efba9c1879a330bd6984c8a7ed09 GIT binary patch literal 9272 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 literal 0 HcmV?d00001 diff --git a/P2/P2 Pooling/P2 Pooling/Debug/P2 Pooling.hex b/P2/P2 Pooling/P2 Pooling/Debug/P2 Pooling.hex new file mode 100644 index 0000000..e8bb443 --- /dev/null +++ b/P2/P2 Pooling/P2 Pooling/Debug/P2 Pooling.hex @@ -0,0 +1,25 @@ +:100000000C9434000C9451000C9451000C94510049 +:100010000C9451000C9451000C9451000C9451001C +:100020000C9451000C9451000C9451000C9451000C +:100030000C9451000C9451000C9451000C945100FC +:100040000C9451000C9451000C9451000C945100EC +:100050000C9451000C9451000C9451000C945100DC +:100060000C9451000C94510011241FBECFEFD8E026 +:10007000DEBFCDBF11E0A0E0B1E0E8E6F1E002C0F4 +:1000800005900D92A230B107D9F721E0A2E0B1E0CE +:1000900001C01D92A430B207E1F70E9487000C94C2 +:1000A000B2000C9400008FEF84B915B81AB88BB960 +:1000B00008954A9914C08091020190910301892BFF +:1000C00039F49091000181E089278093000102C0FA +:1000D00081E085B9109203011092020108954B99B5 +:1000E00015C08091020190910301019739F490911C +:1000F000000181E089278093000102C082E085B978 +:1001000081E090E0909303018093020108950E94A2 +:10011000530002E011E0C1E0D0E00E94590080915C +:100120000001882361F025B1CE01F801008002C0F2 +:10013000880F991F0A94E2F7822785B909C0CE017A +:10014000F801008002C0880F991F0A94E2F785B970 +:10015000FFEF24E38CE0F15020408040E1F700C045 +:080160000000DBCFF894FFCF93 +:02016800010094 +:00000001FF diff --git a/P2/P2 Pooling/P2 Pooling/Debug/P2 Pooling.lss b/P2/P2 Pooling/P2 Pooling/Debug/P2 Pooling.lss new file mode 100644 index 0000000..4c52a4f --- /dev/null +++ b/P2/P2 Pooling/P2 Pooling/Debug/P2 Pooling.lss @@ -0,0 +1,248 @@ + +P2 Pooling.elf: file format elf32-avr + +Sections: +Idx Name Size VMA LMA File off Algn + 0 .data 00000002 00800100 00000168 000001fc 2**0 + CONTENTS, ALLOC, LOAD, DATA + 1 .text 00000168 00000000 00000000 00000094 2**1 + CONTENTS, ALLOC, LOAD, READONLY, CODE + 2 .bss 00000002 00800102 00800102 000001fe 2**0 + ALLOC + 3 .comment 00000030 00000000 00000000 000001fe 2**0 + CONTENTS, READONLY + 4 .note.gnu.avr.deviceinfo 00000040 00000000 00000000 00000230 2**2 + CONTENTS, READONLY + 5 .debug_aranges 00000030 00000000 00000000 00000270 2**0 + CONTENTS, READONLY, DEBUGGING + 6 .debug_info 0000076e 00000000 00000000 000002a0 2**0 + CONTENTS, READONLY, DEBUGGING + 7 .debug_abbrev 0000069d 00000000 00000000 00000a0e 2**0 + CONTENTS, READONLY, DEBUGGING + 8 .debug_line 000002d5 00000000 00000000 000010ab 2**0 + CONTENTS, READONLY, DEBUGGING + 9 .debug_frame 00000044 00000000 00000000 00001380 2**2 + CONTENTS, READONLY, DEBUGGING + 10 .debug_str 000003fa 00000000 00000000 000013c4 2**0 + CONTENTS, READONLY, DEBUGGING + 11 .debug_ranges 00000020 00000000 00000000 000017be 2**0 + CONTENTS, READONLY, DEBUGGING + +Disassembly of section .text: + +00000000 <__vectors>: + 0: 0c 94 34 00 jmp 0x68 ; 0x68 <__ctors_end> + 4: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> + 8: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> + c: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> + 10: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> + 14: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> + 18: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> + 1c: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> + 20: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> + 24: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> + 28: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> + 2c: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> + 30: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> + 34: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> + 38: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> + 3c: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> + 40: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> + 44: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> + 48: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> + 4c: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> + 50: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> + 54: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> + 58: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> + 5c: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> + 60: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> + 64: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> + +00000068 <__ctors_end>: + 68: 11 24 eor r1, r1 + 6a: 1f be out 0x3f, r1 ; 63 + 6c: cf ef ldi r28, 0xFF ; 255 + 6e: d8 e0 ldi r29, 0x08 ; 8 + 70: de bf out 0x3e, r29 ; 62 + 72: cd bf out 0x3d, r28 ; 61 + +00000074 <__do_copy_data>: + 74: 11 e0 ldi r17, 0x01 ; 1 + 76: a0 e0 ldi r26, 0x00 ; 0 + 78: b1 e0 ldi r27, 0x01 ; 1 + 7a: e8 e6 ldi r30, 0x68 ; 104 + 7c: f1 e0 ldi r31, 0x01 ; 1 + 7e: 02 c0 rjmp .+4 ; 0x84 <__do_copy_data+0x10> + 80: 05 90 lpm r0, Z+ + 82: 0d 92 st X+, r0 + 84: a2 30 cpi r26, 0x02 ; 2 + 86: b1 07 cpc r27, r17 + 88: d9 f7 brne .-10 ; 0x80 <__do_copy_data+0xc> + +0000008a <__do_clear_bss>: + 8a: 21 e0 ldi r18, 0x01 ; 1 + 8c: a2 e0 ldi r26, 0x02 ; 2 + 8e: b1 e0 ldi r27, 0x01 ; 1 + 90: 01 c0 rjmp .+2 ; 0x94 <.do_clear_bss_start> + +00000092 <.do_clear_bss_loop>: + 92: 1d 92 st X+, r1 + +00000094 <.do_clear_bss_start>: + 94: a4 30 cpi r26, 0x04 ; 4 + 96: b2 07 cpc r27, r18 + 98: e1 f7 brne .-8 ; 0x92 <.do_clear_bss_loop> + 9a: 0e 94 87 00 call 0x10e ; 0x10e

+ 9e: 0c 94 b2 00 jmp 0x164 ; 0x164 <_exit> + +000000a2 <__bad_interrupt>: + a2: 0c 94 00 00 jmp 0 ; 0x0 <__vectors> + +000000a6 : + +int activeLED = LED0; +bool blinking = true; + +void setupPorts() { + DDRB = 0xff; // DDRB as output + a6: 8f ef ldi r24, 0xFF ; 255 + a8: 84 b9 out 0x04, r24 ; 4 + PORTB = 0x00; + aa: 15 b8 out 0x05, r1 ; 5 + + DDRD = 0x00; // DDRD as input + ac: 1a b8 out 0x0a, r1 ; 10 + PORTD = 0xff; + ae: 8b b9 out 0x0b, r24 ; 11 + b0: 08 95 ret + +000000b2 : +} + +void isButtonPressed() { + if ( !(PIND & (1 << SW1)) ) { // SW1 is pressed + b2: 4a 99 sbic 0x09, 2 ; 9 + b4: 14 c0 rjmp .+40 ; 0xde + if (activeLED == LED0) { // if D0 is on + b6: 80 91 02 01 lds r24, 0x0102 ; 0x800102 <__data_end> + ba: 90 91 03 01 lds r25, 0x0103 ; 0x800103 <__data_end+0x1> + be: 89 2b or r24, r25 + c0: 39 f4 brne .+14 ; 0xd0 + blinking = !blinking; // toggle blinking + c2: 90 91 00 01 lds r25, 0x0100 ; 0x800100 <__data_start> + c6: 81 e0 ldi r24, 0x01 ; 1 + c8: 89 27 eor r24, r25 + ca: 80 93 00 01 sts 0x0100, r24 ; 0x800100 <__data_start> + ce: 02 c0 rjmp .+4 ; 0xd4 + } + else { // switch LED + PORTB = (1 << LED0); + d0: 81 e0 ldi r24, 0x01 ; 1 + d2: 85 b9 out 0x05, r24 ; 5 + } + activeLED = LED0; + d4: 10 92 03 01 sts 0x0103, r1 ; 0x800103 <__data_end+0x1> + d8: 10 92 02 01 sts 0x0102, r1 ; 0x800102 <__data_end> + dc: 08 95 ret + } + else if ( !(PIND & (1 << SW2))) { // SW2 is pressed + de: 4b 99 sbic 0x09, 3 ; 9 + e0: 15 c0 rjmp .+42 ; 0x10c + if (activeLED == LED9) { // if D9 is on + e2: 80 91 02 01 lds r24, 0x0102 ; 0x800102 <__data_end> + e6: 90 91 03 01 lds r25, 0x0103 ; 0x800103 <__data_end+0x1> + ea: 01 97 sbiw r24, 0x01 ; 1 + ec: 39 f4 brne .+14 ; 0xfc + blinking = !blinking; // toggle blinking + ee: 90 91 00 01 lds r25, 0x0100 ; 0x800100 <__data_start> + f2: 81 e0 ldi r24, 0x01 ; 1 + f4: 89 27 eor r24, r25 + f6: 80 93 00 01 sts 0x0100, r24 ; 0x800100 <__data_start> + fa: 02 c0 rjmp .+4 ; 0x100 + } + else { // switch LED + PORTB = (1 << LED9); + fc: 82 e0 ldi r24, 0x02 ; 2 + fe: 85 b9 out 0x05, r24 ; 5 + } + activeLED = LED9; + 100: 81 e0 ldi r24, 0x01 ; 1 + 102: 90 e0 ldi r25, 0x00 ; 0 + 104: 90 93 03 01 sts 0x0103, r25 ; 0x800103 <__data_end+0x1> + 108: 80 93 02 01 sts 0x0102, r24 ; 0x800102 <__data_end> + 10c: 08 95 ret + +0000010e
: + } +} +int main(void) { + setupPorts(); + 10e: 0e 94 53 00 call 0xa6 ; 0xa6 + isButtonPressed(); + if (blinking) { + PORTB ^= (1 << activeLED); + } + else { + PORTB = (1 << activeLED); + 112: 02 e0 ldi r16, 0x02 ; 2 + 114: 11 e0 ldi r17, 0x01 ; 1 + 116: c1 e0 ldi r28, 0x01 ; 1 + 118: d0 e0 ldi r29, 0x00 ; 0 + } +} +int main(void) { + setupPorts(); + while (1) { + isButtonPressed(); + 11a: 0e 94 59 00 call 0xb2 ; 0xb2 + if (blinking) { + 11e: 80 91 00 01 lds r24, 0x0100 ; 0x800100 <__data_start> + 122: 88 23 and r24, r24 + 124: 61 f0 breq .+24 ; 0x13e + PORTB ^= (1 << activeLED); + 126: 25 b1 in r18, 0x05 ; 5 + 128: ce 01 movw r24, r28 + 12a: f8 01 movw r30, r16 + 12c: 00 80 ld r0, Z + 12e: 02 c0 rjmp .+4 ; 0x134 + 130: 88 0f add r24, r24 + 132: 99 1f adc r25, r25 + 134: 0a 94 dec r0 + 136: e2 f7 brpl .-8 ; 0x130 + 138: 82 27 eor r24, r18 + 13a: 85 b9 out 0x05, r24 ; 5 + 13c: 09 c0 rjmp .+18 ; 0x150 + } + else { + PORTB = (1 << activeLED); + 13e: ce 01 movw r24, r28 + 140: f8 01 movw r30, r16 + 142: 00 80 ld r0, Z + 144: 02 c0 rjmp .+4 ; 0x14a + 146: 88 0f add r24, r24 + 148: 99 1f adc r25, r25 + 14a: 0a 94 dec r0 + 14c: e2 f7 brpl .-8 ; 0x146 + 14e: 85 b9 out 0x05, r24 ; 5 + #else + //round up by default + __ticks_dc = (uint32_t)(ceil(fabs(__tmp))); + #endif + + __builtin_avr_delay_cycles(__ticks_dc); + 150: ff ef ldi r31, 0xFF ; 255 + 152: 24 e3 ldi r18, 0x34 ; 52 + 154: 8c e0 ldi r24, 0x0C ; 12 + 156: f1 50 subi r31, 0x01 ; 1 + 158: 20 40 sbci r18, 0x00 ; 0 + 15a: 80 40 sbci r24, 0x00 ; 0 + 15c: e1 f7 brne .-8 ; 0x156 + 15e: 00 c0 rjmp .+0 ; 0x160 + 160: 00 00 nop + 162: db cf rjmp .-74 ; 0x11a + +00000164 <_exit>: + 164: f8 94 cli + +00000166 <__stop_program>: + 166: ff cf rjmp .-2 ; 0x166 <__stop_program> diff --git a/P2/P2 Pooling/P2 Pooling/Debug/P2 Pooling.map b/P2/P2 Pooling/P2 Pooling/Debug/P2 Pooling.map new file mode 100644 index 0000000..15ef83c --- /dev/null +++ b/P2/P2 Pooling/P2 Pooling/Debug/P2 Pooling.map @@ -0,0 +1,470 @@ +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(_copy_data.o) + main.o (__do_copy_data) +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(_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/avr5\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/avr5\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/avr5\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/avr5\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/avr5\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/avr5\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/avr5\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/avr5\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/avr5\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/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 0x168 + *(.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 0x16 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_copy_data.o) + 0x00000074 __do_copy_data + .init4 0x0000008a 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) + 0x0000008a __do_clear_bss + *(.init4) + *(.init5) + *(.init5) + *(.init6) + *(.init6) + *(.init7) + *(.init7) + *(.init8) + *(.init8) + *(.init9) + .init9 0x0000009a 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 0x000000a2 0x4 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.209/gcc/dev/atmega328p/avr5/crtatmega328p.o + 0x000000a2 __vector_22 + 0x000000a2 __vector_1 + 0x000000a2 __vector_24 + 0x000000a2 __vector_12 + 0x000000a2 __bad_interrupt + 0x000000a2 __vector_6 + 0x000000a2 __vector_3 + 0x000000a2 __vector_23 + 0x000000a2 __vector_25 + 0x000000a2 __vector_11 + 0x000000a2 __vector_13 + 0x000000a2 __vector_17 + 0x000000a2 __vector_19 + 0x000000a2 __vector_7 + 0x000000a2 __vector_5 + 0x000000a2 __vector_4 + 0x000000a2 __vector_9 + 0x000000a2 __vector_2 + 0x000000a2 __vector_21 + 0x000000a2 __vector_15 + 0x000000a2 __vector_8 + 0x000000a2 __vector_14 + 0x000000a2 __vector_10 + 0x000000a2 __vector_16 + 0x000000a2 __vector_18 + 0x000000a2 __vector_20 + 0x000000a6 . = ALIGN (0x2) + *(.text.*) + .text.setupPorts + 0x000000a6 0xc main.o + 0x000000a6 setupPorts + .text.isButtonPressed + 0x000000b2 0x5c main.o + 0x000000b2 isButtonPressed + .text.main 0x0000010e 0x56 main.o + 0x0000010e main + 0x00000164 . = ALIGN (0x2) + *(.fini9) + .fini9 0x00000164 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) + 0x00000164 _exit + 0x00000164 exit + *(.fini9) + *(.fini8) + *(.fini8) + *(.fini7) + *(.fini7) + *(.fini6) + *(.fini6) + *(.fini5) + *(.fini5) + *(.fini4) + *(.fini4) + *(.fini3) + *(.fini3) + *(.fini2) + *(.fini2) + *(.fini1) + *(.fini1) + *(.fini0) + .fini0 0x00000164 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) + 0x00000168 _etext = . + +.data 0x00800100 0x2 load address 0x00000168 + 0x00800100 PROVIDE (__data_start, .) + *(.data) + *(.data*) + .data.blinking + 0x00800100 0x1 main.o + 0x00800100 blinking + *(.gnu.linkonce.d*) + *(.rodata) + *(.rodata*) + *(.gnu.linkonce.r*) + 0x00800102 . = ALIGN (0x2) + *fill* 0x00800101 0x1 + 0x00800102 _edata = . + 0x00800102 PROVIDE (__data_end, .) + +.bss 0x00800102 0x2 + 0x00800102 PROVIDE (__bss_start, .) + *(.bss) + *(.bss*) + .bss.activeLED + 0x00800102 0x2 main.o + 0x00800102 activeLED + *(COMMON) + 0x00800104 PROVIDE (__bss_end, .) + 0x00000168 __data_load_start = LOADADDR (.data) + 0x0000016a __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 0x30 + *(.debug_aranges) + .debug_aranges + 0x00000000 0x30 main.o + +.debug_pubnames + *(.debug_pubnames) + +.debug_info 0x00000000 0x76e + *(.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 0x17a main.o + +.debug_abbrev 0x00000000 0x69d + *(.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 0xfb main.o + +.debug_line 0x00000000 0x2d5 + *(.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 0x1a2 main.o + +.debug_frame 0x00000000 0x44 + *(.debug_frame) + .debug_frame 0x00000000 0x44 main.o + +.debug_str 0x00000000 0x3fa + *(.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 0x1f2 main.o + 0x226 (size before relaxing) + +.debug_loc + *(.debug_loc) + +.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 0x20 + *(.debug_ranges) + .debug_ranges 0x00000000 0x20 main.o + +.debug_macro + *(.debug_macro) +OUTPUT(P2 Pooling.elf elf32-avr) +LOAD linker stubs diff --git a/P2/P2 Pooling/P2 Pooling/Debug/P2 Pooling.srec b/P2/P2 Pooling/P2 Pooling/Debug/P2 Pooling.srec new file mode 100644 index 0000000..7b27e83 --- /dev/null +++ b/P2/P2 Pooling/P2 Pooling/Debug/P2 Pooling.srec @@ -0,0 +1,26 @@ +S0120000503220506F6F6C696E672E7372656398 +S11300000C9434000C9451000C9451000C94510045 +S11300100C9451000C9451000C9451000C94510018 +S11300200C9451000C9451000C9451000C94510008 +S11300300C9451000C9451000C9451000C945100F8 +S11300400C9451000C9451000C9451000C945100E8 +S11300500C9451000C9451000C9451000C945100D8 +S11300600C9451000C94510011241FBECFEFD8E022 +S1130070DEBFCDBF11E0A0E0B1E0E8E6F1E002C0F0 +S113008005900D92A230B107D9F721E0A2E0B1E0CA +S113009001C01D92A430B207E1F70E9487000C94BE +S11300A0B2000C9400008FEF84B915B81AB88BB95C +S11300B008954A9914C08091020190910301892BFB +S11300C039F49091000181E089278093000102C0F6 +S11300D081E085B9109203011092020108954B99B1 +S11300E015C08091020190910301019739F4909118 +S11300F0000181E089278093000102C082E085B974 +S113010081E090E0909303018093020108950E949E +S1130110530002E011E0C1E0D0E00E945900809158 +S11301200001882361F025B1CE01F801008002C0EE +S1130130880F991F0A94E2F7822785B909C0CE0176 +S1130140F801008002C0880F991F0A94E2F785B96C +S1130150FFEF24E38CE0F15020408040E1F700C041 +S10B01600000DBCFF894FFCF8F +S1050168010090 +S9030000FC diff --git a/P2/P2 Pooling/P2 Pooling/Debug/main.d b/P2/P2 Pooling/P2 Pooling/Debug/main.d new file mode 100644 index 0000000..cc76b1a --- /dev/null +++ b/P2/P2 Pooling/P2 Pooling/Debug/main.d @@ -0,0 +1,46 @@ +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\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\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\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: diff --git a/P2/P2 Pooling/P2 Pooling/Debug/main.o b/P2/P2 Pooling/P2 Pooling/Debug/main.o new file mode 100644 index 0000000000000000000000000000000000000000..d821d3b11d33527aeb7886996447d52b85b7de2e GIT binary patch literal 5468 zcmcIoTWlOx89rymPHeC1_>!cdNt0>nB(CsI>|EVkT{~$mja&u`3Zx3<1!SoY^Z_XZBB)eB_`WmecqeWU zec_kSobSJ!|NQ@dE;H*F4<36~N+}FUF)r$y5ZxU@T!wO+GUySj#VYa2olA2oZa#MN z<+-M7M{kH*=f5SyRkSOgmG{_Rn7^{={I@aS)`j`YbM3DR!Pa!`xrD8}zS#C6Y%k1T zoxh5a9Nl!S?KSwAZ=e6o{O{(8InPT^%D-;-#e4E2Db9;qFD<*VuH`lB-o;Iq=fthW z(#v!A?{t6gjrqHy&fxh$c~9J8O!74Hvw(zXP?@$W{E&wwmr!b}$GP3;EZIb+!D=j& zBVk!f$yp7J>|(Qv6G{>*nv}w7Qe2GRl=jbIp&VOp62_)))!|P+2WgWE&H5Q*ZD@c% zG%JZ*K}@n=bu6ickH;b{Y>6%V^%Qg++wwi8P_1o0cq7 z0Ex6;xhO>k2BIkSkoLD)7$$nr;v%TUWYL7#cp1eBaZ>l6ru#lZu*9EXYRQk=S_IB8 zBtp9GW>;i)WoD|CeAO>GlZ9dsIz49wc085wqf$`Jgi$S5sAP7!eVM3IDQ2hqLOJ7~ zt`4Y2I$y4(ACPAXrE1QvG&dzi z65GwIglw?vi?X>Bfh^}>uEb`Ym!FLar-Ne$4~Q^`YBQsiY7`33o2V6vQK9Ui`ku<$ z%g$!8UZPeG3;A-8bFey9Q3!`>QB*09R)a7Ma^ld)31|4}r=9KYHn-17m&)nMq90D} z?I*6J!|B3IdZLyGSIXA*!ufV5o!{c5pN9czx))1~(dkJuOPaGJ`H4a_SqO@`5JFfX z_)0k)2CAnl=SO~$pYgNP@La8BBWS}Zq?ZoLwNfaGm2%!O^EkXTb)wMaDz%AXASQ~1 z@^qn`S9_qIIc8LP`0BU8Zihe#QXQ(+jp4K`)Gr9$T&M1xmCQrfx0g4w#{>kub zh-<)$5^9x{7ZtM8p_j{IRio03pxM?f#*QY*1@(q7D=bk2acFpWm(%mi$uV!hL)|?r zu6Nv=OK+>Y!|nI_cW&={Dqe2h4ZMZ#gQT!t>~3|eAL7`UyM%h;B+vUL$v^C#;pJhd zLEOD>FnhcH5>aAX-(<$dh6Ue?`-}kN`4Zq8Bc{9e9|PELSm>Wzzyx>iZ^pA8!{Yht zcP6cEq28s0itP9uYFOxTK_ti)yn*Xvi&UKfvc(Gf;?IF!`Z90(;-}xk7avg}*S6p0^4&?JC&2#NKk#9xw?6@D! zE#l3M>Ura%-eJ$fZUZ?>P>{$ z$M$H9PPk~ac>(8g|7-#u2Bx18^v5aJbDh!{ouW>?y|_!4 zz=p&emujrm9DYd2ytqp&DErVmXg2Uh^vs2F=ICnq5PHT>8}22>Oq&7pBN{W_Q8e0& zp=Zp*_*3ynZWIuCi7m_e@SGBp_-RQzi~@azn8AWJpz*7S)Qd)&W!R|w8vgKMH(V<0s(fs>c6>{0)u&0{mlR zgZ`HWLq4Z5>-`R~Ua#M3%zC^>jCr{q-Y3@Ubz5Ve(+`MY(+{6_h&d4ScQoRY=$Q{O z*NY$LM!q&7U!Rcg(U^PZpvGLL=ZP^Fr^pcNz2s|o5Bf5(J|i_PUyb^3@5yC&fauHQ z3wOdn?)15ea-Ad3lmpBh9m;6{;`wrbnHS0UVXVY7Ya-Tu$P?3#npgYbyrvHKh;{wf zFlIe=idftK8#e2-4S%8$b58!QA!dH<8gu^T8guwYV(qh6V~*XTG2}0+eAek)&S=aS&S^~5C5;)+*EQyvT-BKK z-q4tP>3bS;E!5iS-+^nun|eCHW_@{wnBR)b$JCjA%~}s6Y?zy={~&D;q*`}3oGnHE zgmCeF7xz;JMZuX!xaz`pdCj{NxQVxiTgAtGEM5E}NvQaZ9J_HBUMlqG)?YTUb&elq zUZFf$fw{u|#6&eXEs|=#>X-BQgigvHBEm;sV7wq7;btqPQh@KYDQPwA zuuN)ya>zD55=0&82{dB$vj+Wtv)cq6_xJy@Q|k*mo(mHFagP}?^Ku^%8@oYZ?pH&` zj^AzEuY+1Kg)?^>nD2x}H0tR83usAy-vw{(3P7b}e+n(>ZxCnZEy(C^sn*fo6dL`R zeE+6-bc#%T{QpI=F1&xO*yI7bm%*7aRM75hLSW!mAy3BlA>!lvgz*6`M?^f0?oi5?@0Pn-!bU9Zhu7M7?a}**d!Yh z3ql>+hl}jaWAXV7VaVA10|H`0Z^Q0@VbC)V(p|Jl5t<*Zk*MVmC6rgZW n3_CG_f$S4ui;pnxJcRuId=!myv5x$8k@R;Pf^R}*$oTsY-cqHz literal 0 HcmV?d00001 diff --git a/P2/P2 Pooling/P2 Pooling/Debug/makedep.mk b/P2/P2 Pooling/P2 Pooling/Debug/makedep.mk new file mode 100644 index 0000000..6a14fde --- /dev/null +++ b/P2/P2 Pooling/P2 Pooling/Debug/makedep.mk @@ -0,0 +1,6 @@ +################################################################################ +# Automatically-generated file. Do not edit or delete the file +################################################################################ + +main.c + diff --git a/P2/P2 Pooling/P2 Pooling/P2 Pooling.cproj b/P2/P2 Pooling/P2 Pooling/P2 Pooling.cproj index 52dee3d..381ad0f 100644 --- a/P2/P2 Pooling/P2 Pooling/P2 Pooling.cproj +++ b/P2/P2 Pooling/P2 Pooling/P2 Pooling.cproj @@ -20,91 +20,104 @@ false true true - + 0x20000000 true - + exception_table 2 0 0 + com.atmel.avrdbg.tool.simulator + + 0x1E950F + + + + + + com.atmel.avrdbg.tool.simulator + + + Simulator + - -mmcu=atmega328p -B "%24(PackRepoDir)\atmel\ATmega_DFP\1.2.209\gcc\dev\atmega328p" - True - True - True - True - False - True - True - - - NDEBUG - - - - - %24(PackRepoDir)\atmel\ATmega_DFP\1.2.209\include - - - Optimize for size (-Os) - True - True - True - - - libm - - - - - %24(PackRepoDir)\atmel\ATmega_DFP\1.2.209\include - - - + -mmcu=atmega328p -B "%24(PackRepoDir)\atmel\ATmega_DFP\1.2.209\gcc\dev\atmega328p" + True + True + True + True + False + True + True + + + NDEBUG + + + + + %24(PackRepoDir)\atmel\ATmega_DFP\1.2.209\include + + + Optimize for size (-Os) + True + True + True + + + libm + + + + + %24(PackRepoDir)\atmel\ATmega_DFP\1.2.209\include + + + - -mmcu=atmega328p -B "%24(PackRepoDir)\atmel\ATmega_DFP\1.2.209\gcc\dev\atmega328p" - True - True - True - True - False - True - True - - - DEBUG - - - - - %24(PackRepoDir)\atmel\ATmega_DFP\1.2.209\include - - - Optimize (-O1) - True - True - Default (-g2) - True - - - libm - - - - - %24(PackRepoDir)\atmel\ATmega_DFP\1.2.209\include - - - Default (-Wa,-g) - + -mmcu=atmega328p -B "%24(PackRepoDir)\atmel\ATmega_DFP\1.2.209\gcc\dev\atmega328p" + True + True + True + True + False + True + True + + + DEBUG + + + + + %24(PackRepoDir)\atmel\ATmega_DFP\1.2.209\include + + + Optimize (-O1) + True + True + Default (-g2) + True + + + libm + + + + + %24(PackRepoDir)\atmel\ATmega_DFP\1.2.209\include + + + Default (-Wa,-g) + diff --git a/P2/P2 Pooling/P2 Pooling/main.c b/P2/P2 Pooling/P2 Pooling/main.c index 7811439..f012502 100644 --- a/P2/P2 Pooling/P2 Pooling/main.c +++ b/P2/P2 Pooling/P2 Pooling/main.c @@ -8,68 +8,55 @@ #include #define F_CPU 16000000UL #include -#include // boolean type and values +#include -#define LED00 PIND0 -#define LED09 PIND1 +#define LED0 PINB0 +#define LED9 PINB1 +#define SW1 PIND2 +#define SW2 PIND3 -#define SWITCH01 PINB0 -#define SWITCH02 PINB1 - -int on = LED00; -int off = LED09; -bool blink = true; +int activeLED = LED0; +bool blinking = true; void setupPorts() { - DDRD = 0xff; // Data direction register D (D0 & D1) as output - PORTD = 0x00; + DDRB = 0xff; // DDRB as output + PORTB = 0x00; - DDRB = 0x00; // Data direction register B (B0 & B1) as input - PORTB = 0xff; + DDRD = 0x00; // DDRD as input + PORTD = 0xff; } -void pressButton() { - if ( !(PINB & (1 << SWITCH01)) ) { - _delay_ms(5); - if ( !(PINB & (1 << SWITCH01)) ) { // SW1 is pressed - if (PIND & (1 << LED00)) { // if D0 is on - blink ^= (1 << 0); // toggle D0 from blinking to steady light or vice versa - } else if (PIND & (1 << LED09)) { // if D9 is on then switch to D0 - off = LED09; - on = LED00; - } +void isButtonPressed() { + if ( !(PIND & (1 << SW1)) ) { // SW1 is pressed + if (activeLED == LED0) { // if D0 is on + blinking = !blinking; // toggle blinking + } + else { // switch LED + PORTB = (1 << LED0); } + activeLED = LED0; } - - if ( !(PINB & (1 << SWITCH02)) ) { - _delay_ms(5); - if ( !(PINB & (1 << SWITCH02))) { // SW2 is pressed - if (PIND & (1 << LED09)) { // if D9 is on - blink ^= (1 << 0); // toggle D9 from blinking to steady light or vice versa - } else if ( (PIND & (1 << LED00))) { // if D0 is on then switch to D9 - off = LED00; - on = LED09; - } - } + else if ( !(PIND & (1 << SW2))) { // SW2 is pressed + if (activeLED == LED9) { // if D9 is on + blinking = !blinking; // toggle blinking + } + else { // switch LED + PORTB = (1 << LED9); + } + activeLED = LED9; } } - -int main(void) -{ - /* Replace with your application code */ +int main(void) { setupPorts(); - while (1) - { - pressButton(); - if (blink) { - PORTD &= ~(1UL << off); - PORTD ^= (1 << on); + while (1) { + isButtonPressed(); + if (blinking) { + PORTB ^= (1 << activeLED); } else { - PORTD &= ~(1UL << off); - PORTD |= ( 1 << on); + PORTB = (1 << activeLED); } - _delay_ms(200); + _delay_ms(250); } } diff --git a/P3/P3/.vs/P3/v14/.atsuo b/P3/P3/.vs/P3/v14/.atsuo new file mode 100644 index 0000000000000000000000000000000000000000..90445e0fba94c93793beae4df21fa25ccfd9b5ce GIT binary patch literal 19456 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 + + + + + + Device + Startup + + + Atmel + 1.2.0 + C:/Program Files (x86)\Atmel\Studio\7.0\Packs + + + + + C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\include + + include + C + + + include + + + + + C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\include\avr\iom328p.h + + header + C + UMk4QUzkkuShabuoYtNl/Q== + + include/avr/iom328p.h + + + + + C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\templates\main.c + template + source + C Exe + jes6jxEW2xSYlDpXzC4wHg== + + templates/main.c + Main file (.c) + + + + C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\templates\main.cpp + template + source + C Exe + YXFphlh0CtZJU+ebktABgQ== + + templates/main.cpp + Main file (.cpp) + + + + C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\gcc\dev\atmega328p + + libraryPrefix + GCC + + + gcc/dev/atmega328p + + + + + ATmega_DFP + C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.209/Atmel.ATmega_DFP.pdsc + 1.2.209 + true + ATmega328P + + + + Resolved + Fixed + true + + + \ No newline at end of file diff --git a/P3/P3/P3/P3.cproj b/P3/P3/P3/P3.cproj new file mode 100644 index 0000000..ffaa247 --- /dev/null +++ b/P3/P3/P3/P3.cproj @@ -0,0 +1,116 @@ + + + + 2.0 + 7.0 + com.Atmel.AVRGCC8.C + dce6c7e3-ee26-4d79-826b-08594b9ad897 + ATmega328P + none + Executable + C + $(MSBuildProjectName) + .elf + $(MSBuildProjectDirectory)\$(Configuration) + P3 + P3 + P3 + Native + true + false + true + true + + + true + + 2 + 0 + 0 + + + + + + -mmcu=atmega328p -B "%24(PackRepoDir)\atmel\ATmega_DFP\1.2.209\gcc\dev\atmega328p" + True + True + True + True + False + True + True + + + NDEBUG + + + + + %24(PackRepoDir)\atmel\ATmega_DFP\1.2.209\include + + + Optimize for size (-Os) + True + True + True + + + libm + + + + + %24(PackRepoDir)\atmel\ATmega_DFP\1.2.209\include + + + + + + + + + -mmcu=atmega328p -B "%24(PackRepoDir)\atmel\ATmega_DFP\1.2.209\gcc\dev\atmega328p" + True + True + True + True + False + True + True + + + DEBUG + + + + + %24(PackRepoDir)\atmel\ATmega_DFP\1.2.209\include + + + Optimize (-O1) + True + True + Default (-g2) + True + + + libm + + + + + %24(PackRepoDir)\atmel\ATmega_DFP\1.2.209\include + + + Default (-Wa,-g) + + + + + + compile + + + + \ No newline at end of file diff --git a/P3/P3/P3/main.c b/P3/P3/P3/main.c new file mode 100644 index 0000000..cd549fa --- /dev/null +++ b/P3/P3/P3/main.c @@ -0,0 +1,53 @@ +/* + * 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