From 965a5d073b44f5152d25d15fce66cb03b7f0e019 Mon Sep 17 00:00:00 2001 From: S170H <64917343+S170H@users.noreply.github.com> Date: Mon, 30 Oct 2023 23:15:46 +0100 Subject: [PATCH] Minor Improvements --- P1/.vs/P1/v14/.atsuo | Bin 27136 -> 27136 bytes P1/P1/Debug/P1.lss | 88 ++++++++++++++++++++++--------------------- P1/P1/Debug/P1.tmp | 11 +++--- P1/P1/main.asm | 10 ++--- 4 files changed, 56 insertions(+), 53 deletions(-) diff --git a/P1/.vs/P1/v14/.atsuo b/P1/.vs/P1/v14/.atsuo index b33d05c869a833f1b325676ce5e007259395483d..6da5003b867f5b2a7e00866dade300ac951500dc 100644 GIT binary patch delta 2368 zcmeHJPfQe77=LeAmtl8i8P{D{cj+?55qELx?k1qrKp14jg*2{24pb@NpIWSKp)H#j znsg^UwilSMNs}h@pclPKCrwHZWD}c)8XGm`)I$?Jc<4n*AgLNkzi)PjF18qZX)paY zznS-b@89?DeY3_AH(^ki>bTU1gu8+)sMrY$_&}lAYc#zqzn9-GnkP9N5HMQ7Q5F(-; z5kl-lgb@)$69V^`8Q8OHFE(R{ni6I2oWS<}a^GXkyDaW2-tFFGsM|4=Y}#ySwV|m< zI(9j_O30CYq$Alh(;w2wF6xtQTiM{lv8`;F>5pv~5XX7sA3CqnfL54yMO@^yx&CPm zDN&pooaUw{)gU8Br#s#vEvQd`S3MdG_!KZas<=U3^=K}8^o~bYj^Okj#8E^R0jgIQ zU&F>p>Wq0c*EwoTdjq&p2qt`)|K?C7BSldWN;5Rf&PM(Y;$M&4m|YmDzA*R6H5l5d!Fy*7 zSRQLv=?;`cDUz>AXfKC{@uM1L0)z2vyEu5;Lv03&!)<0mEXo<jDvL->9~$(=Au+f_29V+vuv z;okmzg%tMbmtYg@eKyYC#8FZy#V$R=B54aP*&fSjx45ky_v!I@3>O=PuE^7W!YgR(qPAXQ$akT##XJun&MA3xd#^s3lVgBzSM& zUOElM6D?8~_B(8rF-t!j79czj0HehZ`alBCqyttlV{lWOtPBSE{V%~FC;o$A#BY}T z?*x65|EswfTXBK~7%Z972aG;gPOK!VzGcPjtXr(B%(|}?8#P_;`Q^p7 cTRy8_(FeJeK35dXVcPl!er5T*aCy}82ZR>C-2eap delta 2298 zcmchYTTok76o$_}Bq4!w+5`ecN=rgd%e^FokWlLwEFvN$F!aF+wWM5z@s1@{u{0^I zrP>>0d8>{OwLa)LjziCj))$qI0n`^Jv*V8{0_7gz=L^}a&QGJF;293RhEpU_9|#AwJX`m+9k^- z=!y0ccQJGc$OILDXO%*4UTRnA@0)b7%5!pfSsa!d$B`b_Qr+eSSV;1sUd4}4H{526L)A_ zb#^^~VGn|bz{B7X@F;i;41&kOUN8ir;0dq~JPDox!{BMKAB=zlAO_+fVc$kmvR9m@ zs68fLrn&r>c!{Epu)_BR9vH$`YZveg!{8Zk1dM^B;92k-I0lY`6W}B` z1;)VyNB{!QgBR$Gx|ZHkn zXkI$hW!C|RS{OENNou9bY{quK0|+hFMJ>H(Y*%Qwq*=*8lif@DK(i%b)hH1Bf|FKp zA4N;UiVG&Llu5IBCpu*`zwxvGp8e9x;x3vii-|@(THY!+KW0wb0e!yWt2Fwh!MQ|% zuTg50{3tUOQm+)jJC0x&`|80P_AIl8U^PUKd2NDztw*s(GfPMR)gID6E)EHv2epin``&U+_A5opszzeXNe zp%4Au)qN<0d!;U^1L^CRBIj!JWqKvJi9*3L>Tb=|<1P2gqJv%wyKOVLG+d_z*}|Vw zpzV?nx~o?;8y-p|Hm|{UCVJg>N#$F|!rF+!h)pwWlEnI|)yBo0rIZfUyhDM3twNAn z&Ze<}ihsL4HQ<5UHJN#mK&j=_VB=s8IfME1qnrh|E2vm@>hWM)Bx>WvOCJ2R^M|Z^ z-Y)Chw`HXH_^lHwUh?j 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 - links_PB: ; Led laeuft weiter -000010 b925 out PORTB, r18 -000011 d00c rcall delay -000012 9526 lsr r18 -000013 3020 cpi r18, 0x00 -000014 f7d9 brne links_PB - -000015 b925 out PORTB, r18 -000016 e810 ldi r17, 0x80 - - rechts: ; Led laeuft nach rechts -000017 b91b out PORTD, r17 -000018 d005 rcall delay -000019 9516 lsr r17 -00001a 3011 cpi r17, 0x01 ; mit D0 vergleichen -00001b f7d9 brne rechts ; weiter nach rechts verschieben, wenn D0 noch nicht erreicht -00001c 940c 0006 jmp links_PD ; sonst l�uft Led nach links + 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 delay: -00001e e131 ldi r19, 17 -00001f e34c ldi r20, 60 -000020 ec5c ldi r21, 204 +000020 e131 ldi r19, 17 +000021 e34c ldi r20, 60 +000022 ec5c ldi r21, 204 -000021 955a L1: dec r21 -000022 f7f1 brne L1 -000023 954a dec r20 -000024 f7e1 brne L1 -000025 953a dec r19 -000026 f7d1 brne L1 +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 RESOURCE USE INFORMATION @@ -1110,7 +1112,7 @@ 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: 9 r19: 2 r20: 2 +r13: 0 r14: 0 r15: 0 r16: 0 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%) @@ -1120,11 +1122,11 @@ Registers used: 5 out of 35 (14.3%) andi : 0 asr : 0 bclr : 0 bld : 0 brbc : 0 brbs : 0 brcc : 0 brcs : 0 break : 0 breq : 0 brge : 0 brhc : 0 brhs : 0 brid : 0 brie : 0 brlo : 0 brlt : 0 brmi : 0 -brne : 6 brpl : 0 brsh : 0 brtc : 0 brts : 0 brvc : 0 +brne : 7 brpl : 0 brsh : 0 brtc : 0 brts : 0 brvc : 0 brvs : 0 bset : 0 bst : 0 call : 0 cbi : 0 cbr : 0 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 : 3 cpse : 0 dec : 3 eor : 0 fmul : 0 fmuls : 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 lsr : 2 mov : 0 movw : 0 mul : 0 muls : 0 mulsu : 0 @@ -1140,7 +1142,7 @@ Instructions used: 11 out of 113 (9.7%) "ATmega328P" memory use summary [bytes]: Segment Begin End Code Data Used Size Use% --------------------------------------------------------------- -[.cseg] 0x000000 0x000050 80 0 80 32768 0.2% +[.cseg] 0x000000 0x000054 84 0 84 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 f6c1b81..5618f2e 100644 --- a/P1/P1/Debug/P1.tmp +++ b/P1/P1/Debug/P1.tmp @@ -23,10 +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.asm52 - C:\Users\Safak\Desktop\UNI\3. Semester\53107 ARBK\Praktikumsunterlagen\ARBKVS-Praktika\P1\P1\main.asm34 - C:\Users\Safak\Desktop\UNI\3. Semester\53107 ARBK\Praktikumsunterlagen\ARBKVS-Praktika\P1\P1\main.asm44 - C:\Users\Safak\Desktop\UNI\3. Semester\53107 ARBK\Praktikumsunterlagen\ARBKVS-Praktika\P1\P1\main.asm57 + 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 diff --git a/P1/P1/main.asm b/P1/P1/main.asm index 847636f..b4b3388 100644 --- a/P1/P1/main.asm +++ b/P1/P1/main.asm @@ -15,7 +15,7 @@ init: out DDRD, r17 ; Data direction register D (D0-D7) as output ldi r17, 0x01 ; initialize D0 - ldi r18, 0x01 + ldi r18, 0x03 out DDRB, r18 ; Data direction register B (B0-B1) as output portD_left: @@ -25,21 +25,21 @@ portD_left: cpi r17, 0x00 ; if(r17!=0x00) links_PD brne portD_left out PORTD, r17 ; D0-D7 = 0 + ldi r18, 0x01 ; switch to PortB portB_left: - ;ldi r18, 0x01 out PORTB, r18 ; D8 = 1 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 +48,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: