px4dev 11 years ago
parent
commit
d2a2297a14
  1. 3
      src/modules/px4iofirmware/i2c.c
  2. 4
      src/modules/px4iofirmware/px4io.h
  3. 2
      src/modules/px4iofirmware/registers.c
  4. 4
      src/modules/px4iofirmware/sbus.c

3
src/modules/px4iofirmware/i2c.c

@ -64,12 +64,15 @@
#define rCCR REG(STM32_I2C_CCR_OFFSET) #define rCCR REG(STM32_I2C_CCR_OFFSET)
#define rTRISE REG(STM32_I2C_TRISE_OFFSET) #define rTRISE REG(STM32_I2C_TRISE_OFFSET)
void i2c_reset(void);
static int i2c_interrupt(int irq, void *context); static int i2c_interrupt(int irq, void *context);
static void i2c_rx_setup(void); static void i2c_rx_setup(void);
static void i2c_tx_setup(void); static void i2c_tx_setup(void);
static void i2c_rx_complete(void); static void i2c_rx_complete(void);
static void i2c_tx_complete(void); static void i2c_tx_complete(void);
#ifdef DEBUG
static void i2c_dump(void); static void i2c_dump(void);
#endif
static DMA_HANDLE rx_dma; static DMA_HANDLE rx_dma;
static DMA_HANDLE tx_dma; static DMA_HANDLE tx_dma;

4
src/modules/px4iofirmware/px4io.h

@ -219,8 +219,8 @@ extern bool dsm_input(uint16_t *values, uint16_t *num_values);
extern void dsm_bind(uint16_t cmd, int pulses); extern void dsm_bind(uint16_t cmd, int pulses);
extern int sbus_init(const char *device); extern int sbus_init(const char *device);
extern bool sbus_input(uint16_t *values, uint16_t *num_values, bool *sbus_failsafe, bool *sbus_frame_drop, uint16_t max_channels); extern bool sbus_input(uint16_t *values, uint16_t *num_values, bool *sbus_failsafe, bool *sbus_frame_drop, uint16_t max_channels);
extern bool sbus1_output(uint16_t *values, uint16_t num_values); extern void sbus1_output(uint16_t *values, uint16_t num_values);
extern bool sbus2_output(uint16_t *values, uint16_t num_values); extern void sbus2_output(uint16_t *values, uint16_t num_values);
/** global debug level for isr_debug() */ /** global debug level for isr_debug() */
extern volatile uint8_t debug_level; extern volatile uint8_t debug_level;

2
src/modules/px4iofirmware/registers.c

@ -711,7 +711,7 @@ registers_get(uint8_t page, uint8_t offset, uint16_t **values, unsigned *num_val
{ {
#define SELECT_PAGE(_page_name) \ #define SELECT_PAGE(_page_name) \
do { \ do { \
*values = &_page_name[0]; \ *values = (uint16_t *)&_page_name[0]; \
*num_values = sizeof(_page_name) / sizeof(_page_name[0]); \ *num_values = sizeof(_page_name) / sizeof(_page_name[0]); \
} while(0) } while(0)

4
src/modules/px4iofirmware/sbus.c

@ -116,14 +116,14 @@ sbus_init(const char *device)
return sbus_fd; return sbus_fd;
} }
bool void
sbus1_output(uint16_t *values, uint16_t num_values) sbus1_output(uint16_t *values, uint16_t num_values)
{ {
char a = 'A'; char a = 'A';
write(sbus_fd, &a, 1); write(sbus_fd, &a, 1);
} }
bool void
sbus2_output(uint16_t *values, uint16_t num_values) sbus2_output(uint16_t *values, uint16_t num_values)
{ {
char b = 'B'; char b = 'B';

Loading…
Cancel
Save