From 905575fd5ecaaff78bb344d8cfd18779e54bb631 Mon Sep 17 00:00:00 2001 From: Bluepr1nt Date: Tue, 1 Mar 2016 16:16:49 +0100 Subject: [PATCH] t/m 3.2 --- MIC-Week1/.vs/MIC-Week1/v14/.atsuo | Bin 41472 -> 42496 bytes MIC-Week4/Debug/MIC-Week4.lss | 383 ++++------------------------- MIC-Week4/Debug/MIC-Week4.map | 66 ++--- MIC-Week4/Debug/MIC-Week4.srec | 25 +- MIC-Week4/main.c | 29 ++- 5 files changed, 117 insertions(+), 386 deletions(-) diff --git a/MIC-Week1/.vs/MIC-Week1/v14/.atsuo b/MIC-Week1/.vs/MIC-Week1/v14/.atsuo index 6ab952bf1428b31acb21c90a652f606da30aaaee..dab820dd03c938bf1be397da9f4655fecc3effcd 100644 GIT binary patch delta 2023 zcmbVMZ%k8H6o2>8mIr+;50O8G%D*BM$0o(<&=}~j$oSV%*#H$;Cqf}Omc`a7i}H*n zC}BzISynO$({72`2ZQ5jwr?vX3(LODWEojtQ9r=W>H17z(QG@-ujih7 z?>p!G&bjx>3%q=Xzj2&5N=>}yyAyX=CdYAeCK%#}STC&b!@AdSqLzoDgtNS!hbIZ! zh9#U?LouLEL9F6fk2(t>B52Kn+K4EK+2kb~kruPfF}($KE+P-H89}}_p(Y=yl&!a+ zS}?#3O-oWuY`y_(LLO_u|4e8RG=_}0{rR*u?hS_cJ4&%{J;er*V(Mbw zgQv7eM@bX!#O!q9P5BX2NkRW<2Z?zyg1#i?=?G$;iZCHm<~cYf=7orj%*i7$kM~}N z-gBPE70QMDaqna(`GQD3)$AacESt#KkCSz=g?iKth(<_FODm&QO7%c&wGH*_h$D#h z*xW(Xy$I;j=bO55a4fb!AN$ntxaWtiT5=gl_CuMe`+@@7hQl;DHlT- z`zR256#^M<4LtzxgQ<*dg_R7qNbg4yLUjxNmt`FhJ(LJfa$NtcoQsmx($%L5x`nNA zA3v?0TZpffK3YcHhXP-UCC{Sm zdPV;?99?e6w3LFQ!vU*JoiJ5cG_z-(85q4)^lqtn>*@Ma)lih#)>jw>fcJ}!{LfOW z?`HJg#Fx6-U!dAFyhzHboP{$}`NNok~#4^=od#Dcn``18jY$c3^ZUrA%E8Wy{3iS|xs&(VMn z#z*XtDjtH9MbI@;fw2TIOe)|l-42ctN66xUszM#;ii_c%Y4eQ3#DmG@W7pxFD-Zr~ zr7;^^t?|H5u8DL?ubHdo_Hi%bqtk=G0nQF%Za=dFYw1bo=UNrF^K&+HV2(X29?VV3 zuqn$9U)Jtb%G-iW>be>Dt?t_49oy?z_B~^Hu_EnXVsN{yD%yCta4x=`5eFagegWG$ zufUnZpG91vX1BBAjFNol1cPro&nb`I7BmqrKjU9xsV?enRF-CsqUIIpDF6Tf delta 2098 zcmbVMUrbwN6u;l47rJs=%DCqH{FUIHLi%iSunF81=#EmiXX<558#P9_GtP>>h^aTzXBTyy#7S_k8Dk z=R5zt^Bws+UjB+-8|5wXmp}6#P26SW9LELhFvHKV2yF2ev%67nlfg{Z9Dj$w!>sCX zDN45S+n=U|NX>{cLJAUR&T*Q(=B(n#)a7D+~yGVa?DlXg1)I zp%7w%6#{}`G4i9rkDBYN-@3hu;qJu~98B{)u<2}ILm06nR-uSuAYU+$SCuUx^I#{1 zUonN8Qilm8C5X%ri|Gio@2Mm=j%?%{B*9NaT9jV9DKsCspq&G0dJw4xaR^b3IE*-n zARYZ{q?3*&l=>0Ph!(_AL@S~lcMF??xFY=!(kBon5S@rF1YJZgg7zuyK3o%}?810@ zbum_?m@bPXBT$U6V3ND~aY2Sis2kGnM_1NqB&|1y^i+C%HcjD7VZC-Cj}`|e6fwd2 zU{buu!mx$^lQ3zPM5+|E0(#O)FHpb+NbSS>v9*C*5hSX(kT@G4;hKkt@agBV2-_v_ z;b98uI2s5b+7ZN4g{V4|lpeHBDJgPDl@BARLR1}nKQk#^hDntzM&=bUC~!Hb3qKsL zVO?5comyfic2A6M2NQGk2#i`oJJt!4ZplE+tg&^l<(5P%vh+gql0c$TGBX|})P%Y; zmrgxH0dSnUeTwml(+XD4<02{OeMrp=@==32<>_Ux$u|gO!U!q51YNco_9RS}yut24 zs!B2%aYr{U3?Op}ruR$6%y%K2M)5^RmG_t#sX8-`K*A}J2ap>L@Tap^Ti5djnA+EC zW(L%BWoU~&WZps0r+9-9tY}kZugu`}<`7(dw+QaWJRo;%>?DZw>0EY|gu8>aPmPSc zbR;@DH2m1m`SY{>jw61r9|9kG;Nz!DAh4`arDAiZYo^#0n09GTU9h1itD1U0hk+cl zn*KKPA}lQ*fWQYEN?AxNUI8lVg-{b^^Gx5!`qzdnB+`tsWNa|EI%(@;W{w6H`P5B8 z!s~t_675DD$TVmQg%guECz+MU#Z=<*eg*0^anAC(=Dq_Sy1UIBHS|CFUe>z&Cjob;%j+1w z?%BlJ(gVuOBUfu{O>0Lj*~r7&O@r!S%Qp;st+hCu8OLS8N^22Z@2e2cp)SRoAuNV( zTic+v?G>fp0JG9Pb>Y|=BRd_(18QJ!gC$#d2!y@>|Cuh34@UEb@q8OcO+iDs4gLt( zl^b%hPc+@f_eYrsoO&zP%^>`2wOT#)J%f$djVyr+!L8V5aP2}f^uK3>*WzA{wvPOk zjPdIB++Y^`epLi{R!+tZ>sQ@|i|7fLUSLsk2{In%2+&)Vu@=dj&mS}K% LcqAH3E}8xUl#Aj? diff --git a/MIC-Week4/Debug/MIC-Week4.lss b/MIC-Week4/Debug/MIC-Week4.lss index ac2514d..5a0eb28 100644 --- a/MIC-Week4/Debug/MIC-Week4.lss +++ b/MIC-Week4/Debug/MIC-Week4.lss @@ -3,29 +3,29 @@ MIC-Week4.elf: file format elf32-avr Sections: Idx Name Size VMA LMA File off Algn - 0 .data 00000000 00800100 00800100 00000270 2**0 + 0 .data 00000000 00800100 00800100 00000176 2**0 CONTENTS, ALLOC, LOAD, DATA - 1 .text 0000021c 00000000 00000000 00000054 2**1 + 1 .text 00000122 00000000 00000000 00000054 2**1 CONTENTS, ALLOC, LOAD, READONLY, CODE - 2 .comment 00000030 00000000 00000000 00000270 2**0 + 2 .comment 00000030 00000000 00000000 00000176 2**0 CONTENTS, READONLY - 3 .note.gnu.avr.deviceinfo 0000003c 00000000 00000000 000002a0 2**2 + 3 .note.gnu.avr.deviceinfo 0000003c 00000000 00000000 000001a8 2**2 CONTENTS, READONLY - 4 .debug_aranges 00000060 00000000 00000000 000002dc 2**0 + 4 .debug_aranges 00000068 00000000 00000000 000001e4 2**0 CONTENTS, READONLY, DEBUGGING - 5 .debug_info 00000b1c 00000000 00000000 0000033c 2**0 + 5 .debug_info 00000b91 00000000 00000000 0000024c 2**0 CONTENTS, READONLY, DEBUGGING - 6 .debug_abbrev 0000021b 00000000 00000000 00000e58 2**0 + 6 .debug_abbrev 00000253 00000000 00000000 00000ddd 2**0 CONTENTS, READONLY, DEBUGGING - 7 .debug_line 00000602 00000000 00000000 00001073 2**0 + 7 .debug_line 00000654 00000000 00000000 00001030 2**0 CONTENTS, READONLY, DEBUGGING - 8 .debug_frame 000000a4 00000000 00000000 00001678 2**2 + 8 .debug_frame 000000b4 00000000 00000000 00001684 2**2 CONTENTS, READONLY, DEBUGGING - 9 .debug_str 00000214 00000000 00000000 0000171c 2**0 + 9 .debug_str 00000222 00000000 00000000 00001738 2**0 CONTENTS, READONLY, DEBUGGING - 10 .debug_loc 000004ab 00000000 00000000 00001930 2**0 + 10 .debug_loc 000004be 00000000 00000000 0000195a 2**0 CONTENTS, READONLY, DEBUGGING - 11 .debug_ranges 00000130 00000000 00000000 00001ddb 2**0 + 11 .debug_ranges 00000138 00000000 00000000 00001e18 2**0 CONTENTS, READONLY, DEBUGGING Disassembly of section .text: @@ -123,8 +123,8 @@ Disassembly of section .text: a2: a0 30 cpi r26, 0x00 ; 0 a4: b2 07 cpc r27, r18 a6: e1 f7 brne .-8 ; 0xa0 <.do_clear_bss_loop> - a8: a5 d0 rcall .+330 ; 0x1f4
- aa: b6 c0 rjmp .+364 ; 0x218 <_exit> + a8: 28 d0 rcall .+80 ; 0xfa
+ aa: 39 c0 rjmp .+114 ; 0x11e <_exit> 000000ac <__bad_interrupt>: ac: a9 cf rjmp .-174 ; 0x0 <__vectors> @@ -181,351 +181,74 @@ void adcInit( void ) f0: 86 b9 out 0x06, r24 ; 6 f2: 08 95 ret -000000f4 : +000000f4 : } } -int alleKleuren(void) +int setWithButton(void) { - DDRB = 0xFF; // set PORTB for compare output - f4: 8f ef ldi r24, 0xFF ; 255 - f6: 87 bb out 0x17, r24 ; 23 - timer1Init(); - f8: eb df rcall .-42 ; 0xd0 - wait(100); - fa: 84 e6 ldi r24, 0x64 ; 100 - fc: 90 e0 ldi r25, 0x00 ; 0 - fe: d7 df rcall .-82 ; 0xae -} - -// Set pulse width for Blue on pin PB5, 0=off, 255=max -void setBlue( unsigned char blue ) -{ - OCR1C = blue; - 100: 0f 2e mov r0, r31 - 102: f8 e7 ldi r31, 0x78 ; 120 - 104: cf 2e mov r12, r31 - 106: d1 2c mov r13, r1 - 108: f0 2d mov r31, r0 - timer1Init(); - wait(100); - - while (1) + if( (0b00000001 & PINC) != 0) + f4: 98 99 sbic 0x13, 0 ; 19 { - int delta = 1; - 10a: 88 24 eor r8, r8 - 10c: 83 94 inc r8 - 10e: 91 2c mov r9, r1 - 110: 77 24 eor r7, r7 - 112: 7a 94 dec r7 - 114: 61 2c mov r6, r1 + ADCSRA |= BIT(6); + f6: 36 9a sbi 0x06, 6 ; 6 + } } + f8: 08 95 ret -// Set pulse width for RED on pin PB5, 0=off, 255=max -void setRed( unsigned char red ) -{ - OCR1A = red; - 116: 1b bc out 0x2b, r1 ; 43 - 118: 1a bc out 0x2a, r1 ; 42 -} - -// Set pulse width for Blue on pin PB5, 0=off, 255=max -void setBlue( unsigned char blue ) -{ - OCR1C = blue; - 11a: f6 01 movw r30, r12 - 11c: 11 82 std Z+1, r1 ; 0x01 - 11e: 10 82 st Z, r1 -} - -// Set pulse width for Green on pin PB5, 0=off, 255=max -void setGreen( unsigned char green ) -{ - OCR1B = green; - 120: 19 bc out 0x29, r1 ; 41 - 122: 18 bc out 0x28, r1 ; 40 - int delta2 = 1; - setRed (0); - setBlue(0); - setGreen(0); - - for (int red = 0; red<=255; red+=delta) - 124: 00 e0 ldi r16, 0x00 ; 0 - 126: 10 e0 ldi r17, 0x00 ; 0 - timer1Init(); - wait(100); - - while (1) - { - int delta = 1; - 128: c8 2d mov r28, r8 - 12a: d9 2d mov r29, r9 - 12c: c8 01 movw r24, r16 - 12e: 99 27 eor r25, r25 -} - -// Set pulse width for RED on pin PB5, 0=off, 255=max -void setRed( unsigned char red ) -{ - OCR1A = red; - 130: 9b bd out 0x2b, r25 ; 43 - 132: 8a bd out 0x2a, r24 ; 42 - setGreen(0); - - for (int red = 0; red<=255; red+=delta) - { - setRed( red ); // 8-bits PWM on pin OCR1a - delta += 2; // progressive steps up - 134: 22 96 adiw r28, 0x02 ; 2 - wait(100); // delay of 100 ms (busy waiting) - 136: 84 e6 ldi r24, 0x64 ; 100 - 138: 90 e0 ldi r25, 0x00 ; 0 - 13a: b9 df rcall .-142 ; 0xae - int delta2 = 1; - setRed (0); - setBlue(0); - setGreen(0); - - for (int red = 0; red<=255; red+=delta) - 13c: 0c 0f add r16, r28 - 13e: 1d 1f adc r17, r29 - 140: 0f 3f cpi r16, 0xFF ; 255 - 142: 11 05 cpc r17, r1 - 144: 99 f3 breq .-26 ; 0x12c - 146: 94 f3 brlt .-28 ; 0x12c - 148: e1 2c mov r14, r1 - 14a: f1 2c mov r15, r1 - 14c: 08 2d mov r16, r8 - 14e: 19 2d mov r17, r9 - 150: c7 01 movw r24, r14 - 152: 99 27 eor r25, r25 -} - -// Set pulse width for Green on pin PB5, 0=off, 255=max -void setGreen( unsigned char green ) -{ - OCR1B = green; - 154: 99 bd out 0x29, r25 ; 41 - 156: 88 bd out 0x28, r24 ; 40 - } - - for (int green = 0; green<=255; green+=delta1) - { - setGreen( green ); // 8-bits PWM on pin OCR1a - delta1 += 2; // progressive steps up - 158: 0e 5f subi r16, 0xFE ; 254 - 15a: 1f 4f sbci r17, 0xFF ; 255 - wait(100); // delay of 100 ms (busy waiting) - 15c: 84 e6 ldi r24, 0x64 ; 100 - 15e: 90 e0 ldi r25, 0x00 ; 0 - 160: a6 df rcall .-180 ; 0xae - setRed( red ); // 8-bits PWM on pin OCR1a - delta += 2; // progressive steps up - wait(100); // delay of 100 ms (busy waiting) - } - - for (int green = 0; green<=255; green+=delta1) - 162: e0 0e add r14, r16 - 164: f1 1e adc r15, r17 - 166: ef ef ldi r30, 0xFF ; 255 - 168: ee 16 cp r14, r30 - 16a: f1 04 cpc r15, r1 - 16c: 89 f3 breq .-30 ; 0x150 - 16e: 84 f3 brlt .-32 ; 0x150 - 170: a1 2c mov r10, r1 - 172: b1 2c mov r11, r1 - 174: e8 2c mov r14, r8 - 176: f9 2c mov r15, r9 - 178: c5 01 movw r24, r10 - 17a: 99 27 eor r25, r25 -} - -// Set pulse width for Blue on pin PB5, 0=off, 255=max -void setBlue( unsigned char blue ) -{ - OCR1C = blue; - 17c: f6 01 movw r30, r12 - 17e: 91 83 std Z+1, r25 ; 0x01 - 180: 80 83 st Z, r24 - } - - for (int blue = 0; blue<=255; blue+=delta2) - { - setBlue( blue ); // 8-bits PWM on pin OCR1a - delta2 += 2; // progressive steps up - 182: f2 e0 ldi r31, 0x02 ; 2 - 184: ef 0e add r14, r31 - 186: f1 1c adc r15, r1 - wait(100); // delay of 100 ms (busy waiting) - 188: 84 e6 ldi r24, 0x64 ; 100 - 18a: 90 e0 ldi r25, 0x00 ; 0 - 18c: 90 df rcall .-224 ; 0xae - setGreen( green ); // 8-bits PWM on pin OCR1a - delta1 += 2; // progressive steps up - wait(100); // delay of 100 ms (busy waiting) - } - - for (int blue = 0; blue<=255; blue+=delta2) - 18e: ae 0c add r10, r14 - 190: bf 1c adc r11, r15 - 192: 8f ef ldi r24, 0xFF ; 255 - 194: a8 16 cp r10, r24 - 196: b1 04 cpc r11, r1 - 198: 79 f3 breq .-34 ; 0x178 - 19a: 74 f3 brlt .-36 ; 0x178 - 19c: a7 2c mov r10, r7 - 19e: b6 2c mov r11, r6 - 1a0: c5 01 movw r24, r10 - 1a2: 99 27 eor r25, r25 -} - -// Set pulse width for RED on pin PB5, 0=off, 255=max -void setRed( unsigned char red ) -{ - OCR1A = red; - 1a4: 9b bd out 0x2b, r25 ; 43 - 1a6: 8a bd out 0x2a, r24 ; 42 - } - - for (int red = 255; red>=0; red-=delta) - { - setRed( red ); // 8-bits PWM on pin OCR1a - delta -= 2; // progressive steps down - 1a8: 22 97 sbiw r28, 0x02 ; 2 - wait(100); // delay of 100 ms (busy waiting) - 1aa: 84 e6 ldi r24, 0x64 ; 100 - 1ac: 90 e0 ldi r25, 0x00 ; 0 - 1ae: 7f df rcall .-258 ; 0xae - setBlue( blue ); // 8-bits PWM on pin OCR1a - delta2 += 2; // progressive steps up - wait(100); // delay of 100 ms (busy waiting) - } - - for (int red = 255; red>=0; red-=delta) - 1b0: ac 1a sub r10, r28 - 1b2: bd 0a sbc r11, r29 - 1b4: aa f7 brpl .-22 ; 0x1a0 - 1b6: c7 2d mov r28, r7 - 1b8: d6 2d mov r29, r6 - 1ba: ce 01 movw r24, r28 - 1bc: 99 27 eor r25, r25 -} - -// Set pulse width for Green on pin PB5, 0=off, 255=max -void setGreen( unsigned char green ) -{ - OCR1B = green; - 1be: 99 bd out 0x29, r25 ; 41 - 1c0: 88 bd out 0x28, r24 ; 40 - } - - for (int green = 255; green>=0; green-=delta1) - { - setGreen( green ); // 8-bits PWM on pin OCR1a - delta1 -= 2; // progressive steps up - 1c2: 02 50 subi r16, 0x02 ; 2 - 1c4: 11 09 sbc r17, r1 - wait(100); // delay of 100 ms (busy waiting) - 1c6: 84 e6 ldi r24, 0x64 ; 100 - 1c8: 90 e0 ldi r25, 0x00 ; 0 - 1ca: 71 df rcall .-286 ; 0xae - setRed( red ); // 8-bits PWM on pin OCR1a - delta -= 2; // progressive steps down - wait(100); // delay of 100 ms (busy waiting) - } - - for (int green = 255; green>=0; green-=delta1) - 1cc: c0 1b sub r28, r16 - 1ce: d1 0b sbc r29, r17 - 1d0: a2 f7 brpl .-24 ; 0x1ba - 1d2: c7 2d mov r28, r7 - 1d4: d6 2d mov r29, r6 - 1d6: ce 01 movw r24, r28 - 1d8: 99 27 eor r25, r25 -} - -// Set pulse width for Blue on pin PB5, 0=off, 255=max -void setBlue( unsigned char blue ) -{ - OCR1C = blue; - 1da: f6 01 movw r30, r12 - 1dc: 91 83 std Z+1, r25 ; 0x01 - 1de: 80 83 st Z, r24 - } - - for (int blue = 255; blue>=0; blue-=delta2) - { - setBlue( blue ); // 8-bits PWM on pin OCR1a - delta2 -= 2; // progressive steps up - 1e0: f2 e0 ldi r31, 0x02 ; 2 - 1e2: ef 1a sub r14, r31 - 1e4: f1 08 sbc r15, r1 - wait(100); // delay of 100 ms (busy waiting) - 1e6: 84 e6 ldi r24, 0x64 ; 100 - 1e8: 90 e0 ldi r25, 0x00 ; 0 - 1ea: 61 df rcall .-318 ; 0xae - setGreen( green ); // 8-bits PWM on pin OCR1a - delta1 -= 2; // progressive steps up - wait(100); // delay of 100 ms (busy waiting) - } - - for (int blue = 255; blue>=0; blue-=delta2) - 1ec: ce 19 sub r28, r14 - 1ee: df 09 sbc r29, r15 - 1f0: 92 f7 brpl .-28 ; 0x1d6 - 1f2: 91 cf rjmp .-222 ; 0x116 - -000001f4
: +000000fa
: // Main program: Counting on T1 int main( void ) { DDRB = 0xFF; - 1f4: 8f ef ldi r24, 0xFF ; 255 - 1f6: 87 bb out 0x17, r24 ; 23 + fa: 8f ef ldi r24, 0xFF ; 255 + fc: 87 bb out 0x17, r24 ; 23 DDRF = 0x00; // set PORTF for input (ADC) - 1f8: 10 92 61 00 sts 0x0061, r1 + fe: 10 92 61 00 sts 0x0061, r1 DDRA = 0xFF; // set PORTA for output - 1fc: 8a bb out 0x1a, r24 ; 26 + 102: 8a bb out 0x1a, r24 ; 26 adcInit(); // initialize ADC - 1fe: 75 df rcall .-278 ; 0xea + 104: f2 df rcall .-28 ; 0xea timer1Init(); - 200: 67 df rcall .-306 ; 0xd0 + 106: e4 df rcall .-56 ; 0xd0 while (1) { - ADCSRA |= BIT(6); // Start ADC - 202: 36 9a sbi 0x06, 6 ; 6 + //ADCSRA |= BIT(6); // Start ADC while ( ADCSRA & BIT(6) ) ; // Wait for completion - 204: 36 99 sbic 0x06, 6 ; 6 - 206: fe cf rjmp .-4 ; 0x204 - setRed(ADCH); // Show MSB (bit 9:2) of ADC - 208: 85 b1 in r24, 0x05 ; 5 + 108: 36 99 sbic 0x06, 6 ; 6 + 10a: fe cf rjmp .-4 ; 0x108 + setRed(ADCH); + 10c: 85 b1 in r24, 0x05 ; 5 } // Set pulse width for RED on pin PB5, 0=off, 255=max void setRed( unsigned char red ) { OCR1A = red; - 20a: 90 e0 ldi r25, 0x00 ; 0 - 20c: 9b bd out 0x2b, r25 ; 43 - 20e: 8a bd out 0x2a, r24 ; 42 - while (1) - { - ADCSRA |= BIT(6); // Start ADC + 10e: 90 e0 ldi r25, 0x00 ; 0 + 110: 9b bd out 0x2b, r25 ; 43 + 112: 8a bd out 0x2a, r24 ; 42 + //ADCSRA |= BIT(6); // Start ADC while ( ADCSRA & BIT(6) ) ; // Wait for completion - setRed(ADCH); // Show MSB (bit 9:2) of ADC + setRed(ADCH); + //setBlue(ADCH); + //setGreen(ADCH); wait(100); // every 50 ms (busy waiting) - 210: 84 e6 ldi r24, 0x64 ; 100 - 212: 90 e0 ldi r25, 0x00 ; 0 - 214: 4c df rcall .-360 ; 0xae + 114: 84 e6 ldi r24, 0x64 ; 100 + 116: 90 e0 ldi r25, 0x00 ; 0 + 118: ca df rcall .-108 ; 0xae + //alleKleuren(); //opgaveextra(); - alleKleuren(); - 216: 6e df rcall .-292 ; 0xf4 + setWithButton(); + 11a: ec df rcall .-40 ; 0xf4 + } + 11c: f5 cf rjmp .-22 ; 0x108 -00000218 <_exit>: - 218: f8 94 cli +0000011e <_exit>: + 11e: f8 94 cli -0000021a <__stop_program>: - 21a: ff cf rjmp .-2 ; 0x21a <__stop_program> +00000120 <__stop_program>: + 120: ff cf rjmp .-2 ; 0x120 <__stop_program> diff --git a/MIC-Week4/Debug/MIC-Week4.map b/MIC-Week4/Debug/MIC-Week4.map index 95d4740..01a43c3 100644 --- a/MIC-Week4/Debug/MIC-Week4.map +++ b/MIC-Week4/Debug/MIC-Week4.map @@ -16,6 +16,8 @@ Discarded input sections .text.setGreen 0x00000000 0x8 main.o .text.setBlue 0x00000000 0xc main.o + .text.alleKleuren + 0x00000000 0x132 main.o .text.opgaveextra 0x00000000 0x1f2 main.o .bss.hours 0x00000000 0x2 main.o @@ -171,7 +173,7 @@ END GROUP .rela.plt *(.rela.plt) -.text 0x00000000 0x21c +.text 0x00000000 0x122 *(.vectors) .vectors 0x00000000 0x8c C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.0.90/gcc/dev/atmega128/avr51/crtatmega128.o 0x00000000 __vector_default @@ -270,16 +272,16 @@ END GROUP 0x000000d0 timer1Init .text.adcInit 0x000000ea 0xa main.o 0x000000ea adcInit - .text.alleKleuren - 0x000000f4 0x100 main.o - 0x000000f4 alleKleuren - .text.main 0x000001f4 0x24 main.o - 0x000001f4 main - 0x00000218 . = ALIGN (0x2) + .text.setWithButton + 0x000000f4 0x6 main.o + 0x000000f4 setWithButton + .text.main 0x000000fa 0x24 main.o + 0x000000fa main + 0x0000011e . = ALIGN (0x2) *(.fini9) - .fini9 0x00000218 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_exit.o) - 0x00000218 _exit - 0x00000218 exit + .fini9 0x0000011e 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_exit.o) + 0x0000011e _exit + 0x0000011e exit *(.fini9) *(.fini8) *(.fini8) @@ -298,11 +300,11 @@ END GROUP *(.fini1) *(.fini1) *(.fini0) - .fini0 0x00000218 0x4 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_exit.o) + .fini0 0x0000011e 0x4 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_exit.o) *(.fini0) - 0x0000021c _etext = . + 0x00000122 _etext = . -.data 0x00800100 0x0 load address 0x0000021c +.data 0x00800100 0x0 load address 0x00000122 0x00800100 PROVIDE (__data_start, .) *(.data) *(.data*) @@ -319,8 +321,8 @@ END GROUP *(.bss*) *(COMMON) 0x00800100 PROVIDE (__bss_end, .) - 0x0000021c __data_load_start = LOADADDR (.data) - 0x0000021c __data_load_end = (__data_load_start + SIZEOF (.data)) + 0x00000122 __data_load_start = LOADADDR (.data) + 0x00000122 __data_load_end = (__data_load_start + SIZEOF (.data)) .noinit 0x00800100 0x0 0x00800100 PROVIDE (__noinit_start, .) @@ -391,38 +393,38 @@ END GROUP .debug_sfnames *(.debug_sfnames) -.debug_aranges 0x00000000 0x60 +.debug_aranges 0x00000000 0x68 *(.debug_aranges) .debug_aranges - 0x00000000 0x60 main.o + 0x00000000 0x68 main.o .debug_pubnames *(.debug_pubnames) -.debug_info 0x00000000 0xb1c +.debug_info 0x00000000 0xb91 *(.debug_info .gnu.linkonce.wi.*) - .debug_info 0x00000000 0xb1c main.o + .debug_info 0x00000000 0xb91 main.o -.debug_abbrev 0x00000000 0x21b +.debug_abbrev 0x00000000 0x253 *(.debug_abbrev) - .debug_abbrev 0x00000000 0x21b main.o + .debug_abbrev 0x00000000 0x253 main.o -.debug_line 0x00000000 0x602 +.debug_line 0x00000000 0x654 *(.debug_line .debug_line.* .debug_line_end) - .debug_line 0x00000000 0x602 main.o + .debug_line 0x00000000 0x654 main.o -.debug_frame 0x00000000 0xa4 +.debug_frame 0x00000000 0xb4 *(.debug_frame) - .debug_frame 0x00000000 0xa4 main.o + .debug_frame 0x00000000 0xb4 main.o -.debug_str 0x00000000 0x214 +.debug_str 0x00000000 0x222 *(.debug_str) - .debug_str 0x00000000 0x214 main.o - 0x248 (size before relaxing) + .debug_str 0x00000000 0x222 main.o + 0x256 (size before relaxing) -.debug_loc 0x00000000 0x4ab +.debug_loc 0x00000000 0x4be *(.debug_loc) - .debug_loc 0x00000000 0x4ab main.o + .debug_loc 0x00000000 0x4be main.o .debug_macinfo *(.debug_macinfo) @@ -442,9 +444,9 @@ END GROUP .debug_pubtypes *(.debug_pubtypes) -.debug_ranges 0x00000000 0x130 +.debug_ranges 0x00000000 0x138 *(.debug_ranges) - .debug_ranges 0x00000000 0x130 main.o + .debug_ranges 0x00000000 0x138 main.o .debug_macro *(.debug_macro) diff --git a/MIC-Week4/Debug/MIC-Week4.srec b/MIC-Week4/Debug/MIC-Week4.srec index e021e40..0b81bda 100644 --- a/MIC-Week4/Debug/MIC-Week4.srec +++ b/MIC-Week4/Debug/MIC-Week4.srec @@ -9,28 +9,13 @@ S113006025C0000023C0000021C000001FC0000004 S11300701DC000001BC0000019C0000017C0000014 S113008015C0000013C0000011C0000011241FBEE1 S1130090CFEFD0E1DEBFCDBF21E0A0E0B1E001C0F1 -S11300A01D92A030B207E1F7A5D0B6C0A9CF1816AB +S11300A01D92A030B207E1F728D039C0A9CF1816A5 S11300B019066CF420E030E0EFECF7E03197F1F74B S11300C000C000002F5F3F4F28173907A9F7089594 S11300D01BBC1ABC19BC18BC109279001092780091 S11300E089EA8FBD8BE08EBD089581EE87B986E8DD -S11300F086B908958FEF87BBEBDF84E690E0D7DF06 -S11301000F2EF8E7CF2ED12CF02D88248394912C38 -S113011077247A94612C1BBC1ABCF60111821082DC -S113012019BC18BC00E010E0C82DD92DC8019927CE -S11301309BBD8ABD229684E690E0B9DF0C0F1D1F9B -S11301400F3F110599F394F3E12CF12C082D192D8F -S1130150C701992799BD88BD0E5F1F4F84E690E0C3 -S1130160A6DFE00EF11EEFEFEE16F10489F384F33F -S1130170A12CB12CE82CF92CC5019927F601918307 -S11301808083F2E0EF0EF11C84E690E090DFAE0C89 -S1130190BF1C8FEFA816B10479F374F3A72CB62C07 -S11301A0C50199279BBD8ABD229784E690E07FDF35 -S11301B0AC1ABD0AAAF7C72DD62DCE01992799BD31 -S11301C088BD0250110984E690E071DFC01BD10B99 -S11301D0A2F7C72DD62DCE019927F60191838083EE -S11301E0F2E0EF1AF10884E690E061DFCE19DF094E -S11301F092F791CF8FEF87BB109261008ABB75DFB6 -S113020067DF369A3699FECF85B190E09BBD8ABDF3 -S10F021084E690E04CDF6EDFF894FFCF32 +S11300F086B908959899369A08958FEF87BB109220 +S113010061008ABBF2DFE4DF3699FECF85B190E06F +S11301109BBD8ABD84E690E0CADFECDFF5CFF8949E +S1050120FFCF0B S9030000FC diff --git a/MIC-Week4/main.c b/MIC-Week4/main.c index b99b2f2..45fc253 100644 --- a/MIC-Week4/main.c +++ b/MIC-Week4/main.c @@ -87,12 +87,23 @@ int main( void ) while (1) { - ADCSRA |= BIT(6); // Start ADC + //ADCSRA |= BIT(6); // Start ADC while ( ADCSRA & BIT(6) ) ; // Wait for completion - setRed(ADCH); // Show MSB (bit 9:2) of ADC + setRed(ADCH); + //setBlue(ADCH); + //setGreen(ADCH); wait(100); // every 50 ms (busy waiting) + //alleKleuren(); //opgaveextra(); - alleKleuren(); + setWithButton(); + } +} + +int setWithButton(void) +{ + if( (0b00000001 & PINC) != 0) + { + ADCSRA |= BIT(6); } } @@ -101,12 +112,14 @@ int alleKleuren(void) DDRB = 0xFF; // set PORTB for compare output timer1Init(); wait(100); + ; while (1) { - int delta = 1; + int delta1 = 1; int delta2 = 1; + int delta = 1; setRed (0); setBlue(0); setGreen(0); @@ -145,6 +158,13 @@ int alleKleuren(void) delta1 -= 2; // progressive steps up wait(100); // delay of 100 ms (busy waiting) } + + for (int red = 0; red<=255; red+=delta) + { + setRed( red ); // 8-bits PWM on pin OCR1a + delta += 2; // progressive steps up + wait(100); // delay of 100 ms (busy waiting) + } for (int blue = 255; blue>=0; blue-=delta2) { @@ -152,6 +172,7 @@ int alleKleuren(void) delta2 -= 2; // progressive steps up wait(100); // delay of 100 ms (busy waiting) } + } }