20120805-154932

This commit is contained in:
BlubbFish 2012-08-05 13:51:05 +00:00
parent 596e14ac45
commit 180509b653
15 changed files with 990 additions and 0 deletions

1
V3/Zeitschaltung.aps Normal file
View File

@ -0,0 +1 @@
<AVRStudio><MANAGEMENT><ProjectName>Zeitschaltung</ProjectName><Created>14-Apr-2012 00:00:11</Created><LastEdit>15-Apr-2012 01:29:24</LastEdit><ICON>241</ICON><ProjectType>0</ProjectType><Created>14-Apr-2012 00:00:11</Created><Version>4</Version><Build>4, 19, 0, 730</Build><ProjectTypeName>AVR GCC</ProjectTypeName></MANAGEMENT><CODE_CREATION><ObjectFile>default\Zeitschaltung.elf</ObjectFile><EntryFile></EntryFile><SaveFolder>D:\Doc's\Schaltung\AVR\Zeitschaltung\</SaveFolder></CODE_CREATION><DEBUG_TARGET><CURRENT_TARGET>JTAGICE mkII</CURRENT_TARGET><CURRENT_PART>ATtiny13.xml</CURRENT_PART><BREAKPOINTS></BREAKPOINTS><IO_EXPAND><HIDE>false</HIDE></IO_EXPAND><REGISTERNAMES><Register>R00</Register><Register>R01</Register><Register>R02</Register><Register>R03</Register><Register>R04</Register><Register>R05</Register><Register>R06</Register><Register>R07</Register><Register>R08</Register><Register>R09</Register><Register>R10</Register><Register>R11</Register><Register>R12</Register><Register>R13</Register><Register>R14</Register><Register>R15</Register><Register>R16</Register><Register>R17</Register><Register>R18</Register><Register>R19</Register><Register>R20</Register><Register>R21</Register><Register>R22</Register><Register>R23</Register><Register>R24</Register><Register>R25</Register><Register>R26</Register><Register>R27</Register><Register>R28</Register><Register>R29</Register><Register>R30</Register><Register>R31</Register></REGISTERNAMES><COM>Auto</COM><COMType>0</COMType><WATCHNUM>0</WATCHNUM><WATCHNAMES><Pane0></Pane0><Pane1></Pane1><Pane2></Pane2><Pane3></Pane3></WATCHNAMES><BreakOnTrcaeFull>0</BreakOnTrcaeFull></DEBUG_TARGET><Debugger><Triggers></Triggers></Debugger><AVRGCCPLUGIN><FILES><SOURCEFILE>Zeitschaltung.c</SOURCEFILE><SOURCEFILE>sleep.c</SOURCEFILE><HEADERFILE>sleep.h</HEADERFILE><OTHERFILE>default\Zeitschaltung.lss</OTHERFILE><OTHERFILE>default\Zeitschaltung.map</OTHERFILE></FILES><CONFIGS><CONFIG><NAME>default</NAME><USESEXTERNALMAKEFILE>NO</USESEXTERNALMAKEFILE><EXTERNALMAKEFILE></EXTERNALMAKEFILE><PART>attiny13</PART><HEX>1</HEX><LIST>1</LIST><MAP>1</MAP><OUTPUTFILENAME>Zeitschaltung.elf</OUTPUTFILENAME><OUTPUTDIR>default\</OUTPUTDIR><ISDIRTY>0</ISDIRTY><OPTIONS/><INCDIRS/><LIBDIRS/><LIBS/><LINKOBJECTS/><OPTIONSFORALL>-Wall -gdwarf-2 -std=gnu99 -DF_CPU=9600000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums</OPTIONSFORALL><LINKEROPTIONS></LINKEROPTIONS><SEGMENTS/></CONFIG></CONFIGS><LASTCONFIG>default</LASTCONFIG><USES_WINAVR>1</USES_WINAVR><GCC_LOC>E:\Programme\AVR Toolchain\bin\avr-gcc.exe</GCC_LOC><MAKE_LOC>E:\Programme\AVR Toolchain\bin\make.exe</MAKE_LOC></AVRGCCPLUGIN><IOView><usergroups/><sort sorted="0" column="0" ordername="0" orderaddress="0" ordergroup="0"/></IOView><Files><File00000><FileId>00000</FileId><FileName>Zeitschaltung.c</FileName><Status>1</Status></File00000></Files><Events><Bookmarks></Bookmarks></Events><Trace><Filters></Filters></Trace></AVRStudio>

73
V3/Zeitschaltung.c Normal file
View File

