mirror of
https://github.com/paparazzi/paparazzi.git
synced 2026-05-30 11:37:06 +08:00
[vms_ecu_demo] Added debugging message
This commit is contained in:
@@ -31,6 +31,7 @@
|
|||||||
</header>
|
</header>
|
||||||
<init fun="vms_ecu_demo_init()"/>
|
<init fun="vms_ecu_demo_init()"/>
|
||||||
<periodic fun="vms_ecu_demo_periodic()" freq="10."/>
|
<periodic fun="vms_ecu_demo_periodic()" freq="10."/>
|
||||||
|
<periodic fun="vms_ecu_demo_downlink()" freq="4." autorun="TRUE"/>
|
||||||
<makefile>
|
<makefile>
|
||||||
<file name="vms_ecu_demo.c"/>
|
<file name="vms_ecu_demo.c"/>
|
||||||
<define name="USE_DAC1" value="1" />
|
<define name="USE_DAC1" value="1" />
|
||||||
|
|||||||
@@ -27,6 +27,11 @@
|
|||||||
* for more details
|
* for more details
|
||||||
*/
|
*/
|
||||||
#include "modules/fsae_electric/vms_ecu_demo.h"
|
#include "modules/fsae_electric/vms_ecu_demo.h"
|
||||||
|
|
||||||
|
// Messages
|
||||||
|
#include "pprzlink/messages.h"
|
||||||
|
#include "subsystems/datalink/downlink.h"
|
||||||
|
|
||||||
#include "mcu_periph/gpio.h"
|
#include "mcu_periph/gpio.h"
|
||||||
#include "ch.h" // for DAC
|
#include "ch.h" // for DAC
|
||||||
#include "hal.h" // for DAC
|
#include "hal.h" // for DAC
|
||||||
@@ -72,13 +77,13 @@ uint16_t dac_1;
|
|||||||
uint16_t dac_2;
|
uint16_t dac_2;
|
||||||
|
|
||||||
static const DACConfig dac1cfg1 = {
|
static const DACConfig dac1cfg1 = {
|
||||||
.init = 2047U,
|
.init = 2047U,
|
||||||
.datamode = DAC_DHRM_12BIT_RIGHT
|
.datamode = DAC_DHRM_12BIT_RIGHT
|
||||||
};
|
};
|
||||||
|
|
||||||
static const DACConfig dac1cfg2 = {
|
static const DACConfig dac1cfg2 = {
|
||||||
.init = 0U,
|
.init = 0U,
|
||||||
.datamode = DAC_DHRM_12BIT_RIGHT
|
.datamode = DAC_DHRM_12BIT_RIGHT
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -117,18 +122,18 @@ static const struct can_instance can2 = {&CAND2, 12};
|
|||||||
* See section 22.7.7 on the STM32 reference manual.
|
* See section 22.7.7 on the STM32 reference manual.
|
||||||
*/
|
*/
|
||||||
static const CANConfig cancfg_lb = {
|
static const CANConfig cancfg_lb = {
|
||||||
CAN_MCR_ABOM | CAN_MCR_AWUM | CAN_MCR_TXFP,
|
CAN_MCR_ABOM | CAN_MCR_AWUM | CAN_MCR_TXFP,
|
||||||
CAN_BTR_LBKM | CAN_BTR_SJW(0) | CAN_BTR_TS2(1) |
|
CAN_BTR_LBKM | CAN_BTR_SJW(0) | CAN_BTR_TS2(1) |
|
||||||
CAN_BTR_TS1(8) | CAN_BTR_BRP(6)
|
CAN_BTR_TS1(8) | CAN_BTR_BRP(6)
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Normal mode, see if we can ping each other
|
* Normal mode, see if we can ping each other
|
||||||
*/
|
*/
|
||||||
static const CANConfig cancfg = {
|
static const CANConfig cancfg = {
|
||||||
CAN_MCR_ABOM | CAN_MCR_AWUM | CAN_MCR_TXFP,
|
CAN_MCR_ABOM | CAN_MCR_AWUM | CAN_MCR_TXFP,
|
||||||
CAN_BTR_SJW(0) | CAN_BTR_TS2(1) |
|
CAN_BTR_SJW(0) | CAN_BTR_TS2(1) |
|
||||||
CAN_BTR_TS1(8) | CAN_BTR_BRP(6)
|
CAN_BTR_TS1(8) | CAN_BTR_BRP(6)
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -148,7 +153,7 @@ static THD_FUNCTION(can_rx, p) {
|
|||||||
if (chEvtWaitAnyTimeout(ALL_EVENTS, MS2ST(100)) == 0)
|
if (chEvtWaitAnyTimeout(ALL_EVENTS, MS2ST(100)) == 0)
|
||||||
continue;
|
continue;
|
||||||
while (canReceive(cip->canp, CAN_ANY_MAILBOX,
|
while (canReceive(cip->canp, CAN_ANY_MAILBOX,
|
||||||
&rxmsg, TIME_IMMEDIATE) == MSG_OK) {
|
&rxmsg, TIME_IMMEDIATE) == MSG_OK) {
|
||||||
// Process message.
|
// Process message.
|
||||||
palTogglePad(GPIOD, cip->led);
|
palTogglePad(GPIOD, cip->led);
|
||||||
}
|
}
|
||||||
@@ -182,20 +187,6 @@ static THD_FUNCTION(can_tx, p) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#if PERIODIC_TELEMETRY
|
|
||||||
#include "subsystems/datalink/telemetry.h"
|
|
||||||
static void send_ecu(struct transport_tx *trans, struct link_device *dev)
|
|
||||||
{
|
|
||||||
pprz_msg_send_ECU(trans, dev, AC_ID,
|
|
||||||
&stg_in,
|
|
||||||
&stb_in,
|
|
||||||
&ain_1,
|
|
||||||
&ain_2,
|
|
||||||
&ain_3,
|
|
||||||
&ain_4);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void vms_ecu_demo_init(void)
|
void vms_ecu_demo_init(void)
|
||||||
{
|
{
|
||||||
// Digital
|
// Digital
|
||||||
@@ -232,21 +223,17 @@ void vms_ecu_demo_init(void)
|
|||||||
* Starting the transmitter and receiver threads.
|
* Starting the transmitter and receiver threads.
|
||||||
*/
|
*/
|
||||||
chThdCreateStatic(can_rx1_wa, sizeof(can_rx1_wa), NORMALPRIO + 7,
|
chThdCreateStatic(can_rx1_wa, sizeof(can_rx1_wa), NORMALPRIO + 7,
|
||||||
can_rx, (void *)&can1);
|
can_rx, (void *)&can1);
|
||||||
chThdCreateStatic(can_rx2_wa, sizeof(can_rx2_wa), NORMALPRIO + 7,
|
chThdCreateStatic(can_rx2_wa, sizeof(can_rx2_wa), NORMALPRIO + 7,
|
||||||
can_rx, (void *)&can2);
|
can_rx, (void *)&can2);
|
||||||
chThdCreateStatic(can_tx_wa, sizeof(can_tx_wa), NORMALPRIO + 7,
|
chThdCreateStatic(can_tx_wa, sizeof(can_tx_wa), NORMALPRIO + 7,
|
||||||
can_tx, NULL);
|
can_tx, NULL);
|
||||||
|
|
||||||
#if PERIODIC_TELEMETRY
|
|
||||||
register_periodic_telemetry(DefaultPeriodic, PPRZ_MSG_ID_ECU, send_ecu);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
//DAC
|
//DAC
|
||||||
/*
|
/*
|
||||||
* Starting DAC1 driver, setting up the output pin as analog as suggested
|
* Starting DAC1 driver, setting up the output pin as analog as suggested
|
||||||
* by the Reference Manual.
|
* by the Reference Manual.
|
||||||
*/
|
*/
|
||||||
palSetPadMode(GPIOA, 4, PAL_MODE_INPUT_ANALOG);
|
palSetPadMode(GPIOA, 4, PAL_MODE_INPUT_ANALOG);
|
||||||
palSetPadMode(GPIOA, 5, PAL_MODE_INPUT_ANALOG);
|
palSetPadMode(GPIOA, 5, PAL_MODE_INPUT_ANALOG);
|
||||||
dacStart(&DACD1, &dac1cfg1);
|
dacStart(&DACD1, &dac1cfg1);
|
||||||
@@ -311,6 +298,17 @@ void vms_ecu_demo_periodic(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void vms_ecu_demo_downlink(void) {
|
||||||
|
DOWNLINK_SEND_ECU(DefaultChannel, DefaultDevice,
|
||||||
|
&stg_in,
|
||||||
|
&stb_in,
|
||||||
|
&ain_1,
|
||||||
|
&ain_2,
|
||||||
|
&ain_3,
|
||||||
|
&ain_4);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void vms_ecu_demo_UpdateDac1(uint16_t val) {
|
void vms_ecu_demo_UpdateDac1(uint16_t val) {
|
||||||
dac_1 = val;
|
dac_1 = val;
|
||||||
dac_ref1 = dac_1;
|
dac_ref1 = dac_1;
|
||||||
|
|||||||
@@ -45,6 +45,7 @@ extern bool rtds;
|
|||||||
|
|
||||||
void vms_ecu_demo_init(void);
|
void vms_ecu_demo_init(void);
|
||||||
void vms_ecu_demo_periodic(void);
|
void vms_ecu_demo_periodic(void);
|
||||||
|
void vms_ecu_demo_downlink(void);
|
||||||
/** Reset sweep number */
|
/** Reset sweep number */
|
||||||
extern void vms_ecu_demo_UpdateDac1(uint16_t val);
|
extern void vms_ecu_demo_UpdateDac1(uint16_t val);
|
||||||
extern void vms_ecu_demo_UpdateDac2(uint16_t val);
|
extern void vms_ecu_demo_UpdateDac2(uint16_t val);
|
||||||
|
|||||||
Reference in New Issue
Block a user