20130116-183033

This commit is contained in:
BlubbFish 2013-01-16 17:30:08 +00:00
parent 55c257a06c
commit 2b4090bb57
7 changed files with 234 additions and 233 deletions

BIN
Timer-Zeit.xlsx Normal file

Binary file not shown.

View File

@ -15,12 +15,11 @@ volatile uint8_t segs[] = {
0b00000111, //7
0b01111111, //8
0b01101111, //9
0b01000000, //-
0b01110000, //+
0b01000110, //-1
0b01110110, //+1
0b00000000, //Blank
//15
0b01000000, //- 10
0b01110000, //+ 11
0b01000110, //-1 12
0b01110110, //+1 13
0b00000000, //Blank 14
0b01111001, //E 15
0b00110111, //N 16
0b01011110, //d 17
@ -47,7 +46,7 @@ volatile uint8_t segs[] = {
// 2,0,1,3,14,2,0,1,3,14,2,0,1,3}; //2013 2013 2013
// 14,14,18,18,19,19,20,20};
volatile uint8_t frame[6] = {14,14, 14,14, 14,14};
uint8_t var = 0;
uint8_t timer_delay = 0;
void display(uint8_t z, uint8_t p) {
uint8_t ddr = (segs[z]<<1);
@ -85,10 +84,10 @@ void timerdown(uint8_t min) {
frame[4] = 0;
frame[5] = 0;
cli();
TCCR0A |= (1<<WGM01) | (0<<WGM00);
TCCR0B |= (1<<CS00 ) | (1<<CS02);
OCR0A = 250; //geladen mit was komischem 1000/31 = 32,258ms
TIMSK |= (1<<OCIE0A);
TCCR0A |= (1<<WGM01) | (0<<WGM00); //MODE CTC, Matches wenn TCNT0++ = OCR0A
TCCR0B |= (1<<CS00 ) | (1<<CS02); //Clock / 1024 Mode
OCR0A = 254; //0->254 Zählen
TIMSK |= (1<<OCIE0A); //Interrupt by OCF0A Flag
sei();
}
@ -257,18 +256,14 @@ void blink2013() {
}
//ISR// (TIMER1_//OVF_vect)
ISR(TIMER0_COMPA_vect)
{
// TCNT1L = 250;
// Interrupt Aktion alle
// (8000000/256)/256 Hz = 122,0703125 Hz
// 1/122,0703125 s = 8,192 ms
// DDRB = 0b10111011;
// PORTB = 0b10110011;
if (var >= 31) { //wenn Zustand mindestens 200x10ms = 2sec. andauert
var = 0;
if (timer_delay == 30) { //wenn Zustand mindestens 30x32,512ms = 0,97536sec. andauert
OCR0A = 193; //Restliche Sekunde abwarten
}
if(timer_delay == 31) { //wenn Zustand 1,00006400s gedauert hat ... 64µs Fehler!
timer_delay = 0;
OCR0A = 254;
if(frame[5] > 0) {
frame[5] = frame[5]--;
} else {
@ -296,10 +291,10 @@ ISR(TIMER0_COMPA_vect)
frame[5] = (uint8_t)((59-i)%10);
frame[0] = (i%2==0)?11:14;*/
} else {
var++;
timer_delay++;
}
}//*/
}
int main(void) {
DDRB = 0;
@ -308,7 +303,7 @@ int main(void) {
//Warten bis Startknopf
start();
//Timer 20 nach unten
timerdown(20);
timerdown(22);
while(1) {
render();
if(frame[2] == 0 && frame[3] == 0 && frame[4] == 0 && frame[5] == 0) {

Binary file not shown.

View File

@ -1,9 +1,9 @@
:1000000012C02AC029C028C027C026C025C024C0CD
:1000100023C022C021C020C01FC075C21DC01CC08B
:100020001BC01AC019C011241FBECFEDCDBF10E0F8
:10003000A0E6B0E0E4E2F6E002C005900D92A83937
:10003000A0E6B0E0E4E3F6E002C005900D92A83936
:10004000B107D9F710E0A8E9B0E001C01D92A939C5
:10005000B107E1F7B1D2E4C2D3CFE82FF0E0E05A24
:10005000B107E1F7B9D2ECC2D3CFE82FF0E0E05A14
:10006000FF4FA081AA0F7081770FE1E041E050E0DF
:100070001FC08E2F90E02A2F30E00E2E02C0359543
:1000800027950A94E2F7019720FF08C09A0102C061
@ -18,13 +18,13 @@
:10011000872318BAA7BB88BB08951F93CF93DF939B
:1001200017E0C0E0D0E0FE01E258FF4F8081612F70
:1001300094DF85E88A95F1F700002196115011307F
:1001400091F7DF91CF911F9108956AE05DD280937E
:1001400091F7DF91CF911F9108956AE065D2809376
:100150008000909381001092820010928300F894A6
:1001600080B7826080BF83B7856083BF8AEF86BF18
:1001600080B7826080BF83B7856083BF8EEF86BF14
:1001700089B7816089BF78940895EF92FF920F93B9
:100180001F939AE090937E00082F9AE0F92E1FC0EB
:10019000802F6F2D39D2809380009093810010E0E2
:1001A000812F6F2D31D2809382009093830010FFB6
:10019000802F6F2D41D2809380009093810010E0DA
:1001A000812F6F2D39D2809382009093830010FFAE
:1001B00002C08EE001C08AE080937E0082E5E82ED6
:1001C000ACDFEA94E9F71F5F1C3351F70F5F043689
:1001D000F8F21F910F91FF90EF9008958C9A9498E8
@ -51,7 +51,7 @@
:10032000D0E02FE0C22E90E1A92E81E1B82EB3E0FB
:100330008B2EAEE0DA2EFAE09F2EC0928000A092C3
:100340008100B0928200C0928300EE2420C08E2DE6
:10035000682D5AD19923C9F4809180008E3059F4C8
:10035000682D62D19923C9F4809180008E3059F4C0
:1003600090927E00C0928000A0928100B0928200A4
:10037000C09283000AC0D0927E00D0928000D092BA
:100380008100D0928200D0928300C7DEE3948E2D4C
@ -79,27 +79,28 @@
:1004E0008100109382001093830064E1F62E15DEE4
:1004F000FA94E9F7015021F71F910F91FF90EF90C7
:10050000DF90CF9008951F920F920FB60F92112493
:100510008F939F93809198008F3108F443C010927D
:10052000980080918300882341F08091830080931C
:1005300083008150809383002BC089E080938300E7
:1005400090918200992341F08091820080938200F3
:100550008150809382001CC095E09093820090911E
:100560008100992341F08091810080938100815026
:10057000809381000DC08093810090918000992329
:1005800029F08091800080938000815080938000CA
:1005900080917E008E3011F48BE001C08EE080935C
:1005A0007E0003C08F5F809398009F918F910F9082
:1005B0000FBE0F901F90189517BA10DE84E1C5DDAD
:1005C000ACDD809180008823D9F780918100882359
:1005D000B9F780918200882399F78091830088235E
:1005E00079F719BE0ADE89DE8AE080937E008FE00B
:1005F0008093800090E19093810091E1909382003C
:10060000809383008ADDFECF991B79E004C0991F97
:10061000961708F0961B881F7A95C9F7809508955C
:04062000F894FFCF7C
:100624003F065B4F666D7D077F6F407046760079AD
:10063400375E71315C763C1E067739073E0F0E0E2D
:100644000E0E0E0E121314150F0E16170F1815108A
:08065400191A151B0F100E000E
:100510008F939F93809198008E3111F481EC86BF68
:10052000809198008F3109F045C0109298008EEFAD
:1005300086BF80918300882341F08091830080935F
:1005400083008150809383002BC089E080938300D7
:1005500090918200992341F08091820080938200E3
:100560008150809382001CC095E09093820090910E
:100570008100992341F08091810080938100815016
:10058000809381000DC08093810090918000992319
:1005900029F08091800080938000815080938000BA
:1005A00080917E008E3011F48BE001C08EE080934C
:1005B0007E0003C08F5F809398009F918F910F9072
:1005C0000FBE0F901F90189517BA08DE86E1BDDDAB
:1005D000A4DD809180008823D9F780918100882351
:1005E000B9F780918200882399F78091830088234E
:1005F00079F719BE02DE81DE8AE080937E008FE00B
:100600008093800090E19093810091E1909382002B
:100610008093830082DDFECF991B79E004C0991F8F
:10062000961708F0961B881F7A95C9F7809508954C
:04063000F894FFCF6C
:100634003F065B4F666D7D077F6F4070467600799D
:10064400375E71315C763C1E067739073E0F0E0E1D
:100654000E0E0E0E121314150F0E16170F1815107A
:08066400191A151B0F100E00FE
:04000003000001DC1C
:00000001FF

View File

@ -3,35 +3,35 @@ Timer.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 00000624 00000000 00000000 00000094 2**1
0 .text 00000634 00000000 00000000 00000094 2**1
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .data 00000038 00800060 00000624 000006b8 2**0
1 .data 00000038 00800060 00000634 000006c8 2**0
CONTENTS, ALLOC, LOAD, DATA
2 .bss 00000001 00800098 00800098 000006f0 2**0
2 .bss 00000001 00800098 00800098 00000700 2**0
ALLOC
3 .stab 000006b4 00000000 00000000 000006f0 2**2
3 .stab 000006b4 00000000 00000000 00000700 2**2
CONTENTS, READONLY, DEBUGGING
4 .stabstr 00000085 00000000 00000000 00000da4 2**0
4 .stabstr 00000085 00000000 00000000 00000db4 2**0
CONTENTS, READONLY, DEBUGGING
5 .debug_aranges 00000020 00000000 00000000 00000e29 2**0
5 .debug_aranges 00000020 00000000 00000000 00000e39 2**0
CONTENTS, READONLY, DEBUGGING
6 .debug_pubnames 000000cc 00000000 00000000 00000e49 2**0
6 .debug_pubnames 000000d4 00000000 00000000 00000e59 2**0
CONTENTS, READONLY, DEBUGGING
7 .debug_info 00000696 00000000 00000000 00000f15 2**0
7 .debug_info 00000696 00000000 00000000 00000f2d 2**0
CONTENTS, READONLY, DEBUGGING
8 .debug_abbrev 00000208 00000000 00000000 000015ab 2**0
8 .debug_abbrev 000001e6 00000000 00000000 000015c3 2**0
CONTENTS, READONLY, DEBUGGING
9 .debug_line 00000860 00000000 00000000 000017b3 2**0
9 .debug_line 00000878 00000000 00000000 000017a9 2**0
CONTENTS, READONLY, DEBUGGING
10 .debug_frame 000000d0 00000000 00000000 00002014 2**2
10 .debug_frame 000000d0 00000000 00000000 00002024 2**2
CONTENTS, READONLY, DEBUGGING
11 .debug_str 00000174 00000000 00000000 000020e4 2**0
11 .debug_str 00000180 00000000 00000000 000020f4 2**0
CONTENTS, READONLY, DEBUGGING
12 .debug_loc 00000503 00000000 00000000 00002258 2**0
12 .debug_loc 00000503 00000000 00000000 00002274 2**0
CONTENTS, READONLY, DEBUGGING
13 .debug_pubtypes 00000038 00000000 00000000 0000275b 2**0
13 .debug_pubtypes 00000038 00000000 00000000 00002777 2**0
CONTENTS, READONLY, DEBUGGING
14 .debug_ranges 00000018 00000000 00000000 00002793 2**0
14 .debug_ranges 00000018 00000000 00000000 000027af 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:
@ -67,7 +67,7 @@ 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: e4 e2 ldi r30, 0x24 ; 36
34: e4 e3 ldi r30, 0x34 ; 52
36: f6 e0 ldi r31, 0x06 ; 6
38: 02 c0 rjmp .+4 ; 0x3e <__SP_H__>
3a: 05 90 lpm r0, Z+
@ -89,8 +89,8 @@ Disassembly of section .text:
4e: a9 39 cpi r26, 0x99 ; 153
50: b1 07 cpc r27, r17
52: e1 f7 brne .-8 ; 0x4c <.do_clear_bss_loop>
54: b1 d2 rcall .+1378 ; 0x5b8 <main>
56: e4 c2 rjmp .+1480 ; 0x620 <_exit>
54: b9 d2 rcall .+1394 ; 0x5c8 <main>
56: ec c2 rjmp .+1496 ; 0x630 <_exit>
00000058 <__bad_interrupt>:
58: d3 cf rjmp .-90 ; 0x0 <__vectors>
@ -98,7 +98,7 @@ Disassembly of section .text:
0000005a <display>:
// 14,14,18,18,19,19,20,20};
volatile uint8_t frame[6] = {14,14, 14,14, 14,14};
uint8_t var = 0;
uint8_t timer_delay = 0;
void display(uint8_t z, uint8_t p) {
uint8_t ddr = (segs[z]<<1);
@ -119,7 +119,7 @@ void display(uint8_t z, uint8_t p) {
ddr &= ~(1<<(i-1));
6c: 41 e0 ldi r20, 0x01 ; 1
6e: 50 e0 ldi r21, 0x00 ; 0
uint8_t var = 0;
uint8_t timer_delay = 0;
void display(uint8_t z, uint8_t p) {
uint8_t ddr = (segs[z]<<1);
@ -160,7 +160,7 @@ void display(uint8_t z, uint8_t p) {
a8: c9 01 movw r24, r18
aa: 80 95 com r24
ac: a8 23 and r26, r24
uint8_t var = 0;
uint8_t timer_delay = 0;
void display(uint8_t z, uint8_t p) {
uint8_t ddr = (segs[z]<<1);
@ -303,7 +303,7 @@ void render() {
void timerdown(uint8_t min) {
frame[2] = min/10;
14a: 6a e0 ldi r22, 0x0A ; 10
14c: 5d d2 rcall .+1210 ; 0x608 <__udivmodqi4>
14c: 65 d2 rcall .+1226 ; 0x618 <__udivmodqi4>
14e: 80 93 80 00 sts 0x0080, r24
frame[3] = min%10;
152: 90 93 81 00 sts 0x0081, r25
@ -313,18 +313,18 @@ void timerdown(uint8_t min) {
15a: 10 92 83 00 sts 0x0083, r1
cli();
15e: f8 94 cli
TCCR0A |= (1<<WGM01) | (0<<WGM00);
TCCR0A |= (1<<WGM01) | (0<<WGM00); //MODE CTC, Matches wenn TCNT0++ = OCR0A
160: 80 b7 in r24, 0x30 ; 48
162: 82 60 ori r24, 0x02 ; 2
164: 80 bf out 0x30, r24 ; 48
TCCR0B |= (1<<CS00 ) | (1<<CS02);
TCCR0B |= (1<<CS00 ) | (1<<CS02); //Clock / 1024 Mode
166: 83 b7 in r24, 0x33 ; 51
168: 85 60 ori r24, 0x05 ; 5
16a: 83 bf out 0x33, r24 ; 51
OCR0A = 250; //geladen mit was komischem 1000/31 = 32,258ms
16c: 8a ef ldi r24, 0xFA ; 250
OCR0A = 254; //0->254 Zählen
16c: 8e ef ldi r24, 0xFE ; 254
16e: 86 bf out 0x36, r24 ; 54
TIMSK |= (1<<OCIE0A);
TIMSK |= (1<<OCIE0A); //Interrupt by OCF0A Flag
170: 89 b7 in r24, 0x39 ; 57
172: 81 60 ori r24, 0x01 ; 1
174: 89 bf out 0x39, r24 ; 57
@ -358,7 +358,7 @@ void timerup(uint8_t min) {
frame[2] = (uint8_t)(j/10);
190: 80 2f mov r24, r16
192: 6f 2d mov r22, r15
194: 39 d2 rcall .+1138 ; 0x608 <__udivmodqi4>
194: 41 d2 rcall .+1154 ; 0x618 <__udivmodqi4>
196: 80 93 80 00 sts 0x0080, r24
frame[3] = (uint8_t)(j%10);
19a: 90 93 81 00 sts 0x0081, r25
@ -367,7 +367,7 @@ void timerup(uint8_t min) {
frame[4] = (uint8_t)(i/10);
1a0: 81 2f mov r24, r17
1a2: 6f 2d mov r22, r15
1a4: 31 d2 rcall .+1122 ; 0x608 <__udivmodqi4>
1a4: 39 d2 rcall .+1138 ; 0x618 <__udivmodqi4>
1a6: 80 93 82 00 sts 0x0082, r24
frame[5] = (uint8_t)(i%10);
1aa: 90 93 83 00 sts 0x0083, r25
@ -750,7 +750,7 @@ void endeblink() {
if(k%3==0) {
34e: 8e 2d mov r24, r14
350: 68 2d mov r22, r8
352: 5a d1 rcall .+692 ; 0x608 <__udivmodqi4>
352: 62 d1 rcall .+708 ; 0x618 <__udivmodqi4>
354: 99 23 and r25, r25
356: c9 f4 brne .+50 ; 0x38a <endeblink+0x90>
if(frame[2] == 14) {
@ -1130,7 +1130,6 @@ void blink2013() {
00000506 <__vector_13>:
//ISR// (TIMER1_//OVF_vect)
ISR(TIMER0_COMPA_vect)
{
506: 1f 92 push r1
@ -1140,185 +1139,191 @@ ISR(TIMER0_COMPA_vect)
50e: 11 24 eor r1, r1
510: 8f 93 push r24
512: 9f 93 push r25
// (8000000/256)/256 Hz = 122,0703125 Hz
// 1/122,0703125 s = 8,192 ms
// DDRB = 0b10111011;
// PORTB = 0b10110011;
if (var >= 31) { //wenn Zustand mindestens 200x10ms = 2sec. andauert
if (timer_delay == 30) { //wenn Zustand mindestens 30x32,512ms = 0,97536sec. andauert
514: 80 91 98 00 lds r24, 0x0098
518: 8f 31 cpi r24, 0x1F ; 31
51a: 08 f4 brcc .+2 ; 0x51e <__vector_13+0x18>
51c: 43 c0 rjmp .+134 ; 0x5a4 <__vector_13+0x9e>
var = 0;
51e: 10 92 98 00 sts 0x0098, r1
518: 8e 31 cpi r24, 0x1E ; 30
51a: 11 f4 brne .+4 ; 0x520 <__vector_13+0x1a>
OCR0A = 193; //Restliche Sekunde abwarten
51c: 81 ec ldi r24, 0xC1 ; 193
51e: 86 bf out 0x36, r24 ; 54
}
if(timer_delay == 31) { //wenn Zustand 1,00006400s gedauert hat ... 64µs Fehler!
520: 80 91 98 00 lds r24, 0x0098
524: 8f 31 cpi r24, 0x1F ; 31
526: 09 f0 breq .+2 ; 0x52a <__vector_13+0x24>
528: 45 c0 rjmp .+138 ; 0x5b4 <__vector_13+0xae>
timer_delay = 0;
52a: 10 92 98 00 sts 0x0098, r1
OCR0A = 254;
52e: 8e ef ldi r24, 0xFE ; 254
530: 86 bf out 0x36, r24 ; 54
if(frame[5] > 0) {
522: 80 91 83 00 lds r24, 0x0083
526: 88 23 and r24, r24
528: 41 f0 breq .+16 ; 0x53a <__vector_13+0x34>
532: 80 91 83 00 lds r24, 0x0083
536: 88 23 and r24, r24
538: 41 f0 breq .+16 ; 0x54a <__vector_13+0x44>
frame[5] = frame[5]--;
52a: 80 91 83 00 lds r24, 0x0083
52e: 80 93 83 00 sts 0x0083, r24
532: 81 50 subi r24, 0x01 ; 1
534: 80 93 83 00 sts 0x0083, r24
538: 2b c0 rjmp .+86 ; 0x590 <__vector_13+0x8a>
53a: 80 91 83 00 lds r24, 0x0083
53e: 80 93 83 00 sts 0x0083, r24
542: 81 50 subi r24, 0x01 ; 1
544: 80 93 83 00 sts 0x0083, r24
548: 2b c0 rjmp .+86 ; 0x5a0 <__vector_13+0x9a>
} else {
frame[5] = 9;
53a: 89 e0 ldi r24, 0x09 ; 9
53c: 80 93 83 00 sts 0x0083, r24
54a: 89 e0 ldi r24, 0x09 ; 9
54c: 80 93 83 00 sts 0x0083, r24
if(frame[4] > 0) {
540: 90 91 82 00 lds r25, 0x0082
544: 99 23 and r25, r25
546: 41 f0 breq .+16 ; 0x558 <__vector_13+0x52>
550: 90 91 82 00 lds r25, 0x0082
554: 99 23 and r25, r25
556: 41 f0 breq .+16 ; 0x568 <__vector_13+0x62>
frame[4] = frame[4]--;
548: 80 91 82 00 lds r24, 0x0082
54c: 80 93 82 00 sts 0x0082, r24
550: 81 50 subi r24, 0x01 ; 1
552: 80 93 82 00 sts 0x0082, r24
556: 1c c0 rjmp .+56 ; 0x590 <__vector_13+0x8a>
558: 80 91 82 00 lds r24, 0x0082
55c: 80 93 82 00 sts 0x0082, r24
560: 81 50 subi r24, 0x01 ; 1
562: 80 93 82 00 sts 0x0082, r24
566: 1c c0 rjmp .+56 ; 0x5a0 <__vector_13+0x9a>
} else {
frame[4] = 5;
558: 95 e0 ldi r25, 0x05 ; 5
55a: 90 93 82 00 sts 0x0082, r25
568: 95 e0 ldi r25, 0x05 ; 5
56a: 90 93 82 00 sts 0x0082, r25
if(frame[3] > 0) {
55e: 90 91 81 00 lds r25, 0x0081
562: 99 23 and r25, r25
564: 41 f0 breq .+16 ; 0x576 <__vector_13+0x70>
56e: 90 91 81 00 lds r25, 0x0081
572: 99 23 and r25, r25
574: 41 f0 breq .+16 ; 0x586 <__vector_13+0x80>
frame[3] = frame[3]--;
566: 80 91 81 00 lds r24, 0x0081
56a: 80 93 81 00 sts 0x0081, r24
56e: 81 50 subi r24, 0x01 ; 1
570: 80 93 81 00 sts 0x0081, r24
574: 0d c0 rjmp .+26 ; 0x590 <__vector_13+0x8a>
576: 80 91 81 00 lds r24, 0x0081
57a: 80 93 81 00 sts 0x0081, r24
57e: 81 50 subi r24, 0x01 ; 1
580: 80 93 81 00 sts 0x0081, r24
584: 0d c0 rjmp .+26 ; 0x5a0 <__vector_13+0x9a>
} else {
frame[3] = 9;
576: 80 93 81 00 sts 0x0081, r24
586: 80 93 81 00 sts 0x0081, r24
if(frame[2] > 0) {
57a: 90 91 80 00 lds r25, 0x0080
57e: 99 23 and r25, r25
580: 29 f0 breq .+10 ; 0x58c <__vector_13+0x86>
58a: 90 91 80 00 lds r25, 0x0080
58e: 99 23 and r25, r25
590: 29 f0 breq .+10 ; 0x59c <__vector_13+0x96>
frame[2] = frame[2]--;
582: 80 91 80 00 lds r24, 0x0080
586: 80 93 80 00 sts 0x0080, r24
58a: 81 50 subi r24, 0x01 ; 1
592: 80 91 80 00 lds r24, 0x0080
596: 80 93 80 00 sts 0x0080, r24
59a: 81 50 subi r24, 0x01 ; 1
} else {
frame[2] = 9;
58c: 80 93 80 00 sts 0x0080, r24
59c: 80 93 80 00 sts 0x0080, r24
}
}
}
}
frame[0] = (frame[0]==14)?11:14;
590: 80 91 7e 00 lds r24, 0x007E
594: 8e 30 cpi r24, 0x0E ; 14
596: 11 f4 brne .+4 ; 0x59c <__vector_13+0x96>
598: 8b e0 ldi r24, 0x0B ; 11
59a: 01 c0 rjmp .+2 ; 0x59e <__vector_13+0x98>
59c: 8e e0 ldi r24, 0x0E ; 14
59e: 80 93 7e 00 sts 0x007E, r24
5a2: 03 c0 rjmp .+6 ; 0x5aa <__vector_13+0xa4>
5a0: 80 91 7e 00 lds r24, 0x007E
5a4: 8e 30 cpi r24, 0x0E ; 14
5a6: 11 f4 brne .+4 ; 0x5ac <__vector_13+0xa6>
5a8: 8b e0 ldi r24, 0x0B ; 11
5aa: 01 c0 rjmp .+2 ; 0x5ae <__vector_13+0xa8>
5ac: 8e e0 ldi r24, 0x0E ; 14
5ae: 80 93 7e 00 sts 0x007E, r24
5b2: 03 c0 rjmp .+6 ; 0x5ba <__vector_13+0xb4>
frame[3] = (uint8_t)((MIN-j)%10);
frame[4] = (uint8_t)((59-i)/10);
frame[5] = (uint8_t)((59-i)%10);
frame[0] = (i%2==0)?11:14;*/
} else {
var++;
5a4: 8f 5f subi r24, 0xFF ; 255
5a6: 80 93 98 00 sts 0x0098, r24
timer_delay++;
5b4: 8f 5f subi r24, 0xFF ; 255
5b6: 80 93 98 00 sts 0x0098, r24
}
}//*/
5aa: 9f 91 pop r25
5ac: 8f 91 pop r24
5ae: 0f 90 pop r0
5b0: 0f be out 0x3f, r0 ; 63
5b2: 0f 90 pop r0
5b4: 1f 90 pop r1
5b6: 18 95 reti
}
5ba: 9f 91 pop r25
5bc: 8f 91 pop r24
5be: 0f 90 pop r0
5c0: 0f be out 0x3f, r0 ; 63
5c2: 0f 90 pop r0
5c4: 1f 90 pop r1
5c6: 18 95 reti
000005b8 <main>:
000005c8 <main>:
int main(void) {
DDRB = 0;
5b8: 17 ba out 0x17, r1 ; 23
5c8: 17 ba out 0x17, r1 ; 23
while(1){
//Warten bis Startknopf
start();
5ba: 10 de rcall .-992 ; 0x1dc <start>
5ca: 08 de rcall .-1008 ; 0x1dc <start>
//Timer 20 nach unten
timerdown(20);
5bc: 84 e1 ldi r24, 0x14 ; 20
5be: c5 dd rcall .-1142 ; 0x14a <timerdown>
timerdown(22);
5cc: 86 e1 ldi r24, 0x16 ; 22
5ce: bd dd rcall .-1158 ; 0x14a <timerdown>
while(1) {
render();
5c0: ac dd rcall .-1192 ; 0x11a <render>
5d0: a4 dd rcall .-1208 ; 0x11a <render>
if(frame[2] == 0 && frame[3] == 0 && frame[4] == 0 && frame[5] == 0) {
5c2: 80 91 80 00 lds r24, 0x0080
5c6: 88 23 and r24, r24
5c8: d9 f7 brne .-10 ; 0x5c0 <main+0x8>
5ca: 80 91 81 00 lds r24, 0x0081
5ce: 88 23 and r24, r24
5d0: b9 f7 brne .-18 ; 0x5c0 <main+0x8>
5d2: 80 91 82 00 lds r24, 0x0082
5d2: 80 91 80 00 lds r24, 0x0080
5d6: 88 23 and r24, r24
5d8: 99 f7 brne .-26 ; 0x5c0 <main+0x8>
5da: 80 91 83 00 lds r24, 0x0083
5d8: d9 f7 brne .-10 ; 0x5d0 <main+0x8>
5da: 80 91 81 00 lds r24, 0x0081
5de: 88 23 and r24, r24
5e0: 79 f7 brne .-34 ; 0x5c0 <main+0x8>
5e0: b9 f7 brne .-18 ; 0x5d0 <main+0x8>
5e2: 80 91 82 00 lds r24, 0x0082
5e6: 88 23 and r24, r24
5e8: 99 f7 brne .-26 ; 0x5d0 <main+0x8>
5ea: 80 91 83 00 lds r24, 0x0083
5ee: 88 23 and r24, r24
5f0: 79 f7 brne .-34 ; 0x5d0 <main+0x8>
TIMSK = 0;
5e2: 19 be out 0x39, r1 ; 57
5f2: 19 be out 0x39, r1 ; 57
/*for(int i=0;i<5;i++) {
weihnachten();
}
blink2013();*/
//Lauflicht 10s;
endelauflicht();
5e4: 0a de rcall .-1004 ; 0x1fa <endelauflicht>
5f4: 02 de rcall .-1020 ; 0x1fa <endelauflicht>
//Lauflicht Rand 10s
//enderand();
//Blinklicht
endeblink();
5e6: 89 de rcall .-750 ; 0x2fa <endeblink>
5f6: 81 de rcall .-766 ; 0x2fa <endeblink>
frame[0] = 10;
5e8: 8a e0 ldi r24, 0x0A ; 10
5ea: 80 93 7e 00 sts 0x007E, r24
5f8: 8a e0 ldi r24, 0x0A ; 10
5fa: 80 93 7e 00 sts 0x007E, r24
frame[2] = 15;
5ee: 8f e0 ldi r24, 0x0F ; 15
5f0: 80 93 80 00 sts 0x0080, r24
5fe: 8f e0 ldi r24, 0x0F ; 15
600: 80 93 80 00 sts 0x0080, r24
frame[3] = 16;
5f4: 90 e1 ldi r25, 0x10 ; 16
5f6: 90 93 81 00 sts 0x0081, r25
604: 90 e1 ldi r25, 0x10 ; 16
606: 90 93 81 00 sts 0x0081, r25
frame[4] = 17;
5fa: 91 e1 ldi r25, 0x11 ; 17
5fc: 90 93 82 00 sts 0x0082, r25
60a: 91 e1 ldi r25, 0x11 ; 17
60c: 90 93 82 00 sts 0x0082, r25
frame[5] = 15;
600: 80 93 83 00 sts 0x0083, r24
610: 80 93 83 00 sts 0x0083, r24
while(1) {
render();
604: 8a dd rcall .-1260 ; 0x11a <render>
606: fe cf rjmp .-4 ; 0x604 <main+0x4c>
614: 82 dd rcall .-1276 ; 0x11a <render>
616: fe cf rjmp .-4 ; 0x614 <main+0x4c>
00000608 <__udivmodqi4>:
608: 99 1b sub r25, r25
60a: 79 e0 ldi r23, 0x09 ; 9
60c: 04 c0 rjmp .+8 ; 0x616 <__udivmodqi4_ep>
00000618 <__udivmodqi4>:
618: 99 1b sub r25, r25
61a: 79 e0 ldi r23, 0x09 ; 9
61c: 04 c0 rjmp .+8 ; 0x626 <__udivmodqi4_ep>
0000060e <__udivmodqi4_loop>:
60e: 99 1f adc r25, r25
610: 96 17 cp r25, r22
612: 08 f0 brcs .+2 ; 0x616 <__udivmodqi4_ep>
614: 96 1b sub r25, r22
0000061e <__udivmodqi4_loop>:
61e: 99 1f adc r25, r25
620: 96 17 cp r25, r22
622: 08 f0 brcs .+2 ; 0x626 <__udivmodqi4_ep>
624: 96 1b sub r25, r22
00000616 <__udivmodqi4_ep>:
616: 88 1f adc r24, r24
618: 7a 95 dec r23
61a: c9 f7 brne .-14 ; 0x60e <__udivmodqi4_loop>
61c: 80 95 com r24
61e: 08 95 ret
00000626 <__udivmodqi4_ep>:
626: 88 1f adc r24, r24
628: 7a 95 dec r23
62a: c9 f7 brne .-14 ; 0x61e <__udivmodqi4_loop>
62c: 80 95 com r24
62e: 08 95 ret
00000620 <_exit>:
620: f8 94 cli
00000630 <_exit>:
630: f8 94 cli
00000622 <__stop_program>:
622: ff cf rjmp .-2 ; 0x622 <__stop_program>
00000632 <__stop_program>:
632: ff cf rjmp .-2 ; 0x632 <__stop_program>

View File

@ -118,7 +118,7 @@ LOAD e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a
.rela.plt
*(.rela.plt)
.text 0x00000000 0x624
.text 0x00000000 0x634
*(.vectors)
.vectors 0x00000000 0x26 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr25/crttn2313.o
0x00000000 __vector_default
@ -192,7 +192,7 @@ 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 0x5ae Timer.o
.text 0x0000005a 0x5be Timer.o
0x0000005a display
0x0000011a render
0x0000014a timerdown
@ -204,23 +204,23 @@ LOAD e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a
0x000003ee weihnachten
0x0000049a blink2013
0x00000506 __vector_13
0x000005b8 main
.text 0x00000608 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_udivmodqi4.o)
.text 0x00000608 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_exit.o)
.text 0x00000608 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_copy_data.o)
.text 0x00000608 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_clear_bss.o)
0x00000608 . = ALIGN (0x2)
0x000005c8 main
.text 0x00000618 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_udivmodqi4.o)
.text 0x00000618 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_exit.o)
.text 0x00000618 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_copy_data.o)
.text 0x00000618 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_clear_bss.o)
0x00000618 . = ALIGN (0x2)
*(.text.*)
.text.libgcc 0x00000608 0x18 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_udivmodqi4.o)
0x00000608 __udivmodqi4
.text.libgcc 0x00000620 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_exit.o)
.text.libgcc 0x00000620 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_copy_data.o)
.text.libgcc 0x00000620 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_clear_bss.o)
0x00000620 . = ALIGN (0x2)
.text.libgcc 0x00000618 0x18 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_udivmodqi4.o)
0x00000618 __udivmodqi4
.text.libgcc 0x00000630 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_exit.o)
.text.libgcc 0x00000630 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_copy_data.o)
.text.libgcc 0x00000630 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_clear_bss.o)
0x00000630 . = ALIGN (0x2)
*(.fini9)
.fini9 0x00000620 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_exit.o)
0x00000620 _exit
0x00000620 exit
.fini9 0x00000630 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_exit.o)
0x00000630 _exit
0x00000630 exit
*(.fini9)
*(.fini8)
*(.fini8)
@ -239,11 +239,11 @@ LOAD e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a
*(.fini1)
*(.fini1)
*(.fini0)
.fini0 0x00000620 0x4 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_exit.o)
.fini0 0x00000630 0x4 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_exit.o)
*(.fini0)
0x00000624 _etext = .
0x00000634 _etext = .
.data 0x00800060 0x38 load address 0x00000624
.data 0x00800060 0x38 load address 0x00000634
0x00800060 PROVIDE (__data_start, .)
*(.data)
.data 0x00800060 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr25/crttn2313.o
@ -268,7 +268,7 @@ LOAD e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a
*(.bss)
.bss 0x00800098 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr25/crttn2313.o
.bss 0x00800098 0x1 Timer.o
0x00800098 var
0x00800098 timer_delay
.bss 0x00800099 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_udivmodqi4.o)
.bss 0x00800099 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_exit.o)
.bss 0x00800099 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_copy_data.o)
@ -276,8 +276,8 @@ LOAD e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a
*(.bss*)
*(COMMON)
0x00800099 PROVIDE (__bss_end, .)
0x00000624 __data_load_start = LOADADDR (.data)
0x0000065c __data_load_end = (__data_load_start + SIZEOF (.data))
0x00000634 __data_load_start = LOADADDR (.data)
0x0000066c __data_load_end = (__data_load_start + SIZEOF (.data))
.noinit 0x00800099 0x0
0x00800099 PROVIDE (__noinit_start, .)
@ -343,32 +343,32 @@ LOAD e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a
0x00000000 0x20 Timer.o
.debug_pubnames
0x00000000 0xcc
0x00000000 0xd4
*(.debug_pubnames)
.debug_pubnames
0x00000000 0xcc Timer.o
0x00000000 0xd4 Timer.o
.debug_info 0x00000000 0x696
*(.debug_info)
.debug_info 0x00000000 0x696 Timer.o
*(.gnu.linkonce.wi.*)
.debug_abbrev 0x00000000 0x208
.debug_abbrev 0x00000000 0x1e6
*(.debug_abbrev)
.debug_abbrev 0x00000000 0x208 Timer.o
.debug_abbrev 0x00000000 0x1e6 Timer.o
.debug_line 0x00000000 0x860
.debug_line 0x00000000 0x878
*(.debug_line)
.debug_line 0x00000000 0x860 Timer.o
.debug_line 0x00000000 0x878 Timer.o
.debug_frame 0x00000000 0xd0
*(.debug_frame)
.debug_frame 0x00000000 0xd0 Timer.o
.debug_str 0x00000000 0x174
.debug_str 0x00000000 0x180
*(.debug_str)
.debug_str 0x00000000 0x174 Timer.o
0x1a8 (size before relaxing)
.debug_str 0x00000000 0x180 Timer.o
0x1b4 (size before relaxing)
.debug_loc 0x00000000 0x503
*(.debug_loc)

View File

@ -1 +1 @@
<AVRWorkspace><IOSettings><CurrentRegisters><PORTB><register register="DDRB" group="PORTB" display="1" locked="0"/></PORTB><PORTB><register register="PINB" group="PORTB" display="1" locked="0"/></PORTB><PORTB><register register="PORTB" group="PORTB" display="1" locked="0"/></PORTB></CurrentRegisters></IOSettings><part name="ATtiny2313"/><Files><File00000 Name="D:\Doc's\Basteleien\Timer\Timer\Timer.c" Position="189 67 788 412" LineCol="310 14" State="Maximized"/></Files></AVRWorkspace>
<AVRWorkspace><IOSettings><CurrentRegisters/></IOSettings><part name="ATTINY2313"/><Files><File00000 Name="D:\Doc's\Basteleien\Timer\Timer\Timer.c" Position="79 67 818 434" LineCol="316 16" State="Maximized"/></Files></AVRWorkspace>