@ -0,0 +1,73 @@
#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>
#include <avr/sleep.h>
#include <stdint.h>
#include "sleep.h"
uint16_t adc_schlafen() {
uint8_t value;
uint16_t sum;
//sleep_long(1000);
ADCSRA |= (1<<ADEN) | (1<<ADSC);
while(ADCSRA & (1<<ADSC)) { /* Habe Fertig */ };
value = ADCL; //LOWER First
value = ADCH; //THEN upper
sum = value;
ADCSRA &= ~(1<<ADEN);
sum *= 30;
sum += 1000;
return sum;
}
void mosfet_an() {
uint16_t sleep = adc_schlafen();
PORTB |= (1<<PB0);
sleep_long(sleep);
PORTB &= ~(1<<PB0);
}
ISR(INT0_vect)
{
_delay_ms(100);
if (!(PINB & (1<<PINB1)) ) { //Ein
PORTB |= (1<<PB3);
mosfet_an();
}
_delay_ms(5000);
return;
//} else { //Aus
while(1) {
PORTB |= (1<<PB3);
_delay_ms(1000);
PORTB &= ~(1<<PB3);
_delay_ms(1000);
}
//}
//set_sleep_mode(SLEEP_MODE_IDLE);
//sleep_mode();
}
int main (void) {
cli();
DDRB |= (1<<PB0) | (1<<PB3);
PORTB |= (1<<PB1);
GIMSK |= (1<<INT0);
MCUCR |= (1<<ISC01);
ADMUX = 0x00;
ADMUX |= (1<<REFS0) | (1<<ADLAR) | (1<<MUX1);
sei();
while(1){
PORTB &= ~(1<<PB0);
//set_sleep_mode(SLEEP_MODE_IDLE);
//sleep_mode();
//_delay_ms(2000);
PORTB |= (1<<PB3);
_delay_ms(20);
PORTB &= ~(1<<PB3);
_delay_ms(2000);
}
return 0;
}

80
V3/default/Makefile Normal file
View File

