Updated folder names

This commit is contained in:
2017-11-29 12:51:53 -08:00
parent cb3ce5dafc
commit 51b0102711
397 changed files with 0 additions and 0 deletions

View File

@@ -0,0 +1,125 @@
################################################################################
# Automatically-generated file. Do not edit!
################################################################################
SHELL := cmd.exe
RM := rm -rf
USER_OBJS :=
LIBS :=
PROJ :=
O_SRCS :=
C_SRCS :=
S_SRCS :=
S_UPPER_SRCS :=
OBJ_SRCS :=
ASM_SRCS :=
PREPROCESSING_SRCS :=
OBJS :=
OBJS_AS_ARGS :=
C_DEPS :=
C_DEPS_AS_ARGS :=
EXECUTABLES :=
OUTPUT_FILE_PATH :=
OUTPUT_FILE_PATH_AS_ARGS :=
AVR_APP_PATH :=$$$AVR_APP_PATH$$$
QUOTE := "
ADDITIONAL_DEPENDENCIES:=
OUTPUT_FILE_DEP:=
LIB_DEP:=
# Every subdirectory with source files must be described here
SUBDIRS :=
# Add inputs and outputs from these tool invocations to the build variables
C_SRCS += \
../PauseSwitch.cpp
PREPROCESSING_SRCS +=
ASM_SRCS +=
OBJS += \
PauseSwitch.o
OBJS_AS_ARGS += \
PauseSwitch.o
C_DEPS += \
PauseSwitch.d
C_DEPS_AS_ARGS += \
PauseSwitch.d
OUTPUT_FILE_PATH +=PauseSwitch.elf
OUTPUT_FILE_PATH_AS_ARGS +=PauseSwitch.elf
ADDITIONAL_DEPENDENCIES:=
OUTPUT_FILE_DEP:= ./makedep.mk
LIB_DEP+=
# AVR32/GNU C Compiler
./%.o: .././%.cpp
@echo Building file: $<
@echo Invoking: AVR8/GNU C Compiler : 4.8.1
$(QUOTE)C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1051\avr8-gnu-toolchain\bin\avr-g++.exe$(QUOTE) -funsigned-char -funsigned-bitfields -DDEBUG -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=attiny85 -c -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<"
@echo Finished building: $<
# AVR32/GNU Preprocessing Assembler
# AVR32/GNU Assembler
ifneq ($(MAKECMDGOALS),clean)
ifneq ($(strip $(C_DEPS)),)
-include $(C_DEPS)
endif
endif
# Add inputs and outputs from these tool invocations to the build variables
# All Target
all: $(OUTPUT_FILE_PATH) $(ADDITIONAL_DEPENDENCIES)
$(OUTPUT_FILE_PATH): $(OBJS) $(USER_OBJS) $(OUTPUT_FILE_DEP) $(LIB_DEP)
@echo Building target: $@
@echo Invoking: AVR8/GNU Linker : 4.8.1
$(QUOTE)C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1051\avr8-gnu-toolchain\bin\avr-g++.exe$(QUOTE) -o$(OUTPUT_FILE_PATH_AS_ARGS) $(OBJS_AS_ARGS) $(USER_OBJS) $(LIBS) -Wl,-Map="PauseSwitch.map" -Wl,--start-group -Wl,-lm -Wl,--end-group -Wl,--gc-sections -mmcu=attiny85
@echo Finished building target: $@
"C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1051\avr8-gnu-toolchain\bin\avr-objcopy.exe" -O ihex -R .eeprom -R .fuse -R .lock -R .signature -R .user_signatures "PauseSwitch.elf" "PauseSwitch.hex"
"C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1051\avr8-gnu-toolchain\bin\avr-objcopy.exe" -j .eeprom --set-section-flags=.eeprom=alloc,load --change-section-lma .eeprom=0 --no-change-warnings -O ihex "PauseSwitch.elf" "PauseSwitch.eep" || exit 0
"C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1051\avr8-gnu-toolchain\bin\avr-objdump.exe" -h -S "PauseSwitch.elf" > "PauseSwitch.lss"
"C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1051\avr8-gnu-toolchain\bin\avr-objcopy.exe" -O srec -R .eeprom -R .fuse -R .lock -R .signature -R .user_signatures "PauseSwitch.elf" "PauseSwitch.srec"
"C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1051\avr8-gnu-toolchain\bin\avr-size.exe" "PauseSwitch.elf"
# Other Targets
clean:
-$(RM) $(OBJS_AS_ARGS) $(EXECUTABLES)
-$(RM) $(C_DEPS_AS_ARGS)
rm -rf "PauseSwitch.elf" "PauseSwitch.a" "PauseSwitch.hex" "PauseSwitch.lss" "PauseSwitch.eep" "PauseSwitch.map" "PauseSwitch.srec" "PauseSwitch.usersignatures"

View File

@@ -0,0 +1,49 @@
PauseSwitch.d PauseSwitch.o: .././PauseSwitch.cpp \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\io.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\inttypes.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\stdint.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\iotn85.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\iotnx5.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\portpins.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\common.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\version.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\fuse.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\lock.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\util\delay.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\util\delay_basic.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\math.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\interrupt.h
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\io.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\inttypes.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\stdint.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\iotn85.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\iotnx5.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\portpins.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\common.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\version.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\fuse.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\lock.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\util\delay.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\util\delay_basic.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\math.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1051\avr8-gnu-toolchain\avr\include\avr\interrupt.h:

