Skip to content
Snippets Groups Projects
Commit c1171ae0 authored by Sergi Hernandez's avatar Sergi Hernandez
Browse files

Added the extern C clause to all header to be able to use them in a C++ application.

parent 259465a0
No related branches found
No related tags found
No related merge requests found
#ifndef ADXL345_ACCEL_H
#define ADXL345_ACCEL_H
#ifdef __cplusplus
extern "C" {
#endif
#include "stm32f4xx.h"
// public functions
......@@ -12,4 +16,8 @@ void imu_accel_set_config(void);
uint8_t imu_accel_detect(void);
void imu_accel_process_data(void);
#ifdef __cplusplus
}
#endif
#endif
#ifndef _HMC5843_compass_h
#define _HMC5843_compass_h
#ifdef __cplusplus
extern "C" {
#endif
#include "stm32f4xx.h"
uint8_t imu_compass_detect(void);
......@@ -11,5 +15,8 @@ void imu_compass_get_data(void);
void imu_compass_set_config(void);
void imu_compass_process_data(void);
#ifdef __cplusplus
}
#endif
#endif
#ifndef _ITG3200_GYRO_H
#define _ITG3200_GYRO_H
#ifdef __cplusplus
extern "C" {
#endif
#include "stm32f4xx.h"
// public functions
......@@ -12,4 +16,8 @@ void imu_gyro_get_data(void);
void imu_gyro_set_config(void);
void imu_gyro_process_data(void);
#ifdef __cplusplus
}
#endif
#endif
#ifndef _ACTION_H
#define _ACTION_H
#ifdef __cplusplus
extern "C" {
#endif
#include "stm32f4xx.h"
#include "motion_pages.h"
......@@ -19,4 +23,8 @@ uint8_t action_is_running(void);
// motion manager interface
void action_process(void);
#ifdef __cplusplus
}
#endif
#endif
#ifndef _ADC_DMA_H
#define _ADC_DMA_H
#ifdef __cplusplus
extern "C" {
#endif
#include "stm32f4xx.h"
void adc_init(void);
uint16_t adc_get_temperature(void);
#ifdef __cplusplus
}
#endif
#endif
#ifndef _COMM_H
#define _COMM_H
#ifdef __cplusplus
extern "C" {
#endif
#include "stm32f4xx.h"
// public functions
void comm_init(void);
void comm_start(void);
#ifdef __cplusplus
}
#endif
#endif
#ifndef _DYN_SERVOS_H
#define _DYN_SERVOS_H
#ifdef __cplusplus
extern "C" {
#endif
// servo models
#define SERVO_AX12A 0x000C
#define SERVO_AX12W 0x012C
......@@ -88,4 +92,8 @@ typedef enum{
P_D_ERROR_OUT_L = 66,
P_D_ERROR_OUT_H = 67}TDynServo;
#ifdef __cplusplus
}
#endif
#endif
#ifndef _DYNAMIXEL_MASTER_DMA_H
#define _DYNAMIXEL_MASTER_DMA_H
#ifdef __cplusplus
extern "C" {
#endif
#include "stm32f4xx.h"
#include "dynamixel.h"
#include "dynamixel2.h"
......@@ -38,4 +42,8 @@ uint8_t dyn_master_bulk_read(uint8_t num,uint8_t *ids,uint8_t *address, uint8_t
// repeater functions
uint8_t dyn_master_resend_inst_packet(uint8_t *inst_packet, uint8_t *status_packet);
#ifdef __cplusplus
}
#endif
#endif
#ifndef _DYNAMIXEL_SLAVE_UART_DMA_H
#define _DYNAXIXEL_SLAVE_UART_DMA_H
#ifdef __cplusplus
extern "C" {
#endif
#include "dynamixel.h"
#include "dynamixel2.h"
#include "stm32f4xx.h"
// public functions
......@@ -12,9 +17,13 @@ inline void dyn_slave_set_return_delay(uint8_t delay);
inline void dyn_slave_set_return_level(uint8_t level);
inline uint8_t dyn_slave_get_return_level(void);
uint8_t dyn_slave_is_packet_ready(void);
void dyn_slave_get_inst_packet(uint8_t *packet);
void dyn_slave_send_status_packet(uint8_t error,uint8_t length, uint8_t *data);
TDynVersion dyn_slave_get_inst_packet(uint8_t *packet);
void dyn_slave_send_status_packet(uint8_t error,uint16_t length, uint8_t *data);
void dyn_slave_resend_status_packet(uint8_t *packet);
void dyn_slave_reset(void);
#ifdef __cplusplus
}
#endif
#endif
......@@ -24,6 +24,10 @@
#ifndef __EEPROM_H
#define __EEPROM_H
#ifdef __cplusplus
extern "C" {
#endif
/* Includes ------------------------------------------------------------------*/
#include "stm32f4xx.h"
......@@ -86,6 +90,10 @@ uint16_t EE_Init(void);
uint16_t EE_ReadVariable(uint16_t VirtAddress, uint16_t* Data);
uint16_t EE_WriteVariable(uint16_t VirtAddress, uint16_t Data);
#ifdef __cplusplus
}
#endif
#endif /* __EEPROM_H */
/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/
#ifndef _GPIO_H
#define _GPIO_H
#ifdef __cplusplus
extern "C" {
#endif
#include "stm32f4xx_hal.h"
typedef enum {USER1_LED,USER2_LED,RXD_LED,TXD_LED} led_t;
......@@ -17,4 +21,8 @@ void gpio_blink_led(led_t led_id, int16_t period_ms);
uint8_t gpio_is_pushbutton_pressed(pushbutton_t pb_id);
void gpio_set_pushbutton_callback(pushbutton_t pb_id,void (*callback)(void));
#ifdef __cplusplus
}
#endif
#endif
#ifndef _IMU_9DOF_DMA_H
#define _IMU_9DOF_DMA_H
#ifdef __cplusplus
extern "C" {
#endif
#include "stm32f4xx.h"
// general IMU public functions
......@@ -8,4 +12,8 @@ void imu_init(void);
void imu_start(void);
void imu_stop(void);
#ifdef __cplusplus
}
#endif
#endif
#ifndef _IMU_INT_H
#define _IMU_INT_H
#ifdef __cplusplus
extern "C" {
#endif
#define I2C_IMU_DMA DMA1
#define I2C_IMU_DMA_CHANNEL DMA_Channel_3
#define I2C_IMU_DR_ADDRESS ((uint32_t)I2C3+0x10)
......@@ -64,4 +68,8 @@ extern DMA_InitTypeDef IMU_DMA_RX_InitStructure;
void imu_wait_op_done(void);
uint8_t imu_is_op_done(void);
#ifdef __cplusplus
}
#endif
#endif
#ifndef _MOTION_MANAGER_H
#define _MOTION_MANAGER_H
#ifdef __cplusplus
extern "C" {
#endif
#include "stm32f4xx.h"
#define MANAGER_MAX_NUM_SERVOS 31
......@@ -23,8 +27,14 @@ typedef struct{
uint16_t current_value;
TModules module;
uint8_t enabled;
int16_t cw_angle_limit;
int16_t ccw_angle_limit;
uint8_t dyn_version;
}TServoInfo;
// public variables
extern int64_t current_angles[MANAGER_MAX_NUM_SERVOS];
// public functions
void manager_init(uint16_t period_us);
inline uint16_t manager_get_period(void);
......@@ -32,6 +42,8 @@ inline void manager_set_period(uint16_t period_us);
inline void manager_enable(void);
inline void manager_disable(void);
inline uint8_t manager_is_enabled(void);
void manager_enable_balance(void);
void manager_disable_balance(void);
inline uint8_t manager_get_num_servos(void);
inline void manager_set_module(uint8_t servo_id,TModules module);
inline TModules manager_get_module(uint8_t servo_id);
......@@ -39,5 +51,11 @@ inline void manager_enable_servo(uint8_t servo_id);
inline void manager_disable_servo(uint8_t servo_id);
void manager_disable_servos(void);
inline uint8_t manager_is_servo_enabled(uint8_t servo_id);
inline int16_t manager_get_cw_angle_limit(uint8_t servo_id);
inline int16_t manager_get_ccw_angle_limit(uint8_t servo_id);
#ifdef __cplusplus
}
#endif
#endif
#ifndef _MOTION_PAGES_H
#define _MOTION_PAGES_H
#ifdef __cplusplus
extern "C" {
#endif
#include "stm32f4xx.h"
#define MAX_PAGES 256
......@@ -49,4 +53,8 @@ void pages_clear_page(TPage *page);
void pages_copy_page(TPage *src,TPage *dst);
inline uint8_t pages_get_slope(TPage *page,uint8_t servo_id);
#ifdef __cplusplus
}
#endif
#endif
#ifndef _RAM_H
#define _RAM_H
#ifdef __cplusplus
extern "C" {
#endif
#include "stm32f4xx.h"
#include "eeprom.h"
......@@ -153,4 +157,8 @@ uint8_t ram_write_word(uint8_t address, uint16_t data);
uint8_t ram_write_table(uint8_t address, uint8_t length,uint8_t *data);
inline uint8_t ram_in_range(uint8_t start_reg,uint8_t end_reg,uint8_t address,uint8_t length);
#ifdef __cplusplus
}
#endif
#endif
#ifndef _STM32_TIME_H
#define _STM32_TIME_H
#ifdef __cplusplus
extern "C" {
#endif
#include "stm32f4xx.h"
#include "system_stm32f4xx.h"
......@@ -8,4 +12,8 @@ void time_init(void);
void delay_ms(__IO uint32_t time);
void delay_us(uint32_t us);
#ifdef __cplusplus
}
#endif
#endif
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment