diff --git a/conf/airframes/gorrazoptere_esc_3DMG.xml b/conf/airframes/gorrazoptere_esc_3DMG.xml index b5740a7696..a0031e051f 100644 --- a/conf/airframes/gorrazoptere_esc_3DMG.xml +++ b/conf/airframes/gorrazoptere_esc_3DMG.xml @@ -49,13 +49,22 @@ + - + + + + + + + + + @@ -64,7 +73,7 @@ - +
@@ -116,7 +125,7 @@ include $(PAPARAZZI_SRC)/conf/autopilot/disc_board.makefile LOCAL_CFLAGS += -DIMU_3DMG ap.CFLAGS += -DRATE_LOOP -ap.EXTRA_SRCS += control.c imu.c 3dmg.c +ap.EXTRA_SRCS += control_grz.c imu.c 3dmg.c ap.CFLAGS += -DIMU_RESET_ON_BOOT ap.CFLAGS += -DTIMER1_TOP=0x400 diff --git a/conf/airframes/microjet4.xml b/conf/airframes/microjet4.xml index ea886f4192..0087f176dd 100644 --- a/conf/airframes/microjet4.xml +++ b/conf/airframes/microjet4.xml @@ -1,5 +1,6 @@ + diff --git a/conf/autopilot/disc_board.makefile b/conf/autopilot/disc_board.makefile index 1d70bda4a2..825b0bd23d 100644 --- a/conf/autopilot/disc_board.makefile +++ b/conf/autopilot/disc_board.makefile @@ -9,4 +9,5 @@ ap.HIGH_FUSE = 99 ap.EXT_FUSE = ff ap.LOCK_FUSE = ff ap.CFLAGS += -DAP -DFBW -DCONFIG=\"config_discboard.h\" -ap.srcs = sys_time.c main_fbw_2.c main_ap_2.c main.c +# ap.srcs = sys_time.c main_fbw_2.c main_ap_2.c main.c +ap.srcs = $(SRC_ARCH)/ppm_hw.c $(SRC_ARCH)/adc_ap.c $(SRC_ARCH)/uart_ap.c $(SRC_ARCH)/servos_esc_hw.c main_fbw.c inter_mcu.c pid.c estimator.c if_calib.c nav.c main_ap.c mainloop.c main.c \ No newline at end of file diff --git a/sw/tools/gen_airframe.ml b/sw/tools/gen_airframe.ml index 305b0ee1c3..0e0dec6b00 100644 --- a/sw/tools/gen_airframe.ml +++ b/sw/tools/gen_airframe.ml @@ -96,7 +96,7 @@ let parse_command_laws = fun command -> printf " command_value = %s;\\\n" v; printf " command_value *= command_value>0 ? SERVO_%s_TRAVEL_UP : SERVO_%s_TRAVEL_DOWN;\\\n" servo servo; printf " servo_value = SERVO_%s_NEUTRAL + (int16_t)(command_value);\\\n" servo; - printf " COMMAND(SERVO_%s) = SERVOS_TICS_OF_USEC(Chop(servo_value, SERVO_%s_MIN, SERVO_%s_MAX));\\\n\\\n" servo servo servo + printf " COMMAND(SERVO_%s) = SERVOS_TICS_OF_USEC(ChopServo(servo_value, SERVO_%s_MIN, SERVO_%s_MAX));\\\n\\\n" servo servo servo | "let" -> let var = a "var" and value = a "value" in diff --git a/sw/tools/gen_radio.ml b/sw/tools/gen_radio.ml index 72b3a4b3a1..dc6a53d791 100644 --- a/sw/tools/gen_radio.ml +++ b/sw/tools/gen_radio.ml @@ -82,10 +82,10 @@ let gen_normalize_ppm = fun channels -> else sprintf "tmp_radio * (tmp_radio >=0 ? (MAX_PPRZ/%s/(float)(SIGNED_SYS_TICS_OF_USEC(%d-%d))) : (MIN_PPRZ/%s/(float)(SIGNED_SYS_TICS_OF_USEC(%d-%d))))" period c.max c.neutral period c.min c.neutral, "MIN_PPRZ" in if c.averaged then begin - printf " avg_rc_values[COMMAND_%s] += %s;\\\n" c.name value + printf " avg_rc_values[RADIO_%s] += %s;\\\n" c.name value end else begin - printf " rc_values[COMMAND_%s] = %s;\\\n" c.name value; - printf " if (rc_values[COMMAND_%s] > MAX_PPRZ) rc_values[COMMAND_%s] = MAX_PPRZ;\\\n else if (rc_values[COMMAND_%s] < %s) rc_values[COMMAND_%s] = %s; \\\n\\\n" c.name c.name c.name min_pprz c.name min_pprz; + printf " rc_values[RADIO_%s] = %s;\\\n" c.name value; + printf " if (rc_values[RADIO_%s] > MAX_PPRZ) rc_values[RADIO_%s] = MAX_PPRZ;\\\n else if (rc_values[RADIO_%s] < %s) rc_values[RADIO_%s] = %s; \\\n\\\n" c.name c.name c.name min_pprz c.name min_pprz; end ) channels; @@ -95,9 +95,9 @@ let gen_normalize_ppm = fun channels -> List.iter (fun c -> if c.averaged then begin - printf " rc_values[COMMAND_%s] = avg_rc_values[COMMAND_%s];\\\n" c.name c.name; - printf " avg_rc_values[COMMAND_%s] = 0;\\\n" c.name; - printf " if (rc_values[COMMAND_%s] > MAX_PPRZ) rc_values[COMMAND_%s] = MAX_PPRZ;\\\n else if (rc_values[COMMAND_%s] < MIN_PPRZ) rc_values[COMMAND_%s] = MIN_PPRZ; \\\n\\\n" c.name c.name c.name c.name; + printf " rc_values[RADIO_%s] = avg_rc_values[RADIO_%s];\\\n" c.name c.name; + printf " avg_rc_values[RADIO_%s] = 0;\\\n" c.name; + printf " if (rc_values[RADIO_%s] > MAX_PPRZ) rc_values[RADIO_%s] = MAX_PPRZ;\\\n else if (rc_values[RADIO_%s] < MIN_PPRZ) rc_values[RADIO_%s] = MIN_PPRZ; \\\n\\\n" c.name c.name c.name c.name; end ) channels;