@ -0,0 +1,80 @@
###############################################################################
# Makefile for the project Zeitschaltung
###############################################################################
## General Flags
PROJECT = Zeitschaltung
MCU = attiny13
TARGET = Zeitschaltung.elf
CC = avr-gcc
CPP = avr-g++
## Options common to compile, link and assembly rules
COMMON = -mmcu=$(MCU)
## Compile options common for all C compilation units.
CFLAGS = $(COMMON)
CFLAGS += -Wall -gdwarf-2 -std=gnu99 -DF_CPU=9600000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums
CFLAGS += -MD -MP -MT $(*F).o -MF dep/$(@F).d
## Assembly specific flags
ASMFLAGS = $(COMMON)
ASMFLAGS += $(CFLAGS)
ASMFLAGS += -x assembler-with-cpp -Wa,-gdwarf2
## Linker flags
LDFLAGS = $(COMMON)
LDFLAGS += -Wl,-Map=Zeitschaltung.map
## Intel Hex file production flags
HEX_FLASH_FLAGS = -R .eeprom -R .fuse -R .lock -R .signature
HEX_EEPROM_FLAGS = -j .eeprom
HEX_EEPROM_FLAGS += --set-section-flags=.eeprom="alloc,load"
HEX_EEPROM_FLAGS += --change-section-lma .eeprom=0 --no-change-warnings
## Objects that must be built in order to link
OBJECTS = Zeitschaltung.o sleep.o
## Objects explicitly added by the user
LINKONLYOBJECTS =
## Build
all: $(TARGET) Zeitschaltung.hex Zeitschaltung.eep Zeitschaltung.lss size
## Compile
Zeitschaltung.o: ../Zeitschaltung.c
$(CC) $(INCLUDES) $(CFLAGS) -c $<
sleep.o: ../sleep.c
$(CC) $(INCLUDES) $(CFLAGS) -c $<
##Link
$(TARGET): $(OBJECTS)
$(CC) $(LDFLAGS) $(OBJECTS) $(LINKONLYOBJECTS) $(LIBDIRS) $(LIBS) -o $(TARGET)
%.hex: $(TARGET)
avr-objcopy -O ihex $(HEX_FLASH_FLAGS) $< $@
%.eep: $(TARGET)
-avr-objcopy $(HEX_EEPROM_FLAGS) -O ihex $< $@ || exit 0
%.lss: $(TARGET)
avr-objdump -h -S $< > $@
size: ${TARGET}
@echo
@avr-size -C --mcu=${MCU} ${TARGET}
## Clean target
.PHONY: clean
clean:
-rm -rf $(OBJECTS) Zeitschaltung.elf dep/* Zeitschaltung.hex Zeitschaltung.eep Zeitschaltung.lss Zeitschaltung.map
## Other dependencies
-include $(shell mkdir dep 2>NUL) $(wildcard dep/*)

View File

@ -0,0 +1 @@
:00000001FF

Binary file not shown.

View File

@ -0,0 +1,25 @@
:1000000009C025C00DC00CC00BC00AC009C008C083
:1000100007C006C011241FBECFE9CDBF50D0ACC071
:10002000EFCF86B1806C86B93699FECF84B185B1A9
:10003000379890E06EE170E08DD09C0128513C4FE4
:10004000C9010895EEDFC09A68D0C09808951F9244
:100050000F920FB60F9211242F933F934F935F93FC
:100060006F937F938F939F93AF93BF93EF93FF9380
:100070008FEF9DEEA2E081509040A040E1F700C0DC
:100080000000B19902C0C39ADDDF8FEF9BE7A2E9C0
:1000900081509040A040E1F700C00000FF91EF9137
:1000A000BF91AF919F918F917F916F915F914F9190
:1000B0003F912F910F900FBE0F901F901895F894BD
:1000C00087B3896087BBC19A8BB780648BBF85B7C4
:1000D000826085BF17B887B1826687B97894C09867
:1000E000C39A8FE79BEB0197F1F700C00000C3981C
:1000F0008FEF97E9AAE381509040A040E1F700C05C
:100100000000EDCF07C0EFE5F9E03197F1F700C04F
:10011000000081508823B9F7089507C0EFE5F9E0A2
:100120003197F1F700C0000001970097B9F70895E3
:1001300005C093E09A95F1F7000081508823C9F734
:10014000089505C023E02A95F1F700000197009774
:10015000C9F708955527002480FF02C0060E571FD7
:10016000660F771F6115710521F0969587950097A9
:0C01700099F7952F802D0895F894FFCF8B
:00000001FF

View File

@ -0,0 +1,321 @@
Zeitschaltung.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 0000017c 00000000 00000000 00000054 2**1
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .stab 000006b4 00000000 00000000 000001d0 2**2
CONTENTS, READONLY, DEBUGGING
2 .stabstr 00000085 00000000 00000000 00000884 2**0
CONTENTS, READONLY, DEBUGGING
3 .debug_aranges 00000040 00000000 00000000 00000909 2**0
CONTENTS, READONLY, DEBUGGING
4 .debug_pubnames 0000008f 00000000 00000000 00000949 2**0
CONTENTS, READONLY, DEBUGGING
5 .debug_info 0000059f 00000000 00000000 000009d8 2**0
CONTENTS, READONLY, DEBUGGING
6 .debug_abbrev 00000262 00000000 00000000 00000f77 2**0
CONTENTS, READONLY, DEBUGGING
7 .debug_line 00000441 00000000 00000000 000011d9 2**0
CONTENTS, READONLY, DEBUGGING
8 .debug_frame 000000a0 00000000 00000000 0000161c 2**2
CONTENTS, READONLY, DEBUGGING
9 .debug_str 00000187 00000000 00000000 000016bc 2**0
CONTENTS, READONLY, DEBUGGING
10 .debug_loc 000001f1 00000000 00000000 00001843 2**0
CONTENTS, READONLY, DEBUGGING
11 .debug_pubtypes 00000070 00000000 00000000 00001a34 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:
00000000 <__vectors>:
0: 09 c0 rjmp .+18 ; 0x14 <__ctors_end>
2: 25 c0 rjmp .+74 ; 0x4e <__vector_1>
4: 0d c0 rjmp .+26 ; 0x20 <__bad_interrupt>
6: 0c c0 rjmp .+24 ; 0x20 <__bad_interrupt>
8: 0b c0 rjmp .+22 ; 0x20 <__bad_interrupt>
a: 0a c0 rjmp .+20 ; 0x20 <__bad_interrupt>
c: 09 c0 rjmp .+18 ; 0x20 <__bad_interrupt>
e: 08 c0 rjmp .+16 ; 0x20 <__bad_interrupt>
10: 07 c0 rjmp .+14 ; 0x20 <__bad_interrupt>
12: 06 c0 rjmp .+12 ; 0x20 <__bad_interrupt>
00000014 <__ctors_end>:
14: 11 24 eor r1, r1
16: 1f be out 0x3f, r1 ; 63
18: cf e9 ldi r28, 0x9F ; 159
1a: cd bf out 0x3d, r28 ; 61
1c: 50 d0 rcall .+160 ; 0xbe <main>
1e: ac c0 rjmp .+344 ; 0x178 <_exit>
00000020 <__bad_interrupt>:
20: ef cf rjmp .-34 ; 0x0 <__vectors>
00000022 <adc_schlafen>:
uint16_t adc_schlafen() {
uint8_t value;
uint16_t sum;
//sleep_long(1000);
ADCSRA |= (1<<ADEN) | (1<<ADSC);
22: 86 b1 in r24, 0x06 ; 6
24: 80 6c ori r24, 0xC0 ; 192
26: 86 b9 out 0x06, r24 ; 6
while(ADCSRA & (1<<ADSC)) { /* Habe Fertig */ };
28: 36 99 sbic 0x06, 6 ; 6
2a: fe cf rjmp .-4 ; 0x28 <adc_schlafen+0x6>
value = ADCL; //LOWER First
2c: 84 b1 in r24, 0x04 ; 4
value = ADCH; //THEN upper
2e: 85 b1 in r24, 0x05 ; 5
sum = value;
ADCSRA &= ~(1<<ADEN);
30: 37 98 cbi 0x06, 7 ; 6
sum *= 30;
32: 90 e0 ldi r25, 0x00 ; 0
34: 6e e1 ldi r22, 0x1E ; 30
36: 70 e0 ldi r23, 0x00 ; 0
38: 8d d0 rcall .+282 ; 0x154 <__mulhi3>
sum += 1000;
3a: 9c 01 movw r18, r24
3c: 28 51 subi r18, 0x18 ; 24
3e: 3c 4f sbci r19, 0xFC ; 252
return sum;
}
40: c9 01 movw r24, r18
42: 08 95 ret
00000044 <mosfet_an>:
void mosfet_an() {
uint16_t sleep = adc_schlafen();
44: ee df rcall .-36 ; 0x22 <adc_schlafen>
PORTB |= (1<<PB0);
46: c0 9a sbi 0x18, 0 ; 24
sleep_long(sleep);
48: 68 d0 rcall .+208 ; 0x11a <sleep_long>
PORTB &= ~(1<<PB0);
4a: c0 98 cbi 0x18, 0 ; 24
}
4c: 08 95 ret
0000004e <__vector_1>:
ISR(INT0_vect)
{
4e: 1f 92 push r1
50: 0f 92 push r0
52: 0f b6 in r0, 0x3f ; 63
54: 0f 92 push r0
56: 11 24 eor r1, r1
58: 2f 93 push r18
5a: 3f 93 push r19
5c: 4f 93 push r20
5e: 5f 93 push r21
60: 6f 93 push r22
62: 7f 93 push r23
64: 8f 93 push r24
66: 9f 93 push r25
68: af 93 push r26
6a: bf 93 push r27
6c: ef 93 push r30
6e: ff 93 push r31
#else
//round up by default
__ticks_dc = (uint32_t)(ceil(fabs(__tmp)));
#endif
__builtin_avr_delay_cycles(__ticks_dc);
70: 8f ef ldi r24, 0xFF ; 255
72: 9d ee ldi r25, 0xED ; 237
74: a2 e0 ldi r26, 0x02 ; 2
76: 81 50 subi r24, 0x01 ; 1
78: 90 40 sbci r25, 0x00 ; 0
7a: a0 40 sbci r26, 0x00 ; 0
7c: e1 f7 brne .-8 ; 0x76 <__vector_1+0x28>
7e: 00 c0 rjmp .+0 ; 0x80 <__vector_1+0x32>
80: 00 00 nop
_delay_ms(100);
if (!(PINB & (1<<PINB1)) ) { //Ein
82: b1 99 sbic 0x16, 1 ; 22
84: 02 c0 rjmp .+4 ; 0x8a <__vector_1+0x3c>
PORTB |= (1<<PB3);
86: c3 9a sbi 0x18, 3 ; 24
mosfet_an();
88: dd df rcall .-70 ; 0x44 <mosfet_an>
8a: 8f ef ldi r24, 0xFF ; 255
8c: 9b e7 ldi r25, 0x7B ; 123
8e: a2 e9 ldi r26, 0x92 ; 146
90: 81 50 subi r24, 0x01 ; 1
92: 90 40 sbci r25, 0x00 ; 0
94: a0 40 sbci r26, 0x00 ; 0
96: e1 f7 brne .-8 ; 0x90 <__vector_1+0x42>
98: 00 c0 rjmp .+0 ; 0x9a <__vector_1+0x4c>
9a: 00 00 nop
}
//}
//set_sleep_mode(SLEEP_MODE_IDLE);
//sleep_mode();
}
9c: ff 91 pop r31
9e: ef 91 pop r30
a0: bf 91 pop r27
a2: af 91 pop r26
a4: 9f 91 pop r25
a6: 8f 91 pop r24
a8: 7f 91 pop r23
aa: 6f 91 pop r22
ac: 5f 91 pop r21
ae: 4f 91 pop r20
b0: 3f 91 pop r19
b2: 2f 91 pop r18
b4: 0f 90 pop r0
b6: 0f be out 0x3f, r0 ; 63
b8: 0f 90 pop r0
ba: 1f 90 pop r1
bc: 18 95 reti
000000be <main>:
int main (void) {
cli();
be: f8 94 cli
DDRB |= (1<<PB0) | (1<<PB3);
c0: 87 b3 in r24, 0x17 ; 23
c2: 89 60 ori r24, 0x09 ; 9
c4: 87 bb out 0x17, r24 ; 23
PORTB |= (1<<PB1);
c6: c1 9a sbi 0x18, 1 ; 24
GIMSK |= (1<<INT0);
c8: 8b b7 in r24, 0x3b ; 59
ca: 80 64 ori r24, 0x40 ; 64
cc: 8b bf out 0x3b, r24 ; 59
MCUCR |= (1<<ISC01);
ce: 85 b7 in r24, 0x35 ; 53
d0: 82 60 ori r24, 0x02 ; 2
d2: 85 bf out 0x35, r24 ; 53
ADMUX = 0x00;
d4: 17 b8 out 0x07, r1 ; 7
ADMUX |= (1<<REFS0) | (1<<ADLAR) | (1<<MUX1);
d6: 87 b1 in r24, 0x07 ; 7
d8: 82 66 ori r24, 0x62 ; 98
da: 87 b9 out 0x07, r24 ; 7
sei();
dc: 78 94 sei
while(1){
PORTB &= ~(1<<PB0);
de: c0 98 cbi 0x18, 0 ; 24
//set_sleep_mode(SLEEP_MODE_IDLE);
//sleep_mode();
//_delay_ms(2000);
PORTB |= (1<<PB3);
e0: c3 9a sbi 0x18, 3 ; 24
e2: 8f e7 ldi r24, 0x7F ; 127
e4: 9b eb ldi r25, 0xBB ; 187
e6: 01 97 sbiw r24, 0x01 ; 1
e8: f1 f7 brne .-4 ; 0xe6 <main+0x28>
ea: 00 c0 rjmp .+0 ; 0xec <main+0x2e>
ec: 00 00 nop
_delay_ms(20);
PORTB &= ~(1<<PB3);
ee: c3 98 cbi 0x18, 3 ; 24
f0: 8f ef ldi r24, 0xFF ; 255
f2: 97 e9 ldi r25, 0x97 ; 151
f4: aa e3 ldi r26, 0x3A ; 58
f6: 81 50 subi r24, 0x01 ; 1
f8: 90 40 sbci r25, 0x00 ; 0
fa: a0 40 sbci r26, 0x00 ; 0
fc: e1 f7 brne .-8 ; 0xf6 <main+0x38>
fe: 00 c0 rjmp .+0 ; 0x100 <main+0x42>
100: 00 00 nop
102: ed cf rjmp .-38 ; 0xde <main+0x20>
00000104 <sleep>:
104: 07 c0 rjmp .+14 ; 0x114 <sleep+0x10>
106: ef e5 ldi r30, 0x5F ; 95
108: f9 e0 ldi r31, 0x09 ; 9
10a: 31 97 sbiw r30, 0x01 ; 1
10c: f1 f7 brne .-4 ; 0x10a <sleep+0x6>
10e: 00 c0 rjmp .+0 ; 0x110 <sleep+0xc>
110: 00 00 nop
112: 81 50 subi r24, 0x01 ; 1
114: 88 23 and r24, r24
116: b9 f7 brne .-18 ; 0x106 <sleep+0x2>
118: 08 95 ret
0000011a <sleep_long>:
11a: 07 c0 rjmp .+14 ; 0x12a <sleep_long+0x10>
11c: ef e5 ldi r30, 0x5F ; 95
11e: f9 e0 ldi r31, 0x09 ; 9
120: 31 97 sbiw r30, 0x01 ; 1
122: f1 f7 brne .-4 ; 0x120 <sleep_long+0x6>
124: 00 c0 rjmp .+0 ; 0x126 <sleep_long+0xc>
126: 00 00 nop
128: 01 97 sbiw r24, 0x01 ; 1
12a: 00 97 sbiw r24, 0x00 ; 0
12c: b9 f7 brne .-18 ; 0x11c <sleep_long+0x2>
12e: 08 95 ret
00000130 <usleep>:
130: 05 c0 rjmp .+10 ; 0x13c <usleep+0xc>
#else
//round up by default
__ticks_dc = (uint32_t)(ceil(fabs(__tmp)));
#endif
__builtin_avr_delay_cycles(__ticks_dc);
132: 93 e0 ldi r25, 0x03 ; 3
134: 9a 95 dec r25
136: f1 f7 brne .-4 ; 0x134 <usleep+0x4>
138: 00 00 nop
13a: 81 50 subi r24, 0x01 ; 1
13c: 88 23 and r24, r24
13e: c9 f7 brne .-14 ; 0x132 <usleep+0x2>
140: 08 95 ret
00000142 <usleep_long>:
142: 05 c0 rjmp .+10 ; 0x14e <usleep_long+0xc>
144: 23 e0 ldi r18, 0x03 ; 3
146: 2a 95 dec r18
148: f1 f7 brne .-4 ; 0x146 <usleep_long+0x4>
14a: 00 00 nop
14c: 01 97 sbiw r24, 0x01 ; 1
14e: 00 97 sbiw r24, 0x00 ; 0
150: c9 f7 brne .-14 ; 0x144 <usleep_long+0x2>
152: 08 95 ret
00000154 <__mulhi3>:
154: 55 27 eor r21, r21
156: 00 24 eor r0, r0
00000158 <__mulhi3_loop>:
158: 80 ff sbrs r24, 0
15a: 02 c0 rjmp .+4 ; 0x160 <__mulhi3_skip1>
15c: 06 0e add r0, r22
15e: 57 1f adc r21, r23
00000160 <__mulhi3_skip1>:
160: 66 0f add r22, r22
162: 77 1f adc r23, r23
164: 61 15 cp r22, r1
166: 71 05 cpc r23, r1
168: 21 f0 breq .+8 ; 0x172 <__mulhi3_exit>
16a: 96 95 lsr r25
16c: 87 95 ror r24
16e: 00 97 sbiw r24, 0x00 ; 0
170: 99 f7 brne .-26 ; 0x158 <__mulhi3_loop>
00000172 <__mulhi3_exit>:
172: 95 2f mov r25, r21
174: 80 2d mov r24, r0
176: 08 95 ret
00000178 <_exit>:
178: f8 94 cli
0000017a <__stop_program>:
17a: ff cf rjmp .-2 ; 0x17a <__stop_program>

View File

@ -0,0 +1,369 @@
Archive member included because of file (symbol)
e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_mulhi3.o)
Zeitschaltung.o (__mulhi3)
e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_exit.o)
e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr25/crttn13.o (exit)
Memory Configuration
Name Origin Length Attributes
text 0x00000000 0x00002000 xr
data 0x00800060 0x0000ffa0 rw !x
eeprom 0x00810000 0x00010000 rw !x
fuse 0x00820000 0x00000400 rw !x
lock 0x00830000 0x00000400 rw !x
signature 0x00840000 0x00000400 rw !x
*default* 0x00000000 0xffffffff
Linker script and memory map
LOAD e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr25/crttn13.o
LOAD Zeitschaltung.o
LOAD sleep.o
LOAD e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a
LOAD e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr25\libc.a
LOAD e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a
.hash
*(.hash)
.dynsym
*(.dynsym)
.dynstr
*(.dynstr)
.gnu.version
*(.gnu.version)
.gnu.version_d
*(.gnu.version_d)
.gnu.version_r
*(.gnu.version_r)
.rel.init
*(.rel.init)
.rela.init
*(.rela.init)
.rel.text
*(.rel.text)
*(.rel.text.*)
*(.rel.gnu.linkonce.t*)
.rela.text
*(.rela.text)
*(.rela.text.*)
*(.rela.gnu.linkonce.t*)
.rel.fini
*(.rel.fini)
.rela.fini
*(.rela.fini)
.rel.rodata
*(.rel.rodata)
*(.rel.rodata.*)
*(.rel.gnu.linkonce.r*)
.rela.rodata
*(.rela.rodata)
*(.rela.rodata.*)
*(.rela.gnu.linkonce.r*)
.rel.data
*(.rel.data)
*(.rel.data.*)
*(.rel.gnu.linkonce.d*)
.rela.data
*(.rela.data)
*(.rela.data.*)
*(.rela.gnu.linkonce.d*)
.rel.ctors
*(.rel.ctors)
.rela.ctors
*(.rela.ctors)
.rel.dtors
*(.rel.dtors)
.rela.dtors
*(.rela.dtors)
.rel.got
*(.rel.got)
.rela.got
*(.rela.got)
.rel.bss
*(.rel.bss)
.rela.bss
*(.rela.bss)
.rel.plt
*(.rel.plt)
.rela.plt
*(.rela.plt)
.text 0x00000000 0x17c
*(.vectors)
.vectors 0x00000000 0x14 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr25/crttn13.o
0x00000000 __vector_default
0x00000000 __vectors
*(.vectors)
*(.progmem.gcc*)
*(.progmem*)
0x00000014 . = ALIGN (0x2)
0x00000014 __trampolines_start = .
*(.trampolines)
.trampolines 0x00000014 0x0 linker stubs
*(.trampolines*)
0x00000014 __trampolines_end = .
*(.jumptables)
*(.jumptables*)
*(.lowtext)
*(.lowtext*)
0x00000014 __ctors_start = .
*(.ctors)
0x00000014 __ctors_end = .
0x00000014 __dtors_start = .
*(.dtors)
0x00000014 __dtors_end = .
SORT(*)(.ctors)
SORT(*)(.dtors)
*(.init0)
.init0 0x00000014 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr25/crttn13.o
0x00000014 __init
*(.init0)
*(.init1)
*(.init1)
*(.init2)
.init2 0x00000014 0x8 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr25/crttn13.o
*(.init2)
*(.init3)
*(.init3)
*(.init4)
*(.init4)
*(.init5)
*(.init5)
*(.init6)
*(.init6)
*(.init7)
*(.init7)
*(.init8)
*(.init8)
*(.init9)
.init9 0x0000001c 0x4 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr25/crttn13.o
*(.init9)
*(.text)
.text 0x00000020 0x2 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr25/crttn13.o
0x00000020 __bad_interrupt
0x00000020 __vector_6
0x00000020 __vector_3
0x00000020 __vector_7
0x00000020 __vector_5
0x00000020 __vector_4
0x00000020 __vector_9
0x00000020 __vector_2
0x00000020 __vector_8
.text 0x00000022 0xe2 Zeitschaltung.o
0x00000022 adc_schlafen
0x00000044 mosfet_an
0x0000004e __vector_1
0x000000be main
.text 0x00000104 0x50 sleep.o
0x00000104 sleep
0x0000011a sleep_long
0x00000130 usleep
0x00000142 usleep_long
.text 0x00000154 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_mulhi3.o)
.text 0x00000154 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_exit.o)
0x00000154 . = ALIGN (0x2)
*(.text.*)
.text.libgcc 0x00000154 0x24 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_mulhi3.o)
0x00000154 __mulhi3
.text.libgcc 0x00000178 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_exit.o)
0x00000178 . = ALIGN (0x2)
*(.fini9)
.fini9 0x00000178 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_exit.o)
0x00000178 _exit
0x00000178 exit
*(.fini9)
*(.fini8)
*(.fini8)
*(.fini7)
*(.fini7)
*(.fini6)
*(.fini6)
*(.fini5)
*(.fini5)
*(.fini4)
*(.fini4)
*(.fini3)
*(.fini3)
*(.fini2)
*(.fini2)
*(.fini1)
*(.fini1)
*(.fini0)
.fini0 0x00000178 0x4 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_exit.o)
*(.fini0)
0x0000017c _etext = .
.data 0x00800060 0x0 load address 0x0000017c
0x00800060 PROVIDE (__data_start, .)
*(.data)
.data 0x00800060 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr25/crttn13.o
.data 0x00800060 0x0 Zeitschaltung.o
.data 0x00800060 0x0 sleep.o
.data 0x00800060 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_mulhi3.o)
.data 0x00800060 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_exit.o)
*(.data*)
*(.rodata)
*(.rodata*)
*(.gnu.linkonce.d*)
0x00800060 . = ALIGN (0x2)
0x00800060 _edata = .
0x00800060 PROVIDE (__data_end, .)
.bss 0x00800060 0x0
0x00800060 PROVIDE (__bss_start, .)
*(.bss)
.bss 0x00800060 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr25/crttn13.o
.bss 0x00800060 0x0 Zeitschaltung.o
.bss 0x00800060 0x0 sleep.o
.bss 0x00800060 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_mulhi3.o)
.bss 0x00800060 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_exit.o)
*(.bss*)
*(COMMON)
0x00800060 PROVIDE (__bss_end, .)
0x0000017c __data_load_start = LOADADDR (.data)
0x0000017c __data_load_end = (__data_load_start + SIZEOF (.data))
.noinit 0x00800060 0x0
0x00800060 PROVIDE (__noinit_start, .)
*(.noinit*)
0x00800060 PROVIDE (__noinit_end, .)
0x00800060 _end = .
0x00800060 PROVIDE (__heap_start, .)
.eeprom 0x00810000 0x0
*(.eeprom*)
0x00810000 __eeprom_end = .
.fuse
*(.fuse)
*(.lfuse)
*(.hfuse)
*(.efuse)
.lock
*(.lock*)
.signature
*(.signature*)
.stab 0x00000000 0x6b4
*(.stab)
.stab 0x00000000 0x6b4 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr25/crttn13.o
.stabstr 0x00000000 0x85
*(.stabstr)
.stabstr 0x00000000 0x85 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr25/crttn13.o
.stab.excl
*(.stab.excl)
.stab.exclstr
*(.stab.exclstr)
.stab.index
*(.stab.index)
.stab.indexstr
*(.stab.indexstr)
.comment
*(.comment)
.debug
*(.debug)
.line
*(.line)
.debug_srcinfo
*(.debug_srcinfo)
.debug_sfnames
*(.debug_sfnames)
.debug_aranges 0x00000000 0x40
*(.debug_aranges)
.debug_aranges
0x00000000 0x20 Zeitschaltung.o
.debug_aranges
0x00000020 0x20 sleep.o
.debug_pubnames
0x00000000 0x8f
*(.debug_pubnames)
.debug_pubnames
0x00000000 0x49 Zeitschaltung.o
.debug_pubnames
0x00000049 0x46 sleep.o
.debug_info 0x00000000 0x59f
*(.debug_info)
.debug_info 0x00000000 0x28f Zeitschaltung.o
.debug_info 0x0000028f 0x310 sleep.o
*(.gnu.linkonce.wi.*)
.debug_abbrev 0x00000000 0x262
*(.debug_abbrev)
.debug_abbrev 0x00000000 0x167 Zeitschaltung.o
.debug_abbrev 0x00000167 0xfb sleep.o
.debug_line 0x00000000 0x441
*(.debug_line)
.debug_line 0x00000000 0x252 Zeitschaltung.o
.debug_line 0x00000252 0x1ef sleep.o
.debug_frame 0x00000000 0xa0
*(.debug_frame)
.debug_frame 0x00000000 0x50 Zeitschaltung.o
.debug_frame 0x00000050 0x50 sleep.o
.debug_str 0x00000000 0x187
*(.debug_str)
.debug_str 0x00000000 0x11a Zeitschaltung.o
0x154 (size before relaxing)
.debug_str 0x0000011a 0x6d sleep.o
0x164 (size before relaxing)
.debug_loc 0x00000000 0x1f1
*(.debug_loc)
.debug_loc 0x00000000 0x51 Zeitschaltung.o
.debug_loc 0x00000051 0x1a0 sleep.o
.debug_macinfo
*(.debug_macinfo)
OUTPUT(Zeitschaltung.elf elf32-avr)
LOAD linker stubs
.debug_pubtypes
0x00000000 0x70
.debug_pubtypes
0x00000000 0x38 Zeitschaltung.o
.debug_pubtypes
0x00000038 0x38 sleep.o

