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 @@ @@ -64,12 +64,15 @@
#define rCCR REG(STM32_I2C_CCR_OFFSET)
#define rTRISE REG(STM32_I2C_TRISE_OFFSET)
void i2c_reset(void);
static int i2c_interrupt(int irq, void *context);
static void i2c_rx_setup(void);
static void i2c_tx_setup(void);
static void i2c_rx_complete(void);
static void i2c_tx_complete(void);
#ifdef DEBUG
static void i2c_dump(void);
#endif
static DMA_HANDLE rx_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); @@ -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 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 sbus1_output(uint16_t *values, uint16_t num_values);
extern bool sbus2_output(uint16_t *values, uint16_t num_values);
extern void sbus1_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() */
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 @@ -711,7 +711,7 @@ registers_get(uint8_t page, uint8_t offset, uint16_t **values, unsigned *num_val
{
#define SELECT_PAGE(_page_name) \
do { \
*values = &_page_name[0]; \
*values = (uint16_t *)&_page_name[0]; \
*num_values = sizeof(_page_name) / sizeof(_page_name[0]); \
} while(0)

4
src/modules/px4iofirmware/sbus.c

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

Loading…
Cancel
Save