still not finished

This commit is contained in:
Pascal Brisset
2006-03-22 19:39:21 +00:00
parent e9e7032ef1
commit 556d624b4c
9 changed files with 42 additions and 17 deletions
+1 -1
View File
@@ -56,7 +56,7 @@ UISP_FLAGS = $(ISP_FLAGS)
CFLAGS = \
-W -Wall \
-Werror -W -Wall \
$(ATMEL_INCLUDES) \
$(INCLUDES) \
-Wstrict-prototypes \
+1
View File
@@ -74,6 +74,7 @@
<set servo="MOTOR_RIGHT" value="$throttle + $roll + $yaw"/>
<set servo="MOTOR_LEFT" value="$throttle - $roll + $yaw"/>
</command_laws>
<section name="INFRARED" prefix="IR_">
<define name="ADC_ROLL_NEUTRAL" value="0"/>
<define name="ADC_PITCH_NEUTRAL" value="1024"/>
+8 -5
View File
@@ -2,6 +2,7 @@
<section name="control board">
<define name="AVR_ARCH" value="1"/>
</section>
<section name="adc" prefix="ADC_CHANNEL_">
<define name="IR1" value="1"/>
<define name="IR2" value="2"/>
@@ -20,13 +21,15 @@
<axis name="ROLL" failsafe_value="0"/>
<axis name="PITCH" failsafe_value="0"/>
<axis name="YAW" failsafe_value="0"/>
<axis name="MODE" failsafe_value="0"/>
<axis name="GAIN1" failsafe_value="0"/>
<axis name="GAIN2" failsafe_value="0"/>
<axis name="SWITCH1" failsafe_value="0"/>
<axis name="CALIB" failsafe_value="0"/>
</commands>
<radio_laws>
<set command="THROTTLE" value="@THROTTLE"/>
<set command="ROLL" value="@ROLL"/>
<set command="PITCH" value="@PITCH"/>
<set command="YAW" value="@YAW"/>
</radio_laws>
<command_laws>
<set servo="GAZ" value="2 * @THROTTLE"/>
<set servo="ELEVATOR" value="@PITCH"/>
+1 -1
View File
@@ -20,4 +20,4 @@ fbw.HIGH_FUSE = cb
fbw.EXT_FUSE = ff
fbw.LOCK_FUSE = ff
fbw.CFLAGS += -DFBW -DMCU_SPI_LINK -DACTUATORS=\"servos_4017.h\"
fbw.srcs = $(SRC_ARCH)/ppm_hw.c inter_mcu.c $(SRC_ARCH)/servo.c $(SRC_ARCH)/spi_fbw.c $(SRC_ARCH)/uart_fbw.c $(SRC_ARCH)/adc_fbw.c sys_time.c main_fbw.c main.c
fbw.srcs = $(SRC_ARCH)/ppm_hw.c inter_mcu.c $(SRC_ARCH)/servos_4017.c $(SRC_ARCH)/spi_fbw.c $(SRC_ARCH)/uart_fbw.c $(SRC_ARCH)/adc_fbw.c sys_time.c main_fbw.c main.c
-1
View File
@@ -40,7 +40,6 @@ static const pprz_t failsafe_values[COMMANDS_NB] = COMMANDS_FAILSAFE;
#define ChopServo(x,a,b) Chop(x, a, b)
#define COMMAND(i) servo_widths[i]
#define SERVOS_TICS_OF_USEC(s) SYS_TICS_OF_USEC(s)
/*
* We use the output compare registers to generate our servo pulses.
* These should be connected to a decade counter that routes the
+5 -5
View File
@@ -48,8 +48,8 @@ static volatile uint8_t idx_buf = 0;
static volatile uint16_t crc_in, crc_out;
void spi_init(void) {
from_fbw.status = 0;
from_fbw.nb_err = 0;
from_fbw.from_fbw.status = 0;
from_fbw.from_fbw.nb_err = 0;
/* set it pin output */
// IT_DDR |= _BV(IT_PIN);
@@ -67,7 +67,7 @@ void spi_reset(void) {
crc_in = CRC_INIT;
crc_out = CRC_INIT;
uint8_t first_byte = ((uint8_t*)&from_fbw)[0];
uint8_t first_byte = ((uint8_t*)&from_fbw.from_fbw)[0];
crc_out = CrcUpdate(crc_out, first_byte);
SPDR = first_byte;
@@ -93,7 +93,7 @@ SIGNAL(SIG_SPI) {
if (crc_in1 == Crc1(crc_in) && tmp == Crc2(crc_in))
from_ap_receive_valid = TRUE;
else
from_fbw.nb_err++;
from_fbw.from_fbw.nb_err++;
return;
}
@@ -109,7 +109,7 @@ SIGNAL(SIG_SPI) {
/* we are sending/receiving payload */
if (idx_buf < FRAME_LENGTH - 2) {
/* place new payload byte in send register */
tmp = ((uint8_t*)&from_fbw)[idx_buf];
tmp = ((uint8_t*)&from_fbw.from_fbw)[idx_buf];
SPDR = tmp;
crc_out = CrcUpdate(crc_out, tmp);
}
+1 -1
View File
@@ -95,7 +95,7 @@ typedef union {
#define STATUS_AUTO_OK 0
/** Two bytes for the CRC */
#define FRAME_LENGTH (sizeof(struct inter_mcu_msg)+2)
#define FRAME_LENGTH (sizeof(inter_mcu_msg)+2)
#define CRC_INIT 0xffff
#define CrcUpdate(_crc, _data) _crc_ccitt_update(_crc, _data)
+2 -2
View File
@@ -204,9 +204,9 @@ void event_task_fbw( void) {
ap_ok = TRUE;
if (mode == FBW_MODE_AUTO) {
#if defined IMU_ANALOG || defined IMU_3DMG
control_set_desired(from_ap.channels);
control_set_desired(from_ap.from_ap.channels);
#else
command_set(from_ap.channels);
command_set(from_ap.from_ap.channels);
#endif
}
to_autopilot_from_rc_values();
+23 -1
View File
@@ -107,6 +107,24 @@ let parse_command_laws = fun command ->
| _ -> xml_error "set|let"
let parse_radio_laws = fun rc ->
let a = fun s -> ExtXml.attrib rc s in
match Xml.tag rc with
"set" ->
let com = a "command"
and value = a "value" in
let v = preprocess_command value in
printf " values[COMMAND_%s] = %s;\\\n" com v;
| "let" ->
let var = a "var"
and value = a "value" in
let v = preprocess_command value in
printf " int16_t _var_%s = %s;\\\n" var v
| "define" ->
parse_element "" rc
| _ -> xml_error "set|let"
let parse_command = fun commands_params command no ->
let command_name = "COMMAND_"^ExtXml.attrib command "name" in
let failsafe_value = int_of_string (ExtXml.attrib command "failsafe_value") in
@@ -136,7 +154,11 @@ let parse_section = fun s ->
let commands_params = Array.to_list commands_params in
define "COMMANDS_FAILSAFE" (sprint_float_array (List.map (fun x -> string_of_int x.failsafe_value) commands_params));
nl (); nl ()
| "command_laws" ->
| "radio_laws" ->
printf "#define CommandsOfRC(values) { \\\n";
List.iter parse_radio_laws (Xml.children s);
printf "}\n\n"
| "command_laws" ->
printf "#define CommandsSet(values) { \\\n";
printf " uint16_t servo_value;\\\n";
printf " float command_value;\\\n";