mirror of
https://github.com/paparazzi/paparazzi.git
synced 2026-06-07 09:36:19 +08:00
iavr code compiles
This commit is contained in:
@@ -61,9 +61,19 @@
|
||||
<axis name="THROTTLE" failsafe_value="0"/>
|
||||
<axis name="ROLL" failsafe_value="0"/>
|
||||
<axis name="PITCH" failsafe_value="0"/>
|
||||
<axis name="YAW" failsafe_value="0"/>
|
||||
<axis name="YAW" failsafe_value="0"/>
|
||||
<axis name="PHI" failsafe_value="0"/>
|
||||
<axis name="THETA" failsafe_value="0"/>
|
||||
<axis name="PSI" failsafe_value="0"/>
|
||||
</commands>
|
||||
|
||||
<rc_commands>
|
||||
<set command="THROTTLE" value="@THROTTLE"/>
|
||||
<set command="PHI" value="@ROLL"/>
|
||||
<set command="THETA" value="@PITCH"/>
|
||||
<set command="PSI" value="@YAW"/>
|
||||
</rc_commands>
|
||||
|
||||
<command_laws>
|
||||
<let var="roll" value="0.3 * @ROLL"/>
|
||||
<let var="pitch" value="0.3 * @PITCH"/>
|
||||
|
||||
@@ -23,12 +23,12 @@
|
||||
<axis name="YAW" failsafe_value="0"/>
|
||||
</commands>
|
||||
|
||||
<radio_laws>
|
||||
<rc_commands>
|
||||
<set command="THROTTLE" value="@THROTTLE"/>
|
||||
<set command="ROLL" value="@ROLL"/>
|
||||
<set command="PITCH" value="@PITCH"/>
|
||||
<set command="YAW" value="@YAW"/>
|
||||
</radio_laws>
|
||||
</rc_commands>
|
||||
|
||||
<command_laws>
|
||||
<set servo="GAZ" value="2 * @THROTTLE"/>
|
||||
|
||||
@@ -22,6 +22,13 @@
|
||||
<axis name="CAM_PITCH" failsafe_value="0"/>
|
||||
</commands>
|
||||
|
||||
<rc_commands>
|
||||
<set command="THROTTLE" value="@THROTTLE"/>
|
||||
<set command="ROLL" value="@ROLL"/>
|
||||
<set command="PITCH" value="@PITCH"/>
|
||||
<set command="YAW" value="@YAW"/>
|
||||
</rc_commands>
|
||||
|
||||
<command_laws>
|
||||
<set servo="GAZ" value="2 * @THROTTLE"/>
|
||||
<set servo="ELEVATOR" value="@PITCH"/>
|
||||
|
||||
@@ -15,13 +15,17 @@
|
||||
<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"/>
|
||||
<axis name="CAM_ROLL" failsafe_value="0"/>
|
||||
<axis name="CAM_PITCH" failsafe_value="0"/>
|
||||
</commands>
|
||||
|
||||
<rc_commands>
|
||||
<set command="THROTTLE" value="@THROTTLE"/>
|
||||
<set command="ROLL" value="@ROLL"/>
|
||||
<set command="PITCH" value="@PITCH"/>
|
||||
<set command="YAW" value="@YAW"/>
|
||||
</rc_commands>
|
||||
|
||||
<command_laws>
|
||||
<set servo="GAZ" value="2 * @THROTTLE"/>
|
||||
<set servo="ELEVATOR" value="@PITCH"/>
|
||||
@@ -29,8 +33,8 @@
|
||||
<set servo="AILERON_LEFT" value="($roll > 0 ? 1 : AILERON_DIFF) * $roll"/>
|
||||
<set servo="AILERON_RIGHT" value="($roll > 0 ? AILERON_DIFF : 1) * $roll"/>
|
||||
<set servo="RUDDER" value="@YAW + @ROLL*COMBI_SWITCH"/>
|
||||
<set servo="CAM_ROLL" value="@GAIN1"/>
|
||||
<set servo="CAM_PITCH" value="@CALIB"/>
|
||||
<set servo="CAM_ROLL" value="@CAM_ROLL"/>
|
||||
<set servo="CAM_PITCH" value="@CAM_PITCH"/>
|
||||
</command_laws>
|
||||
|
||||
<section name="MIXER">
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
#include "servos_4015_hw.h"
|
||||
#include "command.h"
|
||||
#include "armVIC.h"
|
||||
|
||||
|
||||
@@ -89,7 +89,7 @@ SIGNAL(SIG_OUTPUT_COMPARE1A) {
|
||||
/* notify valid frame */
|
||||
if (crc_in1 == Crc1(crc_in) && tmp == Crc2(crc_in)) {
|
||||
from_fbw_receive_valid = TRUE;
|
||||
link_fbw_fbw_nb_err = from_fbw.nb_err;
|
||||
link_fbw_fbw_nb_err = from_fbw.from_fbw.nb_err;
|
||||
} else
|
||||
link_fbw_nb_err++;
|
||||
/* unselect slave0 */
|
||||
@@ -110,7 +110,7 @@ SIGNAL(SIG_OUTPUT_COMPARE1A) {
|
||||
/* we are sending/receiving payload */
|
||||
if (idx_buf < FRAME_LENGTH - 2) {
|
||||
/* place new payload byte in send register */
|
||||
tmp = ((uint8_t*)&from_ap)[idx_buf];
|
||||
tmp = ((uint8_t*)&from_ap.from_ap)[idx_buf];
|
||||
SPI_SEND(tmp);
|
||||
crc_out = CrcUpdate(crc_out, tmp);
|
||||
}
|
||||
@@ -123,6 +123,6 @@ SIGNAL(SIG_OUTPUT_COMPARE1A) {
|
||||
|
||||
/* read the byte from receive register */
|
||||
tmp = SPDR;
|
||||
((uint8_t*)&from_fbw)[idx_buf-1] = tmp;
|
||||
((uint8_t*)&from_fbw.from_fbw)[idx_buf-1] = tmp;
|
||||
crc_in = CrcUpdate(crc_in, tmp);
|
||||
}
|
||||
|
||||
@@ -137,7 +137,10 @@ static inline void radio_control_task(void) {
|
||||
pitch_dot_pgain = roll_dot_pgain;
|
||||
pitch_dot_dgain = roll_dot_dgain;
|
||||
#endif
|
||||
commands_of_radio(rc_values);
|
||||
|
||||
pprz_t commands[COMMANDS_NB];
|
||||
CommandsOfRC(commands);
|
||||
command_set(commands);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -163,7 +166,6 @@ void init_fbw( void ) {
|
||||
adc_init();
|
||||
adc_buf_channel(ADC_CHANNEL_VSUPPLY, &vsupply_adc_buf);
|
||||
#if defined IMU_3DMG || defined IMU_ANALOG
|
||||
CounterLedInit();
|
||||
imu_init();
|
||||
#endif
|
||||
sys_time_init();
|
||||
|
||||
+11
-11
@@ -82,8 +82,8 @@ let parse_servo = fun c ->
|
||||
let pprz_value = Str.regexp "@\\([A-Z_0-9]+\\)"
|
||||
|
||||
let var_value = Str.regexp "\\$\\([_a-z0-9]+\\)"
|
||||
let preprocess_command = fun s ->
|
||||
let s = Str.global_replace pprz_value "values[COMMAND_\\1]" s in
|
||||
let preprocess_value = fun s v ->
|
||||
let s = Str.global_replace pprz_value (sprintf "%s[COMMAND_\\1]" v) s in
|
||||
Str.global_replace var_value "_var_\\1" s
|
||||
|
||||
let parse_command_laws = fun command ->
|
||||
@@ -92,7 +92,7 @@ let parse_command_laws = fun command ->
|
||||
"set" ->
|
||||
let servo = a "servo"
|
||||
and value = a "value" in
|
||||
let v = preprocess_command value in
|
||||
let v = preprocess_value value "values" in
|
||||
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;
|
||||
@@ -100,25 +100,25 @@ let parse_command_laws = fun command ->
|
||||
| "let" ->
|
||||
let var = a "var"
|
||||
and value = a "value" in
|
||||
let v = preprocess_command value in
|
||||
let v = preprocess_value value "values" in
|
||||
printf " int16_t _var_%s = %s;\\\n" var v
|
||||
| "define" ->
|
||||
parse_element "" command
|
||||
| _ -> xml_error "set|let"
|
||||
|
||||
|
||||
let parse_radio_laws = fun rc ->
|
||||
let parse_rc_commands = 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 v = preprocess_value value "rc_values" in
|
||||
printf " commands[COMMAND_%s] = %s;\\\n" com v;
|
||||
| "let" ->
|
||||
let var = a "var"
|
||||
and value = a "value" in
|
||||
let v = preprocess_command value in
|
||||
let v = preprocess_value value "rc_values" in
|
||||
printf " int16_t _var_%s = %s;\\\n" var v
|
||||
| "define" ->
|
||||
parse_element "" rc
|
||||
@@ -154,9 +154,9 @@ 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 ()
|
||||
| "radio_laws" ->
|
||||
printf "#define CommandsOfRC(values) { \\\n";
|
||||
List.iter parse_radio_laws (Xml.children s);
|
||||
| "rc_commands" ->
|
||||
printf "#define CommandsOfRC(commands) { \\\n";
|
||||
List.iter parse_rc_commands (Xml.children s);
|
||||
printf "}\n\n"
|
||||
| "command_laws" ->
|
||||
printf "#define CommandsSet(values) { \\\n";
|
||||
|
||||
Reference in New Issue
Block a user