From ec783fd3b6f2dc6487708676a0b30866df0caf74 Mon Sep 17 00:00:00 2001 From: S170H <64917343+S170H@users.noreply.github.com> Date: Sat, 11 Nov 2023 21:35:59 +0100 Subject: [PATCH] P2 --- Abgaben/P1/Hazinedar_3108590_ARBKVS_1.asm | 71 +++++++++++ P1/.vs/P1/v14/.atsuo | Bin 27136 -> 32256 bytes P1/.vscode/c_cpp_properties.json | 18 +++ P1/.vscode/launch.json | 15 +++ P1/.vscode/settings.json | 59 +++++++++ P1/P1/Debug/P1.lss | 98 ++++++++------- P1/P1/Debug/P1.tmp | 12 +- P1/P1/main.asm | 20 +-- P2/.vs/P2/v14/.atsuo | Bin 0 -> 19968 bytes P2/P2 Interrups/.vs/P2 Interrups/v14/.atsuo | Bin 0 -> 22528 bytes P2/P2 Interrups/P2 Interrups.atsln | 22 ++++ .../P2 Interrups.componentinfo.xml | 86 +++++++++++++ .../P2 Interrups/P2 Interrups.cproj | 118 ++++++++++++++++++ P2/P2 Interrups/P2 Interrups/main.c | 66 ++++++++++ P2/P2 Pooling/.vs/P2 Pooling/v14/.atsuo | Bin 0 -> 19968 bytes P2/P2 Pooling/P2 Pooling.atsln | 22 ++++ .../P2 Pooling/P2 Pooling.componentinfo.xml | 86 +++++++++++++ P2/P2 Pooling/P2 Pooling/P2 Pooling.cproj | 116 +++++++++++++++++ P2/P2 Pooling/P2 Pooling/main.c | 75 +++++++++++ 19 files changed, 825 insertions(+), 59 deletions(-) create mode 100644 Abgaben/P1/Hazinedar_3108590_ARBKVS_1.asm create mode 100644 P1/.vscode/c_cpp_properties.json create mode 100644 P1/.vscode/launch.json create mode 100644 P1/.vscode/settings.json create mode 100644 P2/.vs/P2/v14/.atsuo create mode 100644 P2/P2 Interrups/.vs/P2 Interrups/v14/.atsuo create mode 100644 P2/P2 Interrups/P2 Interrups.atsln create mode 100644 P2/P2 Interrups/P2 Interrups/P2 Interrups.componentinfo.xml create mode 100644 P2/P2 Interrups/P2 Interrups/P2 Interrups.cproj create mode 100644 P2/P2 Interrups/P2 Interrups/main.c create mode 100644 P2/P2 Pooling/.vs/P2 Pooling/v14/.atsuo create mode 100644 P2/P2 Pooling/P2 Pooling.atsln create mode 100644 P2/P2 Pooling/P2 Pooling/P2 Pooling.componentinfo.xml create mode 100644 P2/P2 Pooling/P2 Pooling/P2 Pooling.cproj create mode 100644 P2/P2 Pooling/P2 Pooling/main.c diff --git a/Abgaben/P1/Hazinedar_3108590_ARBKVS_1.asm b/Abgaben/P1/Hazinedar_3108590_ARBKVS_1.asm new file mode 100644 index 0000000..2138c71 --- /dev/null +++ b/Abgaben/P1/Hazinedar_3108590_ARBKVS_1.asm @@ -0,0 +1,71 @@ +; +; P1.asm +; +; Created: 12.10.2023 22:54:52 +; Author : Safak Hazinedar +; + +.include "m328pdef.inc" + +.org 0x00 +rjmp init + +init: + ldi r16, LOW(RAMEND) ; Stack einrichten für Befehle + out SPL, r16 + ldi r16, HIGH(RAMEND) + out SPH, r16 + + ldi r17, 0xFF + out DDRD, r17 ; Data direction register D (D0-D7) as output + + ldi r18, 0x03 + out DDRB, r18 ; Data direction register B (B0-B1) as output + + ldi r17, 0x01 ; initialize D0 + +portD_left: + out PORTD, r17 + rcall delay + lsl r17 ; shift left until PortD is 0x00 + cpi r17, 0x00 ; + brne portD_left + out PORTD, r17 ; D0-D7 = 0 + ldi r18, 0x01 ; switch to PortB + +portB_left: + out PORTB, r18 ; D8 = 1 + rcall delay + lsl r18 + cpi r18, 0x02 ; length of PortB is variable + brne portB_left + ; D9 = 1 => last LED turned on +portB_right: + out PORTB, r18 + rcall delay + lsr r18 ; turn direction + cpi r18, 0x00 ; shift right until PortB is 0x00 + brne portB_right + out PORTB, r18 ; turn of PortB or rather D8 & D9 + ldi r17, 0x80 + +portD_right: + out PORTD, r17 ; turn on D7 + rcall delay + lsr r17 + cpi r17, 0x01 ; shift right until D0 is reached + brne portD_right + jmp portD_left ; turn direction + +delay: + ldi r19, 17 + ldi r20, 60 + ldi r21, 204 + +L1: dec r21 + brne L1 + dec r20 + brne L1 + dec r19 + brne L1 + ret \ No newline at end of file diff --git a/P1/.vs/P1/v14/.atsuo b/P1/.vs/P1/v14/.atsuo index 6da5003b867f5b2a7e00866dade300ac951500dc..7f87cb98291d90cb6ba1368d74d24097f8f93cc4 100644 GIT binary patch delta 1705 zcmcJP-)|IE6vy{Yr_<>=14Fy~NLkuto#<|9<08B5ikJ?iDu{G;8$+rghO(wxZ3`{# z*cQ2h? z41-i<)VncgVhcneA#YA@L$4mN>mP_sLGv6eJZ90WY|ZG;W=*37x&ed%uS>2LGUMp1 zgsil!7`Ip1g6Pj?!&(P)deu%pX(4$%1`AnLl%$b*>&BR$o$}Aw)wyPMGXARfV4|C= zgHH5kv!Mv5xDIeSeoDUoozl_ZdspcsD+_EfxMqGzyZ}<#B6HCeva*Q3hRzvq7Q7DL z0O!DY@FutbE`n*gtap_(*&7MUlEIti&2gP002_*^Twks!eV~~#uTI}+F}k7~r0NOP z&yOrUDOdI}ska?@0dB)!1dM{?-~<>0FWjc2sS?ShI zhaY+>)qgxUK9D(ZY`7(+Fqy0zGUd&#v=V3q6MFI(%Rl6m_f ztZcR%HauhKy0{wMCwu!MuAtAAo!-*@>l#Rko)lf=M9)g!2fbgTiYUc;G=9rXVC^WM zB`4Oa2ZFGvRd!m6xgtYOyeMp1j^7e{X}PtRCl?kuT{eB8;J|legw}|tt<{l*_Ke2U z^VRm3@s`>z)(VA+yMEKznT7R6I-mTI&g{COn-yCizZR3?n9hO&;VO~|i_h4uD|b#_y$5QuK1FORm-V$Slc{&J1MKMBJk z0EvMFl~X&{Cm^SvKiqBiO(YIJp1<1RiuuJsY3^vyzd7@6NZkD;AvbN!Tm8Z-KiMpi zJs2(7?!Wm=-WBt%UF(hKKBaSn`pkL$!QIl&tQwO1BAbN+J}MM(9A`!{Xb^X}AyE_)PNJivz$v=0Q^#Y0 zW(H=e88%_75-CSo5FbKokp0M2nJV--5TkF$wuD%a8l)CEfz%;RqzPGx%fZuF%ZL@p zFO~6NyEWgpVXYu-NITMjh{$?eVJUvvy7?h&=qxdGlBC~tnl-lzorWyqMFRSc@*+s& zO1xGjp(KLD9w({{$NnNpHAFSzJUTFXU!kZj^!-T`&7;Fzk1w;7VA7{;CSIb=6at#y zvKS6{D!5J5f%k$e_2RQC(uaf)u!xE!ij5d`RI$@^nHqOQ4=A=OP;K(cs4FGR{rh*6 zU9eC}kwD5kHUr7BMK%owSWZFG9u?@^X_$xCYHWF*g{aeRw&CK1rKDn?kA8HRMK_w9O z_6Ng$Z|B)a$Qz7=B3K0byZnBCM<7)%H!zN4j1yC@c9MG&>Ne}|R`569g?=>XyVNaR zdvp|dIPh}tKCi#cycqDolh|B#x7jKAg1$7e|8lpfW201iT$G9__c;B~Y34ViL^fW| zs6a6+yi last LED turned on portB_right: -000012 b925 out PORTB, r18 -000013 d00c rcall delay -000014 9526 lsr r18 ; turn direction -000015 3020 cpi r18, 0x00 ; shift right until PortB is 0x00 -000016 f7d9 brne portB_right -000017 b925 out PORTB, r18 ; turn of PortB or rather D8 & D9 -000018 e810 ldi r17, 0x80 +000016 b925 out PORTB, r18 +000017 d00c rcall delay +000018 9526 lsr r18 ; turn direction +000019 3020 cpi r18, 0x00 ; shift right until PortB is 0x00 +00001a f7d9 brne portB_right +00001b b925 out PORTB, r18 ; turn of PortB or rather D8 & D9 +00001c e810 ldi r17, 0x80 portD_right: -000019 b91b out PORTD, r17 ; turn on D7 -00001a d005 rcall delay -00001b 9516 lsr r17 -00001c 3011 cpi r17, 0x01 ; shift right until D0 is reached -00001d f7d9 brne portD_right -00001e 940c 0006 jmp portD_left ; turn direction +00001d b91b out PORTD, r17 ; turn on D7 +00001e d005 rcall delay +00001f 9516 lsr r17 +000020 3011 cpi r17, 0x01 ; shift right until D0 is reached +000021 f7d9 brne portD_right +000022 940c 000a jmp portD_left ; turn direction delay: -000020 e131 ldi r19, 17 -000021 e34c ldi r20, 60 -000022 ec5c ldi r21, 204 +000024 e131 ldi r19, 17 +000025 e34c ldi r20, 60 +000026 ec5c ldi r21, 204 -000023 955a L1: dec r21 -000024 f7f1 brne L1 -000025 954a dec r20 -000026 f7e1 brne L1 -000027 953a dec r19 -000028 f7d1 brne L1 +000027 955a L1: dec r21 +000028 f7f1 brne L1 +000029 954a dec r20 +00002a f7e1 brne L1 +00002b 953a dec r19 +00002c f7d1 brne L1 RESOURCE USE INFORMATION @@ -1112,10 +1118,10 @@ counted separately from r26..r31 here. "ATmega328P" register use summary: x : 0 y : 0 z : 0 r0 : 0 r1 : 0 r2 : 0 r3 : 0 r4 : 0 r5 : 0 r6 : 0 r7 : 0 r8 : 0 r9 : 0 r10: 0 r11: 0 r12: 0 -r13: 0 r14: 0 r15: 0 r16: 0 r17: 11 r18: 10 r19: 2 r20: 2 +r13: 0 r14: 0 r15: 0 r16: 4 r17: 11 r18: 10 r19: 2 r20: 2 r21: 2 r22: 0 r23: 0 r24: 0 r25: 0 r26: 0 r27: 0 r28: 0 r29: 0 r30: 0 r31: 0 -Registers used: 5 out of 35 (14.3%) +Registers used: 6 out of 35 (17.1%) "ATmega328P" instruction use summary: .lds : 0 .sts : 0 adc : 0 add : 0 adiw : 0 and : 0 @@ -1128,9 +1134,9 @@ clc : 0 clh : 0 cli : 0 cln : 0 clr : 0 cls : 0 clt : 0 clv : 0 clz : 0 com : 0 cp : 0 cpc : 0 cpi : 4 cpse : 0 dec : 3 eor : 0 fmul : 0 fmuls : 0 fmulsu: 0 icall : 0 ijmp : 0 in : 0 inc : 0 jmp : 1 -ld : 0 ldd : 0 ldi : 8 lds : 0 lpm : 0 lsl : 2 +ld : 0 ldd : 0 ldi : 10 lds : 0 lpm : 0 lsl : 2 lsr : 2 mov : 0 movw : 0 mul : 0 muls : 0 mulsu : 0 -neg : 0 nop : 0 or : 0 ori : 0 out : 8 pop : 0 +neg : 0 nop : 0 or : 0 ori : 0 out : 10 pop : 0 push : 0 rcall : 4 ret : 1 reti : 0 rjmp : 1 rol : 0 ror : 0 sbc : 0 sbci : 0 sbi : 0 sbic : 0 sbis : 0 sbiw : 0 sbr : 0 sbrc : 0 sbrs : 0 sec : 0 seh : 0 @@ -1142,7 +1148,7 @@ Instructions used: 11 out of 113 (9.7%) "ATmega328P" memory use summary [bytes]: Segment Begin End Code Data Used Size Use% --------------------------------------------------------------- -[.cseg] 0x000000 0x000054 84 0 84 32768 0.3% +[.cseg] 0x000000 0x00005c 92 0 92 32768 0.3% [.dseg] 0x000100 0x000100 0 0 0 2048 0.0% [.eseg] 0x000000 0x000000 0 0 0 1024 0.0% diff --git a/P1/P1/Debug/P1.tmp b/P1/P1/Debug/P1.tmp index 5618f2e..b165cbb 100644 --- a/P1/P1/Debug/P1.tmp +++ b/P1/P1/Debug/P1.tmp @@ -23,11 +23,11 @@ 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.asm21 - C:\Users\Safak\Desktop\UNI\3. Semester\53107 ARBK\Praktikumsunterlagen\ARBKVS-Praktika\P1\P1\main.asm54 - C:\Users\Safak\Desktop\UNI\3. Semester\53107 ARBK\Praktikumsunterlagen\ARBKVS-Praktika\P1\P1\main.asm30 - C:\Users\Safak\Desktop\UNI\3. Semester\53107 ARBK\Praktikumsunterlagen\ARBKVS-Praktika\P1\P1\main.asm37 - C:\Users\Safak\Desktop\UNI\3. Semester\53107 ARBK\Praktikumsunterlagen\ARBKVS-Praktika\P1\P1\main.asm46 - C:\Users\Safak\Desktop\UNI\3. Semester\53107 ARBK\Praktikumsunterlagen\ARBKVS-Praktika\P1\P1\main.asm59 + 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 diff --git a/P1/P1/main.asm b/P1/P1/main.asm index b4b3388..892b6ee 100644 --- a/P1/P1/main.asm +++ b/P1/P1/main.asm @@ -2,7 +2,7 @@ ; P1.asm ; ; Created: 12.10.2023 22:54:52 -; Author : Safak +; Author : Safak Hazinedar ; .include "m328pdef.inc" @@ -11,18 +11,24 @@ rjmp init init: + ldi r16, LOW(RAMEND) ; Stack einrichten für Befehle + out SPL, r16 + ldi r16, HIGH(RAMEND) + out SPH, r16 + ldi r17, 0xFF out DDRD, r17 ; Data direction register D (D0-D7) as output - ldi r17, 0x01 ; initialize D0 ldi r18, 0x03 out DDRB, r18 ; Data direction register B (B0-B1) as output + ldi r17, 0x01 ; initialize D0 + portD_left: out PORTD, r17 rcall delay - lsl r17 ; shift left until PortB is 0x00 - cpi r17, 0x00 ; if(r17!=0x00) links_PD + lsl r17 ; shift left until PortD is 0x00 + cpi r17, 0x00 ; brne portD_left out PORTD, r17 ; D0-D7 = 0 ldi r18, 0x01 ; switch to PortB @@ -32,14 +38,14 @@ portB_left: rcall delay lsl r18 cpi r18, 0x02 ; length of PortB is variable - brne portB_left + brne portB_left ; D9 = 1 => last LED turned on portB_right: out PORTB, r18 rcall delay lsr r18 ; turn direction cpi r18, 0x00 ; shift right until PortB is 0x00 - brne portB_right + brne portB_right out PORTB, r18 ; turn of PortB or rather D8 & D9 ldi r17, 0x80 @@ -48,7 +54,7 @@ portD_right: rcall delay lsr r17 cpi r17, 0x01 ; shift right until D0 is reached - brne portD_right + brne portD_right jmp portD_left ; turn direction delay: diff --git a/P2/.vs/P2/v14/.atsuo b/P2/.vs/P2/v14/.atsuo new file mode 100644 index 0000000000000000000000000000000000000000..e2b54e768b5a86eb6a8c4595e364f00e67211321 GIT binary patch literal 19968 zcmeHOYiwgj6~3X{?e;}!yOdH&3GLFBI`J!h?snT=UqAA25+-O&t$tR zRR|#vs)Q<}N|h?LQu%`rq7)&1AOsZx302x6{*;Ozw1`TT5b%qC-R1kPeUt0dP8=t@ z-Cc5=bMMUDnK|<~=giERlXouM`M1~JxbJ;o8$2Q0AY8n3vv5?CK7#OP)cEHF;RwP^ zyLjo+B_`hhMDP%CAh_-y69f z`F?Y}ojCxCWg#z2fqEJtkFdT=E#05*0Y_?wyZdYJSP02rUj>$hl28-^LR?4)1w1oC zN|+Za7>OKOBMY@ozJ9M0!e>S(BWfG^<^V%j26U!DQ&?X zVbI^C%{KJN@`z?-_@KGgXo;61=E0GW0#-lY3w-~+&~07rpe z1wIIT2zUbcHQ>WQmN|sWKLS@${@=Ofl`Z)v;{jCuzmoDF0o{X?f9<-bbZVE!0n7gg zWl7aRyO35sYvo_%up9A(dO($5zV{=8TKOjp%0JsUi2UD#d@OSamwyB}$6N}?!`#o2 z4>(VpgJVFI5BR>V6X!aA2aqzPe!m-GF6k6&HBEi1>jBsOUh}W!)9U|6koQsG*MW}# zb-*zo^Xl<70F6Ks&yvjBQwDMuS-|8Yu))dgU^&L0{4B~(OfA-vUhmbVQ-pXI2_2ocn`0P1Co`YN95 z-~du@f_4I--QYot|EA@CF~@B{ObL7gpSLlLR!>z|tP>`qeN+s&W>x~#c%hyvG)lFGj8DaQCMB=%OC&tr`4(RZ znE6+V=VX0?)gOIaZWN2uw*BGvBNFuU3iM`88TT5(Va#+ISU}jV%y0!fLxbAt)cKZ=eme*G#q@-4fp}r#>GAebVKgc2N3vA@5H+6>O(ZnWNkfY5{l{`iE;D&$)xrXMR=xZ>LZF zFGJsj!S4<5=59I&^p*aTaR#M-JMw-2B=o1h0V$zIEVeWDd9wect3sb_UCG_+PdER~ zV(d$xN;{NxZRp1XV?)rVzUE$yu)Y7i`A^%Db~*KF0sXrX;l7q*pr-Hiz6Brq&3~H` zcOq>|kO)q!U}fa$pX;P*>mFwPyBQUz>(6zt{*Umish%0NW3y9OUH^B=Gw3&!_XnN- zLF*kf-+t&*77z0L$NIELy{tX|@!O#GzeiDa`}uDiX}!*WTAB>={HLZNdI)_+fO62; ziX$`xurTXZE4hu_lo0EsR8b$UHm5aqxqK+DCdS6OTRdWfwKUb?iYkKj`>v2~#6)#lEIk_&C<#aAHHrhMy zfj0ci85&!TK9fVcYd1bq%biUfd#2eQ4yfg^-c9J$+^5fQu#X+PnH8#VlM+#<u>cP(bXvF3|g5hC+ z^Zz>V>OBSW^vE+`Z`d#Y(w0gj3{w~Q?iS(ifB5jP5C3ap_M3%c(V3UueMzlIHL|s< z@A>5VOqoZK5#b1X+Id}QCn}Bl<;c}PJ?%;2lgIH2n3&hf90{dYw97IwX@pp5f8(36 zokQ9(40nKMxmn0<5i*lgWSDkLN^(W99`)e&#TI;*>sP}Gd z>mu_WQ|?_4vTdgntNTILsMnm=&S4xPu<+=i6J48D3m0Z0*)`&{_#bQ=LO7$+MoY_a zN*J^qJoSlSP4Y<-FOwL3#L9!A=V za(kJ+@#PDYtKs1UbVv6MR81I#UZILNDSNP;E%01Z_5&fMx@x7VBZpIpE8a{tP)Qg?N{XDx!R>hG=k*|0Um0X)I=L-e0*<$XD! z`y9T2QD|V)>zn@YRoMJ^Bj5H$Zko;Qa%Z{b|p+tWx(bt^oK z|B06VB4(Uk@0@S?`E-xRK>W9vz=KQ+OvmOhQZ{rA4) zPnEG=_uhR-b|oMBf9=ozt7|ZajO8dgM zpU|I)7S=)g{}A$iqhkV@hmTDj7G$n}+cj?lR^Hu!>o3<5`t%G+|3Tz^tWz=di`M^Z z%m3)m|3~$Mt#wI7XW%+7)&GY+D1(ka`BmNjZy*05{C^bvzZd@_t^d#A{r}Fw`PaJ~G~!sT*`_#~V6O$iGpZv9x)z3|(~H{Scvg}Z;agpG7qaHNmFb@8nS{I9=~ z{K-oX{G0#8*9Q*$FZ%n2oKpVV@oMmWpeMt@wqtAGta?lA<_E%E_rd#L@EqIrzxZ9p z|Kd5f+hm2EVwPs1!f=md>!9^2tOY8Yo(-93WGI2WL$;J{b zQFPa45w*L;M6$W&V}WTgyclvt+}S`jGGkbE&WXNBlUa5-=c5}XgLy4zS`CKQBEjX5 zCt6y|1ihwUuACPg>r=JafXCxoE={)FzOdLThs|EGTv>`|g63>+YAF+%4Vyfba>>7F z&Q?6WrO9M7AtwXAL^Pq>2&e7MhR&IC8qOxduAo<1Eb1mV)}}p$oMCk})+)w*&5|5X zE=TOEtAPz$q8M+aH>?q9EtXlIi3a`6l-x+p8)B9jqie!1 zW^6WBK0cARN>jS3&meOit*0&%}x0<0`ZEiN7Z<+nmlc}0{DU(d-Ty9Tn z+EMZ@B@5P~Y1*7!UM}0jmN~T?Y)T7rp^&c`Zsd$fuPdDi*-DwEWXu!DTB6QUYkD%| z&jmdb{!FgijQQ6sjk)GT&YUjiWxKT+U2Ez}O{>?qn63n)g|N6*OXS6dr52LC&Dmf+ z6!-Zi44HX{sSp?EO!=g=5p9*G+^*0>yi~|dHzZ(pnH#ImQczBIEw zV=>PKl2M~SQ8b@5dh;<`GE|MM8pMRl5Gv)(k?F#`DL~l}ArF!H(2P}zPEFCRvJ2X7 hU0U}o`WAC-9Kx-utLB{|*Mt8TZ3kD<|4Xae{|DrT3c3IQ literal 0 HcmV?d00001 diff --git a/P2/P2 Interrups/.vs/P2 Interrups/v14/.atsuo b/P2/P2 Interrups/.vs/P2 Interrups/v14/.atsuo new file mode 100644 index 0000000000000000000000000000000000000000..0bada594f0f9bd9b00bf655d49c607d4f94ee865 GIT binary patch literal 22528 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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\library.c + template + source + C Lib + Xs6gZkHoRPVc48eW2v/lGA== + + templates/library.c + Main file (.c) + + + + C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\templates\library.cpp + template + source + C Lib + Ztu2zWWQnYWBswuEN+3iHQ== + + templates/library.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/P2/P2 Interrups/P2 Interrups/P2 Interrups.cproj b/P2/P2 Interrups/P2 Interrups/P2 Interrups.cproj new file mode 100644 index 0000000..7493928 --- /dev/null +++ b/P2/P2 Interrups/P2 Interrups/P2 Interrups.cproj @@ -0,0 +1,118 @@ + + + + 2.0 + 7.0 + com.Atmel.AVRGCC8.C + dce6c7e3-ee26-4d79-826b-08594b9ad897 + ATmega328P + none + StaticLibrary + C + lib$(MSBuildProjectName) + .a + $(MSBuildProjectDirectory)\$(Configuration) + + + P2 Interrups + P2 Interrups + P2 Interrups + 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/P2/P2 Interrups/P2 Interrups/main.c b/P2/P2 Interrups/P2 Interrups/main.c new file mode 100644 index 0000000..5346a1e --- /dev/null +++ b/P2/P2 Interrups/P2 Interrups/main.c @@ -0,0 +1,66 @@ +/* + * P2 Interrups.c + * + * Created: 11.11.2023 21:07:41 + * Author : Safak + */ + +#include + +#define F_CPU 16000000UL +#include +#include +#include // boolean type and values + +#define LED00 PINB0 +#define LED09 PINB1 +#define SWITCH01 PIND2 +#define SWITCH02 PIND3 + +volatile int on = LED00; +volatile bool blink = true; + +void setupPorts() { + DDRB = 0xff; // Data direction register B (B0 & B1) as output + 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 +} + +ISR(INT0_vect) { + if (on == LED00) { // 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; +} + +ISR(INT1_vect) { + if (on == LED09) { + blink = !blink; + } else { + PORTB = (1 << LED09); + } + on = LED09; +} + + +int main(void) +{ + /* Replace with your application code */ + setupPorts(); + while(1){ + if (blink) { + PORTB ^= (1 << on); + } else { + PORTB = (1 << on); + } + _delay_ms(200); + } +} \ 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 new file mode 100644 index 0000000000000000000000000000000000000000..e6038b265bef1ce381eb53df7661d07943dfaf87 GIT binary patch literal 19968 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 UxN#^QIiP8%w}T%(@9|In16XiHvH$=8 literal 0 HcmV?d00001 diff --git a/P2/P2 Pooling/P2 Pooling.atsln b/P2/P2 Pooling/P2 Pooling.atsln new file mode 100644 index 0000000..7d7a0b1 --- /dev/null +++ b/P2/P2 Pooling/P2 Pooling.atsln @@ -0,0 +1,22 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Atmel Studio Solution File, Format Version 11.00 +VisualStudioVersion = 14.0.23107.0 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{54F91283-7BC4-4236-8FF9-10F437C3AD48}") = "P2 Pooling", "P2 Pooling\P2 Pooling.cproj", "{DCE6C7E3-EE26-4D79-826B-08594B9AD897}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|AVR = Debug|AVR + Release|AVR = Release|AVR + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {DCE6C7E3-EE26-4D79-826B-08594B9AD897}.Debug|AVR.ActiveCfg = Debug|AVR + {DCE6C7E3-EE26-4D79-826B-08594B9AD897}.Debug|AVR.Build.0 = Debug|AVR + {DCE6C7E3-EE26-4D79-826B-08594B9AD897}.Release|AVR.ActiveCfg = Release|AVR + {DCE6C7E3-EE26-4D79-826B-08594B9AD897}.Release|AVR.Build.0 = Release|AVR + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/P2/P2 Pooling/P2 Pooling/P2 Pooling.componentinfo.xml b/P2/P2 Pooling/P2 Pooling/P2 Pooling.componentinfo.xml new file mode 100644 index 0000000..edcfcda --- /dev/null +++ b/P2/P2 Pooling/P2 Pooling/P2 Pooling.componentinfo.xml @@ -0,0 +1,86 @@ + + + + + + + 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 + gIGb2m6IqIB7TDlcNASCgw== + + 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/P2/P2 Pooling/P2 Pooling/P2 Pooling.cproj b/P2/P2 Pooling/P2 Pooling/P2 Pooling.cproj new file mode 100644 index 0000000..52dee3d --- /dev/null +++ b/P2/P2 Pooling/P2 Pooling/P2 Pooling.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) + P2 Pooling + P2 Pooling + P2 Pooling + 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/P2/P2 Pooling/P2 Pooling/main.c b/P2/P2 Pooling/P2 Pooling/main.c new file mode 100644 index 0000000..7811439 --- /dev/null +++ b/P2/P2 Pooling/P2 Pooling/main.c @@ -0,0 +1,75 @@ +/* + * P2 Pooling.c + * + * Created: 11.11.2023 21:06:54 + * Author : Safak + */ + +#include +#define F_CPU 16000000UL +#include +#include // boolean type and values + +#define LED00 PIND0 +#define LED09 PIND1 + +#define SWITCH01 PINB0 +#define SWITCH02 PINB1 + +int on = LED00; +int off = LED09; +bool blink = true; + +void setupPorts() { + DDRD = 0xff; // Data direction register D (D0 & D1) as output + PORTD = 0x00; + + DDRB = 0x00; // Data direction register B (B0 & B1) as input + PORTB = 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; + } + } + } + + 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; + } + } + } +} + +int main(void) +{ + /* Replace with your application code */ + setupPorts(); + while (1) + { + pressButton(); + if (blink) { + PORTD &= ~(1UL << off); + PORTD ^= (1 << on); + } + else { + PORTD &= ~(1UL << off); + PORTD |= ( 1 << on); + } + _delay_ms(200); + } +} +