View File

@@ -0,0 +1,20 @@
:100000000EC028C027C026C025C024C023C022C0DF
:1000100021C020C04DC01EC01DC01CC01BC011246B
:100020001FBECFE5D2E0DEBFCDBF10E0A0E6B0E05E
:10003000E4E1F1E002C005900D92A236B107D9F7D4
:1000400020E0A2E6B0E001C01D92A336B207E1F7BE
:1000500006D05EC0D5CF86B380958170089588E1C3
:1000600087BBB898C09A1ABC13BE12BE83B785600E
:1000700083BF80E189BF7894C39AC1E0ECDF882315
:10008000E9F380916000813021F4C3981092600000
:1000900005C0811103C0C39AC09360002FEF84E3B1
:1000A0009CE0215080409040E1F700C00000E6CF86
:1000B0001F920F920FB60F9211248F9380916000C0
:1000C000811102C0C49A1EC08130E1F480916200A7
:1000D0008F3099F480916100813021F4C49810929E
:1000E000610008C080916100811104C0C49A81E060
:1000F000809361001092620005C0809162008F5F62
:10010000809362008F910F900FBE0F901F901895F3
:04011000F894FFCF91
:020114000101E7
:00000001FF

View File

@@ -0,0 +1,251 @@
PauseSwitch.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 00000114 00000000 00000000 00000094 2**1
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .data 00000002 00800060 00000114 000001a8 2**0
CONTENTS, ALLOC, LOAD, DATA
2 .bss 00000001 00800062 00800062 000001aa 2**0
ALLOC
3 .comment 00000030 00000000 00000000 000001aa 2**0
CONTENTS, READONLY
4 .debug_aranges 00000030 00000000 00000000 000001da 2**0
CONTENTS, READONLY, DEBUGGING
5 .debug_info 000001a3 00000000 00000000 0000020a 2**0
CONTENTS, READONLY, DEBUGGING
6 .debug_abbrev 00000141 00000000 00000000 000003ad 2**0
CONTENTS, READONLY, DEBUGGING
7 .debug_line 00000178 00000000 00000000 000004ee 2**0
CONTENTS, READONLY, DEBUGGING
8 .debug_frame 00000054 00000000 00000000 00000668 2**2
CONTENTS, READONLY, DEBUGGING
9 .debug_str 00000222 00000000 00000000 000006bc 2**0
CONTENTS, READONLY, DEBUGGING
10 .debug_loc 0000003c 00000000 00000000 000008de 2**0
CONTENTS, READONLY, DEBUGGING
11 .debug_ranges 00000020 00000000 00000000 0000091a 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:
00000000 <__vectors>:
0: 0e c0 rjmp .+28 ; 0x1e <__ctors_end>
2: 28 c0 rjmp .+80 ; 0x54 <__bad_interrupt>
4: 27 c0 rjmp .+78 ; 0x54 <__bad_interrupt>
6: 26 c0 rjmp .+76 ; 0x54 <__bad_interrupt>
8: 25 c0 rjmp .+74 ; 0x54 <__bad_interrupt>
a: 24 c0 rjmp .+72 ; 0x54 <__bad_interrupt>
c: 23 c0 rjmp .+70 ; 0x54 <__bad_interrupt>
e: 22 c0 rjmp .+68 ; 0x54 <__bad_interrupt>
10: 21 c0 rjmp .+66 ; 0x54 <__bad_interrupt>
12: 20 c0 rjmp .+64 ; 0x54 <__bad_interrupt>
14: 4d c0 rjmp .+154 ; 0xb0 <__vector_10>
16: 1e c0 rjmp .+60 ; 0x54 <__bad_interrupt>
18: 1d c0 rjmp .+58 ; 0x54 <__bad_interrupt>
1a: 1c c0 rjmp .+56 ; 0x54 <__bad_interrupt>
1c: 1b c0 rjmp .+54 ; 0x54 <__bad_interrupt>
0000001e <__ctors_end>:
1e: 11 24 eor r1, r1
20: 1f be out 0x3f, r1 ; 63
22: cf e5 ldi r28, 0x5F ; 95
24: d2 e0 ldi r29, 0x02 ; 2
26: de bf out 0x3e, r29 ; 62
28: cd bf out 0x3d, r28 ; 61
0000002a <__do_copy_data>:
2a: 10 e0 ldi r17, 0x00 ; 0
2c: a0 e6 ldi r26, 0x60 ; 96
2e: b0 e0 ldi r27, 0x00 ; 0
30: e4 e1 ldi r30, 0x14 ; 20
32: f1 e0 ldi r31, 0x01 ; 1
34: 02 c0 rjmp .+4 ; 0x3a <__do_copy_data+0x10>
36: 05 90 lpm r0, Z+
38: 0d 92 st X+, r0
3a: a2 36 cpi r26, 0x62 ; 98
3c: b1 07 cpc r27, r17
3e: d9 f7 brne .-10 ; 0x36 <__do_copy_data+0xc>
00000040 <__do_clear_bss>:
40: 20 e0 ldi r18, 0x00 ; 0
42: a2 e6 ldi r26, 0x62 ; 98
44: b0 e0 ldi r27, 0x00 ; 0
46: 01 c0 rjmp .+2 ; 0x4a <.do_clear_bss_start>
00000048 <.do_clear_bss_loop>:
48: 1d 92 st X+, r1
0000004a <.do_clear_bss_start>:
4a: a3 36 cpi r26, 0x63 ; 99
4c: b2 07 cpc r27, r18
4e: e1 f7 brne .-8 ; 0x48 <.do_clear_bss_loop>
50: 06 d0 rcall .+12 ; 0x5e <main>
52: 5e c0 rjmp .+188 ; 0x110 <_exit>
00000054 <__bad_interrupt>:
54: d5 cf rjmp .-86 ; 0x0 <__vectors>
00000056 <_Z12ButtonPushedv>:
const unsigned char InterruptCountMax = 15; //Hold our interrupt count max to make up for only having an 8 bit timer and needing 1Hz led flash
volatile unsigned char LEDState = LIT; //Holds the current Led state
unsigned char RoverState = ROVING; //Holds the current rover roving state
unsigned char ButtonPushed(void){
return ((BUTTON & PINB) == 0); //Returns whether the button has been pushed (active low)
56: 86 b3 in r24, 0x16 ; 22
58: 80 95 com r24
}
5a: 81 70 andi r24, 0x01 ; 1
5c: 08 95 ret
0000005e <main>:
int main(void)
{
DDRB = (STATUSLED | XBEEIO); //Set Outputs
5e: 88 e1 ldi r24, 0x18 ; 24
60: 87 bb out 0x17, r24 ; 23
DDRB &= ~(BUTTON); //Set Inputs
62: b8 98 cbi 0x17, 0 ; 23
PORTB |= (BUTTON); //Enable Internal pull up resistor for Button
64: c0 9a sbi 0x18, 0 ; 24
TCCR0A = 0; //Clear settings for timer counter 0 register A
66: 1a bc out 0x2a, r1 ; 42
TCCR0B = 0; //Clear settings for timer counter 0 register B
68: 13 be out 0x33, r1 ; 51
TCNT0 = 0; //zeros the count register
6a: 12 be out 0x32, r1 ; 50
TCCR0B |= ((1 << CS02) | (1 << CS00)); //Sets the counter prescaler to 1024
6c: 83 b7 in r24, 0x33 ; 51
6e: 85 60 ori r24, 0x05 ; 5
70: 83 bf out 0x33, r24 ; 51
TIMSK = (1 << OCIE0A); //Sets an interrupt to trigger on counter hitting 255 for timer 0
72: 80 e1 ldi r24, 0x10 ; 16
74: 89 bf out 0x39, r24 ; 57
sei();
76: 78 94 sei
//Enable global interrupts
PORTB |= XBEEIO;
78: c3 9a sbi 0x18, 3 ; 24
if(RoverState == ROVING){ //If the button was pushed and the state was previously roving, switch to non-roving
PORTB &= ~XBEEIO; //Send new roving state to rover
RoverState = NOT_ROVING; //We are now not roving
}else if(RoverState == NOT_ROVING){ //If the button was pushed and the state was previously not roving, switch to roving
PORTB |= XBEEIO; //Send new roving state to rover
RoverState = ROVING; //We are now roving
7a: c1 e0 ldi r28, 0x01 ; 1
sei();
//Enable global interrupts
PORTB |= XBEEIO;
while(1){
if(ButtonPushed()){
7c: ec df rcall .-40 ; 0x56 <_Z12ButtonPushedv>
7e: 88 23 and r24, r24
80: e9 f3 breq .-6 ; 0x7c <main+0x1e>
if(RoverState == ROVING){ //If the button was pushed and the state was previously roving, switch to non-roving
82: 80 91 60 00 lds r24, 0x0060
86: 81 30 cpi r24, 0x01 ; 1
88: 21 f4 brne .+8 ; 0x92 <main+0x34>
PORTB &= ~XBEEIO; //Send new roving state to rover
8a: c3 98 cbi 0x18, 3 ; 24
RoverState = NOT_ROVING; //We are now not roving
8c: 10 92 60 00 sts 0x0060, r1
90: 05 c0 rjmp .+10 ; 0x9c <main+0x3e>
}else if(RoverState == NOT_ROVING){ //If the button was pushed and the state was previously not roving, switch to roving
92: 81 11 cpse r24, r1
94: 03 c0 rjmp .+6 ; 0x9c <main+0x3e>
PORTB |= XBEEIO; //Send new roving state to rover
96: c3 9a sbi 0x18, 3 ; 24
RoverState = ROVING; //We are now roving
98: c0 93 60 00 sts 0x0060, r28
#else
//round up by default
__ticks_dc = (uint32_t)(ceil(fabs(__tmp)));
#endif
__builtin_avr_delay_cycles(__ticks_dc);
9c: 2f ef ldi r18, 0xFF ; 255
9e: 84 e3 ldi r24, 0x34 ; 52
a0: 9c e0 ldi r25, 0x0C ; 12
a2: 21 50 subi r18, 0x01 ; 1
a4: 80 40 sbci r24, 0x00 ; 0
a6: 90 40 sbci r25, 0x00 ; 0
a8: e1 f7 brne .-8 ; 0xa2 <main+0x44>
aa: 00 c0 rjmp .+0 ; 0xac <main+0x4e>
ac: 00 00 nop
ae: e6 cf rjmp .-52 ; 0x7c <main+0x1e>
000000b0 <__vector_10>:
} //Wait 500ms for button debounce
}
}
ISR(TIMER0_COMPA_vect){
b0: 1f 92 push r1
b2: 0f 92 push r0
b4: 0f b6 in r0, 0x3f ; 63
b6: 0f 92 push r0
b8: 11 24 eor r1, r1
ba: 8f 93 push r24
if(RoverState == NOT_ROVING){ //If the rover is not roving
bc: 80 91 60 00 lds r24, 0x0060
c0: 81 11 cpse r24, r1
c2: 02 c0 rjmp .+4 ; 0xc8 <__vector_10+0x18>
PORTB |= STATUSLED; //Rover is paused, make status light solid
c4: c4 9a sbi 0x18, 4 ; 24
c6: 1e c0 rjmp .+60 ; 0x104 <__vector_10+0x54>
}else if(RoverState == ROVING){ //If the rover is roving
c8: 81 30 cpi r24, 0x01 ; 1
ca: e1 f4 brne .+56 ; 0x104 <__vector_10+0x54>
if(InterruptCounter == InterruptCountMax){ //Check to see if the interrupt counter has hit max (needed because you can't get 1Hz from an 8 bit counter)
cc: 80 91 62 00 lds r24, 0x0062
d0: 8f 30 cpi r24, 0x0F ; 15
d2: 99 f4 brne .+38 ; 0xfa <__vector_10+0x4a>
if(LEDState == LIT){ //If it has and the led was previously lit
d4: 80 91 61 00 lds r24, 0x0061
d8: 81 30 cpi r24, 0x01 ; 1
da: 21 f4 brne .+8 ; 0xe4 <__vector_10+0x34>
PORTB &= ~STATUSLED; //Turn off the led
dc: c4 98 cbi 0x18, 4 ; 24
LEDState = NOT_LIT; //Set led state to off
de: 10 92 61 00 sts 0x0061, r1
e2: 08 c0 rjmp .+16 ; 0xf4 <__vector_10+0x44>
}else if(LEDState == NOT_LIT){ //If it was previously off
e4: 80 91 61 00 lds r24, 0x0061
e8: 81 11 cpse r24, r1
ea: 04 c0 rjmp .+8 ; 0xf4 <__vector_10+0x44>
PORTB |= STATUSLED; //Turn the led on
ec: c4 9a sbi 0x18, 4 ; 24
LEDState = LIT; //Set led state to on
ee: 81 e0 ldi r24, 0x01 ; 1
f0: 80 93 61 00 sts 0x0061, r24
}
InterruptCounter = 0; //Zero our interrupt counter
f4: 10 92 62 00 sts 0x0062, r1
f8: 05 c0 rjmp .+10 ; 0x104 <__vector_10+0x54>
}else{
InterruptCounter++; //If the interrupt counter is not at max, increment it
fa: 80 91 62 00 lds r24, 0x0062
fe: 8f 5f subi r24, 0xFF ; 255
100: 80 93 62 00 sts 0x0062, r24
}
}
104: 8f 91 pop r24
106: 0f 90 pop r0
108: 0f be out 0x3f, r0 ; 63
10a: 0f 90 pop r0
10c: 1f 90 pop r1
10e: 18 95 reti
00000110 <_exit>:
110: f8 94 cli
00000112 <__stop_program>:
112: ff cf rjmp .-2 ; 0x112 <__stop_program>

View File

@@ -0,0 +1,442 @@
Archive member included because of file (symbol)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr25\libgcc.a(_exit.o)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr25/crttn85.o (exit)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr25\libgcc.a(_copy_data.o)
PauseSwitch.o (__do_copy_data)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr25\libgcc.a(_clear_bss.o)
PauseSwitch.o (__do_clear_bss)
Discarded input sections
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr25/crttn85.o
.text 0x00000000 0x0 PauseSwitch.o
.bss 0x00000000 0x0 PauseSwitch.o
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr25\libgcc.a(_exit.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr25\libgcc.a(_exit.o)
.text.libgcc.mul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr25\libgcc.a(_exit.o)
.text.libgcc.div
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr25\libgcc.a(_exit.o)
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr25\libgcc.a(_exit.o)
.text.libgcc.prologue
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr25\libgcc.a(_exit.o)
.text.libgcc.builtins
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr25\libgcc.a(_exit.o)
.text.libgcc.fmul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr25\libgcc.a(_exit.o)
.text.libgcc.fixed
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr25\libgcc.a(_exit.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr25\libgcc.a(_copy_data.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr25\libgcc.a(_copy_data.o)
.text.libgcc.mul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr25\libgcc.a(_copy_data.o)
.text.libgcc.div
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr25\libgcc.a(_copy_data.o)
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr25\libgcc.a(_copy_data.o)
.text.libgcc.prologue
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr25\libgcc.a(_copy_data.o)
.text.libgcc.builtins
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr25\libgcc.a(_copy_data.o)
.text.libgcc.fmul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr25\libgcc.a(_copy_data.o)
.text.libgcc.fixed
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr25\libgcc.a(_copy_data.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr25\libgcc.a(_clear_bss.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr25\libgcc.a(_clear_bss.o)
.text.libgcc.mul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr25\libgcc.a(_clear_bss.o)
.text.libgcc.div
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr25\libgcc.a(_clear_bss.o)
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr25\libgcc.a(_clear_bss.o)
.text.libgcc.prologue
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr25\libgcc.a(_clear_bss.o)
.text.libgcc.builtins
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr25\libgcc.a(_clear_bss.o)
.text.libgcc.fmul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr25\libgcc.a(_clear_bss.o)
.text.libgcc.fixed
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr25\libgcc.a(_clear_bss.o)
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
user_signatures 0x00850000 0x00000400 rw !x
*default* 0x00000000 0xffffffff
Linker script and memory map
LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr25/crttn85.o
LOAD PauseSwitch.o
START GROUP
LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr25\libm.a
END GROUP
LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr25\libgcc.a
LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr25\libm.a
START GROUP
LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr25\libgcc.a
LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr25\libm.a
LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr25\libc.a
END GROUP
.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 0x114
*(.vectors)
.vectors 0x00000000 0x1e c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr25/crttn85.o
0x00000000 __vector_default
0x00000000 __vectors
*(.vectors)
*(.progmem.gcc*)
0x0000001e . = ALIGN (0x2)
0x0000001e __trampolines_start = .
*(.trampolines)
.trampolines 0x0000001e 0x0 linker stubs
*(.trampolines*)
0x0000001e __trampolines_end = .
*(.progmem*)
0x0000001e . = ALIGN (0x2)
*(.jumptables)
*(.jumptables*)
*(.lowtext)
*(.lowtext*)
0x0000001e __ctors_start = .
*(.ctors)
0x0000001e __ctors_end = .
0x0000001e __dtors_start = .
*(.dtors)
0x0000001e __dtors_end = .
SORT(*)(.ctors)
SORT(*)(.dtors)
*(.init0)
.init0 0x0000001e 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr25/crttn85.o
0x0000001e __init
*(.init0)
*(.init1)
*(.init1)
*(.init2)
.init2 0x0000001e 0xc c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr25/crttn85.o
*(.init2)
*(.init3)
*(.init3)
*(.init4)
.init4 0x0000002a 0x16 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr25\libgcc.a(_copy_data.o)
0x0000002a __do_copy_data
.init4 0x00000040 0x10 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr25\libgcc.a(_clear_bss.o)
0x00000040 __do_clear_bss
*(.init4)
*(.init5)
*(.init5)
*(.init6)
*(.init6)
*(.init7)
*(.init7)
*(.init8)
*(.init8)
*(.init9)
.init9 0x00000050 0x4 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr25/crttn85.o
*(.init9)
*(.text)
.text 0x00000054 0x2 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr25/crttn85.o
0x00000054 __vector_1
0x00000054 __vector_12
0x00000054 __bad_interrupt
0x00000054 __vector_6
0x00000054 __vector_3
0x00000054 __vector_11
0x00000054 __vector_13
0x00000054 __vector_7
0x00000054 __vector_5
0x00000054 __vector_4
0x00000054 __vector_9
0x00000054 __vector_2
0x00000054 __vector_8
0x00000054 __vector_14
0x00000056 . = ALIGN (0x2)
*(.text.*)
.text._Z12ButtonPushedv
0x00000056 0x8 PauseSwitch.o
0x00000056 _Z12ButtonPushedv
.text.main 0x0000005e 0x52 PauseSwitch.o
0x0000005e main
.text.__vector_10
0x000000b0 0x60 PauseSwitch.o
0x000000b0 __vector_10
0x00000110 . = ALIGN (0x2)
*(.fini9)
.fini9 0x00000110 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr25\libgcc.a(_exit.o)
0x00000110 _exit
0x00000110 exit
*(.fini9)
*(.fini8)
*(.fini8)
*(.fini7)
*(.fini7)
*(.fini6)
*(.fini6)
*(.fini5)
*(.fini5)
*(.fini4)
*(.fini4)
*(.fini3)
*(.fini3)
*(.fini2)
*(.fini2)
*(.fini1)
*(.fini1)
*(.fini0)
.fini0 0x00000110 0x4 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr25\libgcc.a(_exit.o)
*(.fini0)
0x00000114 _etext = .
.data 0x00800060 0x2 load address 0x00000114
0x00800060 PROVIDE (__data_start, .)
*(.data)
.data 0x00800060 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr25/crttn85.o
.data 0x00800060 0x0 PauseSwitch.o
.data 0x00800060 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr25\libgcc.a(_exit.o)
.data 0x00800060 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr25\libgcc.a(_copy_data.o)
.data 0x00800060 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1051/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr25\libgcc.a(_clear_bss.o)
*(.data*)
.data.RoverState
0x00800060 0x1 PauseSwitch.o
0x00800060 RoverState
.data.LEDState
0x00800061 0x1 PauseSwitch.o
0x00800061 LEDState
*(.rodata)
*(.rodata*)
*(.gnu.linkonce.d*)
0x00800062 . = ALIGN (0x2)
0x00800062 _edata = .
0x00800062 PROVIDE (__data_end, .)
.bss 0x00800062 0x1
0x00800062 PROVIDE (__bss_start, .)
*(.bss)
*(.bss*)
.bss.InterruptCounter
0x00800062 0x1 PauseSwitch.o
0x00800062 InterruptCounter
*(COMMON)
0x00800063 PROVIDE (__bss_end, .)
0x00000114 __data_load_start = LOADADDR (.data)
0x00000116 __data_load_end = (__data_load_start + SIZEOF (.data))
.noinit 0x00800063 0x0
0x00800063 PROVIDE (__noinit_start, .)
*(.noinit*)
0x00800063 PROVIDE (__noinit_end, .)
0x00800063 _end = .
0x00800063 PROVIDE (__heap_start, .)
.eeprom 0x00810000 0x0
*(.eeprom*)
0x00810000 __eeprom_end = .
.fuse
*(.fuse)
*(.lfuse)
*(.hfuse)
*(.efuse)
.lock
*(.lock*)
.signature
*(.signature*)
.user_signatures
*(.user_signatures*)
.stab
*(.stab)
.stabstr
*(.stabstr)
.stab.excl
*(.stab.excl)
.stab.exclstr
*(.stab.exclstr)
.stab.index
*(.stab.index)
.stab.indexstr
*(.stab.indexstr)
.comment 0x00000000 0x30
*(.comment)
.comment 0x00000000 0x30 PauseSwitch.o
0x31 (size before relaxing)
.note.gnu.build-id
*(.note.gnu.build-id)
.debug
*(.debug)
.line
*(.line)
.debug_srcinfo
*(.debug_srcinfo)
.debug_sfnames
*(.debug_sfnames)
.debug_aranges 0x00000000 0x30
*(.debug_aranges)
.debug_aranges
0x00000000 0x30 PauseSwitch.o
.debug_pubnames
*(.debug_pubnames)
.debug_info 0x00000000 0x1a3
*(.debug_info .gnu.linkonce.wi.*)
.debug_info 0x00000000 0x1a3 PauseSwitch.o
.debug_abbrev 0x00000000 0x141
*(.debug_abbrev)
.debug_abbrev 0x00000000 0x141 PauseSwitch.o
.debug_line 0x00000000 0x178
*(.debug_line .debug_line.* .debug_line_end)
.debug_line 0x00000000 0x178 PauseSwitch.o
.debug_frame 0x00000000 0x54
*(.debug_frame)
.debug_frame 0x00000000 0x54 PauseSwitch.o
.debug_str 0x00000000 0x222
*(.debug_str)
.debug_str 0x00000000 0x222 PauseSwitch.o
0x256 (size before relaxing)
.debug_loc 0x00000000 0x3c
*(.debug_loc)
.debug_loc 0x00000000 0x3c PauseSwitch.o
.debug_macinfo
*(.debug_macinfo)
.debug_weaknames
*(.debug_weaknames)
.debug_funcnames
*(.debug_funcnames)
.debug_typenames
*(.debug_typenames)
.debug_varnames
*(.debug_varnames)
.debug_pubtypes
*(.debug_pubtypes)
.debug_ranges 0x00000000 0x20
*(.debug_ranges)
.debug_ranges 0x00000000 0x20 PauseSwitch.o
.debug_macro
*(.debug_macro)
OUTPUT(PauseSwitch.elf elf32-avr)
LOAD linker stubs

View File

@@ -0,0 +1,21 @@
S013000050617573655377697463682E73726563A1
S11300000EC028C027C026C025C024C023C022C0DB
S113001021C020C04DC01EC01DC01CC01BC0112467
S11300201FBECFE5D2E0DEBFCDBF10E0A0E6B0E05A
S1130030E4E1F1E002C005900D92A236B107D9F7D0
S113004020E0A2E6B0E001C01D92A336B207E1F7BA
S113005006D05EC0D5CF86B380958170089588E1BF
S113006087BBB898C09A1ABC13BE12BE83B785600A
S113007083BF80E189BF7894C39AC1E0ECDF882311
S1130080E9F380916000813021F4C39810926000FC
S113009005C0811103C0C39AC09360002FEF84E3AD
S11300A09CE0215080409040E1F700C00000E6CF82
S11300B01F920F920FB60F9211248F9380916000BC
S11300C0811102C0C49A1EC08130E1F480916200A3
S11300D08F3099F480916100813021F4C49810929A
S11300E0610008C080916100811104C0C49A81E05C
S11300F0809361001092620005C0809162008F5F5E
S1130100809362008F910F900FBE0F901F901895EF
S1070110F894FFCF8D
S10501140101E3
S9030000FC

View File

@@ -0,0 +1,6 @@
################################################################################
# Automatically-generated file. Do not edit or delete the file
################################################################################
PauseSwitch.cpp

View File

@@ -0,0 +1,20 @@

Microsoft Visual Studio Solution File, Format Version 11.00
# Atmel Studio Solution File, Format Version 11.00
Project("{E66E83B9-2572-4076-B26E-6BE79FF3018A}") = "PauseSwitch", "PauseSwitch.cppproj", "{3EA0E67A-62BC-4D6A-8C0E-E4C4C9AB9FA0}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|AVR = Debug|AVR
Release|AVR = Release|AVR
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{3EA0E67A-62BC-4D6A-8C0E-E4C4C9AB9FA0}.Debug|AVR.ActiveCfg = Debug|AVR
{3EA0E67A-62BC-4D6A-8C0E-E4C4C9AB9FA0}.Debug|AVR.Build.0 = Debug|AVR
{3EA0E67A-62BC-4D6A-8C0E-E4C4C9AB9FA0}.Release|AVR.ActiveCfg = Release|AVR
{3EA0E67A-62BC-4D6A-8C0E-E4C4C9AB9FA0}.Release|AVR.Build.0 = Release|AVR
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

View File

@@ -0,0 +1,81 @@
/*
* PauseSwitch.cpp
*
* Created: 4/23/2014 2:41:55 AM
* Author: corwin
*/
#define F_CPU 8000000UL
#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>
#define STATUSLED (1 << PB4)
#define BUTTON (1 << PB0)
#define XBEEIO (1 << PB3)
#define ROVING 1
#define NOT_ROVING 0
#define LIT 1
#define NOT_LIT 0
volatile unsigned char InterruptCounter = 0; //A counter for our interrupt function
const unsigned char InterruptCountMax = 15; //Hold our interrupt count max to make up for only having an 8 bit timer and needing 1Hz led flash
volatile unsigned char LEDState = LIT; //Holds the current Led state
unsigned char RoverState = ROVING; //Holds the current rover roving state
unsigned char ButtonPushed(void){
return ((BUTTON & PINB) == 0); //Returns whether the button has been pushed (active low)
}
int main(void)
{
DDRB = (STATUSLED | XBEEIO); //Set Outputs
DDRB &= ~(BUTTON); //Set Inputs
PORTB |= (BUTTON); //Enable Internal pull up resistor for Button
TCCR0A = 0; //Clear settings for timer counter 0 register A
TCCR0B = 0; //Clear settings for timer counter 0 register B
TCNT0 = 0; //zeros the count register
TCCR0B |= ((1 << CS02) | (1 << CS00)); //Sets the counter prescaler to 1024
TIMSK = (1 << OCIE0A); //Sets an interrupt to trigger on counter hitting 255 for timer 0
sei();
//Enable global interrupts
PORTB |= XBEEIO;
while(1){
if(ButtonPushed()){
if(RoverState == ROVING){ //If the button was pushed and the state was previously roving, switch to non-roving
PORTB &= ~XBEEIO; //Send new roving state to rover
RoverState = NOT_ROVING; //We are now not roving
}else if(RoverState == NOT_ROVING){ //If the button was pushed and the state was previously not roving, switch to roving
PORTB |= XBEEIO; //Send new roving state to rover
RoverState = ROVING; //We are now roving
}
_delay_ms(500);
} //Wait 500ms for button debounce
}
}
ISR(TIMER0_COMPA_vect){
if(RoverState == NOT_ROVING){ //If the rover is not roving
PORTB |= STATUSLED; //Rover is paused, make status light solid
}else if(RoverState == ROVING){ //If the rover is roving
if(InterruptCounter == InterruptCountMax){ //Check to see if the interrupt counter has hit max (needed because you can't get 1Hz from an 8 bit counter)
if(LEDState == LIT){ //If it has and the led was previously lit
PORTB &= ~STATUSLED; //Turn off the led
LEDState = NOT_LIT; //Set led state to off
}else if(LEDState == NOT_LIT){ //If it was previously off
PORTB |= STATUSLED; //Turn the led on
LEDState = LIT; //Set led state to on
}
InterruptCounter = 0; //Zero our interrupt counter
}else{
InterruptCounter++; //If the interrupt counter is not at max, increment it
}
}
}

View File

@@ -0,0 +1,126 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<SchemaVersion>2.0</SchemaVersion>
<ProjectVersion>6.2</ProjectVersion>
<ToolchainName>com.Atmel.AVRGCC8.CPP</ToolchainName>
<ProjectGuid>{3ea0e67a-62bc-4d6a-8c0e-e4c4c9ab9fa0}</ProjectGuid>
<avrdevice>ATtiny85</avrdevice>
<avrdeviceseries>none</avrdeviceseries>
<OutputType>Executable</OutputType>
<Language>CPP</Language>
<OutputFileName>$(MSBuildProjectName)</OutputFileName>
<OutputFileExtension>.elf</OutputFileExtension>
<OutputDirectory>$(MSBuildProjectDirectory)\$(Configuration)</OutputDirectory>
<AssemblyName>PauseSwitch</AssemblyName>
<Name>PauseSwitch</Name>
<RootNamespace>PauseSwitch</RootNamespace>
<ToolchainFlavour>Native</ToolchainFlavour>
<KeepTimersRunning>true</KeepTimersRunning>
<OverrideVtor>false</OverrideVtor>
<CacheFlash>true</CacheFlash>
<ProgFlashFromRam>true</ProgFlashFromRam>
<RamSnippetAddress />
<UncachedRange />
<OverrideVtorValue />
<BootSegment>2</BootSegment>
<eraseonlaunchrule>1</eraseonlaunchrule>
<AsfFrameworkConfig>
<framework-data xmlns="">
<options />
<configurations />
<files />
<documentation help="" />
<offline-documentation help="" />
<dependencies>
<content-extension eid="atmel.asf" uuidref="Atmel.ASF" version="3.15.0" />
</dependencies>
</framework-data>
</AsfFrameworkConfig>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
<ToolchainSettings>
<AvrGccCpp>
<avrgcc.common.outputfiles.hex>True</avrgcc.common.outputfiles.hex>
<avrgcc.common.outputfiles.lss>True</avrgcc.common.outputfiles.lss>
<avrgcc.common.outputfiles.eep>True</avrgcc.common.outputfiles.eep>
<avrgcc.common.outputfiles.srec>True</avrgcc.common.outputfiles.srec>
<avrgcc.common.outputfiles.usersignatures>False</avrgcc.common.outputfiles.usersignatures>
<avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned>True</avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned>
<avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned>True</avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned>
<avrgcc.compiler.symbols.DefSymbols>
<ListValues>
<Value>NDEBUG</Value>
</ListValues>
</avrgcc.compiler.symbols.DefSymbols>
<avrgcc.compiler.optimization.level>Optimize for size (-Os)</avrgcc.compiler.optimization.level>
<avrgcc.compiler.optimization.PackStructureMembers>True</avrgcc.compiler.optimization.PackStructureMembers>
<avrgcc.compiler.optimization.AllocateBytesNeededForEnum>True</avrgcc.compiler.optimization.AllocateBytesNeededForEnum>
<avrgcc.compiler.warnings.AllWarnings>True</avrgcc.compiler.warnings.AllWarnings>
<avrgcccpp.compiler.general.ChangeDefaultCharTypeUnsigned>True</avrgcccpp.compiler.general.ChangeDefaultCharTypeUnsigned>
<avrgcccpp.compiler.general.ChangeDefaultBitFieldUnsigned>True</avrgcccpp.compiler.general.ChangeDefaultBitFieldUnsigned>
<avrgcccpp.compiler.symbols.DefSymbols>
<ListValues>
<Value>NDEBUG</Value>
</ListValues>
</avrgcccpp.compiler.symbols.DefSymbols>
<avrgcccpp.compiler.optimization.level>Optimize for size (-Os)</avrgcccpp.compiler.optimization.level>
<avrgcccpp.compiler.optimization.PackStructureMembers>True</avrgcccpp.compiler.optimization.PackStructureMembers>
<avrgcccpp.compiler.optimization.AllocateBytesNeededForEnum>True</avrgcccpp.compiler.optimization.AllocateBytesNeededForEnum>
<avrgcccpp.compiler.warnings.AllWarnings>True</avrgcccpp.compiler.warnings.AllWarnings>
<avrgcccpp.linker.libraries.Libraries>
<ListValues>
<Value>libm</Value>
</ListValues>
</avrgcccpp.linker.libraries.Libraries>
</AvrGccCpp>
</ToolchainSettings>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
<ToolchainSettings>
<AvrGccCpp>
<avrgcc.common.outputfiles.hex>True</avrgcc.common.outputfiles.hex>
<avrgcc.common.outputfiles.lss>True</avrgcc.common.outputfiles.lss>
<avrgcc.common.outputfiles.eep>True</avrgcc.common.outputfiles.eep>
<avrgcc.common.outputfiles.srec>True</avrgcc.common.outputfiles.srec>
<avrgcc.common.outputfiles.usersignatures>False</avrgcc.common.outputfiles.usersignatures>
<avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned>True</avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned>
<avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned>True</avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned>
<avrgcc.compiler.symbols.DefSymbols>
<ListValues>
<Value>DEBUG</Value>
</ListValues>
</avrgcc.compiler.symbols.DefSymbols>
<avrgcc.compiler.optimization.level>Optimize (-O1)</avrgcc.compiler.optimization.level>
<avrgcc.compiler.optimization.PackStructureMembers>True</avrgcc.compiler.optimization.PackStructureMembers>
<avrgcc.compiler.optimization.AllocateBytesNeededForEnum>True</avrgcc.compiler.optimization.AllocateBytesNeededForEnum>
<avrgcc.compiler.optimization.DebugLevel>Default (-g2)</avrgcc.compiler.optimization.DebugLevel>
<avrgcc.compiler.warnings.AllWarnings>True</avrgcc.compiler.warnings.AllWarnings>
<avrgcccpp.compiler.general.ChangeDefaultCharTypeUnsigned>True</avrgcccpp.compiler.general.ChangeDefaultCharTypeUnsigned>
<avrgcccpp.compiler.general.ChangeDefaultBitFieldUnsigned>True</avrgcccpp.compiler.general.ChangeDefaultBitFieldUnsigned>
<avrgcccpp.compiler.symbols.DefSymbols>
<ListValues>
<Value>DEBUG</Value>
</ListValues>
</avrgcccpp.compiler.symbols.DefSymbols>
<avrgcccpp.compiler.optimization.level>Optimize (-O1)</avrgcccpp.compiler.optimization.level>
<avrgcccpp.compiler.optimization.PackStructureMembers>True</avrgcccpp.compiler.optimization.PackStructureMembers>
<avrgcccpp.compiler.optimization.AllocateBytesNeededForEnum>True</avrgcccpp.compiler.optimization.AllocateBytesNeededForEnum>
<avrgcccpp.compiler.optimization.DebugLevel>Default (-g2)</avrgcccpp.compiler.optimization.DebugLevel>
<avrgcccpp.compiler.warnings.AllWarnings>True</avrgcccpp.compiler.warnings.AllWarnings>
<avrgcccpp.linker.libraries.Libraries>
<ListValues>
<Value>libm</Value>
</ListValues>
</avrgcccpp.linker.libraries.Libraries>
<avrgcccpp.assembler.debugging.DebugLevel>Default (-Wa,-g)</avrgcccpp.assembler.debugging.DebugLevel>
</AvrGccCpp>
</ToolchainSettings>
</PropertyGroup>
<ItemGroup>
<Compile Include="PauseSwitch.cpp">
<SubType>compile</SubType>
</Compile>
</ItemGroup>
<Import Project="$(AVRSTUDIO_EXE_PATH)\\Vs\\Compiler.targets" />
</Project>

View File

@@ -0,0 +1,3 @@
Firmware for all final boards should go here.
All firmware developed using Atmel Studio 6.2.