diff --git a/P1/.vs/P1/v14/.atsuo b/P1/.vs/P1/v14/.atsuo index b33d05c..6da5003 100644 Binary files a/P1/.vs/P1/v14/.atsuo and b/P1/.vs/P1/v14/.atsuo differ diff --git a/P1/P1/Debug/P1.lss b/P1/P1/Debug/P1.lss index 286954d..4ad689d 100644 --- a/P1/P1/Debug/P1.lss +++ b/P1/P1/Debug/P1.lss @@ -1,5 +1,5 @@ -AVRASM ver. 2.2.7 C:\Users\Safak\Desktop\UNI\3. Semester\53107 ARBK\Praktikumsunterlagen\ARBKVS-Praktika\P1\P1\main.asm Mon Oct 30 17:51:30 2023 +AVRASM ver. 2.2.7 C:\Users\Safak\Desktop\UNI\3. Semester\53107 ARBK\Praktikumsunterlagen\ARBKVS-Praktika\P1\P1\main.asm Mon Oct 30 23:15:13 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' @@ -1044,53 +1044,55 @@ C:\Users\Safak\Desktop\UNI\3. Semester\53107 ARBK\Praktikumsunterlagen\ARBKVS-Pr init: 000001 ef1f ldi r17, 0xFF 000002 b91a out DDRD, r17 ; Data direction register D (D0-D7) as output -000003 e011 ldi r17, 0x01 ; faengt mit Led D0 ein +000003 e011 ldi r17, 0x01 ; initialize D0 000004 e023 ldi r18, 0x03 000005 b924 out DDRB, r18 ; Data direction register B (B0-B1) as output - links_PD: ; Led l�uft nach links -000006 b91b out PORTD, r17 ; D0 leutet -000007 d016 rcall delay -000008 0f11 lsl r17 -000009 3010 cpi r17, 0x00 -00000a f7d9 brne links_PD ; weiter nach links verschieben, ob D7 noch nicht leutet + portD_left: +000006 b91b out PORTD, r17 +000007 d018 rcall delay +000008 0f11 lsl r17 ; shift left until PortB is 0x00 +000009 3010 cpi r17, 0x00 ; if(r17!=0x00) links_PD +00000a f7d9 brne portD_left +00000b b91b out PORTD, r17 ; D0-D7 = 0 +00000c e021 ldi r18, 0x01 ; switch to PortB -00000b b91b out PORTD, r17 ; wenn D7 erreicht, schaltet Port D aus -00000c e021 ldi r18, 0x01 -00000d b925 out PORTB, r18 ; D8 leutet -00000e d00f rcall delay -00000f 0f22 lsl r18 + portB_left: +00000d b925 out PORTB, r18 ; D8 = 1 +00000e d011 rcall delay +00000f 0f22 lsl r18 +000010 3022 cpi r18, 0x02 ; length of PortB is variable +000011 f7d9 brne portB_left + ; D9 = 1 => 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: