Added changing brightness

This commit is contained in:
2016-03-22 10:14:17 +01:00
parent 9d8c53a929
commit e869f7b033
7 changed files with 566 additions and 341 deletions
Binary file not shown.
+428 -254
View File
@@ -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>
+60 -57
View File
@@ -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)
+40 -29
View File
@@ -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
View File
@@ -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;
}
+14
View File
@@ -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()
{
+1
View File
@@ -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();