diff --git a/Timer/Timer.aps b/Timer/Timer.aps
index d7d18e0..4939a0c 100644
--- a/Timer/Timer.aps
+++ b/Timer/Timer.aps
@@ -1 +1 @@
-Timer23-Nov-2012 21:48:3323-Nov-2012 21:48:36241023-Nov-2012 21:48:3344, 19, 0, 730AVR GCCD:\Doc's\Basteleien\Timer\Timer\JTAGICE mkIIATtiny2313.xmlfalseR00R01R02R03R04R05R06R07R08R09R10R11R12R13R14R15R16R17R18R19R20R21R22R23R24R25R26R27R28R29R30R31Auto000Timer.cdefaultNOattiny231311
Timer.elfdefault\1-Wall -gdwarf-2 -Os -std=gnu99 -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enumsdefault1E:\Programme\AVR Toolchain\bin\avr-gcc.exeE:\Programme\AVR Toolchain\bin\make.exe00000Timer.c1
+Timer23-Nov-2012 21:48:3305-Dec-2012 10:14:04241023-Nov-2012 21:48:3344, 19, 0, 730AVR GCCdefault\Timer.elfD:\Doc's\Basteleien\Timer\Timer\JTAGICE mkIIATtiny2313.xmlfalseR00R01R02R03R04R05R06R07R08R09R10R11R12R13R14R15R16R17R18R19R20R21R22R23R24R25R26R27R28R29R30R31Auto000Timer.cdefault\Timer.lssdefault\Timer.mapdefaultNOattiny231311
Timer.elfdefault\0-Wall -gdwarf-2 -std=gnu99 -DF_CPU=8000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enumsdefault1E:\Programme\AVR Toolchain\bin\avr-gcc.exeE:\Programme\AVR Toolchain\bin\make.exe00000Timer.c1
diff --git a/Timer/Timer.c b/Timer/Timer.c
index 48a5683..d2308e3 100644
--- a/Timer/Timer.c
+++ b/Timer/Timer.c
@@ -2,7 +2,9 @@
#include
#include
-volatile uint8_t segs[15] = {
+#define MIN 29
+
+volatile uint8_t segs[18] = {
0b00111111, //0
0b00000110, //1
0b01011011, //2
@@ -17,7 +19,10 @@ volatile uint8_t segs[15] = {
0b01110000, //+
0b01000110, //-1
0b01110110, //+1
- 0b00000000 //Blank
+ 0b00000000, //Blank
+ 0b01111001, //E
+ 0b01010100, //n
+ 0b01011110 //d
};
volatile uint8_t frame[6] = {14,14, 14,14, 14,14};
char var = 0;
@@ -87,16 +92,34 @@ int main(void) {
sei();//*/
while(1){
frame[0] = 11;
- for(uint8_t j=0;j<=30;j++) {
- frame[2] = (uint8_t)((30-j)/10);
- frame[3] = (uint8_t)((30-j)%10);
+ for(uint8_t j=0;j<=MIN;j++) {
+ frame[2] = (uint8_t)((MIN-j)/10);
+ frame[3] = (uint8_t)((MIN-j)%10);
for(uint8_t i=0;i<=59;i++) {
frame[4] = (uint8_t)((59-i)/10);
frame[5] = (uint8_t)((59-i)%10);
+ frame[0] = (i%2==0)?11:14;
for(uint8_t k=0;k<82;k++) {
render();
}
}
}
+ while(1) {
+ frame[0] = 10;
+ frame[2] = 15;
+ frame[3] = 16;
+ frame[4] = 17;
+ frame[5] = 15;
+ for(uint8_t k=0;k<82;k++) {
+ render();
+ }
+ frame[2] = 14;
+ frame[3] = 14;
+ frame[4] = 14;
+ frame[5] = 14;
+ for(uint8_t k=0;k<82;k++) {
+ render();
+ }
+ }
}
}
diff --git a/Timer/default/Timer.elf b/Timer/default/Timer.elf
index 588d472..a8e8046 100644
Binary files a/Timer/default/Timer.elf and b/Timer/default/Timer.elf differ
diff --git a/Timer/default/Timer.hex b/Timer/default/Timer.hex
index 9bd00f2..ba8fc93 100644
--- a/Timer/default/Timer.hex
+++ b/Timer/default/Timer.hex
@@ -1,9 +1,9 @@
:1000000012C02AC029C028C027C026C025C024C0CD
:1000100023C022C021C020C01FC0A4C01DC01CC05E
:100020001BC01AC019C011241FBECFEDCDBF10E0F8
-:10003000A0E6B0E0E0E8F2E002C005900D92A6373D
-:10004000B107D9F710E0A6E7B0E001C01D92A737CD
-:10005000B107E1F7AFD012C1D3CFE82FF0E0E05AFB
+:10003000A0E6B0E0E6EDF2E002C005900D92A83730
+:10004000B107D9F710E0A8E7B0E001C01D92A937C9
+:10005000B107E1F7AFD03DC1D3CFE82FF0E0E05AD0
:10006000FF4F8081880F87BB8081880F88BB71E03C
:1000700041E050E023C027B3872F90E030E0072E07
:1000800002C0359527950A94E2F7019720FF0AC030
@@ -17,27 +17,33 @@
:100100008A95E2F7CF018095822388BB7F5F6717CE
:10011000D8F627B381E090E002C0880F991F6A9556
:10012000E2F7282B27BB98B38095892388BB0895D5
-:100130001F93CF93DF9317E0C0E0D0E0FE01E159B9
+:100130001F93CF93DF9317E0C0E0D0E0FE01EE58AD
:10014000FF4F8081612F89DF8FE99FE00197F1F7F1
:1001500000C0000021961150113081F7DF91CF913E
:100160001F9108951F920F920FB60F9211248F9333
-:100170009F9380917600982F9F5F909376008436AE
-:1001800090F0809171008E3039F41092710081E00E
-:100190008093720082E005C08EE0809371008093AE
-:1001A0007200809373009F918F910F900FBE0F90FC
-:1001B0001F901895AF92BF92DF92EF92FF920F932C
-:1001C0001F93DF93CF930F92CDB7DEB717BA2BE013
-:1001D000D22E9AE0E92EF12CD0926F000EE110E0C1
-:1001E000C801B70124D060937100809372008BE343
-:1001F000A82EB12CC501B7011AD06093730080936B
-:10020000740080E0898394DF89818F5F8235D1F724
-:100210000894A108B1088FEFA8168FEFB80651F720
-:1002200001501040EFEF0F3F1E07D1F6D5CF97FBDF
-:10023000092E07260AD077FD04D00CD006D0002066
-:100240001AF4709561957F4F0895F6F79095819512
-:100250009F4F0895AA1BBB1B51E107C0AA1FBB1FDC
-:10026000A617B70710F0A61BB70B881F991F5A9542
-:10027000A9F780959095BC01CD010895F894FFCF22
-:100280003F065B4F666D7D077F6F40704676000EC0
-:060290000E0E0E0E0E0022
+:100170009F9380917800982F9F5F909378008436AA
+:1001800090F0809174008E3039F41092740081E008
+:100190008093750082E005C08EE0809374008093A8
+:1001A0007500809376009F918F910F900FBE0F90F6
+:1001B0001F901895AF92BF92CF92DF92EF92FF926D
+:1001C0000F931F93DF93CF930F92CDB7DEB717BA7C
+:1001D0008BE0809372006DE1A62EB12C5AE0E52EE3
+:1001E000F12CC501B7014ED0609374008093750067
+:1001F0000BE310E020E0C801B70144D06093760023
+:100200008093770020FF02C08EE001C08BE08093D6
+:10021000720042E5D42E29838BDFDA942981DD2018
+:10022000D1F72F5F015010402C3329F70894A10813
+:10023000B1088FEFA8168FEFB80699F63AE0C32EF3
+:100240002FE0E22E90E1F92E81E1D82E0EE0C0924F
+:100250007200E0927400F0927500D0927600E09205
+:10026000770012E565DF1150E9F700937400009301
+:100270007500009376000093770012E559DF115066
+:10028000E9F7E5CF97FB092E07260AD077FD04D0C2
+:100290000CD006D000201AF4709561957F4F089518
+:1002A000F6F7909581959F4F0895AA1BBB1B51E1CE
+:1002B00007C0AA1FBB1FA617B70710F0A61BB70BD6
+:1002C000881F991F5A95A9F780959095BC01CD017B
+:0602D0000895F894FFCF31
+:1002D6003F065B4F666D7D077F6F407046760079FF
+:0802E600545E0E0E0E0E0E0E0A
:00000001FF
diff --git a/Timer/default/Timer.lss b/Timer/default/Timer.lss
index 32972fe..13a8e9a 100644
--- a/Timer/default/Timer.lss
+++ b/Timer/default/Timer.lss
@@ -3,35 +3,33 @@ Timer.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
- 0 .text 00000280 00000000 00000000 00000094 2**1
+ 0 .text 000002d6 00000000 00000000 00000094 2**1
CONTENTS, ALLOC, LOAD, READONLY, CODE
- 1 .data 00000016 00800060 00000280 00000314 2**0
+ 1 .data 00000018 00800060 000002d6 0000036a 2**0
CONTENTS, ALLOC, LOAD, DATA
- 2 .bss 00000001 00800076 00800076 0000032a 2**0
+ 2 .bss 00000001 00800078 00800078 00000382 2**0
ALLOC
- 3 .stab 000006b4 00000000 00000000 0000032c 2**2
+ 3 .stab 000006b4 00000000 00000000 00000384 2**2
CONTENTS, READONLY, DEBUGGING
- 4 .stabstr 00000085 00000000 00000000 000009e0 2**0
+ 4 .stabstr 00000085 00000000 00000000 00000a38 2**0
CONTENTS, READONLY, DEBUGGING
- 5 .debug_aranges 00000020 00000000 00000000 00000a65 2**0
+ 5 .debug_aranges 00000020 00000000 00000000 00000abd 2**0
CONTENTS, READONLY, DEBUGGING
- 6 .debug_pubnames 0000005d 00000000 00000000 00000a85 2**0
+ 6 .debug_pubnames 0000005d 00000000 00000000 00000add 2**0
CONTENTS, READONLY, DEBUGGING
- 7 .debug_info 000002cf 00000000 00000000 00000ae2 2**0
+ 7 .debug_info 00000309 00000000 00000000 00000b3a 2**0
CONTENTS, READONLY, DEBUGGING
- 8 .debug_abbrev 000001d4 00000000 00000000 00000db1 2**0
+ 8 .debug_abbrev 000001cd 00000000 00000000 00000e43 2**0
CONTENTS, READONLY, DEBUGGING
- 9 .debug_line 000002b2 00000000 00000000 00000f85 2**0
+ 9 .debug_line 0000033a 00000000 00000000 00001010 2**0
CONTENTS, READONLY, DEBUGGING
- 10 .debug_frame 00000050 00000000 00000000 00001238 2**2
+ 10 .debug_frame 00000050 00000000 00000000 0000134c 2**2
CONTENTS, READONLY, DEBUGGING
- 11 .debug_str 00000102 00000000 00000000 00001288 2**0
+ 11 .debug_str 00000102 00000000 00000000 0000139c 2**0
CONTENTS, READONLY, DEBUGGING
- 12 .debug_loc 000000b6 00000000 00000000 0000138a 2**0
+ 12 .debug_loc 000000de 00000000 00000000 0000149e 2**0
CONTENTS, READONLY, DEBUGGING
- 13 .debug_pubtypes 0000002b 00000000 00000000 00001440 2**0
- CONTENTS, READONLY, DEBUGGING
- 14 .debug_ranges 00000018 00000000 00000000 0000146b 2**0
+ 13 .debug_pubtypes 0000002b 00000000 00000000 0000157c 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:
@@ -67,18 +65,18 @@ Disassembly of section .text:
2e: 10 e0 ldi r17, 0x00 ; 0
30: a0 e6 ldi r26, 0x60 ; 96
32: b0 e0 ldi r27, 0x00 ; 0
- 34: e0 e8 ldi r30, 0x80 ; 128
+ 34: e6 ed ldi r30, 0xD6 ; 214
36: f2 e0 ldi r31, 0x02 ; 2
38: 02 c0 rjmp .+4 ; 0x3e <__SP_H__>
3a: 05 90 lpm r0, Z+
3c: 0d 92 st X+, r0
- 3e: a6 37 cpi r26, 0x76 ; 118
+ 3e: a8 37 cpi r26, 0x78 ; 120
40: b1 07 cpc r27, r17
42: d9 f7 brne .-10 ; 0x3a <__CCP__+0x6>
00000044 <__do_clear_bss>:
44: 10 e0 ldi r17, 0x00 ; 0
- 46: a6 e7 ldi r26, 0x76 ; 118
+ 46: a8 e7 ldi r26, 0x78 ; 120
48: b0 e0 ldi r27, 0x00 ; 0
4a: 01 c0 rjmp .+2 ; 0x4e <.do_clear_bss_start>
@@ -86,11 +84,11 @@ Disassembly of section .text:
4c: 1d 92 st X+, r1
0000004e <.do_clear_bss_start>:
- 4e: a7 37 cpi r26, 0x77 ; 119
+ 4e: a9 37 cpi r26, 0x79 ; 121
50: b1 07 cpc r27, r17
52: e1 f7 brne .-8 ; 0x4c <.do_clear_bss_loop>
54: af d0 rcall .+350 ; 0x1b4
- 56: 12 c1 rjmp .+548 ; 0x27c <_exit>
+ 56: 3d c1 rjmp .+634 ; 0x2d2 <_exit>
00000058 <__bad_interrupt>:
58: d3 cf rjmp .-90 ; 0x0 <__vectors>
@@ -272,7 +270,7 @@ void render() {
for(uint8_t f = 0;f<6;f++) {
display(frame[f],(5-f)+2);
13c: fe 01 movw r30, r28
- 13e: e1 59 subi r30, 0x91 ; 145
+ 13e: ee 58 subi r30, 0x8E ; 142
140: ff 4f sbci r31, 0xFF ; 255
142: 80 81 ld r24, Z
144: 61 2f mov r22, r17
@@ -326,33 +324,33 @@ ISR(TIMER0_COMPA_vect)
/*DDRB = 0b10111011;
PORTB = 0b10110011;*/
if (var++ >= 100) //wenn Zustand mindestens 200x10ms = 2sec. andauert
- 172: 80 91 76 00 lds r24, 0x0076
+ 172: 80 91 78 00 lds r24, 0x0078
176: 98 2f mov r25, r24
178: 9f 5f subi r25, 0xFF ; 255
- 17a: 90 93 76 00 sts 0x0076, r25
+ 17a: 90 93 78 00 sts 0x0078, r25
17e: 84 36 cpi r24, 0x64 ; 100
180: 90 f0 brcs .+36 ; 0x1a6 <__vector_13+0x42>
{
if(frame[2] == 14) {
- 182: 80 91 71 00 lds r24, 0x0071
+ 182: 80 91 74 00 lds r24, 0x0074
186: 8e 30 cpi r24, 0x0E ; 14
188: 39 f4 brne .+14 ; 0x198 <__vector_13+0x34>
frame[2] = 0;
- 18a: 10 92 71 00 sts 0x0071, r1
+ 18a: 10 92 74 00 sts 0x0074, r1
frame[3] = 1;
18e: 81 e0 ldi r24, 0x01 ; 1
- 190: 80 93 72 00 sts 0x0072, r24
+ 190: 80 93 75 00 sts 0x0075, r24
frame[4] = 2;
194: 82 e0 ldi r24, 0x02 ; 2
196: 05 c0 rjmp .+10 ; 0x1a2 <__vector_13+0x3e>
} else {
frame[2] = 14;
198: 8e e0 ldi r24, 0x0E ; 14
- 19a: 80 93 71 00 sts 0x0071, r24
+ 19a: 80 93 74 00 sts 0x0074, r24
frame[3] = 14;
- 19e: 80 93 72 00 sts 0x0072, r24
+ 19e: 80 93 75 00 sts 0x0075, r24
frame[4] = 14;
- 1a2: 80 93 73 00 sts 0x0073, r24
+ 1a2: 80 93 76 00 sts 0x0076, r24
}
}
@@ -370,157 +368,229 @@ ISR(TIMER0_COMPA_vect)
int main(void) {
1b4: af 92 push r10
1b6: bf 92 push r11
- 1b8: df 92 push r13
- 1ba: ef 92 push r14
- 1bc: ff 92 push r15
- 1be: 0f 93 push r16
- 1c0: 1f 93 push r17
- 1c2: df 93 push r29
- 1c4: cf 93 push r28
- 1c6: 0f 92 push r0
- 1c8: cd b7 in r28, 0x3d ; 61
- 1ca: de b7 in r29, 0x3e ; 62
+ 1b8: cf 92 push r12
+ 1ba: df 92 push r13
+ 1bc: ef 92 push r14
+ 1be: ff 92 push r15
+ 1c0: 0f 93 push r16
+ 1c2: 1f 93 push r17
+ 1c4: df 93 push r29
+ 1c6: cf 93 push r28
+ 1c8: 0f 92 push r0
+ 1ca: cd b7 in r28, 0x3d ; 61
+ 1cc: de b7 in r29, 0x3e ; 62
DDRB = 0;
- 1cc: 17 ba out 0x17, r1 ; 23
+ 1ce: 17 ba out 0x17, r1 ; 23
TCCR0B |= (1<
- 1e6: 60 93 71 00 sts 0x0071, r22
- frame[3] = (uint8_t)((30-j)%10);
- 1ea: 80 93 72 00 sts 0x0072, r24
- 1ee: 8b e3 ldi r24, 0x3B ; 59
- 1f0: a8 2e mov r10, r24
- 1f2: b1 2c mov r11, r1
+ 1d0: 8b e0 ldi r24, 0x0B ; 11
+ 1d2: 80 93 72 00 sts 0x0072, r24
+ 1d6: 6d e1 ldi r22, 0x1D ; 29
+ 1d8: a6 2e mov r10, r22
+ 1da: b1 2c mov r11, r1
+ for(uint8_t j=0;j<=MIN;j++) {
+ frame[2] = (uint8_t)((MIN-j)/10);
+ 1dc: 5a e0 ldi r21, 0x0A ; 10
+ 1de: e5 2e mov r14, r21
+ 1e0: f1 2c mov r15, r1
+ 1e2: c5 01 movw r24, r10
+ 1e4: b7 01 movw r22, r14
+ 1e6: 4e d0 rcall .+156 ; 0x284 <__divmodhi4>
+ 1e8: 60 93 74 00 sts 0x0074, r22
+ frame[3] = (uint8_t)((MIN-j)%10);
+ 1ec: 80 93 75 00 sts 0x0075, r24
+ 1f0: 0b e3 ldi r16, 0x3B ; 59
+ 1f2: 10 e0 ldi r17, 0x00 ; 0
for(uint8_t i=0;i<=59;i++) {
+ 1f4: 20 e0 ldi r18, 0x00 ; 0
frame[4] = (uint8_t)((59-i)/10);
- 1f4: c5 01 movw r24, r10
- 1f6: b7 01 movw r22, r14
- 1f8: 1a d0 rcall .+52 ; 0x22e <__divmodhi4>
- 1fa: 60 93 73 00 sts 0x0073, r22
+ 1f6: c8 01 movw r24, r16
+ 1f8: b7 01 movw r22, r14
+ 1fa: 44 d0 rcall .+136 ; 0x284 <__divmodhi4>
+ 1fc: 60 93 76 00 sts 0x0076, r22
frame[5] = (uint8_t)((59-i)%10);
- 1fe: 80 93 74 00 sts 0x0074, r24
+ 200: 80 93 77 00 sts 0x0077, r24
+ frame[0] = (i%2==0)?11:14;
+ 204: 20 ff sbrs r18, 0
+ 206: 02 c0 rjmp .+4 ; 0x20c
+ 208: 8e e0 ldi r24, 0x0E ; 14
+ 20a: 01 c0 rjmp .+2 ; 0x20e
+ 20c: 8b e0 ldi r24, 0x0B ; 11
+ 20e: 80 93 72 00 sts 0x0072, r24
+ 212: 42 e5 ldi r20, 0x52 ; 82
+ 214: d4 2e mov r13, r20
for(uint8_t k=0;k<82;k++) {
- 202: 80 e0 ldi r24, 0x00 ; 0
render();
- 204: 89 83 std Y+1, r24 ; 0x01
- 206: 94 df rcall .-216 ; 0x130
- frame[2] = (uint8_t)((30-j)/10);
- frame[3] = (uint8_t)((30-j)%10);
+ 216: 29 83 std Y+1, r18 ; 0x01
+ 218: 8b df rcall .-234 ; 0x130
+ 21a: da 94 dec r13
+ frame[3] = (uint8_t)((MIN-j)%10);
for(uint8_t i=0;i<=59;i++) {
frame[4] = (uint8_t)((59-i)/10);
frame[5] = (uint8_t)((59-i)%10);
+ frame[0] = (i%2==0)?11:14;
for(uint8_t k=0;k<82;k++) {
- 208: 89 81 ldd r24, Y+1 ; 0x01
- 20a: 8f 5f subi r24, 0xFF ; 255
- 20c: 82 35 cpi r24, 0x52 ; 82
- 20e: d1 f7 brne .-12 ; 0x204
- 210: 08 94 sec
- 212: a1 08 sbc r10, r1
- 214: b1 08 sbc r11, r1
+ 21c: 29 81 ldd r18, Y+1 ; 0x01
+ 21e: dd 20 and r13, r13
+ 220: d1 f7 brne .-12 ; 0x216
while(1){
frame[0] = 11;
- for(uint8_t j=0;j<=30;j++) {
- frame[2] = (uint8_t)((30-j)/10);
- frame[3] = (uint8_t)((30-j)%10);
+ for(uint8_t j=0;j<=MIN;j++) {
+ frame[2] = (uint8_t)((MIN-j)/10);
+ frame[3] = (uint8_t)((MIN-j)%10);
for(uint8_t i=0;i<=59;i++) {
- 216: 8f ef ldi r24, 0xFF ; 255
- 218: a8 16 cp r10, r24
- 21a: 8f ef ldi r24, 0xFF ; 255
- 21c: b8 06 cpc r11, r24
- 21e: 51 f7 brne .-44 ; 0x1f4
- 220: 01 50 subi r16, 0x01 ; 1
- 222: 10 40 sbci r17, 0x00 ; 0
+ 222: 2f 5f subi r18, 0xFF ; 255
+ 224: 01 50 subi r16, 0x01 ; 1
+ 226: 10 40 sbci r17, 0x00 ; 0
+ 228: 2c 33 cpi r18, 0x3C ; 60
+ 22a: 29 f7 brne .-54 ; 0x1f6
+ 22c: 08 94 sec
+ 22e: a1 08 sbc r10, r1
+ 230: b1 08 sbc r11, r1
OCR0A = 250; //geladen mit 10ms
TIMSK |= (1<
- 22c: d5 cf rjmp .-86 ; 0x1d8
+ for(uint8_t j=0;j<=MIN;j++) {
+ 232: 8f ef ldi r24, 0xFF ; 255
+ 234: a8 16 cp r10, r24
+ 236: 8f ef ldi r24, 0xFF ; 255
+ 238: b8 06 cpc r11, r24
+ 23a: 99 f6 brne .-90 ; 0x1e2
+ render();
+ }
+ }
+ }
+ while(1) {
+ frame[0] = 10;
+ 23c: 3a e0 ldi r19, 0x0A ; 10
+ 23e: c3 2e mov r12, r19
+ frame[2] = 15;
+ 240: 2f e0 ldi r18, 0x0F ; 15
+ 242: e2 2e mov r14, r18
+ frame[3] = 16;
+ 244: 90 e1 ldi r25, 0x10 ; 16
+ 246: f9 2e mov r15, r25
+ frame[4] = 17;
+ 248: 81 e1 ldi r24, 0x11 ; 17
+ 24a: d8 2e mov r13, r24
+ frame[5] = 15;
+ for(uint8_t k=0;k<82;k++) {
+ render();
+ }
+ frame[2] = 14;
+ 24c: 0e e0 ldi r16, 0x0E ; 14
+ render();
+ }
+ }
+ }
+ while(1) {
+ frame[0] = 10;
+ 24e: c0 92 72 00 sts 0x0072, r12
+ frame[2] = 15;
+ 252: e0 92 74 00 sts 0x0074, r14
+ frame[3] = 16;
+ 256: f0 92 75 00 sts 0x0075, r15
+ frame[4] = 17;
+ 25a: d0 92 76 00 sts 0x0076, r13
+ frame[5] = 15;
+ 25e: e0 92 77 00 sts 0x0077, r14
+ 262: 12 e5 ldi r17, 0x52 ; 82
+ for(uint8_t k=0;k<82;k++) {
+ render();
+ 264: 65 df rcall .-310 ; 0x130
+ 266: 11 50 subi r17, 0x01 ; 1
+ frame[0] = 10;
+ frame[2] = 15;
+ frame[3] = 16;
+ frame[4] = 17;
+ frame[5] = 15;
+ for(uint8_t k=0;k<82;k++) {
+ 268: e9 f7 brne .-6 ; 0x264
+ render();
+ }
+ frame[2] = 14;
+ 26a: 00 93 74 00 sts 0x0074, r16
+ frame[3] = 14;
+ 26e: 00 93 75 00 sts 0x0075, r16
+ frame[4] = 14;
+ 272: 00 93 76 00 sts 0x0076, r16
+ frame[5] = 14;
+ 276: 00 93 77 00 sts 0x0077, r16
+ 27a: 12 e5 ldi r17, 0x52 ; 82
+ for(uint8_t k=0;k<82;k++) {
+ render();
+ 27c: 59 df rcall .-334 ; 0x130
+ 27e: 11 50 subi r17, 0x01 ; 1
+ }
+ frame[2] = 14;
+ frame[3] = 14;
+ frame[4] = 14;
+ frame[5] = 14;
+ for(uint8_t k=0;k<82;k++) {
+ 280: e9 f7 brne .-6 ; 0x27c
+ 282: e5 cf rjmp .-54 ; 0x24e
-0000022e <__divmodhi4>:
- 22e: 97 fb bst r25, 7
- 230: 09 2e mov r0, r25
- 232: 07 26 eor r0, r23
- 234: 0a d0 rcall .+20 ; 0x24a <__divmodhi4_neg1>
- 236: 77 fd sbrc r23, 7
- 238: 04 d0 rcall .+8 ; 0x242 <__divmodhi4_neg2>
- 23a: 0c d0 rcall .+24 ; 0x254 <__udivmodhi4>
- 23c: 06 d0 rcall .+12 ; 0x24a <__divmodhi4_neg1>
- 23e: 00 20 and r0, r0
- 240: 1a f4 brpl .+6 ; 0x248 <__divmodhi4_exit>
+00000284 <__divmodhi4>:
+ 284: 97 fb bst r25, 7
+ 286: 09 2e mov r0, r25
+ 288: 07 26 eor r0, r23
+ 28a: 0a d0 rcall .+20 ; 0x2a0 <__divmodhi4_neg1>
+ 28c: 77 fd sbrc r23, 7
+ 28e: 04 d0 rcall .+8 ; 0x298 <__divmodhi4_neg2>
+ 290: 0c d0 rcall .+24 ; 0x2aa <__udivmodhi4>
+ 292: 06 d0 rcall .+12 ; 0x2a0 <__divmodhi4_neg1>
+ 294: 00 20 and r0, r0
+ 296: 1a f4 brpl .+6 ; 0x29e <__divmodhi4_exit>
-00000242 <__divmodhi4_neg2>:
- 242: 70 95 com r23
- 244: 61 95 neg r22
- 246: 7f 4f sbci r23, 0xFF ; 255
+00000298 <__divmodhi4_neg2>:
+ 298: 70 95 com r23
+ 29a: 61 95 neg r22
+ 29c: 7f 4f sbci r23, 0xFF ; 255
-00000248 <__divmodhi4_exit>:
- 248: 08 95 ret
+0000029e <__divmodhi4_exit>:
+ 29e: 08 95 ret
-0000024a <__divmodhi4_neg1>:
- 24a: f6 f7 brtc .-4 ; 0x248 <__divmodhi4_exit>
- 24c: 90 95 com r25
- 24e: 81 95 neg r24
- 250: 9f 4f sbci r25, 0xFF ; 255
- 252: 08 95 ret
+000002a0 <__divmodhi4_neg1>:
+ 2a0: f6 f7 brtc .-4 ; 0x29e <__divmodhi4_exit>
+ 2a2: 90 95 com r25
+ 2a4: 81 95 neg r24
+ 2a6: 9f 4f sbci r25, 0xFF ; 255
+ 2a8: 08 95 ret
-00000254 <__udivmodhi4>:
- 254: aa 1b sub r26, r26
- 256: bb 1b sub r27, r27
- 258: 51 e1 ldi r21, 0x11 ; 17
- 25a: 07 c0 rjmp .+14 ; 0x26a <__udivmodhi4_ep>
+000002aa <__udivmodhi4>:
+ 2aa: aa 1b sub r26, r26
+ 2ac: bb 1b sub r27, r27
+ 2ae: 51 e1 ldi r21, 0x11 ; 17
+ 2b0: 07 c0 rjmp .+14 ; 0x2c0 <__udivmodhi4_ep>
-0000025c <__udivmodhi4_loop>:
- 25c: aa 1f adc r26, r26
- 25e: bb 1f adc r27, r27
- 260: a6 17 cp r26, r22
- 262: b7 07 cpc r27, r23
- 264: 10 f0 brcs .+4 ; 0x26a <__udivmodhi4_ep>
- 266: a6 1b sub r26, r22
- 268: b7 0b sbc r27, r23
+000002b2 <__udivmodhi4_loop>:
+ 2b2: aa 1f adc r26, r26
+ 2b4: bb 1f adc r27, r27
+ 2b6: a6 17 cp r26, r22
+ 2b8: b7 07 cpc r27, r23
+ 2ba: 10 f0 brcs .+4 ; 0x2c0 <__udivmodhi4_ep>
+ 2bc: a6 1b sub r26, r22
+ 2be: b7 0b sbc r27, r23
-0000026a <__udivmodhi4_ep>:
- 26a: 88 1f adc r24, r24
- 26c: 99 1f adc r25, r25
- 26e: 5a 95 dec r21
- 270: a9 f7 brne .-22 ; 0x25c <__udivmodhi4_loop>
- 272: 80 95 com r24
- 274: 90 95 com r25
- 276: bc 01 movw r22, r24
- 278: cd 01 movw r24, r26
- 27a: 08 95 ret
+000002c0 <__udivmodhi4_ep>:
+ 2c0: 88 1f adc r24, r24
+ 2c2: 99 1f adc r25, r25
+ 2c4: 5a 95 dec r21
+ 2c6: a9 f7 brne .-22 ; 0x2b2 <__udivmodhi4_loop>
+ 2c8: 80 95 com r24
+ 2ca: 90 95 com r25
+ 2cc: bc 01 movw r22, r24
+ 2ce: cd 01 movw r24, r26
+ 2d0: 08 95 ret
-0000027c <_exit>:
- 27c: f8 94 cli
+000002d2 <_exit>:
+ 2d2: f8 94 cli
-0000027e <__stop_program>:
- 27e: ff cf rjmp .-2 ; 0x27e <__stop_program>
+000002d4 <__stop_program>:
+ 2d4: ff cf rjmp .-2 ; 0x2d4 <__stop_program>
diff --git a/Timer/default/Timer.map b/Timer/default/Timer.map
index c330761..8d3bc3a 100644
--- a/Timer/default/Timer.map
+++ b/Timer/default/Timer.map
@@ -120,7 +120,7 @@ LOAD e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a
.rela.plt
*(.rela.plt)
-.text 0x00000000 0x280
+.text 0x00000000 0x2d6
*(.vectors)
.vectors 0x00000000 0x26 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr25/crttn2313.o
0x00000000 __vector_default
@@ -194,31 +194,31 @@ LOAD e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a
0x00000058 __vector_10
0x00000058 __vector_16
0x00000058 __vector_18
- .text 0x0000005a 0x1d4 Timer.o
+ .text 0x0000005a 0x22a Timer.o
0x0000005a display
0x00000130 render
0x00000164 __vector_13
0x000001b4 main
- .text 0x0000022e 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_divmodhi4.o)
- .text 0x0000022e 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_exit.o)
- .text 0x0000022e 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_copy_data.o)
- .text 0x0000022e 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_clear_bss.o)
- .text 0x0000022e 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_udivmodhi4.o)
- 0x0000022e . = ALIGN (0x2)
+ .text 0x00000284 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_divmodhi4.o)
+ .text 0x00000284 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_exit.o)
+ .text 0x00000284 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_copy_data.o)
+ .text 0x00000284 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_clear_bss.o)
+ .text 0x00000284 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_udivmodhi4.o)
+ 0x00000284 . = ALIGN (0x2)
*(.text.*)
- .text.libgcc 0x0000022e 0x26 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_divmodhi4.o)
- 0x0000022e _div
- 0x0000022e __divmodhi4
- .text.libgcc 0x00000254 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_exit.o)
- .text.libgcc 0x00000254 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_copy_data.o)
- .text.libgcc 0x00000254 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_clear_bss.o)
- .text.libgcc 0x00000254 0x28 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_udivmodhi4.o)
- 0x00000254 __udivmodhi4
- 0x0000027c . = ALIGN (0x2)
+ .text.libgcc 0x00000284 0x26 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_divmodhi4.o)
+ 0x00000284 _div
+ 0x00000284 __divmodhi4
+ .text.libgcc 0x000002aa 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_exit.o)
+ .text.libgcc 0x000002aa 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_copy_data.o)
+ .text.libgcc 0x000002aa 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_clear_bss.o)
+ .text.libgcc 0x000002aa 0x28 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_udivmodhi4.o)
+ 0x000002aa __udivmodhi4
+ 0x000002d2 . = ALIGN (0x2)
*(.fini9)
- .fini9 0x0000027c 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_exit.o)
- 0x0000027c _exit
- 0x0000027c exit
+ .fini9 0x000002d2 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_exit.o)
+ 0x000002d2 _exit
+ 0x000002d2 exit
*(.fini9)
*(.fini8)
*(.fini8)
@@ -237,54 +237,53 @@ LOAD e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a
*(.fini1)
*(.fini1)
*(.fini0)
- .fini0 0x0000027c 0x4 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_exit.o)
+ .fini0 0x000002d2 0x4 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_exit.o)
*(.fini0)
- 0x00000280 _etext = .
+ 0x000002d6 _etext = .
-.data 0x00800060 0x16 load address 0x00000280
+.data 0x00800060 0x18 load address 0x000002d6
0x00800060 PROVIDE (__data_start, .)
*(.data)
.data 0x00800060 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr25/crttn2313.o
- .data 0x00800060 0x15 Timer.o
+ .data 0x00800060 0x18 Timer.o
0x00800060 segs
- 0x0080006f frame
- .data 0x00800075 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_divmodhi4.o)
- .data 0x00800075 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_exit.o)
- .data 0x00800075 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_copy_data.o)
- .data 0x00800075 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_clear_bss.o)
- .data 0x00800075 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_udivmodhi4.o)
+ 0x00800072 frame
+ .data 0x00800078 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_divmodhi4.o)
+ .data 0x00800078 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_exit.o)
+ .data 0x00800078 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_copy_data.o)
+ .data 0x00800078 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_clear_bss.o)
+ .data 0x00800078 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_udivmodhi4.o)
*(.data*)
*(.rodata)
*(.rodata*)
*(.gnu.linkonce.d*)
- 0x00800076 . = ALIGN (0x2)
- *fill* 0x00800075 0x1 00
- 0x00800076 _edata = .
- 0x00800076 PROVIDE (__data_end, .)
+ 0x00800078 . = ALIGN (0x2)
+ 0x00800078 _edata = .
+ 0x00800078 PROVIDE (__data_end, .)
-.bss 0x00800076 0x1
- 0x00800076 PROVIDE (__bss_start, .)
+.bss 0x00800078 0x1
+ 0x00800078 PROVIDE (__bss_start, .)
*(.bss)
- .bss 0x00800076 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr25/crttn2313.o
- .bss 0x00800076 0x1 Timer.o
- 0x00800076 var
- .bss 0x00800077 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_divmodhi4.o)
- .bss 0x00800077 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_exit.o)
- .bss 0x00800077 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_copy_data.o)
- .bss 0x00800077 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_clear_bss.o)
- .bss 0x00800077 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_udivmodhi4.o)
+ .bss 0x00800078 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr25/crttn2313.o
+ .bss 0x00800078 0x1 Timer.o
+ 0x00800078 var
+ .bss 0x00800079 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_divmodhi4.o)
+ .bss 0x00800079 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_exit.o)
+ .bss 0x00800079 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_copy_data.o)
+ .bss 0x00800079 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_clear_bss.o)
+ .bss 0x00800079 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_udivmodhi4.o)
*(.bss*)
*(COMMON)
- 0x00800077 PROVIDE (__bss_end, .)
- 0x00000280 __data_load_start = LOADADDR (.data)
- 0x00000296 __data_load_end = (__data_load_start + SIZEOF (.data))
+ 0x00800079 PROVIDE (__bss_end, .)
+ 0x000002d6 __data_load_start = LOADADDR (.data)
+ 0x000002ee __data_load_end = (__data_load_start + SIZEOF (.data))
-.noinit 0x00800077 0x0
- 0x00800077 PROVIDE (__noinit_start, .)
+.noinit 0x00800079 0x0
+ 0x00800079 PROVIDE (__noinit_start, .)
*(.noinit*)
- 0x00800077 PROVIDE (__noinit_end, .)
- 0x00800077 _end = .
- 0x00800077 PROVIDE (__heap_start, .)
+ 0x00800079 PROVIDE (__noinit_end, .)
+ 0x00800079 _end = .
+ 0x00800079 PROVIDE (__heap_start, .)
.eeprom 0x00810000 0x0
*(.eeprom*)
@@ -348,18 +347,18 @@ LOAD e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a
.debug_pubnames
0x00000000 0x5d Timer.o
-.debug_info 0x00000000 0x2cf
+.debug_info 0x00000000 0x309
*(.debug_info)
- .debug_info 0x00000000 0x2cf Timer.o
+ .debug_info 0x00000000 0x309 Timer.o
*(.gnu.linkonce.wi.*)
-.debug_abbrev 0x00000000 0x1d4
+.debug_abbrev 0x00000000 0x1cd
*(.debug_abbrev)
- .debug_abbrev 0x00000000 0x1d4 Timer.o
+ .debug_abbrev 0x00000000 0x1cd Timer.o
-.debug_line 0x00000000 0x2b2
+.debug_line 0x00000000 0x33a
*(.debug_line)
- .debug_line 0x00000000 0x2b2 Timer.o
+ .debug_line 0x00000000 0x33a Timer.o
.debug_frame 0x00000000 0x50
*(.debug_frame)
@@ -370,9 +369,9 @@ LOAD e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a
.debug_str 0x00000000 0x102 Timer.o
0x13b (size before relaxing)
-.debug_loc 0x00000000 0xb6
+.debug_loc 0x00000000 0xde
*(.debug_loc)
- .debug_loc 0x00000000 0xb6 Timer.o
+ .debug_loc 0x00000000 0xde Timer.o
.debug_macinfo
*(.debug_macinfo)
@@ -383,6 +382,3 @@ LOAD linker stubs
0x00000000 0x2b
.debug_pubtypes
0x00000000 0x2b Timer.o
-
-.debug_ranges 0x00000000 0x18
- .debug_ranges 0x00000000 0x18 Timer.o
diff --git a/Timer/timer.aws b/Timer/timer.aws
new file mode 100644
index 0000000..92bfa76
--- /dev/null
+++ b/Timer/timer.aws
@@ -0,0 +1 @@
+