Paparazzi UAS  v7.0_unstable
Paparazzi is a free software Unmanned Aircraft System.
pwm_meas module

PWM measurement.

PWM input measurement mcu periph access and init wrapper for other modules.

For STM32:

  • each board (or airframe file) has to define the PWM input pin and parameters
  • example can be found in sw/airborne/boards/apogee_1.0.h board file

Example for airframe file

Add to your firmware section: This example contains all possible configuration options, not all of them are mandatory!

<module name="pwm_meas">
b'<define name="USE_PWM_INPUT1" value="PWM_PULSE_TYPE_ACTIVE_LOW|PWM_PULSE_TYPE_ACTIVE_HIGH" />\n '
b'<define name="USE_PWM_INPUT2" value="PWM_PULSE_TYPE_ACTIVE_LOW|PWM_PULSE_TYPE_ACTIVE_HIGH" />\n '
</module>

Module configuration options

Define Options

  • name: USE_PWM_INPUT1 value: PWM_PULSE_TYPE_ACTIVE_LOW|PWM_PULSE_TYPE_ACTIVE_HIGH
    Description: Activate PWM input 1 and select polarity
  • name: USE_PWM_INPUT2 value: PWM_PULSE_TYPE_ACTIVE_LOW|PWM_PULSE_TYPE_ACTIVE_HIGH
    Description: Activate PWM input 2 and select polarity

Module functions

Init Functions

These initialization functions are called once on startup.

Files

Header Files

The following headers are automatically included in modules.h

Source Files

Raw pwm_meas.xml file:

<!DOCTYPE module SYSTEM "module.dtd">
<module name="pwm_meas" dir="core">
<doc>
<description>
PWM measurement.
PWM input measurement mcu periph access and init wrapper for other modules.
For STM32:
- each board (or airframe file) has to define the PWM input pin and parameters
- example can be found in sw/airborne/boards/apogee_1.0.h board file
</description>
<define name="USE_PWM_INPUT1" value="PWM_PULSE_TYPE_ACTIVE_LOW|PWM_PULSE_TYPE_ACTIVE_HIGH" description="Activate PWM input 1 and select polarity"/>
<define name="USE_PWM_INPUT2" value="PWM_PULSE_TYPE_ACTIVE_LOW|PWM_PULSE_TYPE_ACTIVE_HIGH" description="Activate PWM input 2 and select polarity"/>
</doc>
<header>
<file name="pwm_meas.h"/>
</header>
<init fun="pwm_meas_init()"/>
<makefile target="ap">
<file name="pwm_meas.c"/>
<file name="pwm_input.c" dir="mcu_periph"/>
<file_arch name="pwm_input_arch.c" dir="mcu_periph"/>
<define name="USE_PWM_INPUT"/> <!-- needed to enable the pwm_input interrupts in mcu_periph/sys_time_arch.c -->
</makefile>
</module>