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

Started the migration of the walk motion module.

parent 49f25fc1
No related branches found
No related tags found
No related merge requests found
#ifndef _WALKING_H
#define _WALKING_H
#ifdef __cplusplus
extern "C" {
#endif
#include "stm32f1xx.h"
#include "motion_manager.h"
// public functions
void walking_init(uint16_t period_us);
void walking_set_period(uint16_t period_us);
uint16_t walking_get_period(void);
void walking_start(void);
void walking_stop(void);
uint8_t is_walking(void);
// operation functions
uint8_t walking_in_range(unsigned short int address, unsigned short int length);
void walking_process_read_cmd(unsigned short int address,unsigned short int length,unsigned char *data);
void walking_process_write_cmd(unsigned short int address,unsigned short int length,unsigned char *data);
// motion manager interface functions
void walking_process(void);
#ifdef __cplusplus
}
#endif
#endif
#ifndef _WALK_H
#define _WALK_H
#ifdef __cplusplus
extern "C" {
#endif
#include "motion_module.h"
#include "memory.h"
typedef struct{
TMotionModule mmodule;
TMemory *memory;
TMemModule mem_module;
unsigned short int ram_base_address;
unsigned short int eeprom_base_address;
}TWalkMModule;
// public functions
unsigned char walk_init(TWalkMModule *walk,TMemory *memory,unsigned short int ram_base_address,unsigned short int eeprom_base_address);
void walk_start(TWalkMModule *walk);
void walk_stop(TWalkMModule *walk);
unsigned char is_walk(TWalkMModule *walk);
#ifdef __cplusplus
}
#endif
#endif
#ifndef _WALK_REGISTERS_H
#define _WALK_REGISTERS_H
#define RAM_WALK_LENGTH 4
#define WALK_CNTRL 0// bit 7 | bit 6 | bit 5 | bit 4 | bit 3 | bit 2 | bit 1 | bit 0
// current phase walking stop walking start walking
#define WALK_START 0x01
#define WALK_STOP 0x02
#define WALK_RUNNING 0x10
#define WALK_CURRENT_PHASE 0xC0
#define WALK_STEP_FW_BW 1
#define WALK_STEP_LEFT_RIGHT 2
#define WALK_STEP_DIRECTION 3
#define EEPROM_WALK_LENGTH 19
#define WALK_X_OFFSET 0
#define WALK_Y_OFFSET 1
#define WALK_Z_OFFSET 2
#define WALK_ROLL_OFFSET 3
#define WALK_PITCH_OFFSET 4
#define WALK_YAW_OFFSET 5
#define WALK_HIP_PITCH_OFFSET 6
#define WALK_PERIOD_TIME 8
#define WALK_DSP_RATIO 10
#define WALK_STEP_FW_BW_RATIO 11
#define WALK_FOOT_HEIGHT 12
#define WALK_SWING_RIGHT_LEFT 13
#define WALK_SWING_TOP_DOWN 14
#define WALK_PELVIS_OFFSET 15
#define WALK_ARM_SWING_GAIN 16
#define WALK_MAX_VEL 17
#define WALK_MAX_ROT_VEL 18
#define walk_eeprom_data(name,section_name,base_address,DEFAULT_X_OFFSET,DEFAULT_Y_OFFSET,DEFAULT_Z_OFFSET,DEFAULT_ROLL_OFFSET,DEFAULT_PITCH_OFFSET,DEFAULT_YAW_OFFSET,DEFAULT_HIP_PITCH_OFFSET,DEFAULT_PERIOD_TIME,DEFAULT_DSP_RATIO,DEFAULT_STEP_FW_BW_RATIO,DEFAULT_FOOT_HEIGHT,DEFAULT_SWING_RIGHT_LEFT,DEFAULT_SWING_TOP_DOWN,DEFAULT_PELVIS_OFFSET,DEFAULT_ARM_SWING_GAIN,DEFAULT_MAX_VEL,DEFAULT_MAX_ROT_VEL) \
unsigned short int name##_eeprom_data[] __attribute__ ((section (section_name))) __attribute__ ((aligned (4)))= {\
DEFAULT_X_OFFSET,base_address+WALK_X_OFFSET, \
DEFAULT_Y_OFFSET,base_address+WALK_Y_OFFSET, \
DEFAULT_Z_OFFSET,base_address+WALK_Y_OFFSET, \
DEFAULT_ROLL_OFFSET,base_address+WALK_ROLL_OFFSET, \
DEFAULT_PITCH_OFFSET,base_address+WALK_PITCH_OFFSET, \
DEFAULT_YAW_OFFSET,base_address+WALK_YAW_OFFSET, \
DEFAULT_HIP_PITCH_OFFSET&0x00FF,base_address+WALK_HIP_PITCH_OFFSET, \
(DEFAULT_HIP_PITCH_OFFSET>>8)&0x00FF,base_address+WALK_HIP_PITCH_OFFSET+1, \
DEFAULT_PERIOD_TIME&0x00FF,base_address+WALK_PERIOD_TIME, \
(DEFAULT_PERIOD_TIME>>8)&0x00FF,base_address+WALK_PERIOD_TIME+1, \
DEFAULT_DSP_RATIO,base_address+WALK_DSP_RATIO, \
DEFAULT_STEP_FW_BW_RATIO,base_address+WALK_STEP_FW_BW_RATIO, \
DEFAULT_FOOT_HEIGHT,base_address+WALK_FOOT_HEIGHT, \
DEFAULT_SWING_RIGHT_LEFT,base_address+WALK_SWING_RIGHT_LEFT, \
DEFAULT_SWING_TOP_DOWN,base_address+WALK_SWING_TOP_DOWN, \
DEFAULT_PELVIS_OFFSET,base_address+WALK_PELVIS_OFFSET, \
DEFAULT_ARM_SWING_GAIN,base_address+WALK_ARM_SWING_GAIN, \
DEFAULT_MAX_VEL,base_address+WALK_MAX_VEL, \
DEFAULT_MAX_ROT_VEL,base_address+WALK_MAX_ROT_VEL};
#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