diff --git a/lambda-test/.cproject b/lambda-test/.cproject new file mode 100644 index 0000000..668c34f --- /dev/null +++ b/lambda-test/.cproject @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lambda-test/.gitignore b/lambda-test/.gitignore new file mode 100644 index 0000000..9f963cf --- /dev/null +++ b/lambda-test/.gitignore @@ -0,0 +1 @@ +/Release/ diff --git a/lambda-test/.project b/lambda-test/.project new file mode 100644 index 0000000..d072cdc --- /dev/null +++ b/lambda-test/.project @@ -0,0 +1,28 @@ + + + lambda-test + + + lambda + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + de.innot.avreclipse.core.avrnature + + diff --git a/lambda-test/.settings/de.innot.avreclipse.core.prefs b/lambda-test/.settings/de.innot.avreclipse.core.prefs new file mode 100644 index 0000000..7fa4086 --- /dev/null +++ b/lambda-test/.settings/de.innot.avreclipse.core.prefs @@ -0,0 +1,23 @@ +avrtarget/ClockFrequency=1000000 +avrtarget/ExtRAMSize=0 +avrtarget/ExtendedRAM=false +avrtarget/MCUType=atmega328p +avrtarget/UseEEPROM=false +avrtarget/UseExtendedRAMforHeap=true +avrtarget/avrdude/BitBangDelay= +avrtarget/avrdude/Bitclock= +avrtarget/avrdude/EEPROMFile= +avrtarget/avrdude/EEPROMFromConfig=true +avrtarget/avrdude/FlashFile= +avrtarget/avrdude/FlashFromConfig=true +avrtarget/avrdude/NoChipErase=false +avrtarget/avrdude/NoSigCheck=false +avrtarget/avrdude/NoVerify=false +avrtarget/avrdude/NoWrite=false +avrtarget/avrdude/OtherOptions= +avrtarget/avrdude/ProgrammerID=programmerconfig.1 +avrtarget/avrdude/UseCounter=false +avrtarget/avrdude/WriteEEPROM=false +avrtarget/avrdude/WriteFlash=true +avrtarget/perConfig=false +eclipse.preferences.version=1 diff --git a/lambda-test/.settings/org.eclipse.cdt.codan.core.prefs b/lambda-test/.settings/org.eclipse.cdt.codan.core.prefs new file mode 100644 index 0000000..77386c2 --- /dev/null +++ b/lambda-test/.settings/org.eclipse.cdt.codan.core.prefs @@ -0,0 +1,67 @@ +eclipse.preferences.version=1 +org.eclipse.cdt.codan.checkers.errnoreturn=Warning +org.eclipse.cdt.codan.checkers.errnoreturn.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},implicit\=>false} +org.eclipse.cdt.codan.checkers.errreturnvalue=Error +org.eclipse.cdt.codan.checkers.errreturnvalue.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} +org.eclipse.cdt.codan.checkers.noreturn=Error +org.eclipse.cdt.codan.checkers.noreturn.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},implicit\=>false} +org.eclipse.cdt.codan.internal.checkers.AbstractClassCreation=Error +org.eclipse.cdt.codan.internal.checkers.AbstractClassCreation.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} +org.eclipse.cdt.codan.internal.checkers.AmbiguousProblem=Error +org.eclipse.cdt.codan.internal.checkers.AmbiguousProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} +org.eclipse.cdt.codan.internal.checkers.AssignmentInConditionProblem=Warning +org.eclipse.cdt.codan.internal.checkers.AssignmentInConditionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} +org.eclipse.cdt.codan.internal.checkers.AssignmentToItselfProblem=Error +org.eclipse.cdt.codan.internal.checkers.AssignmentToItselfProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} +org.eclipse.cdt.codan.internal.checkers.CaseBreakProblem=Warning +org.eclipse.cdt.codan.internal.checkers.CaseBreakProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},no_break_comment\=>"no break",last_case_param\=>false,empty_case_param\=>false} +org.eclipse.cdt.codan.internal.checkers.CatchByReference=Warning +org.eclipse.cdt.codan.internal.checkers.CatchByReference.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},unknown\=>false,exceptions\=>()} +org.eclipse.cdt.codan.internal.checkers.CircularReferenceProblem=Error +org.eclipse.cdt.codan.internal.checkers.CircularReferenceProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} +org.eclipse.cdt.codan.internal.checkers.ClassMembersInitialization=Warning +org.eclipse.cdt.codan.internal.checkers.ClassMembersInitialization.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},skip\=>true} +org.eclipse.cdt.codan.internal.checkers.FieldResolutionProblem=Error +org.eclipse.cdt.codan.internal.checkers.FieldResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} +org.eclipse.cdt.codan.internal.checkers.FunctionResolutionProblem=Error +org.eclipse.cdt.codan.internal.checkers.FunctionResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} +org.eclipse.cdt.codan.internal.checkers.InvalidArguments=Error +org.eclipse.cdt.codan.internal.checkers.InvalidArguments.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} +org.eclipse.cdt.codan.internal.checkers.InvalidTemplateArgumentsProblem=Error +org.eclipse.cdt.codan.internal.checkers.InvalidTemplateArgumentsProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} +org.eclipse.cdt.codan.internal.checkers.LabelStatementNotFoundProblem=Error +org.eclipse.cdt.codan.internal.checkers.LabelStatementNotFoundProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} +org.eclipse.cdt.codan.internal.checkers.MemberDeclarationNotFoundProblem=Error +org.eclipse.cdt.codan.internal.checkers.MemberDeclarationNotFoundProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} +org.eclipse.cdt.codan.internal.checkers.MethodResolutionProblem=Error +org.eclipse.cdt.codan.internal.checkers.MethodResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} +org.eclipse.cdt.codan.internal.checkers.NamingConventionFunctionChecker=-Info +org.eclipse.cdt.codan.internal.checkers.NamingConventionFunctionChecker.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},pattern\=>"^[a-z]",macro\=>true,exceptions\=>()} +org.eclipse.cdt.codan.internal.checkers.NonVirtualDestructorProblem=Warning +org.eclipse.cdt.codan.internal.checkers.NonVirtualDestructorProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} +org.eclipse.cdt.codan.internal.checkers.OverloadProblem=Error +org.eclipse.cdt.codan.internal.checkers.OverloadProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} +org.eclipse.cdt.codan.internal.checkers.RedeclarationProblem=Error +org.eclipse.cdt.codan.internal.checkers.RedeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} +org.eclipse.cdt.codan.internal.checkers.RedefinitionProblem=Error +org.eclipse.cdt.codan.internal.checkers.RedefinitionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} +org.eclipse.cdt.codan.internal.checkers.ReturnStyleProblem=-Warning +org.eclipse.cdt.codan.internal.checkers.ReturnStyleProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} +org.eclipse.cdt.codan.internal.checkers.ScanfFormatStringSecurityProblem=-Warning +org.eclipse.cdt.codan.internal.checkers.ScanfFormatStringSecurityProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} +org.eclipse.cdt.codan.internal.checkers.StatementHasNoEffectProblem=Warning +org.eclipse.cdt.codan.internal.checkers.StatementHasNoEffectProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},macro\=>true,exceptions\=>()} +org.eclipse.cdt.codan.internal.checkers.SuggestedParenthesisProblem=Warning +org.eclipse.cdt.codan.internal.checkers.SuggestedParenthesisProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},paramNot\=>false} +org.eclipse.cdt.codan.internal.checkers.SuspiciousSemicolonProblem=Warning +org.eclipse.cdt.codan.internal.checkers.SuspiciousSemicolonProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},else\=>false,afterelse\=>false} +org.eclipse.cdt.codan.internal.checkers.TypeResolutionProblem=Error +org.eclipse.cdt.codan.internal.checkers.TypeResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} +org.eclipse.cdt.codan.internal.checkers.UnusedFunctionDeclarationProblem=Warning +org.eclipse.cdt.codan.internal.checkers.UnusedFunctionDeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},macro\=>true} +org.eclipse.cdt.codan.internal.checkers.UnusedStaticFunctionProblem=Warning +org.eclipse.cdt.codan.internal.checkers.UnusedStaticFunctionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},macro\=>true} +org.eclipse.cdt.codan.internal.checkers.UnusedVariableDeclarationProblem=Warning +org.eclipse.cdt.codan.internal.checkers.UnusedVariableDeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},macro\=>true,exceptions\=>("@(\#)","$Id")} +org.eclipse.cdt.codan.internal.checkers.VariableResolutionProblem=Error +org.eclipse.cdt.codan.internal.checkers.VariableResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} diff --git a/lambda-test/Makefile b/lambda-test/Makefile new file mode 100644 index 0000000..6122789 --- /dev/null +++ b/lambda-test/Makefile @@ -0,0 +1,194 @@ + +##########------------------------------------------------------########## +########## Project-specific Details ########## +########## Check these every time you start a new project ########## +##########------------------------------------------------------########## + +MCU = atmega328p +F_CPU = 1000000 +BAUD = 9600 +## Also try BAUD = 19200 or 38400 if you're feeling lucky. + +## This is where your main() routine lives +MAIN = lambda-test.c + +## If you've split your program into multiple .c / .h files, +## include the additional source (in same directory) here +LOCAL_SOURCE = + +## Here you can link to one more directory (and multiple .c files) +EXTRA_SOURCE_DIR = /data/Work/AVR/AVR-Programming-master/AVR-Programming-Library/ +EXTRA_SOURCE_FILES = USART.c + +## Link to directory of project under test and its source files +TEST_SOURCE_DIR = /data/Job/git/lambda-avr/lambda/ +TEST_SOURCE_FILES = sensors.c + +##########------------------------------------------------------########## +########## Programmer Defaults ########## +########## Set up once, then forget about it ########## +########## (Can override. See bottom of file.) ########## +##########------------------------------------------------------########## + +PROGRAMMER_TYPE = avrisp +# extra arguments to avrdude: baud rate, chip type, -F flag, etc. +PROGRAMMER_ARGS = -b 19200 -P /dev/ttyACM3 + +##########------------------------------------------------------########## +########## Makefile Magic! ########## +########## Summary: ########## +########## We want a .hex file ########## +########## Compile source files into .elf ########## +########## Convert .elf file into .hex ########## +########## You shouldn't need to edit below. ########## +##########------------------------------------------------------########## + +## Defined programs / locations +CC = avr-gcc +OBJCOPY = avr-objcopy +OBJDUMP = avr-objdump +AVRSIZE = avr-size +AVRDUDE = avrdude + +## Compilation options, type man avr-gcc if you're curious. +CFLAGS = -mmcu=$(MCU) -DF_CPU=$(F_CPU)UL -DBAUD=$(BAUD) -Os -I. -I$(EXTRA_SOURCE_DIR) -I$(TEST_SOURCE_DIR) +CFLAGS += -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums +CFLAGS += -Wall -Wstrict-prototypes +CFLAGS += -g -ggdb +CFLAGS += -ffunction-sections -fdata-sections -Wl,--gc-sections -Wl,--relax +CFLAGS += -std=gnu99 +## CFLAGS += -Wl,-u,vfprintf -lprintf_flt -lm ## for floating-point printf +## CFLAGS += -Wl,-u,vfprintf -lprintf_min ## for smaller printf + +## Lump target and extra source files together +TARGET = $(strip $(basename $(MAIN))) +SRC = $(TARGET).c +EXTRA_SOURCE = $(addprefix $(EXTRA_SOURCE_DIR), $(EXTRA_SOURCE_FILES)) +TEST_SOURCE = $(addprefix $(TEST_SOURCE_DIR), $(TEST_SOURCE_FILES)) +SRC += $(EXTRA_SOURCE) +SRC += $(TEST_SOURCE) +SRC += $(LOCAL_SOURCE) + +## List of all header files +HEADERS = $(SRC:.c=.h) + +## For every .c file, compile an .o object file +OBJ = $(SRC:.c=.o) + +## Generic Makefile targets. (Only .hex file is necessary) +all: $(TARGET).hex + +%.hex: %.elf + $(OBJCOPY) -R .eeprom -O ihex $< $@ + +%.elf: $(SRC) + $(CC) $(CFLAGS) $(SRC) --output $@ + +%.eeprom: %.elf + $(OBJCOPY) -j .eeprom --change-section-lma .eeprom=0 -O ihex $< $@ + +debug: + @echo + @echo "Source files:" $(SRC) + @echo "MCU, F_CPU, BAUD:" $(MCU), $(F_CPU), $(BAUD) + @echo + +# Optionally create listing file from .elf +# This creates approximate assembly-language equivalent of your code. +# Useful for debugging time-sensitive bits, +# or making sure the compiler does what you want. +disassemble: $(TARGET).lst + +disasm: disassemble + +eeprom: $(TARGET).eeprom + +%.lst: %.elf + $(OBJDUMP) -S $< > $@ + +# Optionally show how big the resulting program is +size: $(TARGET).elf + $(AVRSIZE) -C --mcu=$(MCU) $(TARGET).elf + +clean: + rm -f $(TARGET).elf $(TARGET).hex $(TARGET).obj \ + $(TARGET).o $(TARGET).d $(TARGET).eep $(TARGET).lst \ + $(TARGET).lss $(TARGET).sym $(TARGET).map $(TARGET)~ \ + $(TARGET).eeprom + +squeaky_clean: + rm -f *.elf *.hex *.obj *.o *.d *.eep *.lst *.lss *.sym *.map *~ + +##########------------------------------------------------------########## +########## Programmer-specific details ########## +########## Flashing code to AVR using avrdude ########## +##########------------------------------------------------------########## + +flash: $(TARGET).hex + $(AVRDUDE) -c $(PROGRAMMER_TYPE) -p $(MCU) $(PROGRAMMER_ARGS) -U flash:w:$< + +## An alias +program: flash + +flash_eeprom: $(TARGET).eeprom + $(AVRDUDE) -c $(PROGRAMMER_TYPE) -p $(MCU) $(PROGRAMMER_ARGS) -U eeprom:w:$< + +avrdude_terminal: + $(AVRDUDE) -c $(PROGRAMMER_TYPE) -p $(MCU) $(PROGRAMMER_ARGS) -nt + +## If you've got multiple programmers that you use, +## you can define them here so that it's easy to switch. +## To invoke, use something like `make flash_arduinoISP` +flash_usbtiny: PROGRAMMER_TYPE = usbtiny +flash_usbtiny: PROGRAMMER_ARGS = # USBTiny works with no further arguments +flash_usbtiny: flash + +flash_usbasp: PROGRAMMER_TYPE = usbasp +flash_usbasp: PROGRAMMER_ARGS = # USBasp works with no further arguments +flash_usbasp: flash + +flash_arduinoISP: PROGRAMMER_TYPE = avrisp +flash_arduinoISP: PROGRAMMER_ARGS = -b 19200 -P /dev/ttyACM0 +## (for windows) flash_arduinoISP: PROGRAMMER_ARGS = -b 19200 -P com5 +flash_arduinoISP: flash + +flash_109: PROGRAMMER_TYPE = avr109 +flash_109: PROGRAMMER_ARGS = -b 9600 -P /dev/ttyUSB0 +flash_109: flash + +##########------------------------------------------------------########## +########## Fuse settings and suitable defaults ########## +##########------------------------------------------------------########## + +## Mega 48, 88, 168, 328 default values +LFUSE = 0x62 +HFUSE = 0xdf +EFUSE = 0x00 + +## Generic +FUSE_STRING = -U lfuse:w:$(LFUSE):m -U hfuse:w:$(HFUSE):m -U efuse:w:$(EFUSE):m + +fuses: + $(AVRDUDE) -c $(PROGRAMMER_TYPE) -p $(MCU) \ + $(PROGRAMMER_ARGS) $(FUSE_STRING) +show_fuses: + $(AVRDUDE) -c $(PROGRAMMER_TYPE) -p $(MCU) $(PROGRAMMER_ARGS) -nv + +## Called with no extra definitions, sets to defaults +set_default_fuses: FUSE_STRING = -U lfuse:w:$(LFUSE):m -U hfuse:w:$(HFUSE):m -U efuse:w:$(EFUSE):m +set_default_fuses: fuses + +## Set the fuse byte for full-speed mode +## Note: can also be set in firmware for modern chips +set_fast_fuse: LFUSE = 0xE2 +set_fast_fuse: FUSE_STRING = -U lfuse:w:$(LFUSE):m +set_fast_fuse: fuses + +## Set the EESAVE fuse byte to preserve EEPROM across flashes +set_eeprom_save_fuse: HFUSE = 0xD7 +set_eeprom_save_fuse: FUSE_STRING = -U hfuse:w:$(HFUSE):m +set_eeprom_save_fuse: fuses + +## Clear the EESAVE fuse byte +clear_eeprom_save_fuse: FUSE_STRING = -U hfuse:w:$(HFUSE):m +clear_eeprom_save_fuse: fuses diff --git a/lambda-test/lambda-test.c b/lambda-test/lambda-test.c new file mode 100644 index 0000000..f841d91 --- /dev/null +++ b/lambda-test/lambda-test.c @@ -0,0 +1,45 @@ +/* + * sensors-test.c + * + * Created on: 04.03.2015 + * Author: dode@luniks.net + * + */ +#include +#include +#include +#include +#include +#include +#include +#include "USART.h" +#include "sensors.h" + +void testToTempI(void) { + int temp = toTempI(100); + + if (temp == 20) { + printString("testToTempI(): passed\r\n"); + } else { + printString("testToTempI(): failed!\r\n"); + } +} + +void testToTempO(void) { + int temp = toTempO(454); + + if (temp == 0) { + printString("testToTempO(): passed\r\n"); + } else { + printString("testToTempO(): failed!\r\n"); + } +} + +int main(void) { + + initUSART(); + testToTempI(); + testToTempO(); + + return 0; +} diff --git a/lambda-test/lambda-test.elf b/lambda-test/lambda-test.elf new file mode 100755 index 0000000..a4e4bce --- /dev/null +++ b/lambda-test/lambda-test.elf Binary files differ diff --git a/lambda-test/lambda-test.hex b/lambda-test/lambda-test.hex new file mode 100644 index 0000000..faacfa3 --- /dev/null +++ b/lambda-test/lambda-test.hex @@ -0,0 +1,130 @@ +:1000000033C0000044C0000042C0000040C00000F7 +:100010003EC000003CC000003AC0000038C00000F4 +:1000200036C0000034C0000032C0000030C0000004 +:100030002EC000002CC000002AC0000028C0000014 +:1000400026C0000024C0000022C0000020C0000024 +:100050001EC000001CC000001AC0000018C0000034 +:1000600016C0000014C0000011241FBECFEFD8E05E +:10007000DEBFCDBF11E0A0E0B1E0E6E7F7E002C0EF +:1000800005900D92A638B107D9F71CD072C3B8CF2E +:1000900060E070E088EC92E445D0449719F480E089 +:1000A00091E002C088E191E02BC060E070E083EE57 +:1000B00093E4F2D0892B19F481E391E002C089E442 +:1000C00091E01EC005D0E4DFF0DF80E090E008950D +:1000D0001092C5008CE08093C400E0ECF0E08081D9 +:1000E0008260808388E18093C10086E08093C200B3 +:1000F00008959091C00095FFFCCF8093C6000895AD +:100100001F93CF93DF93EC0110E0FE01E10FF11D8F +:100110008081882319F0EDDF1F5FF7CFDF91CF914A +:100120001F91089520E030E040EA50E427D1D8D272 +:100130008DD1CB0108958F929F92AF92BF92CF92B3 +:10014000DF92EF92FF920F931F93CF93DF934B01B8 +:100150005C01EA01690168817981882777FD8095D2 +:10016000982FA7D19B01AC01C501B40103D187FF32 +:1001700005C06A817B818C819D8181C086E08C9DD8 +:1001800080018D9D100D1124065011090C0F1D1FAB +:10019000F80160817181882777FD8095982F89D13A +:1001A0009B01AC01C501B40134D218160CF462C035 +:1001B0008E0180E090E0F1E0CF1AD1089C012F5F22 +:1001C0003F4F79018C159D0584F4F8016681778194 +:1001D000882777FD8095982F6CD10A5F1F4FA50166 +:1001E000940117D218160CF043C086E08E9DF001E2 +:1001F0008F9DF00D11248E010E0F1F1F3697EC0FEF +:10020000FD1FC081D181C280D380E480F580BE0112 +:10021000882777FD8095982F4CD19B01AC01C501B3 +:10022000B40143D04B015C01A7019601F801628142 +:1002300073818481958139D09B01AC01C501B401E2 +:10024000ECD14B015C01F801608171816C1B7D0B6D +:10025000882777FD8095982F2CD19B01AC01C50193 +:10026000B4018CD09B01AC01C701B6011FD007C0FF +:10027000C701A4CFF8016281738184819581DF91E8 +:10028000CF911F910F91FF90EF90DF90CF90BF9093 +:10029000AF909F908F90089526E030E042E651E0C5 +:1002A0004ADF1ED2D3D0CB0108955058BB27AA27CE +:1002B0000ED075C166D130F06BD120F031F49F3F84 +:1002C00011F41EF45BC10EF4E095E7FB51C1E92F78 +:1002D00077D180F3BA17620773078407950718F080 +:1002E00071F49EF58FC10EF4E0950B2EBA2FA02D60 +:1002F0000B01B90190010C01CA01A0011124FF27D3 +:10030000591B99F0593F50F4503E68F11A16F040CD +:10031000A22F232F342F4427585FF3CF46953795CC +:100320002795A795F0405395C9F77EF41F16BA0B91 +:10033000620B730B840BBAF09150A1F0FF0FBB1F3F +:10034000661F771F881FC2F70EC0BA0F621F731F88 +:10035000841F48F4879577956795B795F7959E3FE5 +:1003600008F0B3CF9395880F08F09927EE0F979573 +:1003700087950895D9D008F481E008950CD00FC175 +:1003800007D140F0FED030F021F45F3F19F0F0C00B +:10039000511139C1F3C014D198F39923C9F35523EE +:1003A000B1F3951B550BBB27AA2762177307840768 +:1003B00038F09F5F5F4F220F331F441FAA1FA9F31E +:1003C00033D00E2E3AF0E0E830D091505040E69510 +:1003D000001CCAF729D0FE2F27D0660F771F881F71 +:1003E000BB1F261737074807AB07B0E809F0BB0B60 +:1003F000802DBF01FF2793585F4F2AF09E3F510584 +:1004000068F0B6C000C15F3FECF3983EDCF3869520 +:1004100077956795B795F7959F5FC9F7880F911DF9 +:100420009695879597F90895E1E0660F771F881FE5 +:10043000BB1F621773078407BA0720F0621B730B98 +:10044000840BBA0BEE1F88F7E095089504D06894EA +:10045000B111D9C00895BCD088F09F5790F0B92F42 +:100460009927B751A0F0D1F0660F771F881F991F09 +:100470001AF0BA95C9F712C0B13081F0C3D0B1E01B +:100480000895C0C0672F782F8827B85F39F0B93F2B +:10049000CCF3869577956795B395D9F73EF490950B +:1004A0008095709561957F4F8F4F9F4F0895E89489 +:1004B00009C097FB3EF490958095709561957F4FAC +:1004C0008F4F9F4F9923A9F0F92F96E9BB2793955A +:1004D000F695879577956795B795F111F8CFFAF46A +:1004E000BB0F11F460FF1BC06F5F7F4F8F4F9F4F9B +:1004F00016C0882311F096E911C0772321F09EE8F9 +:10050000872F762F05C0662371F096E8862F70E05E +:1005100060E02AF09A95660F771F881FDAF7880F38 +:100520009695879597F90895990F0008550FAA0B8E +:10053000E0E8FEEF16161706E807F907C0F01216F6 +:100540001306E407F50798F0621B730B840B950BF9 +:1005500039F40A2661F0232B242B252B21F408954E +:100560000A2609F4A140A6958FEF811D811D0895EB +:1005700097F99F6780E870E060E008959FEF80EC56 +:10058000089500240A9416161706180609060895F9 +:1005900000240A9412161306140605060895092E5F +:1005A0000394000C11F4882352F0BB0F40F4BF2BCE +:1005B00011F460FF04C06F5F7F4F8F4F9F4F08950E +:1005C00057FD9058440F551F59F05F3F71F0479504 +:1005D000880F97FB991F61F09F3F79F087950895E9 +:1005E000121613061406551FF2CF4695F1DF08C008 +:1005F000161617061806991FF1CF86957105610525 +:1006000008940895E894BB2766277727CB0197F9CC +:1006100008958ADF08F48FEF08950BD0C0CFB1DFC3 +:1006200028F0B6DF18F0952309F0A2CFA7CF112448 +:10063000EACFC6DFA0F3959FD1F3950F50E0551F89 +:10064000629FF001729FBB27F00DB11D639FAA2727 +:10065000F00DB11DAA1F649F6627B00DA11D661F76 +:10066000829F2227B00DA11D621F739FB00DA11D97 +:10067000621F839FA00D611D221F749F3327A00D51 +:10068000611D231F849F600D211D822F762F6A2FED +:1006900011249F5750408AF0E1F088234AF0EE0F72 +:1006A000FF1FBB1F661F771F881F91505040A9F77F +:1006B0009E3F510570F05CCFA6CF5F3FECF3983EB4 +:1006C000DCF3869577956795B795F795E7959F5FE6 +:1006D000C1F7FE2B880F911D9695879597F9089580 +:1006E00077DFE0F09E37D8F09639B8F49E3848F4BA +:1006F000672F782F8827985FF9CF8695779567952C +:1007000093959539D0F3B62FB1706B0F711D811D84 +:1007100020F4879577956795939502C01CC073CF99 +:10072000882371F4772321F09850872B762F07C008 +:10073000662311F499270DC09051862B70E060E07C +:100740002AF09A95660F771F881FDAF7880F96951B +:10075000879597F908959F3F31F0915020F4879540 +:1007600077956795B795880F911D9695879597F919 +:060770000895F894FFCF8C +:1007760074657374546F54656D704928293A2070F6 +:1007860061737365640D0A0074657374546F546500 +:100796006D704928293A206661696C6564210D0AE5 +:1007A6000074657374546F54656D704F28293A2030 +:1007B6007061737365640D0A0074657374546F54C5 +:1007C600656D704F28293A206661696C6564210D54 +:1007D6000A00C7FF000048C2C601000000007B05F2 +:1007E6000000C842D80800004843E70B00009643C3 +:0607F600B20E0000C84332 +:00000001FF diff --git a/lambda/lambda.c b/lambda/lambda.c index 0c62441..fee76b1 100644 --- a/lambda/lambda.c +++ b/lambda/lambda.c @@ -1,5 +1,5 @@ /* - * lambda.h + * lambda.c * * Created on: 22.02.2015 * Author: dode@luniks.net diff --git a/lambda/sensors.c b/lambda/sensors.c index cf87b12..1b42962 100644 --- a/lambda/sensors.c +++ b/lambda/sensors.c @@ -48,7 +48,7 @@ static const tableEntry tempOTable[] = { { -57, -50 }, - { 455, 0 }, + { 454, 0 }, { 1403, 100 }, { 2264, 200 }, { 3047, 300 },