mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2024-12-01 09:24:10 +01:00
5f8760a55c
This allows the spektrum and sbus receiver drivers to bind directly to the usart layer using a properly exported API rather than overriding the interrupt handler. Bytes are now pushed directly from the usart layer into the com layer without any buffering. The com layer performs all of the buffering. A further benefit from this approach is that we can put all blocking/non-blocking behaviour into the COM layer and not in the underlying drivers. Misc related changes: - Remove obsolete .handler field from irq configs - Adapt all users of PIOS_COM_* functions to new API - Fixup callers of PIOS_USB_HID_Init()
55 lines
1.6 KiB
C
55 lines
1.6 KiB
C
/**
|
|
******************************************************************************
|
|
* @addtogroup PIOS PIOS Core hardware abstraction layer
|
|
* @{
|
|
* @addtogroup PIOS_RCVR RCVR layer functions
|
|
* @brief Hardware communication layer
|
|
* @{
|
|
*
|
|
* @file pios_rcvr.h
|
|
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
|
|
* @brief RCVR layer functions header
|
|
* @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_RCVR_H
|
|
#define PIOS_RCVR_H
|
|
|
|
struct pios_rcvr_channel_map {
|
|
uint32_t id;
|
|
uint8_t channel;
|
|
};
|
|
|
|
extern struct pios_rcvr_channel_map pios_rcvr_channel_to_id_map[];
|
|
|
|
struct pios_rcvr_driver {
|
|
void (*init)(uint32_t id);
|
|
int32_t (*read)(uint32_t id, uint8_t channel);
|
|
};
|
|
|
|
/* Public Functions */
|
|
extern int32_t PIOS_RCVR_Read(uint32_t rcvr_id, uint8_t channel);
|
|
|
|
#endif /* PIOS_RCVR_H */
|
|
|
|
/**
|
|
* @}
|
|
* @}
|
|
*/
|