Added changing brightness
This commit is contained in:
Binary file not shown.
+428
-254
@@ -3,29 +3,29 @@ MIC-Week5.elf: file format elf32-avr
|
||||
|
||||
Sections:
|
||||
Idx Name Size VMA LMA File off Algn
|
||||
0 .data 00000000 00800100 00800100 000002c6 2**0
|
||||
0 .data 00000000 00800100 00800100 0000037c 2**0
|
||||
CONTENTS, ALLOC, LOAD, DATA
|
||||
1 .text 00000272 00000000 00000000 00000054 2**1
|
||||
1 .text 00000328 00000000 00000000 00000054 2**1
|
||||
CONTENTS, ALLOC, LOAD, READONLY, CODE
|
||||
2 .comment 00000030 00000000 00000000 000002c6 2**0
|
||||
2 .comment 00000030 00000000 00000000 0000037c 2**0
|
||||
CONTENTS, READONLY
|
||||
3 .note.gnu.avr.deviceinfo 0000003c 00000000 00000000 000002f8 2**2
|
||||
3 .note.gnu.avr.deviceinfo 0000003c 00000000 00000000 000003ac 2**2
|
||||
CONTENTS, READONLY
|
||||
4 .debug_aranges 000000c0 00000000 00000000 00000334 2**0
|
||||
4 .debug_aranges 000000c8 00000000 00000000 000003e8 2**0
|
||||
CONTENTS, READONLY, DEBUGGING
|
||||
5 .debug_info 00000cbd 00000000 00000000 000003f4 2**0
|
||||
5 .debug_info 00000d78 00000000 00000000 000004b0 2**0
|
||||
CONTENTS, READONLY, DEBUGGING
|
||||
6 .debug_abbrev 00000327 00000000 00000000 000010b1 2**0
|
||||
6 .debug_abbrev 00000359 00000000 00000000 00001228 2**0
|
||||
CONTENTS, READONLY, DEBUGGING
|
||||
7 .debug_line 0000066f 00000000 00000000 000013d8 2**0
|
||||
7 .debug_line 00000702 00000000 00000000 00001581 2**0
|
||||
CONTENTS, READONLY, DEBUGGING
|
||||
8 .debug_frame 00000190 00000000 00000000 00001a48 2**2
|
||||
8 .debug_frame 000001e8 00000000 00000000 00001c84 2**2
|
||||
CONTENTS, READONLY, DEBUGGING
|
||||
9 .debug_str 000002e3 00000000 00000000 00001bd8 2**0
|
||||
9 .debug_str 000002fe 00000000 00000000 00001e6c 2**0
|
||||
CONTENTS, READONLY, DEBUGGING
|
||||
10 .debug_loc 0000043c 00000000 00000000 00001ebb 2**0
|
||||
10 .debug_loc 000005d2 00000000 00000000 0000216a 2**0
|
||||
CONTENTS, READONLY, DEBUGGING
|
||||
11 .debug_ranges 000000a0 00000000 00000000 000022f7 2**0
|
||||
11 .debug_ranges 000000c0 00000000 00000000 0000273c 2**0
|
||||
CONTENTS, READONLY, DEBUGGING
|
||||
|
||||
Disassembly of section .text:
|
||||
@@ -109,8 +109,8 @@ Disassembly of section .text:
|
||||
92: d0 e1 ldi r29, 0x10 ; 16
|
||||
94: de bf out 0x3e, r29 ; 62
|
||||
96: cd bf out 0x3d, r28 ; 61
|
||||
98: 41 d0 rcall .+130 ; 0x11c <main>
|
||||
9a: e9 c0 rjmp .+466 ; 0x26e <_exit>
|
||||
98: 86 d0 rcall .+268 ; 0x1a6 <main>
|
||||
9a: 44 c1 rjmp .+648 ; 0x324 <_exit>
|
||||
|
||||
0000009c <__bad_interrupt>:
|
||||
9c: b1 cf rjmp .-158 ; 0x0 <__vectors>
|
||||
@@ -144,344 +144,518 @@ Disassembly of section .text:
|
||||
|
||||
int test2(void)
|
||||
{
|
||||
c0: cf 93 push r28
|
||||
c2: df 93 push r29
|
||||
c0: 6f 92 push r6
|
||||
c2: 7f 92 push r7
|
||||
c4: 8f 92 push r8
|
||||
c6: 9f 92 push r9
|
||||
c8: af 92 push r10
|
||||
ca: bf 92 push r11
|
||||
cc: cf 92 push r12
|
||||
ce: df 92 push r13
|
||||
d0: ef 92 push r14
|
||||
d2: ff 92 push r15
|
||||
d4: 0f 93 push r16
|
||||
d6: 1f 93 push r17
|
||||
d8: cf 93 push r28
|
||||
da: df 93 push r29
|
||||
DDRB=0x01; // Set PB0 pin as output for display select
|
||||
c4: 81 e0 ldi r24, 0x01 ; 1
|
||||
c6: 87 bb out 0x17, r24 ; 23
|
||||
dc: 81 e0 ldi r24, 0x01 ; 1
|
||||
de: 87 bb out 0x17, r24 ; 23
|
||||
|
||||
spi_masterInit(); // Initialize spi module
|
||||
c8: 2d d0 rcall .+90 ; 0x124 <spi_masterInit>
|
||||
e0: 66 d0 rcall .+204 ; 0x1ae <spi_masterInit>
|
||||
displayDriverInit(); // Initialize display chip
|
||||
ca: 4e d0 rcall .+156 ; 0x168 <displayDriverInit>
|
||||
e2: 87 d0 rcall .+270 ; 0x1f2 <displayDriverInit>
|
||||
int dir = 0;
|
||||
int factor = 0;
|
||||
|
||||
for(int i=-999; i<=9999; i++)
|
||||
{
|
||||
writeLedDisplay(i);
|
||||
cc: 89 e1 ldi r24, 0x19 ; 25
|
||||
ce: 9c ef ldi r25, 0xFC ; 252
|
||||
d0: 7b d0 rcall .+246 ; 0x1c8 <writeLedDisplay>
|
||||
e4: 89 e1 ldi r24, 0x19 ; 25
|
||||
e6: 9c ef ldi r25, 0xFC ; 252
|
||||
e8: ca d0 rcall .+404 ; 0x27e <writeLedDisplay>
|
||||
wait(5);
|
||||
d2: 85 e0 ldi r24, 0x05 ; 5
|
||||
d4: 90 e0 ldi r25, 0x00 ; 0
|
||||
d6: e3 df rcall .-58 ; 0x9e <wait>
|
||||
ea: 85 e0 ldi r24, 0x05 ; 5
|
||||
ec: 90 e0 ldi r25, 0x00 ; 0
|
||||
ee: d7 df rcall .-82 ; 0x9e <wait>
|
||||
|
||||
int intsy = 0;
|
||||
int dir = 0;
|
||||
int factor = 0;
|
||||
|
||||
for(int i=-999; i<=9999; i++)
|
||||
f0: 09 e1 ldi r16, 0x19 ; 25
|
||||
f2: 1c ef ldi r17, 0xFC ; 252
|
||||
|
||||
spi_masterInit(); // Initialize spi module
|
||||
displayDriverInit(); // Initialize display chip
|
||||
|
||||
int intsy = 0;
|
||||
int dir = 0;
|
||||
f4: e1 2c mov r14, r1
|
||||
f6: f1 2c mov r15, r1
|
||||
DDRB=0x01; // Set PB0 pin as output for display select
|
||||
|
||||
spi_masterInit(); // Initialize spi module
|
||||
displayDriverInit(); // Initialize display chip
|
||||
|
||||
int intsy = 0;
|
||||
f8: c0 e0 ldi r28, 0x00 ; 0
|
||||
fa: d0 e0 ldi r29, 0x00 ; 0
|
||||
intsy--;
|
||||
|
||||
if(intsy < 0x06)
|
||||
{
|
||||
intsy = 0x06;
|
||||
dir = 1;
|
||||
fc: aa 24 eor r10, r10
|
||||
fe: a3 94 inc r10
|
||||
100: b1 2c mov r11, r1
|
||||
else
|
||||
intsy--;
|
||||
|
||||
if(intsy < 0x06)
|
||||
{
|
||||
intsy = 0x06;
|
||||
102: 0f 2e mov r0, r31
|
||||
104: f6 e0 ldi r31, 0x06 ; 6
|
||||
106: cf 2e mov r12, r31
|
||||
108: f0 2d mov r31, r0
|
||||
10a: d1 2c mov r13, r1
|
||||
dir = 1;
|
||||
}
|
||||
else if(intsy > 0x0F)
|
||||
{
|
||||
intsy = 0x0F;
|
||||
dir = 0;
|
||||
10c: 61 2c mov r6, r1
|
||||
10e: 71 2c mov r7, r1
|
||||
intsy = 0x06;
|
||||
dir = 1;
|
||||
}
|
||||
else if(intsy > 0x0F)
|
||||
{
|
||||
intsy = 0x0F;
|
||||
110: 0f 2e mov r0, r31
|
||||
112: ff e0 ldi r31, 0x0F ; 15
|
||||
114: 8f 2e mov r8, r31
|
||||
116: f0 2d mov r31, r0
|
||||
118: 91 2c mov r9, r1
|
||||
11a: 0e c0 rjmp .+28 ; 0x138 <test2+0x78>
|
||||
int dir = 0;
|
||||
int factor = 0;
|
||||
|
||||
for(int i=-999; i<=9999; i++)
|
||||
d8: c9 e1 ldi r28, 0x19 ; 25
|
||||
da: dc ef ldi r29, 0xFC ; 252
|
||||
dc: 0e c0 rjmp .+28 ; 0xfa <test2+0x3a>
|
||||
{
|
||||
writeLedDisplay(i);
|
||||
de: ce 01 movw r24, r28
|
||||
e0: 73 d0 rcall .+230 ; 0x1c8 <writeLedDisplay>
|
||||
11c: c8 01 movw r24, r16
|
||||
11e: af d0 rcall .+350 ; 0x27e <writeLedDisplay>
|
||||
wait(5);
|
||||
e2: 85 e0 ldi r24, 0x05 ; 5
|
||||
e4: 90 e0 ldi r25, 0x00 ; 0
|
||||
e6: db df rcall .-74 ; 0x9e <wait>
|
||||
e8: ce 01 movw r24, r28
|
||||
ea: 87 50 subi r24, 0x07 ; 7
|
||||
ec: 9f 4f sbci r25, 0xFF ; 255
|
||||
120: 85 e0 ldi r24, 0x05 ; 5
|
||||
122: 90 e0 ldi r25, 0x00 ; 0
|
||||
124: bc df rcall .-136 ; 0x9e <wait>
|
||||
126: c8 01 movw r24, r16
|
||||
128: 87 50 subi r24, 0x07 ; 7
|
||||
12a: 9f 4f sbci r25, 0xFF ; 255
|
||||
|
||||
if(i < -150 && i > -250)
|
||||
ee: 83 36 cpi r24, 0x63 ; 99
|
||||
f0: 91 05 cpc r25, r1
|
||||
f2: 18 f4 brcc .+6 ; 0xfa <test2+0x3a>
|
||||
12c: 83 36 cpi r24, 0x63 ; 99
|
||||
12e: 91 05 cpc r25, r1
|
||||
130: 18 f4 brcc .+6 ; 0x138 <test2+0x78>
|
||||
wait(75);
|
||||
f4: 8b e4 ldi r24, 0x4B ; 75
|
||||
f6: 90 e0 ldi r25, 0x00 ; 0
|
||||
f8: d2 df rcall .-92 ; 0x9e <wait>
|
||||
fa: ce 01 movw r24, r28
|
||||
fc: 87 59 subi r24, 0x97 ; 151
|
||||
fe: 91 09 sbc r25, r1
|
||||
132: 8b e4 ldi r24, 0x4B ; 75
|
||||
134: 90 e0 ldi r25, 0x00 ; 0
|
||||
136: b3 df rcall .-154 ; 0x9e <wait>
|
||||
138: c8 01 movw r24, r16
|
||||
13a: 87 59 subi r24, 0x97 ; 151
|
||||
13c: 91 09 sbc r25, r1
|
||||
|
||||
if(i > 150 && i < 250)
|
||||
100: 83 36 cpi r24, 0x63 ; 99
|
||||
102: 91 05 cpc r25, r1
|
||||
104: 18 f4 brcc .+6 ; 0x10c <test2+0x4c>
|
||||
13e: 83 36 cpi r24, 0x63 ; 99
|
||||
140: 91 05 cpc r25, r1
|
||||
142: 18 f4 brcc .+6 ; 0x14a <test2+0x8a>
|
||||
wait(75);
|
||||
106: 8b e4 ldi r24, 0x4B ; 75
|
||||
108: 90 e0 ldi r25, 0x00 ; 0
|
||||
10a: c9 df rcall .-110 ; 0x9e <wait>
|
||||
DDRB=0x01; // Set PB0 pin as output for display select
|
||||
144: 8b e4 ldi r24, 0x4B ; 75
|
||||
146: 90 e0 ldi r25, 0x00 ; 0
|
||||
148: aa df rcall .-172 ; 0x9e <wait>
|
||||
|
||||
spi_masterInit(); // Initialize spi module
|
||||
displayDriverInit(); // Initialize display chip
|
||||
if(dir)
|
||||
14a: e1 14 cp r14, r1
|
||||
14c: f1 04 cpc r15, r1
|
||||
14e: 11 f0 breq .+4 ; 0x154 <test2+0x94>
|
||||
intsy++;
|
||||
150: 21 96 adiw r28, 0x01 ; 1
|
||||
152: 01 c0 rjmp .+2 ; 0x156 <test2+0x96>
|
||||
else
|
||||
intsy--;
|
||||
154: 21 97 sbiw r28, 0x01 ; 1
|
||||
|
||||
if(intsy < 0x06)
|
||||
156: c6 30 cpi r28, 0x06 ; 6
|
||||
158: d1 05 cpc r29, r1
|
||||
15a: 44 f0 brlt .+16 ; 0x16c <test2+0xac>
|
||||
{
|
||||
intsy = 0x06;
|
||||
dir = 1;
|
||||
}
|
||||
else if(intsy > 0x0F)
|
||||
15c: c0 31 cpi r28, 0x10 ; 16
|
||||
15e: d1 05 cpc r29, r1
|
||||
160: 4c f0 brlt .+18 ; 0x174 <test2+0xb4>
|
||||
{
|
||||
intsy = 0x0F;
|
||||
dir = 0;
|
||||
162: e6 2c mov r14, r6
|
||||
164: f7 2c mov r15, r7
|
||||
intsy = 0x06;
|
||||
dir = 1;
|
||||
}
|
||||
else if(intsy > 0x0F)
|
||||
{
|
||||
intsy = 0x0F;
|
||||
166: c8 2d mov r28, r8
|
||||
168: d9 2d mov r29, r9
|
||||
16a: 04 c0 rjmp .+8 ; 0x174 <test2+0xb4>
|
||||
intsy--;
|
||||
|
||||
if(intsy < 0x06)
|
||||
{
|
||||
intsy = 0x06;
|
||||
dir = 1;
|
||||
16c: ea 2c mov r14, r10
|
||||
16e: fb 2c mov r15, r11
|
||||
else
|
||||
intsy--;
|
||||
|
||||
if(intsy < 0x06)
|
||||
{
|
||||
intsy = 0x06;
|
||||
170: cc 2d mov r28, r12
|
||||
172: dd 2d mov r29, r13
|
||||
{
|
||||
intsy = 0x0F;
|
||||
dir = 0;
|
||||
}
|
||||
|
||||
spi_intensity(intsy);
|
||||
174: ce 01 movw r24, r28
|
||||
176: 5e d0 rcall .+188 ; 0x234 <spi_intensity>
|
||||
|
||||
int intsy = 0;
|
||||
int dir = 0;
|
||||
int factor = 0;
|
||||
|
||||
for(int i=-999; i<=9999; i++)
|
||||
10c: 21 96 adiw r28, 0x01 ; 1
|
||||
10e: c0 31 cpi r28, 0x10 ; 16
|
||||
110: 87 e2 ldi r24, 0x27 ; 39
|
||||
112: d8 07 cpc r29, r24
|
||||
114: 21 f7 brne .-56 ; 0xde <test2+0x1e>
|
||||
if(i > 150 && i < 250)
|
||||
wait(75);
|
||||
178: 0f 5f subi r16, 0xFF ; 255
|
||||
17a: 1f 4f sbci r17, 0xFF ; 255
|
||||
17c: 00 31 cpi r16, 0x10 ; 16
|
||||
17e: 87 e2 ldi r24, 0x27 ; 39
|
||||
180: 18 07 cpc r17, r24
|
||||
182: 61 f6 brne .-104 ; 0x11c <test2+0x5c>
|
||||
|
||||
spi_intensity(intsy);
|
||||
}
|
||||
|
||||
return 1;
|
||||
184: 81 e0 ldi r24, 0x01 ; 1
|
||||
186: 90 e0 ldi r25, 0x00 ; 0
|
||||
188: df 91 pop r29
|
||||
18a: cf 91 pop r28
|
||||
18c: 1f 91 pop r17
|
||||
18e: 0f 91 pop r16
|
||||
190: ff 90 pop r15
|
||||
192: ef 90 pop r14
|
||||
194: df 90 pop r13
|
||||
196: cf 90 pop r12
|
||||
198: bf 90 pop r11
|
||||
19a: af 90 pop r10
|
||||
19c: 9f 90 pop r9
|
||||
19e: 8f 90 pop r8
|
||||
1a0: 7f 90 pop r7
|
||||
1a2: 6f 90 pop r6
|
||||
1a4: 08 95 ret
|
||||
|
||||
116: df 91 pop r29
|
||||
118: cf 91 pop r28
|
||||
11a: 08 95 ret
|
||||
|
||||
0000011c <main>:
|
||||
000001a6 <main>:
|
||||
|
||||
//opgaveb3();
|
||||
//opgaveb4();
|
||||
|
||||
//test();
|
||||
test2();
|
||||
11c: d1 df rcall .-94 ; 0xc0 <test2>
|
||||
1a6: 8c df rcall .-232 ; 0xc0 <test2>
|
||||
return 0;
|
||||
}
|
||||
11e: 80 e0 ldi r24, 0x00 ; 0
|
||||
120: 90 e0 ldi r25, 0x00 ; 0
|
||||
122: 08 95 ret
|
||||
1a8: 80 e0 ldi r24, 0x00 ; 0
|
||||
1aa: 90 e0 ldi r25, 0x00 ; 0
|
||||
1ac: 08 95 ret
|
||||
|
||||
00000124 <spi_masterInit>:
|
||||
000001ae <spi_masterInit>:
|
||||
void displayOff()
|
||||
{
|
||||
spi_slaveSelect(0); // Select display chip
|
||||
spi_write(0x0C); // Register 0B: Shutdown register
|
||||
spi_write(0x00); // -> 1 = Normal operation
|
||||
spi_slaveDeSelect(0); // Deselect display chip
|
||||
124: 8f ef ldi r24, 0xFF ; 255
|
||||
126: 87 bb out 0x17, r24 ; 23
|
||||
128: bb 98 cbi 0x17, 3 ; 23
|
||||
12a: c0 9a sbi 0x18, 0 ; 24
|
||||
12c: 82 e5 ldi r24, 0x52 ; 82
|
||||
12e: 8d b9 out 0x0d, r24 ; 13
|
||||
130: 08 95 ret
|
||||
1ae: 8f ef ldi r24, 0xFF ; 255
|
||||
1b0: 87 bb out 0x17, r24 ; 23
|
||||
1b2: bb 98 cbi 0x17, 3 ; 23
|
||||
1b4: c0 9a sbi 0x18, 0 ; 24
|
||||
1b6: 82 e5 ldi r24, 0x52 ; 82
|
||||
1b8: 8d b9 out 0x0d, r24 ; 13
|
||||
1ba: 08 95 ret
|
||||
|
||||
00000132 <spi_write>:
|
||||
132: 8f b9 out 0x0f, r24 ; 15
|
||||
134: 77 9b sbis 0x0e, 7 ; 14
|
||||
136: fe cf rjmp .-4 ; 0x134 <spi_write+0x2>
|
||||
138: 08 95 ret
|
||||
000001bc <spi_write>:
|
||||
1bc: 8f b9 out 0x0f, r24 ; 15
|
||||
1be: 77 9b sbis 0x0e, 7 ; 14
|
||||
1c0: fe cf rjmp .-4 ; 0x1be <spi_write+0x2>
|
||||
1c2: 08 95 ret
|
||||
|
||||
0000013a <spi_slaveSelect>:
|
||||
13a: 98 b3 in r25, 0x18 ; 24
|
||||
13c: 21 e0 ldi r18, 0x01 ; 1
|
||||
13e: 30 e0 ldi r19, 0x00 ; 0
|
||||
140: 02 c0 rjmp .+4 ; 0x146 <spi_slaveSelect+0xc>
|
||||
142: 22 0f add r18, r18
|
||||
144: 33 1f adc r19, r19
|
||||
146: 8a 95 dec r24
|
||||
148: e2 f7 brpl .-8 ; 0x142 <spi_slaveSelect+0x8>
|
||||
14a: 20 95 com r18
|
||||
14c: 29 23 and r18, r25
|
||||
14e: 28 bb out 0x18, r18 ; 24
|
||||
150: 08 95 ret
|
||||
000001c4 <spi_slaveSelect>:
|
||||
1c4: 98 b3 in r25, 0x18 ; 24
|
||||
1c6: 21 e0 ldi r18, 0x01 ; 1
|
||||
1c8: 30 e0 ldi r19, 0x00 ; 0
|
||||
1ca: 02 c0 rjmp .+4 ; 0x1d0 <spi_slaveSelect+0xc>
|
||||
1cc: 22 0f add r18, r18
|
||||
1ce: 33 1f adc r19, r19
|
||||
1d0: 8a 95 dec r24
|
||||
1d2: e2 f7 brpl .-8 ; 0x1cc <spi_slaveSelect+0x8>
|
||||
1d4: 20 95 com r18
|
||||
1d6: 29 23 and r18, r25
|
||||
1d8: 28 bb out 0x18, r18 ; 24
|
||||
1da: 08 95 ret
|
||||
|
||||
00000152 <spi_slaveDeSelect>:
|
||||
152: 98 b3 in r25, 0x18 ; 24
|
||||
154: 21 e0 ldi r18, 0x01 ; 1
|
||||
156: 30 e0 ldi r19, 0x00 ; 0
|
||||
158: 02 c0 rjmp .+4 ; 0x15e <spi_slaveDeSelect+0xc>
|
||||
15a: 22 0f add r18, r18
|
||||
15c: 33 1f adc r19, r19
|
||||
15e: 8a 95 dec r24
|
||||
160: e2 f7 brpl .-8 ; 0x15a <spi_slaveDeSelect+0x8>
|
||||
162: 29 2b or r18, r25
|
||||
164: 28 bb out 0x18, r18 ; 24
|
||||
166: 08 95 ret
|
||||
000001dc <spi_slaveDeSelect>:
|
||||
1dc: 98 b3 in r25, 0x18 ; 24
|
||||
1de: 21 e0 ldi r18, 0x01 ; 1
|
||||
1e0: 30 e0 ldi r19, 0x00 ; 0
|
||||
1e2: 02 c0 rjmp .+4 ; 0x1e8 <spi_slaveDeSelect+0xc>
|
||||
1e4: 22 0f add r18, r18
|
||||
1e6: 33 1f adc r19, r19
|
||||
1e8: 8a 95 dec r24
|
||||
1ea: e2 f7 brpl .-8 ; 0x1e4 <spi_slaveDeSelect+0x8>
|
||||
1ec: 29 2b or r18, r25
|
||||
1ee: 28 bb out 0x18, r18 ; 24
|
||||
1f0: 08 95 ret
|
||||
|
||||
00000168 <displayDriverInit>:
|
||||
168: 80 e0 ldi r24, 0x00 ; 0
|
||||
16a: e7 df rcall .-50 ; 0x13a <spi_slaveSelect>
|
||||
16c: 89 e0 ldi r24, 0x09 ; 9
|
||||
16e: e1 df rcall .-62 ; 0x132 <spi_write>
|
||||
170: 8f ef ldi r24, 0xFF ; 255
|
||||
172: df df rcall .-66 ; 0x132 <spi_write>
|
||||
174: 80 e0 ldi r24, 0x00 ; 0
|
||||
176: ed df rcall .-38 ; 0x152 <spi_slaveDeSelect>
|
||||
178: 80 e0 ldi r24, 0x00 ; 0
|
||||
17a: df df rcall .-66 ; 0x13a <spi_slaveSelect>
|
||||
17c: 8a e0 ldi r24, 0x0A ; 10
|
||||
17e: d9 df rcall .-78 ; 0x132 <spi_write>
|
||||
180: 8f e0 ldi r24, 0x0F ; 15
|
||||
182: d7 df rcall .-82 ; 0x132 <spi_write>
|
||||
184: 80 e0 ldi r24, 0x00 ; 0
|
||||
186: e5 df rcall .-54 ; 0x152 <spi_slaveDeSelect>
|
||||
188: 80 e0 ldi r24, 0x00 ; 0
|
||||
18a: d7 df rcall .-82 ; 0x13a <spi_slaveSelect>
|
||||
18c: 8b e0 ldi r24, 0x0B ; 11
|
||||
18e: d1 df rcall .-94 ; 0x132 <spi_write>
|
||||
190: 83 e0 ldi r24, 0x03 ; 3
|
||||
192: cf df rcall .-98 ; 0x132 <spi_write>
|
||||
194: 80 e0 ldi r24, 0x00 ; 0
|
||||
196: dd df rcall .-70 ; 0x152 <spi_slaveDeSelect>
|
||||
198: 80 e0 ldi r24, 0x00 ; 0
|
||||
19a: cf df rcall .-98 ; 0x13a <spi_slaveSelect>
|
||||
19c: 8c e0 ldi r24, 0x0C ; 12
|
||||
19e: c9 df rcall .-110 ; 0x132 <spi_write>
|
||||
1a0: 81 e0 ldi r24, 0x01 ; 1
|
||||
1a2: c7 df rcall .-114 ; 0x132 <spi_write>
|
||||
1a4: 80 e0 ldi r24, 0x00 ; 0
|
||||
1a6: d5 cf rjmp .-86 ; 0x152 <spi_slaveDeSelect>
|
||||
1a8: 08 95 ret
|
||||
000001f2 <displayDriverInit>:
|
||||
1f2: 80 e0 ldi r24, 0x00 ; 0
|
||||
1f4: e7 df rcall .-50 ; 0x1c4 <spi_slaveSelect>
|
||||
1f6: 89 e0 ldi r24, 0x09 ; 9
|
||||
1f8: e1 df rcall .-62 ; 0x1bc <spi_write>
|
||||
1fa: 8f ef ldi r24, 0xFF ; 255
|
||||
1fc: df df rcall .-66 ; 0x1bc <spi_write>
|
||||
1fe: 80 e0 ldi r24, 0x00 ; 0
|
||||
200: ed df rcall .-38 ; 0x1dc <spi_slaveDeSelect>
|
||||
202: 80 e0 ldi r24, 0x00 ; 0
|
||||
204: df df rcall .-66 ; 0x1c4 <spi_slaveSelect>
|
||||
206: 8a e0 ldi r24, 0x0A ; 10
|
||||
208: d9 df rcall .-78 ; 0x1bc <spi_write>
|
||||
20a: 8f e0 ldi r24, 0x0F ; 15
|
||||
20c: d7 df rcall .-82 ; 0x1bc <spi_write>
|
||||
20e: 80 e0 ldi r24, 0x00 ; 0
|
||||
210: e5 df rcall .-54 ; 0x1dc <spi_slaveDeSelect>
|
||||
212: 80 e0 ldi r24, 0x00 ; 0
|
||||
214: d7 df rcall .-82 ; 0x1c4 <spi_slaveSelect>
|
||||
216: 8b e0 ldi r24, 0x0B ; 11
|
||||
218: d1 df rcall .-94 ; 0x1bc <spi_write>
|
||||
21a: 83 e0 ldi r24, 0x03 ; 3
|
||||
21c: cf df rcall .-98 ; 0x1bc <spi_write>
|
||||
21e: 80 e0 ldi r24, 0x00 ; 0
|
||||
220: dd df rcall .-70 ; 0x1dc <spi_slaveDeSelect>
|
||||
222: 80 e0 ldi r24, 0x00 ; 0
|
||||
224: cf df rcall .-98 ; 0x1c4 <spi_slaveSelect>
|
||||
226: 8c e0 ldi r24, 0x0C ; 12
|
||||
228: c9 df rcall .-110 ; 0x1bc <spi_write>
|
||||
22a: 81 e0 ldi r24, 0x01 ; 1
|
||||
22c: c7 df rcall .-114 ; 0x1bc <spi_write>
|
||||
22e: 80 e0 ldi r24, 0x00 ; 0
|
||||
230: d5 cf rjmp .-86 ; 0x1dc <spi_slaveDeSelect>
|
||||
232: 08 95 ret
|
||||
|
||||
000001aa <spi_writeWord>:
|
||||
00000234 <spi_intensity>:
|
||||
234: cf 93 push r28
|
||||
236: df 93 push r29
|
||||
238: ec 01 movw r28, r24
|
||||
23a: 99 23 and r25, r25
|
||||
23c: 14 f4 brge .+4 ; 0x242 <spi_intensity+0xe>
|
||||
23e: c0 e0 ldi r28, 0x00 ; 0
|
||||
240: d0 e0 ldi r29, 0x00 ; 0
|
||||
242: 80 e0 ldi r24, 0x00 ; 0
|
||||
244: bf df rcall .-130 ; 0x1c4 <spi_slaveSelect>
|
||||
246: 8a e0 ldi r24, 0x0A ; 10
|
||||
248: b9 df rcall .-142 ; 0x1bc <spi_write>
|
||||
24a: ce 01 movw r24, r28
|
||||
24c: 60 97 sbiw r28, 0x10 ; 16
|
||||
24e: 14 f0 brlt .+4 ; 0x254 <spi_intensity+0x20>
|
||||
250: 8f e0 ldi r24, 0x0F ; 15
|
||||
252: 90 e0 ldi r25, 0x00 ; 0
|
||||
254: b3 df rcall .-154 ; 0x1bc <spi_write>
|
||||
256: 80 e0 ldi r24, 0x00 ; 0
|
||||
258: c1 df rcall .-126 ; 0x1dc <spi_slaveDeSelect>
|
||||
25a: df 91 pop r29
|
||||
25c: cf 91 pop r28
|
||||
25e: 08 95 ret
|
||||
|
||||
00000260 <spi_writeWord>:
|
||||
}
|
||||
|
||||
void spi_writeWord( unsigned char adress, unsigned char data )
|
||||
{
|
||||
1aa: cf 93 push r28
|
||||
1ac: df 93 push r29
|
||||
1ae: d8 2f mov r29, r24
|
||||
1b0: c6 2f mov r28, r22
|
||||
260: cf 93 push r28
|
||||
262: df 93 push r29
|
||||
264: d8 2f mov r29, r24
|
||||
266: c6 2f mov r28, r22
|
||||
spi_slaveSelect(0); // Select display chip
|
||||
1b2: 80 e0 ldi r24, 0x00 ; 0
|
||||
1b4: c2 df rcall .-124 ; 0x13a <spi_slaveSelect>
|
||||
268: 80 e0 ldi r24, 0x00 ; 0
|
||||
26a: ac df rcall .-168 ; 0x1c4 <spi_slaveSelect>
|
||||
spi_write(adress); // Write address
|
||||
1b6: 8d 2f mov r24, r29
|
||||
1b8: bc df rcall .-136 ; 0x132 <spi_write>
|
||||
26c: 8d 2f mov r24, r29
|
||||
26e: a6 df rcall .-180 ; 0x1bc <spi_write>
|
||||
spi_write(data); // Write data
|
||||
1ba: 8c 2f mov r24, r28
|
||||
1bc: ba df rcall .-140 ; 0x132 <spi_write>
|
||||
270: 8c 2f mov r24, r28
|
||||
272: a4 df rcall .-184 ; 0x1bc <spi_write>
|
||||
spi_slaveDeSelect(0); // Deselect display chip
|
||||
1be: 80 e0 ldi r24, 0x00 ; 0
|
||||
1c0: c8 df rcall .-112 ; 0x152 <spi_slaveDeSelect>
|
||||
274: 80 e0 ldi r24, 0x00 ; 0
|
||||
276: b2 df rcall .-156 ; 0x1dc <spi_slaveDeSelect>
|
||||
}
|
||||
1c2: df 91 pop r29
|
||||
1c4: cf 91 pop r28
|
||||
1c6: 08 95 ret
|
||||
278: df 91 pop r29
|
||||
27a: cf 91 pop r28
|
||||
27c: 08 95 ret
|
||||
|
||||
000001c8 <writeLedDisplay>:
|
||||
0000027e <writeLedDisplay>:
|
||||
|
||||
void writeLedDisplay( int value )
|
||||
{
|
||||
1c8: cf 93 push r28
|
||||
1ca: df 93 push r29
|
||||
27e: cf 93 push r28
|
||||
280: df 93 push r29
|
||||
if(value > 9999 || value < -999)
|
||||
1cc: 9c 01 movw r18, r24
|
||||
1ce: 29 51 subi r18, 0x19 ; 25
|
||||
1d0: 3c 4f sbci r19, 0xFC ; 252
|
||||
1d2: 27 3f cpi r18, 0xF7 ; 247
|
||||
1d4: 3a 42 sbci r19, 0x2A ; 42
|
||||
1d6: 08 f5 brcc .+66 ; 0x21a <writeLedDisplay+0x52>
|
||||
282: 9c 01 movw r18, r24
|
||||
284: 29 51 subi r18, 0x19 ; 25
|
||||
286: 3c 4f sbci r19, 0xFC ; 252
|
||||
288: 27 3f cpi r18, 0xF7 ; 247
|
||||
28a: 3a 42 sbci r19, 0x2A ; 42
|
||||
28c: 08 f5 brcc .+66 ; 0x2d0 <writeLedDisplay+0x52>
|
||||
return;
|
||||
|
||||
if(value < 0)
|
||||
1d8: 99 23 and r25, r25
|
||||
1da: 44 f4 brge .+16 ; 0x1ec <writeLedDisplay+0x24>
|
||||
28e: 99 23 and r25, r25
|
||||
290: 44 f4 brge .+16 ; 0x2a2 <writeLedDisplay+0x24>
|
||||
{
|
||||
value = value - (value + value);
|
||||
1dc: cc 27 eor r28, r28
|
||||
1de: dd 27 eor r29, r29
|
||||
1e0: c8 1b sub r28, r24
|
||||
1e2: d9 0b sbc r29, r25
|
||||
292: cc 27 eor r28, r28
|
||||
294: dd 27 eor r29, r29
|
||||
296: c8 1b sub r28, r24
|
||||
298: d9 0b sbc r29, r25
|
||||
spi_writeWord(4, 10);
|
||||
1e4: 6a e0 ldi r22, 0x0A ; 10
|
||||
1e6: 84 e0 ldi r24, 0x04 ; 4
|
||||
1e8: e0 df rcall .-64 ; 0x1aa <spi_writeWord>
|
||||
1ea: 06 c0 rjmp .+12 ; 0x1f8 <writeLedDisplay+0x30>
|
||||
29a: 6a e0 ldi r22, 0x0A ; 10
|
||||
29c: 84 e0 ldi r24, 0x04 ; 4
|
||||
29e: e0 df rcall .-64 ; 0x260 <spi_writeWord>
|
||||
2a0: 06 c0 rjmp .+12 ; 0x2ae <writeLedDisplay+0x30>
|
||||
}
|
||||
else
|
||||
{
|
||||
//Display 4
|
||||
int d4 = value / 1000;
|
||||
value = value % 1000;
|
||||
1ec: 68 ee ldi r22, 0xE8 ; 232
|
||||
1ee: 73 e0 ldi r23, 0x03 ; 3
|
||||
1f0: 17 d0 rcall .+46 ; 0x220 <__divmodhi4>
|
||||
1f2: ec 01 movw r28, r24
|
||||
2a2: 68 ee ldi r22, 0xE8 ; 232
|
||||
2a4: 73 e0 ldi r23, 0x03 ; 3
|
||||
2a6: 17 d0 rcall .+46 ; 0x2d6 <__divmodhi4>
|
||||
2a8: ec 01 movw r28, r24
|
||||
spi_writeWord(4, d4);
|
||||
1f4: 84 e0 ldi r24, 0x04 ; 4
|
||||
1f6: d9 df rcall .-78 ; 0x1aa <spi_writeWord>
|
||||
2aa: 84 e0 ldi r24, 0x04 ; 4
|
||||
2ac: d9 df rcall .-78 ; 0x260 <spi_writeWord>
|
||||
}
|
||||
|
||||
//Display 3
|
||||
int d3 = value / 100;
|
||||
value = value % 100;
|
||||
1f8: ce 01 movw r24, r28
|
||||
1fa: 64 e6 ldi r22, 0x64 ; 100
|
||||
1fc: 70 e0 ldi r23, 0x00 ; 0
|
||||
1fe: 10 d0 rcall .+32 ; 0x220 <__divmodhi4>
|
||||
200: ec 01 movw r28, r24
|
||||
2ae: ce 01 movw r24, r28
|
||||
2b0: 64 e6 ldi r22, 0x64 ; 100
|
||||
2b2: 70 e0 ldi r23, 0x00 ; 0
|
||||
2b4: 10 d0 rcall .+32 ; 0x2d6 <__divmodhi4>
|
||||
2b6: ec 01 movw r28, r24
|
||||
spi_writeWord(3, d3);
|
||||
202: 83 e0 ldi r24, 0x03 ; 3
|
||||
204: d2 df rcall .-92 ; 0x1aa <spi_writeWord>
|
||||
2b8: 83 e0 ldi r24, 0x03 ; 3
|
||||
2ba: d2 df rcall .-92 ; 0x260 <spi_writeWord>
|
||||
|
||||
//Display 2
|
||||
int d2 = value / 10;
|
||||
206: ce 01 movw r24, r28
|
||||
208: 6a e0 ldi r22, 0x0A ; 10
|
||||
20a: 70 e0 ldi r23, 0x00 ; 0
|
||||
20c: 09 d0 rcall .+18 ; 0x220 <__divmodhi4>
|
||||
20e: c8 2f mov r28, r24
|
||||
2bc: ce 01 movw r24, r28
|
||||
2be: 6a e0 ldi r22, 0x0A ; 10
|
||||
2c0: 70 e0 ldi r23, 0x00 ; 0
|
||||
2c2: 09 d0 rcall .+18 ; 0x2d6 <__divmodhi4>
|
||||
2c4: c8 2f mov r28, r24
|
||||
value = value % 10;
|
||||
spi_writeWord(2, d2);
|
||||
210: 82 e0 ldi r24, 0x02 ; 2
|
||||
212: cb df rcall .-106 ; 0x1aa <spi_writeWord>
|
||||
2c6: 82 e0 ldi r24, 0x02 ; 2
|
||||
2c8: cb df rcall .-106 ; 0x260 <spi_writeWord>
|
||||
|
||||
//Display 1
|
||||
int d1 = value;
|
||||
spi_writeWord(1, d1);
|
||||
214: 6c 2f mov r22, r28
|
||||
216: 81 e0 ldi r24, 0x01 ; 1
|
||||
218: c8 df rcall .-112 ; 0x1aa <spi_writeWord>
|
||||
21a: df 91 pop r29
|
||||
21c: cf 91 pop r28
|
||||
21e: 08 95 ret
|
||||
2ca: 6c 2f mov r22, r28
|
||||
2cc: 81 e0 ldi r24, 0x01 ; 1
|
||||
2ce: c8 df rcall .-112 ; 0x260 <spi_writeWord>
|
||||
2d0: df 91 pop r29
|
||||
2d2: cf 91 pop r28
|
||||
2d4: 08 95 ret
|
||||
|
||||
00000220 <__divmodhi4>:
|
||||
220: 97 fb bst r25, 7
|
||||
222: 07 2e mov r0, r23
|
||||
224: 16 f4 brtc .+4 ; 0x22a <__divmodhi4+0xa>
|
||||
226: 00 94 com r0
|
||||
228: 06 d0 rcall .+12 ; 0x236 <__divmodhi4_neg1>
|
||||
22a: 77 fd sbrc r23, 7
|
||||
22c: 08 d0 rcall .+16 ; 0x23e <__divmodhi4_neg2>
|
||||
22e: 0b d0 rcall .+22 ; 0x246 <__udivmodhi4>
|
||||
230: 07 fc sbrc r0, 7
|
||||
232: 05 d0 rcall .+10 ; 0x23e <__divmodhi4_neg2>
|
||||
234: 3e f4 brtc .+14 ; 0x244 <__divmodhi4_exit>
|
||||
000002d6 <__divmodhi4>:
|
||||
2d6: 97 fb bst r25, 7
|
||||
2d8: 07 2e mov r0, r23
|
||||
2da: 16 f4 brtc .+4 ; 0x2e0 <__divmodhi4+0xa>
|
||||
2dc: 00 94 com r0
|
||||
2de: 06 d0 rcall .+12 ; 0x2ec <__divmodhi4_neg1>
|
||||
2e0: 77 fd sbrc r23, 7
|
||||
2e2: 08 d0 rcall .+16 ; 0x2f4 <__divmodhi4_neg2>
|
||||
2e4: 0b d0 rcall .+22 ; 0x2fc <__udivmodhi4>
|
||||
2e6: 07 fc sbrc r0, 7
|
||||
2e8: 05 d0 rcall .+10 ; 0x2f4 <__divmodhi4_neg2>
|
||||
2ea: 3e f4 brtc .+14 ; 0x2fa <__divmodhi4_exit>
|
||||
|
||||
00000236 <__divmodhi4_neg1>:
|
||||
236: 90 95 com r25
|
||||
238: 81 95 neg r24
|
||||
23a: 9f 4f sbci r25, 0xFF ; 255
|
||||
23c: 08 95 ret
|
||||
000002ec <__divmodhi4_neg1>:
|
||||
2ec: 90 95 com r25
|
||||
2ee: 81 95 neg r24
|
||||
2f0: 9f 4f sbci r25, 0xFF ; 255
|
||||
2f2: 08 95 ret
|
||||
|
||||
0000023e <__divmodhi4_neg2>:
|
||||
23e: 70 95 com r23
|
||||
240: 61 95 neg r22
|
||||
242: 7f 4f sbci r23, 0xFF ; 255
|
||||
000002f4 <__divmodhi4_neg2>:
|
||||
2f4: 70 95 com r23
|
||||
2f6: 61 95 neg r22
|
||||
2f8: 7f 4f sbci r23, 0xFF ; 255
|
||||
|
||||
00000244 <__divmodhi4_exit>:
|
||||
244: 08 95 ret
|
||||
000002fa <__divmodhi4_exit>:
|
||||
2fa: 08 95 ret
|
||||
|
||||
00000246 <__udivmodhi4>:
|
||||
246: aa 1b sub r26, r26
|
||||
248: bb 1b sub r27, r27
|
||||
24a: 51 e1 ldi r21, 0x11 ; 17
|
||||
24c: 07 c0 rjmp .+14 ; 0x25c <__udivmodhi4_ep>
|
||||
000002fc <__udivmodhi4>:
|
||||
2fc: aa 1b sub r26, r26
|
||||
2fe: bb 1b sub r27, r27
|
||||
300: 51 e1 ldi r21, 0x11 ; 17
|
||||
302: 07 c0 rjmp .+14 ; 0x312 <__udivmodhi4_ep>
|
||||
|
||||
0000024e <__udivmodhi4_loop>:
|
||||
24e: aa 1f adc r26, r26
|
||||
250: bb 1f adc r27, r27
|
||||
252: a6 17 cp r26, r22
|
||||
254: b7 07 cpc r27, r23
|
||||
256: 10 f0 brcs .+4 ; 0x25c <__udivmodhi4_ep>
|
||||
258: a6 1b sub r26, r22
|
||||
25a: b7 0b sbc r27, r23
|
||||
00000304 <__udivmodhi4_loop>:
|
||||
304: aa 1f adc r26, r26
|
||||
306: bb 1f adc r27, r27
|
||||
308: a6 17 cp r26, r22
|
||||
30a: b7 07 cpc r27, r23
|
||||
30c: 10 f0 brcs .+4 ; 0x312 <__udivmodhi4_ep>
|
||||
30e: a6 1b sub r26, r22
|
||||
310: b7 0b sbc r27, r23
|
||||
|
||||
0000025c <__udivmodhi4_ep>:
|
||||
25c: 88 1f adc r24, r24
|
||||
25e: 99 1f adc r25, r25
|
||||
260: 5a 95 dec r21
|
||||
262: a9 f7 brne .-22 ; 0x24e <__udivmodhi4_loop>
|
||||
264: 80 95 com r24
|
||||
266: 90 95 com r25
|
||||
268: bc 01 movw r22, r24
|
||||
26a: cd 01 movw r24, r26
|
||||
26c: 08 95 ret
|
||||
00000312 <__udivmodhi4_ep>:
|
||||
312: 88 1f adc r24, r24
|
||||
314: 99 1f adc r25, r25
|
||||
316: 5a 95 dec r21
|
||||
318: a9 f7 brne .-22 ; 0x304 <__udivmodhi4_loop>
|
||||
31a: 80 95 com r24
|
||||
31c: 90 95 com r25
|
||||
31e: bc 01 movw r22, r24
|
||||
320: cd 01 movw r24, r26
|
||||
322: 08 95 ret
|
||||
|
||||
0000026e <_exit>:
|
||||
26e: f8 94 cli
|
||||
00000324 <_exit>:
|
||||
324: f8 94 cli
|
||||
|
||||
00000270 <__stop_program>:
|
||||
270: ff cf rjmp .-2 ; 0x270 <__stop_program>
|
||||
00000326 <__stop_program>:
|
||||
326: ff cf rjmp .-2 ; 0x326 <__stop_program>
|
||||
|
||||
@@ -247,7 +247,7 @@ END GROUP
|
||||
.rela.plt
|
||||
*(.rela.plt)
|
||||
|
||||
.text 0x00000000 0x272
|
||||
.text 0x00000000 0x328
|
||||
*(.vectors)
|
||||
.vectors 0x00000000 0x8c C:/Program Files (x86)/Atmel/Studio/7.0/Packs/Atmel/ATmega_DFP/1.0.91/gcc/dev/atmega128/avr51/crtatmega128.o
|
||||
0x00000000 __vector_default
|
||||
@@ -339,43 +339,46 @@ END GROUP
|
||||
*(.text.*)
|
||||
.text.wait 0x0000009e 0x22 main.o
|
||||
0x0000009e wait
|
||||
.text.test2 0x000000c0 0x5c main.o
|
||||
.text.test2 0x000000c0 0xe6 main.o
|
||||
0x000000c0 test2
|
||||
.text.main 0x0000011c 0x8 main.o
|
||||
0x0000011c main
|
||||
.text.main 0x000001a6 0x8 main.o
|
||||
0x000001a6 main
|
||||
.text.spi_masterInit
|
||||
0x00000124 0xe spi.o
|
||||
0x00000124 spi_masterInit
|
||||
0x000001ae 0xe spi.o
|
||||
0x000001ae spi_masterInit
|
||||
.text.spi_write
|
||||
0x00000132 0x8 spi.o
|
||||
0x00000132 spi_write
|
||||
0x000001bc 0x8 spi.o
|
||||
0x000001bc spi_write
|
||||
.text.spi_slaveSelect
|
||||
0x0000013a 0x18 spi.o
|
||||
0x0000013a spi_slaveSelect
|
||||
0x000001c4 0x18 spi.o
|
||||
0x000001c4 spi_slaveSelect
|
||||
.text.spi_slaveDeSelect
|
||||
0x00000152 0x16 spi.o
|
||||
0x00000152 spi_slaveDeSelect
|
||||
0x000001dc 0x16 spi.o
|
||||
0x000001dc spi_slaveDeSelect
|
||||
.text.displayDriverInit
|
||||
0x00000168 0x42 spi.o
|
||||
0x00000168 displayDriverInit
|
||||
0x000001f2 0x42 spi.o
|
||||
0x000001f2 displayDriverInit
|
||||
.text.spi_intensity
|
||||
0x00000234 0x2c spi.o
|
||||
0x00000234 spi_intensity
|
||||
.text.spi_writeWord
|
||||
0x000001aa 0x1e spi.o
|
||||
0x000001aa spi_writeWord
|
||||
0x00000260 0x1e spi.o
|
||||
0x00000260 spi_writeWord
|
||||
.text.writeLedDisplay
|
||||
0x000001c8 0x58 spi.o
|
||||
0x000001c8 writeLedDisplay
|
||||
0x0000027e 0x58 spi.o
|
||||
0x0000027e writeLedDisplay
|
||||
.text.libgcc.div
|
||||
0x00000220 0x26 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_divmodhi4.o)
|
||||
0x00000220 _div
|
||||
0x00000220 __divmodhi4
|
||||
0x000002d6 0x26 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_divmodhi4.o)
|
||||
0x000002d6 _div
|
||||
0x000002d6 __divmodhi4
|
||||
.text.libgcc.div
|
||||
0x00000246 0x28 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_udivmodhi4.o)
|
||||
0x00000246 __udivmodhi4
|
||||
0x0000026e . = ALIGN (0x2)
|
||||
0x000002fc 0x28 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_udivmodhi4.o)
|
||||
0x000002fc __udivmodhi4
|
||||
0x00000324 . = ALIGN (0x2)
|
||||
*(.fini9)
|
||||
.fini9 0x0000026e 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)
|
||||
0x0000026e _exit
|
||||
0x0000026e exit
|
||||
.fini9 0x00000324 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)
|
||||
0x00000324 _exit
|
||||
0x00000324 exit
|
||||
*(.fini9)
|
||||
*(.fini8)
|
||||
*(.fini8)
|
||||
@@ -394,11 +397,11 @@ END GROUP
|
||||
*(.fini1)
|
||||
*(.fini1)
|
||||
*(.fini0)
|
||||
.fini0 0x0000026e 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 0x00000324 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)
|
||||
0x00000272 _etext = .
|
||||
0x00000328 _etext = .
|
||||
|
||||
.data 0x00800100 0x0 load address 0x00000272
|
||||
.data 0x00800100 0x0 load address 0x00000328
|
||||
0x00800100 PROVIDE (__data_start, .)
|
||||
*(.data)
|
||||
*(.data*)
|
||||
@@ -415,8 +418,8 @@ END GROUP
|
||||
*(.bss*)
|
||||
*(COMMON)
|
||||
0x00800100 PROVIDE (__bss_end, .)
|
||||
0x00000272 __data_load_start = LOADADDR (.data)
|
||||
0x00000272 __data_load_end = (__data_load_start + SIZEOF (.data))
|
||||
0x00000328 __data_load_start = LOADADDR (.data)
|
||||
0x00000328 __data_load_end = (__data_load_start + SIZEOF (.data))
|
||||
|
||||
.noinit 0x00800100 0x0
|
||||
0x00800100 PROVIDE (__noinit_start, .)
|
||||
@@ -488,47 +491,47 @@ END GROUP
|
||||
.debug_sfnames
|
||||
*(.debug_sfnames)
|
||||
|
||||
.debug_aranges 0x00000000 0xc0
|
||||
.debug_aranges 0x00000000 0xc8
|
||||
*(.debug_aranges)
|
||||
.debug_aranges
|
||||
0x00000000 0x58 main.o
|
||||
.debug_aranges
|
||||
0x00000058 0x68 spi.o
|
||||
0x00000058 0x70 spi.o
|
||||
|
||||
.debug_pubnames
|
||||
*(.debug_pubnames)
|
||||
|
||||
.debug_info 0x00000000 0xcbd
|
||||
.debug_info 0x00000000 0xd78
|
||||
*(.debug_info .gnu.linkonce.wi.*)
|
||||
.debug_info 0x00000000 0x835 main.o
|
||||
.debug_info 0x00000835 0x488 spi.o
|
||||
.debug_info 0x00000000 0x888 main.o
|
||||
.debug_info 0x00000888 0x4f0 spi.o
|
||||
|
||||
.debug_abbrev 0x00000000 0x327
|
||||
.debug_abbrev 0x00000000 0x359
|
||||
*(.debug_abbrev)
|
||||
.debug_abbrev 0x00000000 0x1ed main.o
|
||||
.debug_abbrev 0x000001ed 0x13a spi.o
|
||||
.debug_abbrev 0x00000000 0x214 main.o
|
||||
.debug_abbrev 0x00000214 0x145 spi.o
|
||||
|
||||
.debug_line 0x00000000 0x66f
|
||||
.debug_line 0x00000000 0x702
|
||||
*(.debug_line .debug_line.* .debug_line_end)
|
||||
.debug_line 0x00000000 0x3f5 main.o
|
||||
.debug_line 0x000003f5 0x27a spi.o
|
||||
.debug_line 0x00000000 0x459 main.o
|
||||
.debug_line 0x00000459 0x2a9 spi.o
|
||||
|
||||
.debug_frame 0x00000000 0x190
|
||||
.debug_frame 0x00000000 0x1e8
|
||||
*(.debug_frame)
|
||||
.debug_frame 0x00000000 0xc4 main.o
|
||||
.debug_frame 0x000000c4 0xcc spi.o
|
||||
.debug_frame 0x00000000 0x100 main.o
|
||||
.debug_frame 0x00000100 0xe8 spi.o
|
||||
|
||||
.debug_str 0x00000000 0x2e3
|
||||
.debug_str 0x00000000 0x2fe
|
||||
*(.debug_str)
|
||||
.debug_str 0x00000000 0x28a main.o
|
||||
0x2c3 (size before relaxing)
|
||||
.debug_str 0x0000028a 0x59 spi.o
|
||||
0x20a (size before relaxing)
|
||||
.debug_str 0x00000000 0x2a5 main.o
|
||||
0x2de (size before relaxing)
|
||||
.debug_str 0x000002a5 0x59 spi.o
|
||||
0x222 (size before relaxing)
|
||||
|
||||
.debug_loc 0x00000000 0x43c
|
||||
.debug_loc 0x00000000 0x5d2
|
||||
*(.debug_loc)
|
||||
.debug_loc 0x00000000 0x235 main.o
|
||||
.debug_loc 0x00000235 0x207 spi.o
|
||||
.debug_loc 0x00000000 0x369 main.o
|
||||
.debug_loc 0x00000369 0x269 spi.o
|
||||
|
||||
.debug_macinfo
|
||||
*(.debug_macinfo)
|
||||
@@ -548,10 +551,10 @@ END GROUP
|
||||
.debug_pubtypes
|
||||
*(.debug_pubtypes)
|
||||
|
||||
.debug_ranges 0x00000000 0xa0
|
||||
.debug_ranges 0x00000000 0xc0
|
||||
*(.debug_ranges)
|
||||
.debug_ranges 0x00000000 0x48 main.o
|
||||
.debug_ranges 0x00000048 0x58 spi.o
|
||||
.debug_ranges 0x00000000 0x60 main.o
|
||||
.debug_ranges 0x00000060 0x60 spi.o
|
||||
|
||||
.debug_macro
|
||||
*(.debug_macro)
|
||||
|
||||
@@ -8,35 +8,46 @@ S113005025C0000023C0000021C000001FC0000014
|
||||
S11300601DC000001BC0000019C0000017C0000024
|
||||
S113007015C0000013C0000011C000000FC0000034
|
||||
S11300800DC000000BC0000009C0000011241FBEF9
|
||||
S1130090CFEFD0E1DEBFCDBF41D0E9C0B1CF18165C
|
||||
S1130090CFEFD0E1DEBFCDBF86D044C1B1CF1816BB
|
||||
S11300A019066CF420E030E0EFECF7E03197F1F75B
|
||||
S11300B000C000002F5F3F4F28173907A9F70895A4
|
||||
S11300C0CF93DF9381E087BB2DD04ED089E19CEFA5
|
||||
S11300D07BD085E090E0E3DFC9E1DCEF0EC0CE0128
|
||||
S11300E073D085E090E0DBDFCE0187509F4F8336ED
|
||||
S11300F0910518F48BE490E0D2DFCE018759910981
|
||||
S11301008336910518F48BE490E0C9DF2196C03161
|
||||
S113011087E2D80721F7DF91CF910895D1DF80E0FE
|
||||
S113012090E008958FEF87BBBB98C09A82E58DB9A4
|
||||
S113013008958FB9779BFECF089598B321E030E0FE
|
||||
S113014002C0220F331F8A95E2F72095292328BB8A
|
||||
S1130150089598B321E030E002C0220F331F8A953E
|
||||
S1130160E2F7292B28BB089580E0E7DF89E0E1DF8F
|
||||
S11301708FEFDFDF80E0EDDF80E0DFDF8AE0D9DFD3
|
||||
S11301808FE0D7DF80E0E5DF80E0D7DF8BE0D1DFF1
|
||||
S113019083E0CFDF80E0DDDF80E0CFDF8CE0C9DF0C
|
||||
S11301A081E0C7DF80E0D5CF0895CF93DF93D82FC8
|
||||
S11301B0C62F80E0C2DF8D2FBCDF8C2FBADF80E03A
|
||||
S11301C0C8DFDF91CF910895CF93DF939C0129512C
|
||||
S11301D03C4F273F3A4208F5992344F4CC27DD27C6
|
||||
S11301E0C81BD90B6AE084E0E0DF06C068EE73E068
|
||||
S11301F017D0EC0184E0D9DFCE0164E670E010D0C2
|
||||
S1130200EC0183E0D2DFCE016AE070E009D0C82FB0
|
||||
S113021082E0CBDF6C2F81E0C8DFDF91CF910895BE
|
||||
S113022097FB072E16F4009406D077FD08D00BD068
|
||||
S113023007FC05D03EF4909581959F4F08957095E5
|
||||
S113024061957F4F0895AA1BBB1B51E107C0AA1FEC
|
||||
S1130250BB1FA617B70710F0A61BB70B881F991F63
|
||||
S11302605A95A9F780959095BC01CD010895F8940D
|
||||
S1050270FFCFBA
|
||||
S11300C06F927F928F929F92AF92BF92CF92DF9264
|
||||
S11300D0EF92FF920F931F93CF93DF9381E087BB3F
|
||||
S11300E066D087D089E19CEFCAD085E090E0D7DF65
|
||||
S11300F009E11CEFE12CF12CC0E0D0E0AA24A39488
|
||||
S1130100B12C0F2EF6E0CF2EF02DD12C612C712CBA
|
||||
S11301100F2EFFE08F2EF02D912C0EC0C801AFD012
|
||||
S113012085E090E0BCDFC80187509F4F833691057E
|
||||
S113013018F48BE490E0B3DFC80187599109833642
|
||||
S1130140910518F48BE490E0AADFE114F10411F0B6
|
||||
S1130150219601C02197C630D10544F0C031D105A4
|
||||
S11301604CF0E62CF72CC82DD92D04C0EA2CFB2C1E
|
||||
S1130170CC2DDD2DCE015ED00F5F1F4F003187E205
|
||||
S1130180180761F681E090E0DF91CF911F910F9104
|
||||
S1130190FF90EF90DF90CF90BF90AF909F908F90A3
|
||||
S11301A07F906F9008958CDF80E090E008958FEF4A
|
||||
S11301B087BBBB98C09A82E58DB908958FB9779BA8
|
||||
S11301C0FECF089598B321E030E002C0220F331F20
|
||||
S11301D08A95E2F72095292328BB089598B321E056
|
||||
S11301E030E002C0220F331F8A95E2F7292B28BB87
|
||||
S11301F0089580E0E7DF89E0E1DF8FEFDFDF80E073
|
||||
S1130200EDDF80E0DFDF8AE0D9DF8FE0D7DF80E059
|
||||
S1130210E5DF80E0D7DF8BE0D1DF83E0CFDF80E074
|
||||
S1130220DDDF80E0CFDF8CE0C9DF81E0C7DF80E085
|
||||
S1130230D5CF0895CF93DF93EC01992314F4C0E054
|
||||
S1130240D0E080E0BFDF8AE0B9DFCE01609714F030
|
||||
S11302508FE090E0B3DF80E0C1DFDF91CF910895BC
|
||||
S1130260CF93DF93D82FC62F80E0ACDF8D2FA6DF8E
|
||||
S11302708C2FA4DF80E0B2DFDF91CF910895CF937C
|
||||
S1130280DF939C0129513C4F273F3A4208F59923BB
|
||||
S113029044F4CC27DD27C81BD90B6AE084E0E0DFF7
|
||||
S11302A006C068EE73E017D0EC0184E0D9DFCE011C
|
||||
S11302B064E670E010D0EC0183E0D2DFCE016AE0A6
|
||||
S11302C070E009D0C82F82E0CBDF6C2F81E0C8DF5B
|
||||
S11302D0DF91CF91089597FB072E16F4009406D072
|
||||
S11302E077FD08D00BD007FC05D03EF4909581959E
|
||||
S11302F09F4F0895709561957F4F0895AA1BBB1B6E
|
||||
S113030051E107C0AA1FBB1FA617B70710F0A61B11
|
||||
S1130310B70B881F991F5A95A9F780959095BC0132
|
||||
S10B0320CD010895F894FFCF0C
|
||||
S9030000FC
|
||||
|
||||
+23
-1
@@ -183,6 +183,10 @@ int test2(void)
|
||||
spi_masterInit(); // Initialize spi module
|
||||
displayDriverInit(); // Initialize display chip
|
||||
|
||||
int intsy = 0;
|
||||
int dir = 0;
|
||||
int factor = 0;
|
||||
|
||||
for(int i=-999; i<=9999; i++)
|
||||
{
|
||||
writeLedDisplay(i);
|
||||
@@ -193,7 +197,25 @@ int test2(void)
|
||||
|
||||
if(i > 150 && i < 250)
|
||||
wait(75);
|
||||
|
||||
if(dir)
|
||||
intsy++;
|
||||
else
|
||||
intsy--;
|
||||
|
||||
if(intsy < 0x06)
|
||||
{
|
||||
intsy = 0x06;
|
||||
dir = 1;
|
||||
}
|
||||
else if(intsy > 0x0F)
|
||||
{
|
||||
intsy = 0x0F;
|
||||
dir = 0;
|
||||
}
|
||||
|
||||
spi_intensity(intsy);
|
||||
}
|
||||
|
||||
|
||||
return 1;
|
||||
}
|
||||
@@ -86,6 +86,20 @@ void displayOn()
|
||||
spi_slaveDeSelect(0); // Deselect display chip
|
||||
}
|
||||
|
||||
void spi_intensity(int intensity)
|
||||
{
|
||||
if(intensity < 0)
|
||||
intensity = 0;
|
||||
|
||||
if(intensity > 0x0F)
|
||||
intensity = 0x0F;
|
||||
|
||||
spi_slaveSelect(0); // Select dispaly chip
|
||||
spi_write(0x0A); // Register 0A: Intensity
|
||||
spi_write(intensity); // -> Level 4 (in range [1..F])
|
||||
spi_slaveDeSelect(0); // Deselect display chip
|
||||
}
|
||||
|
||||
// Set display off ('shut down')
|
||||
void displayOff()
|
||||
{
|
||||
|
||||
@@ -35,6 +35,7 @@ void spi_write( unsigned char );
|
||||
char spi_writeRead( unsigned char );
|
||||
void spi_slaveSelect(unsigned char);
|
||||
void spi_slaveDeSelect(unsigned char);
|
||||
void spi_intensity(int);
|
||||
void displayDriverInit();
|
||||
void displayOn();
|
||||
void displayOff();
|
||||
|
||||
Reference in New Issue
Block a user