Commit 09a4b9ab authored by Øystein Smith's avatar Øystein Smith
Browse files

Fjernet gammel ute av sync firmware, firmware finnes i egne repo

parent 5cec9253
Pipeline #396 failed with stage
in 6 minutes and 5 seconds
Ikke legg firmware her, lag eget gitrepo per kodeprosjekt p git.omegav.no/teslakom
Do not check in firmware here, make a separate git repo per code project on git.omegav.no/teslakom
\ No newline at end of file

Microsoft Visual Studio Solution File, Format Version 11.00
# Atmel Studio Solution File, Format Version 11.00
Project("{54F91283-7BC4-4236-8FF9-10F437C3AD48}") = "Tonegenerator", "Tonegenerator\Tonegenerator.cproj", "{4BE04CE8-4BE3-4551-B6C0-1C4BFFE05C5F}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|AVR = Debug|AVR
Release|AVR = Release|AVR
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{4BE04CE8-4BE3-4551-B6C0-1C4BFFE05C5F}.Debug|AVR.ActiveCfg = Debug|AVR
{4BE04CE8-4BE3-4551-B6C0-1C4BFFE05C5F}.Debug|AVR.Build.0 = Debug|AVR
{4BE04CE8-4BE3-4551-B6C0-1C4BFFE05C5F}.Release|AVR.ActiveCfg = Release|AVR
{4BE04CE8-4BE3-4551-B6C0-1C4BFFE05C5F}.Release|AVR.Build.0 = Release|AVR
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
/*
* ADC.c
*
* Created: 01.03.2014 12:13:27
* Author: medlem
*/
#include <avr/io.h>
uint8_t results[16];
uint8_t active_channel = 0;
void ADC_init()
{
ADCSRA |= (1 << ADEN);
ADCSRA |= (1 << ADPS2)| (1 << ADPS1)| (1 << ADPS0);
ADMUX = (1 << REFS0);
}
void ADC_start_conversion(uint8_t channel)
{
ADMUX = (ADMUX & 0xF0)|(channel & 0x0F);
ADCSRA |= (1 << ADSC);
}
uint8_t ADC_done()
{
if (ADCSRA & (1 << ADIF)){
ADCSRA = ADCSRA; // clear interrupt flag
results[ADMUX & 0x0F] = ADC;
return (ADMUX & 0x0F);
} else {
return 0;
}
}
uint16_t ADC_result(uint8_t channel)
{
return results[channel];
}
\ No newline at end of file
/*
* ADC.h
*
* Created: 01.03.2014 12:13:38
* Author: medlem
*/
#ifndef ADC_H_
#define ADC_H_
#define ADC_CHANNELS 2
#define ADC_CHANNEL_0 0
#define ADC_CHANNEL_1 1
void ADC_init();
void ADC_start_conversion(uint8_t channel);
uint8_t ADC_done();
uint16_t ADC_result(uint8_t channel);
#endif /* ADC_H_ */
\ No newline at end of file
ADC.d ADC.o: .././ADC.c \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.1002\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/io.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.1002\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/sfr_defs.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.1002\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/inttypes.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.1002\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/include/stdint.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.1002\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/stdint.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.1002\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/iom168.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.1002\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/iomx8.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.1002\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/portpins.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.1002\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/common.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.1002\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/version.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.1002\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/fuse.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.1002\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/lock.h
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.1002\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/io.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.1002\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/sfr_defs.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.1002\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/inttypes.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.1002\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/include/stdint.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.1002\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/stdint.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.1002\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/iom168.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.1002\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/iomx8.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.1002\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/portpins.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.1002\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/common.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.1002\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/version.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.1002\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/fuse.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.1002\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/lock.h:
################################################################################
# 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 += \
../ADC.c \
../driver.c \
../midi.c \
../main.c
PREPROCESSING_SRCS +=
ASM_SRCS +=
OBJS += \
ADC.o \
driver.o \
midi.o \
main.o
OBJS_AS_ARGS += \
ADC.o \
driver.o \
midi.o \
main.o
C_DEPS += \
ADC.d \
driver.d \
midi.d \
main.d
C_DEPS_AS_ARGS += \
ADC.d \
driver.d \
midi.d \
main.d
OUTPUT_FILE_PATH +=Tonegenerator.elf
OUTPUT_FILE_PATH_AS_ARGS +=Tonegenerator.elf
ADDITIONAL_DEPENDENCIES:=
OUTPUT_FILE_DEP:= ./makedep.mk
LIB_DEP+=
# AVR32/GNU C Compiler
./%.o: .././%.c
@echo Building file: $<
@echo Invoking: AVR/GNU C Compiler : 3.4.2
$(QUOTE)C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.2.1002\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -funsigned-char -funsigned-bitfields -DDEBUG -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega168 -c -std=gnu99 -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: AVR/GNU Linker : 3.4.2
$(QUOTE)C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.2.1002\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -o$(OUTPUT_FILE_PATH_AS_ARGS) $(OBJS_AS_ARGS) $(USER_OBJS) $(LIBS) -Wl,-Map="Tonegenerator.map" -Wl,--start-group -Wl,-lm -Wl,--end-group -Wl,--gc-sections -mmcu=atmega168
@echo Finished building target: $@
"C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.2.1002\avr8-gnu-toolchain\bin\avr-objcopy.exe" -O ihex -R .eeprom -R .fuse -R .lock -R .signature "Tonegenerator.elf" "Tonegenerator.hex"
"C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.2.1002\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 "Tonegenerator.elf" "Tonegenerator.eep" || exit 0
"C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.2.1002\avr8-gnu-toolchain\bin\avr-objdump.exe" -h -S "Tonegenerator.elf" > "Tonegenerator.lss"
"C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.2.1002\avr8-gnu-toolchain\bin\avr-objcopy.exe" -O srec -R .eeprom -R .fuse -R .lock -R .signature "Tonegenerator.elf" "Tonegenerator.srec"
"C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.2.1002\avr8-gnu-toolchain\bin\avr-size.exe" "Tonegenerator.elf"
# Other Targets
clean:
-$(RM) $(OBJS_AS_ARGS) $(EXECUTABLES)
-$(RM) $(C_DEPS_AS_ARGS)
rm -rf "Tonegenerator.elf" "Tonegenerator.a" "Tonegenerator.hex" "Tonegenerator.lss" "Tonegenerator.eep" "Tonegenerator.map" "Tonegenerator.srec"
\ No newline at end of file
:100000000C9434000C9451000C9451000C94510049
:100010000C9451000C9451000C9451000C9451001C
:100020000C9451000C9451000C9451000C9451000C
:100030000C9451000C9451000C9451000C945100FC
:100040000C9451000C9451000C9493010C945100A9
:100050000C9451000C9451000C9451000C945100DC
:100060000C9451000C94510011241FBECFEFD4E02A
:10007000DEBFCDBF12E0A0E0B1E0E8E9F4E002C0ED
:1000800005900D92A230B107D9F722E0A2E0B2E0CC
:1000900001C01D92A334B207E1F70E9430020C9414
:1000A0004A020C940000E0E8F0E0808182608083E6
:1000B000A1E8B0E08C9188618C938C9181608C93E5
:1000C0008081806A808383E080938600089582E047
:1000D00090E090938900809388005B9A0895109235
:1000E0008900109288005B98089582E090E09093D8
:1000F0008B0080938A00089510928B0010928A00E2
:100100000895A2ECB0E08C918F738C93E1ECF0E059
:100110008081886180838C9186608C938FE090E0F1
:100120009093C5008093C400808180688083089587
:1001300031E0309337022AE020933C0287E690E0DA
:1001400090933902809338028FE690E090933B02BF
:1001500080933A0230933D022093420285E790E07B
:1001600090933F0280933E028CE790E0909341028F
:10017000809340020895A62FB0E0AA0FBB1FAF5F87
:10018000BE4F2D913C91909102029130F1F490E09C
:10019000FC01EE0FFF1F8E0F9F1FFC01EE0FFF1FD4
:1001A000EE0FFF1FEE0FFF1FE95FFD4F81E0808321
:1001B000818313821282148265834683108617829C
:1001C0003287218710920202089590E0FC01EE0F21
:1001D000FF1F8E0F9F1FFC01EE0FFF1FEE0FFF1F73
:1001E000EE0FFF1FED5EFD4F81E080838183138260
:1001F0001282148265834683108617823287218794
:100200008093020208952091020290E0FC01EE0F1B
:10021000FF1FE80FF91FEE0FFF1FEE0FFF1FEE0F7E
:10022000FF1FE95FFD4F3581361312C0FC01EE0F51
:10023000FF1FE80FF91FEE0FFF1FEE0FFF1FEE0F5E
:10024000FF1FE95FFD4F118210822281248321E08C
:10025000FC01EE0FFF1FE80FF91FEE0FFF1FEE0F5F
:10026000FF1FEE0FFF1FE95FFD4F3189361313C0EB
:10027000FC01EE0FFF1F8E0F9F1FFC01EE0FFF1FF3
:10028000EE0FFF1FEE0FFF1FE95FFD4F158614866F
:100290008685808B20E0209302020895982F929506
:1002A0009F70993049F491E0909306029093000179
:1002B0008F70809305020895983049F491E09093EF
:1002C0000602109200018F70809305020895882322
:1002D0004CF190910402911106C08093030281E0D9
:1002E00080930402089510920402909100019923D2
:1002F00091F0811108C04FE76091030280910502DF
:100300000E9403010895482F609103028091050225
:100310000E94BB000895482F60910302809105025E
:100320000E94030108951F920F920FB60F9211249D
:100330002F933F934F935F936F937F938F939F93ED
:10034000AF93BF93EF93FF938091C6000E944E013D
:10035000FF91EF91BF91AF919F918F917F916F919D
:100360005F914F913F912F910F900FBE0F901F9073
:10037000189590E070E0FB01EE0FFF1F6E0F7F1FDE
:10038000FB01EE0FFF1FEE0FFF1F9C01220F331F1B
:10039000280F391F220F331F220F331F220F331F45
:1003A000E20FF31FE95FFD4F2081222301F1278136
:1003B00030852F5F3F4F30872783DC01AA0FBB1F9B
:1003C0008A0F9B1FDC01AA0FBB1FA95CBD4F1596AE
:1003D0004C9150E081E02417350708F080E041851A
:1003E00052854217530720F410861782089580E043
:1003F0000895CF93809137028823B1F060E080E0C8
:100400000E94B901C82F61E080E00E94B901C813C1
:1004100006C0E0913A02F0913B02099505C0E091D7
:100420003802F0913902099580913D028823B1F09C
:1004300060E081E00E94B901C82F61E081E00E9484
:10044000B9018C1731F0E0913E02F0913F0209951D
:1004500005C0E0914002F09141020995CF910895C5
:100460008AB188648AB984B1866084B90E94980090
:100470000E9481000E94530082E084BD81E085BD1E
:1004800080E587BD7894C2E0A99BFECFC5BB0E94E2
:08049000F901FACFF894FFCF47
:1004980001C72F192D912AEC25EC25CB23C921E37F
:1004A8001F191E691CD11A4F19E4178C1648151705
:1004B80014F612E611E410F20F0D0F340E680DA8B1
:1004C8000CF20B460BA40A0B0A7B09F3087208F915
:1004D8000786071A07B4065406F905A30552050648
:1004E80005BD0479043904FC03C3038D035A032AA8
:1004F80003FC02D202A90283025F023D021D02FE32
:1005080001E201C701AD0195017E01690155014173
:10051800012F011E010E01FF00F100E300D700CA00
:1005280000BF00B400AA00A10098008F00870080D7
:1005380000780072006B00650060005A005500509A
:10054800004C004800440040003C003900360033AD
:100558000030002D002B0028002600240022002057
:10056800001E001C001B00190018001700150014BD
:100578000013001200110011000F000E000D000DF5
:10058800000C000B000B000A000900090008000815
:02059800000061
:00000001FF
Tonegenerator.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
0 .data 00000102 00800100 00000498 0000052c 2**0
CONTENTS, ALLOC, LOAD, DATA
1 .text 00000498 00000000 00000000 00000094 2**1
CONTENTS, ALLOC, LOAD, READONLY, CODE
2 .bss 00000041 00800202 00800202 0000062e 2**0
ALLOC
3 .stab 000006cc 00000000 00000000 00000630 2**2
CONTENTS, READONLY, DEBUGGING
4 .stabstr 00000097 00000000 00000000 00000cfc 2**0
CONTENTS, READONLY, DEBUGGING
5 .comment 0000002f 00000000 00000000 00000d93 2**0
CONTENTS, READONLY
6 .debug_aranges 00000120 00000000 00000000 00000dc2 2**0
CONTENTS, READONLY, DEBUGGING
7 .debug_info 000008fb 00000000 00000000 00000ee2 2**0
CONTENTS, READONLY, DEBUGGING
8 .debug_abbrev 000003d4 00000000 00000000 000017dd 2**0
CONTENTS, READONLY, DEBUGGING
9 .debug_line 00000526 00000000 00000000 00001bb1 2**0
CONTENTS, READONLY, DEBUGGING
10 .debug_frame 00000220 00000000 00000000 000020d8 2**2
CONTENTS, READONLY, DEBUGGING
11 .debug_str 00000368 00000000 00000000 000022f8 2**0
CONTENTS, READONLY, DEBUGGING
12 .debug_loc 000004be 00000000 00000000 00002660 2**0
CONTENTS, READONLY, DEBUGGING
13 .debug_ranges 000000f8 00000000 00000000 00002b1e 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:
00000000 <__vectors>:
ADCSRA |= (1 << ADSC);
}
uint8_t ADC_done()
{
if (ADCSRA & (1 << ADIF)){
0: 0c 94 34 00 jmp 0x68 ; 0x68 <__ctors_end>
4: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
ADCSRA = ADCSRA; // clear interrupt flag
8: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
c: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
results[ADMUX & 0x0F] = ADC;
10: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
14: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
18: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
1c: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
20: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
24: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
return (ADMUX & 0x0F);
28: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
2c: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
} else {
return 0;
}
}
30: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
34: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
38: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
3c: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
40: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
44: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
48: 0c 94 93 01 jmp 0x326 ; 0x326 <__vector_18>
4c: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
50: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
54: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
58: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
5c: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
60: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
64: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
00000068 <__ctors_end>:
68: 11 24 eor r1, r1
6a: 1f be out 0x3f, r1 ; 63
6c: cf ef ldi r28, 0xFF ; 255
6e: d4 e0 ldi r29, 0x04 ; 4
70: de bf out 0x3e, r29 ; 62
72: cd bf out 0x3d, r28 ; 61
00000074 <__do_copy_data>:
74: 12 e0 ldi r17, 0x02 ; 2
76: a0 e0 ldi r26, 0x00 ; 0
78: b1 e0 ldi r27, 0x01 ; 1
7a: e8 e9 ldi r30, 0x98 ; 152
7c: f4 e0 ldi r31, 0x04 ; 4
7e: 02 c0 rjmp .+4 ; 0x84 <__do_copy_data+0x10>
80: 05 90 lpm r0, Z+
82: 0d 92 st X+, r0
84: a2 30 cpi r26, 0x02 ; 2
86: b1 07 cpc r27, r17
88: d9 f7 brne .-10 ; 0x80 <__do_copy_data+0xc>
0000008a <__do_clear_bss>:
8a: 22 e0 ldi r18, 0x02 ; 2
8c: a2 e0 ldi r26, 0x02 ; 2
8e: b2 e0 ldi r27, 0x02 ; 2
90: 01 c0 rjmp .+2 ; 0x94 <.do_clear_bss_start>
00000092 <.do_clear_bss_loop>:
92: 1d 92 st X+, r1
00000094 <.do_clear_bss_start>:
94: a3 34 cpi r26, 0x43 ; 67
96: b2 07 cpc r27, r18
98: e1 f7 brne .-8 ; 0x92 <.do_clear_bss_loop>
9a: 0e 94 30 02 call 0x460 ; 0x460 <main>
9e: 0c 94 4a 02 jmp 0x494 ; 0x494 <_exit>
000000a2 <__bad_interrupt>:
a2: 0c 94 00 00 jmp 0 ; 0x0 <__vectors>
000000a6 <driver_init>:
// Enable timer 1
//TIMSK1 |= ( 1 << OCIE1A ) | ( 1 << OCIE1B );
//TIMSK1 |= ( 1 << TOIE1 );
// Enable fast PWM with ICR1 ( 14)
TCCR1A |= ( 1 << WGM11 );
a6: e0 e8 ldi r30, 0x80 ; 128
a8: f0 e0 ldi r31, 0x00 ; 0
aa: 80 81 ld r24, Z
ac: 82 60 ori r24, 0x02 ; 2
ae: 80 83 st Z, r24
TCCR1B |= ( 1 << WGM12 ) | ( 1 << WGM13 );
b0: a1 e8 ldi r26, 0x81 ; 129
b2: b0 e0 ldi r27, 0x00 ; 0
b4: 8c 91 ld r24, X
b6: 88 61 ori r24, 0x18 ; 24
b8: 8c 93 st X, r24
// Clock from pure clock
TCCR1B |= ( 1 << CS10 );
ba: 8c 91 ld r24, X
bc: 81 60 ori r24, 0x01 ; 1
be: 8c 93 st X, r24
// Set low on match, high on reset
TCCR1A |= ( 1 << COM1A1 ) | ( 1 << COM1B1 );
c0: 80 81 ld r24, Z
c2: 80 6a ori r24, 0xA0 ; 160
c4: 80 83 st Z, r24
// Count to 4, so we can set 75% and 25% duty
ICR1L = 3;
c6: 83 e0 ldi r24, 0x03 ; 3
c8: 80 93 86 00 sts 0x0086, r24
cc: 08 95 ret
000000ce <driver3_setHi>:
void driver1_setHi() {
OCR0A = 254;
}
void driver3_setHi() {
OCR1A = 2;
ce: 82 e0 ldi r24, 0x02 ; 2
d0: 90 e0 ldi r25, 0x00 ; 0
d2: 90 93 89 00 sts 0x0089, r25
d6: 80 93 88 00 sts 0x0088, r24
PORTD |= (1 << PD3);
da: 5b 9a sbi 0x0b, 3 ; 11
dc: 08 95 ret
000000de <driver3_setLo>:
}
void driver3_setLo() {
OCR1A = 0;
de: 10 92 89 00 sts 0x0089, r1
e2: 10 92 88 00 sts 0x0088, r1
PORTD &= ~(1 << PD3);
e6: 5b 98 cbi 0x0b, 3 ; 11
e8: 08 95 ret
000000ea <driver4_setHi>:
OCR1A = (OCR1A ^ 2) & 0x03 ;
PIND = (1 << PD3);
}
void driver4_setHi() {
OCR1B = 2;
ea: 82 e0 ldi r24, 0x02 ; 2
ec: 90 e0 ldi r25, 0x00 ; 0
ee: 90 93 8b 00 sts 0x008B, r25
f2: 80 93 8a 00 sts 0x008A, r24
f6: 08 95 ret
000000f8 <driver4_setLo>:
}
void driver4_setLo() {
OCR1B = 0;
f8: 10 92 8b 00 sts 0x008B, r1
fc: 10 92 8a 00 sts 0x008A, r1