View File

@ -0,0 +1,49 @@
Zeitschaltung.o: ../Zeitschaltung.c \
e:\programme\avr\ toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/avr/io.h \
e:\programme\avr\ toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/avr/sfr_defs.h \
e:\programme\avr\ toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/inttypes.h \
e:\programme\avr\ toolchain\bin\../lib/gcc/avr/4.5.1/include/stdint.h \
e:\programme\avr\ toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/stdint.h \
e:\programme\avr\ toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/avr/iotn13.h \
e:\programme\avr\ toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/avr/portpins.h \
e:\programme\avr\ toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/avr/common.h \
e:\programme\avr\ toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/avr/version.h \
e:\programme\avr\ toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/avr/fuse.h \
e:\programme\avr\ toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/avr/lock.h \
e:\programme\avr\ toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/util/delay.h \
e:\programme\avr\ toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/util/delay_basic.h \
e:\programme\avr\ toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/avr/interrupt.h \
e:\programme\avr\ toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/avr/sleep.h \
../sleep.h
e:\programme\avr\ toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/avr/io.h:
e:\programme\avr\ toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/avr/sfr_defs.h:
e:\programme\avr\ toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/inttypes.h:
e:\programme\avr\ toolchain\bin\../lib/gcc/avr/4.5.1/include/stdint.h:
e:\programme\avr\ toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/stdint.h:
e:\programme\avr\ toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/avr/iotn13.h:
e:\programme\avr\ toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/avr/portpins.h:
e:\programme\avr\ toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/avr/common.h:
e:\programme\avr\ toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/avr/version.h:
e:\programme\avr\ toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/avr/fuse.h:
e:\programme\avr\ toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/avr/lock.h:
e:\programme\avr\ toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/util/delay.h:
e:\programme\avr\ toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/util/delay_basic.h:
e:\programme\avr\ toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/avr/interrupt.h:
e:\programme\avr\ toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/avr/sleep.h:
../sleep.h:

