iavr code compiles

This commit is contained in:
Pascal Brisset
2006-03-22 22:09:12 +00:00
parent 5fea9aab59
commit f7199d97e1
8 changed files with 50 additions and 26 deletions
+11 -1
View File
@@ -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"/>
+2 -2
View File
@@ -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"/>
+7
View File
@@ -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"/>
+11 -7
View File
@@ -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
View File
@@ -1,3 +1,4 @@
#include "servos_4015_hw.h"
#include "command.h"
#include "armVIC.h"
+3 -3
View File
@@ -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);
}
+4 -2
View File
@@ -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
View File
@@ -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";