diff --git a/examples/get_up/Makefile b/examples/get_up/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..d7a629c831d6b4f3dbd6c67c385a9f509de257dc --- /dev/null +++ b/examples/get_up/Makefile @@ -0,0 +1,55 @@ +PROJECT=get_up +######################################################## +# afegir tots els fitxers que s'han de compilar aquà +######################################################## +SOURCES=get_up.c + +OBJS=$(SOURCES:.c=.o) +SRC_DIR=./ +DEV_DIR=../../dyn_devices/ +COMM_DIR=../../communications/ +CONT_DIR=../../controllers/ +MAN_DIR=../../motion/ +CC=avr-gcc +OBJCOPY=avr-objcopy +MMCU=atmega2561 + +LIBS=$(MAN_DIR)lib/libmotion_manager.a $(CONT_DIR)lib/libcontrollers.a $(COMM_DIR)lib/libcomm.a $(DEV_DIR)lib/libdyn_devices.a + +INCLUDE_DIRS=-I$(DEV_DIR)include -I$(COMM_DIR)include -I$(CONT_DIR)include -I$(MAN_DIR)include + +CFLAGS=-mmcu=$(MMCU) -Wall -Os $(defines) -DF_CPU=16000000UL -gdwarf-2 -std=gnu99 -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wstrict-prototypes + +LDFLAGS=-mmcu=$(MMCU) -Wl,-Map=$(PROJECT).map -DF_CPU=16000000UL + +HEX_FLASH_FLAGS = -R .eeprom -R .fuse -R .lock -R .signature + +.PHONY: all + +all: communications dyn_devices controllers motion_manager $(PROJECT).hex + +$(PROJECT).hex: $(PROJECT).elf + $(OBJCOPY) -O ihex $(HEX_FLASH_FLAGS) $< $@ +$(PROJECT).elf: $(OBJS) + $(CC) $(LDFLAGS) $(OBJS) $(LIBS) -o $(PROJECT).elf +%.o:%.c + $(CC) -c $(CFLAGS) $(INCLUDE_DIRS) -o $@ $< + +communications: + $(MAKE) -C $(COMM_DIR) + +dyn_devices: + $(MAKE) -C $(DEV_DIR) + +controllers: + $(MAKE) -C $(CONT_DIR) + +motion_manager: + $(MAKE) -C $(MAN_DIR) + +download: $(MAIN_OUT_HEX) + fw_downloader -d /dev/ttyUSB0 -f ./$(PROJECT).hex -p cm510 + +clean: + -rm $(PROJECT).* + -rm $(OBJS) diff --git a/motion/src/examples/get_up.c b/examples/get_up/get_up.c similarity index 100% rename from motion/src/examples/get_up.c rename to examples/get_up/get_up.c diff --git a/examples/sensors/Makefile b/examples/sensors/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..44981c05f1b8fc9314745c6354fbe7f27c1676dd --- /dev/null +++ b/examples/sensors/Makefile @@ -0,0 +1,55 @@ +PROJECT=sensors +######################################################## +# afegir tots els fitxers que s'han de compilar aquà +######################################################## +SOURCES=sensors.c + +OBJS=$(SOURCES:.c=.o) +SRC_DIR=./ +DEV_DIR=../../dyn_devices/ +COMM_DIR=../../communications/ +CONT_DIR=../../controllers/ +MAN_DIR=../../motion/ +CC=avr-gcc +OBJCOPY=avr-objcopy +MMCU=atmega2561 + +LIBS=$(MAN_DIR)lib/libmotion_manager.a $(CONT_DIR)lib/libcontrollers.a $(COMM_DIR)lib/libcomm.a $(DEV_DIR)lib/libdyn_devices.a + +INCLUDE_DIRS=-I$(DEV_DIR)include -I$(COMM_DIR)include -I$(CONT_DIR)include -I$(MAN_DIR)include + +CFLAGS=-mmcu=$(MMCU) -Wall -Os $(defines) -DF_CPU=16000000UL -gdwarf-2 -std=gnu99 -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wstrict-prototypes + +LDFLAGS=-mmcu=$(MMCU) -Wl,-Map=$(PROJECT).map -DF_CPU=16000000UL + +HEX_FLASH_FLAGS = -R .eeprom -R .fuse -R .lock -R .signature + +.PHONY: all + +all: communications dyn_devices controllers motion_manager $(PROJECT).hex + +$(PROJECT).hex: $(PROJECT).elf + $(OBJCOPY) -O ihex $(HEX_FLASH_FLAGS) $< $@ +$(PROJECT).elf: $(OBJS) + $(CC) $(LDFLAGS) $(OBJS) $(LIBS) -o $(PROJECT).elf +%.o:%.c + $(CC) -c $(CFLAGS) $(INCLUDE_DIRS) -o $@ $< + +communications: + $(MAKE) -C $(COMM_DIR) + +dyn_devices: + $(MAKE) -C $(DEV_DIR) + +controllers: + $(MAKE) -C $(CONT_DIR) + +motion_manager: + $(MAKE) -C $(MAN_DIR) + +download: $(MAIN_OUT_HEX) + fw_downloader -d /dev/ttyUSB0 -f ./$(PROJECT).hex -p cm510 + +clean: + -rm $(PROJECT).* + -rm $(OBJS) diff --git a/examples/sensors/sensors.c b/examples/sensors/sensors.c new file mode 100644 index 0000000000000000000000000000000000000000..ba3feb8153c41f2cccc352585bfb8a3a86a76843 --- /dev/null +++ b/examples/sensors/sensors.c @@ -0,0 +1,45 @@ +#include <util/delay.h> +#include <stdio.h> +#include "cm510.h" +#include "balance.h" +#include "exp_board.h" + +typedef enum {wait_start,wait_ready,read_sensors} main_states; + +void user_init(void) +{ + serial_console_init(57600); + balance_init(); + balance_calibrate_gyro(); + balance_enable_gyro(); + user_time_set_period(100); + exp_adc_start(); + exp_compass_start(); +} + +void user_loop(void) +{ + static main_states state=wait_start; + + switch(state) + { + case wait_start: if(is_button_rising_edge(BTN_START)) + { + action_set_page(31); + action_start_page(); + state=wait_ready; + } + else + state=wait_start; + break; + case wait_ready: if(is_action_running()) + state=wait_ready; + else + state=read_sensors; + break; + case read_sensors: printf("CM510 ADC port 1: %d\n",get_adc_avg_channel(ADC_PORT_1)); + printf("Exp. Board compass: %d\n",exp_compass_get_avg_heading()); + printf("Exp. Board ADC port 7: %d\n",exp_adc_get_avg_channel(ADC7)); + break; + } +} diff --git a/examples/walk_straight/Makefile b/examples/walk_straight/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..545bfcee9a6daddd546ef982b89af2136ae5acdd --- /dev/null +++ b/examples/walk_straight/Makefile @@ -0,0 +1,55 @@ +PROJECT=walk_straight +######################################################## +# afegir tots els fitxers que s'han de compilar aquà +######################################################## +SOURCES=walk_straight.c + +OBJS=$(SOURCES:.c=.o) +SRC_DIR=./ +DEV_DIR=../../dyn_devices/ +COMM_DIR=../../communications/ +CONT_DIR=../../controllers/ +MAN_DIR=../../motion/ +CC=avr-gcc +OBJCOPY=avr-objcopy +MMCU=atmega2561 + +LIBS=$(MAN_DIR)lib/libmotion_manager.a $(CONT_DIR)lib/libcontrollers.a $(COMM_DIR)lib/libcomm.a $(DEV_DIR)lib/libdyn_devices.a + +INCLUDE_DIRS=-I$(DEV_DIR)include -I$(COMM_DIR)include -I$(CONT_DIR)include -I$(MAN_DIR)include + +CFLAGS=-mmcu=$(MMCU) -Wall -Os $(defines) -DF_CPU=16000000UL -gdwarf-2 -std=gnu99 -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wstrict-prototypes + +LDFLAGS=-mmcu=$(MMCU) -Wl,-Map=$(PROJECT).map -DF_CPU=16000000UL + +HEX_FLASH_FLAGS = -R .eeprom -R .fuse -R .lock -R .signature + +.PHONY: all + +all: communications dyn_devices controllers motion_manager $(PROJECT).hex + +$(PROJECT).hex: $(PROJECT).elf + $(OBJCOPY) -O ihex $(HEX_FLASH_FLAGS) $< $@ +$(PROJECT).elf: $(OBJS) + $(CC) $(LDFLAGS) $(OBJS) $(LIBS) -o $(PROJECT).elf +%.o:%.c + $(CC) -c $(CFLAGS) $(INCLUDE_DIRS) -o $@ $< + +communications: + $(MAKE) -C $(COMM_DIR) + +dyn_devices: + $(MAKE) -C $(DEV_DIR) + +controllers: + $(MAKE) -C $(CONT_DIR) + +motion_manager: + $(MAKE) -C $(MAN_DIR) + +download: $(MAIN_OUT_HEX) + fw_downloader -d /dev/ttyUSB0 -f ./$(PROJECT).hex -p cm510 + +clean: + -rm $(PROJECT).* + -rm $(OBJS) diff --git a/motion/src/examples/walk_straight.c b/examples/walk_straight/walk_straight.c similarity index 100% rename from motion/src/examples/walk_straight.c rename to examples/walk_straight/walk_straight.c diff --git a/motion/src/examples/Makefile b/motion/src/examples/Makefile index 847e3b242b9ef3164e143d002b96a37efcf269bd..b773bdda297cbb8fd4c54af7f4652636a4ec696a 100644 --- a/motion/src/examples/Makefile +++ b/motion/src/examples/Makefile @@ -2,7 +2,7 @@ PROJECT=manager_ex ######################################################## # afegir tots els fitxers que s'han de compilar aquà ######################################################## -SOURCES=get_up.c#walk_straight.c +SOURCES=main.c OBJS=$(SOURCES:.c=.o) SRC_DIR=./src/