18
V3/default/dep/sleep.o.d Normal file
View File

@ -0,0 +1,18 @@
sleep.o: ../sleep.c ../sleep.h \
e:\programme\avr\ toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/util/delay.h \
e:\programme\avr\ toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/inttypes.h \
e:\programme\avr\ toolchain\bin\../lib/gcc/avr/4.5.1/include/stdint.h \
e:\programme\avr\ toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/stdint.h \
e:\programme\avr\ toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/util/delay_basic.h
../sleep.h:
e:\programme\avr\ toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/util/delay.h:
e:\programme\avr\ toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/inttypes.h:
e:\programme\avr\ toolchain\bin\../lib/gcc/avr/4.5.1/include/stdint.h:
e:\programme\avr\ toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/stdint.h:
e:\programme\avr\ toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/util/delay_basic.h:

39
V3/sleep.c Normal file
View File

@ -0,0 +1,39 @@
#include "sleep.h"
#include <util/delay.h>
void sleep(char ms) //8bit
{
while(ms > 0)
{
_delay_ms(1);
ms--;
}
}
void sleep_long(uint16_t ms) //16bit
{
while(ms > 0)
{
_delay_ms(1);
ms--;
}
}
void usleep(char us) //8bit
{
while(us > 0)
{
_delay_us(1);
us--;
}
}
void usleep_long(unsigned short int us) //16bit
{
while(us > 0)
{
_delay_us(1);
us--;
}
}

13
V3/sleep.h Normal file
View File

@ -0,0 +1,13 @@
#ifndef _SLEEP_H_
#define _SLEEP_H_
#include <util/delay.h>
void usleep(char ms); //8bit
void usleep_long(unsigned short int ms); //16bit
void sleep(char ms); //8bit
void sleep_long(uint16_t ms); //16bit
#endif

1
V3/zeitschaltung.aws Normal file
View File

@ -0,0 +1 @@
<AVRWorkspace><IOSettings><CurrentRegisters/></IOSettings><part name="ATTINY13"/><Files><File00000 Name="D:\Doc's\Basteleien\Zeitschaltung\V3\Zeitschaltung.c" Position="189 67 676 412" LineCol="64 22" State="Maximized"/></Files></AVRWorkspace>

BIN
V4/Attiny13.T3000 Normal file

Binary file not shown.

0
V4/BackupFiles/.gitignore vendored Normal file
View File