mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2024-12-01 09:24:10 +01:00
2f86e4dd4f
PWM and PPM can now coexist in the same load and be selected at boot time via the hwsettings UAVObject. This is basically a complete restructuring of the way the drivers interact with the TIM peripheral in the STM32. As a side effect, the PWM and PPM drivers are now ready to support multiple instances of each. This also provides the first step toward being able to reassign some of the PWM input pins to be servo output pins. Still more work required, but this is a good start.
53 lines
1.6 KiB
C
53 lines
1.6 KiB
C
/**
|
|
******************************************************************************
|
|
* @addtogroup PIOS PIOS Core hardware abstraction layer
|
|
* @{
|
|
* @addtogroup PIOS_PPM PPM Functions
|
|
* @brief PIOS interface to read and write from ppm port
|
|
* @{
|
|
*
|
|
* @file pios_ppm_priv.h
|
|
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
|
|
* @brief ppm private structures.
|
|
* @see The GNU Public License (GPL) Version 3
|
|
*
|
|
*****************************************************************************/
|
|
/*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; either version 3 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful, but
|
|
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
* for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License along
|
|
* with this program; if not, write to the Free Software Foundation, Inc.,
|
|
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
*/
|
|
|
|
#ifndef PIOS_PPM_PRIV_H
|
|
#define PIOS_PPM_PRIV_H
|
|
|
|
#include <pios.h>
|
|
#include <pios_stm32.h>
|
|
|
|
struct pios_ppm_cfg {
|
|
TIM_ICInitTypeDef tim_ic_init;
|
|
const struct pios_tim_channel * channels;
|
|
uint8_t num_channels;
|
|
};
|
|
|
|
extern const struct pios_rcvr_driver pios_ppm_rcvr_driver;
|
|
|
|
extern int32_t PIOS_PPM_Init(uint32_t * ppm_id, const struct pios_ppm_cfg * cfg);
|
|
|
|
#endif /* PIOS_PPM_PRIV_H */
|
|
|
|
/**
|
|
* @}
|
|
* @}
|
|
*/
|