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

Updated the darwin register addresses.

Added a flag to indicate the scan for servos is in progress.
parent e523e00a
No related branches found
No related tags found
No related merge requests found
...@@ -227,117 +227,117 @@ typedef enum { ...@@ -227,117 +227,117 @@ typedef enum {
DARWIN_IMU_ACCEL_Z_L = 0x0148, DARWIN_IMU_ACCEL_Z_L = 0x0148,
DARWIN_IMU_ACCEL_Z_H = 0x0149, DARWIN_IMU_ACCEL_Z_H = 0x0149,
DARWIN_MM_NUM_SERVOS = 0x0128, DARWIN_MM_NUM_SERVOS = 0x014A,
DARWIN_MM_CNTRL = 0x0129, // bit 7 | bit 6 | bit 5 | bit 4 | bit 3 | bit 2 | bit 1 | bit 0 DARWIN_MM_CNTRL = 0x014B, // bit 7 | bit 6 | bit 5 | bit 4 | bit 3 | bit 2 | bit 1 | bit 0
// | | | | | Enable power | Enable balance | Enable manager // scanning | | | | | Enable power | Enable balance | Enable manager
DARWIN_MM_MODULE_EN0 = 0x012A, // bit 7 | bit 6 | bit 5 | bit 4 | bit 3 | bit 2 | bit 1 | bit 0i DARWIN_MM_MODULE_EN0 = 0x014C, // bit 7 | bit 6 | bit 5 | bit 4 | bit 3 | bit 2 | bit 1 | bit 0i
// Enable servo 0 | assigned module | Enable servo 1 | assigned module // Enable servo 0 | assigned module | Enable servo 1 | assigned module
// | 000 -> none | // | 000 -> none |
// | 001 -> action | // | 001 -> action |
// | 010 -> walk | // | 010 -> walk |
// | 011 -> joints | // | 011 -> joints |
DARWIN_MM_MODULE_EN1 = 0x012B, // bit 7 | bit 6 | bit 5 | bit 4 | bit 3 | bit 2 | bit 1 | bit 0 DARWIN_MM_MODULE_EN1 = 0x014D, // bit 7 | bit 6 | bit 5 | bit 4 | bit 3 | bit 2 | bit 1 | bit 0
// Enable servo 2 | assigned module | Enable servo 3 | assigned module // Enable servo 2 | assigned module | Enable servo 3 | assigned module
DARWIN_MM_MODULE_EN2 = 0x012C, // bit 7 | bit 6 | bit 5 | bit 4 | bit 3 | bit 2 | bit 1 | bit 0 DARWIN_MM_MODULE_EN2 = 0x014E, // bit 7 | bit 6 | bit 5 | bit 4 | bit 3 | bit 2 | bit 1 | bit 0
// Enable servo 4 | assigned module | Enable servo 5 | assigned module // Enable servo 4 | assigned module | Enable servo 5 | assigned module
DARWIN_MM_MODULE_EN3 = 0x012D, // bit 7 | bit 6 | bit 5 | bit 4 | bit 3 | bit 2 | bit 1 | bit 0 DARWIN_MM_MODULE_EN3 = 0x014F, // bit 7 | bit 6 | bit 5 | bit 4 | bit 3 | bit 2 | bit 1 | bit 0
// Enable servo 6 | assigned module | Enable servo 7 | assigned module // Enable servo 6 | assigned module | Enable servo 7 | assigned module
DARWIN_MM_MODULE_EN4 = 0x012E, // bit 7 | bit 6 | bit 5 | bit 4 | bit 3 | bit 2 | bit 1 | bit 0 DARWIN_MM_MODULE_EN4 = 0x0150, // bit 7 | bit 6 | bit 5 | bit 4 | bit 3 | bit 2 | bit 1 | bit 0
// Enable servo 8 | assigned module | Enable servo 9 | assigned module // Enable servo 8 | assigned module | Enable servo 9 | assigned module
DARWIN_MM_MODULE_EN5 = 0x012F, // bit 7 | bit 6 | bit 5 | bit 4 | bit 3 | bit 2 | bit 1 | bit 0 DARWIN_MM_MODULE_EN5 = 0x0151, // bit 7 | bit 6 | bit 5 | bit 4 | bit 3 | bit 2 | bit 1 | bit 0
// Enable servo 10 | assigned module | Enable servo 11 | assigned module // Enable servo 10 | assigned module | Enable servo 11 | assigned module
DARWIN_MM_MODULE_EN6 = 0x0130, // bit 7 | bit 6 | bit 5 | bit 4 | bit 3 | bit 2 | bit 1 | bit 0 DARWIN_MM_MODULE_EN6 = 0x0152, // bit 7 | bit 6 | bit 5 | bit 4 | bit 3 | bit 2 | bit 1 | bit 0
// Enable servo 12 | assigned module | Enable servo 13 | assigned module // Enable servo 12 | assigned module | Enable servo 13 | assigned module
DARWIN_MM_MODULE_EN7 = 0x0131, // bit 7 | bit 6 | bit 5 | bit 4 | bit 3 | bit 2 | bit 1 | bit 0 DARWIN_MM_MODULE_EN7 = 0x0153, // bit 7 | bit 6 | bit 5 | bit 4 | bit 3 | bit 2 | bit 1 | bit 0
// Enable servo 14 | assigned module | Enable servo 15 | assigned module // Enable servo 14 | assigned module | Enable servo 15 | assigned module
DARWIN_MM_MODULE_EN8 = 0x0132, // bit 7 | bit 6 | bit 5 | bit 4 | bit 3 | bit 2 | bit 1 | bit 0 DARWIN_MM_MODULE_EN8 = 0x0154, // bit 7 | bit 6 | bit 5 | bit 4 | bit 3 | bit 2 | bit 1 | bit 0
// Enable servo 16 | assigned module | Enable servo 17 | assigned module // Enable servo 16 | assigned module | Enable servo 17 | assigned module
DARWIN_MM_MODULE_EN9 = 0x0133, // bit 7 | bit 6 | bit 5 | bit 4 | bit 3 | bit 2 | bit 1 | bit 0 DARWIN_MM_MODULE_EN9 = 0x0155, // bit 7 | bit 6 | bit 5 | bit 4 | bit 3 | bit 2 | bit 1 | bit 0
// Enable servo 18 | assigned module | Enable servo 19 | assigned module // Enable servo 18 | assigned module | Enable servo 19 | assigned module
DARWIN_MM_MODULE_EN10 = 0x0134, // bit 7 | bit 6 | bit 5 | bit 4 | bit 3 | bit 2 | bit 1 | bit 0 DARWIN_MM_MODULE_EN10 = 0x0156, // bit 7 | bit 6 | bit 5 | bit 4 | bit 3 | bit 2 | bit 1 | bit 0
// Enable servo 20 | assigned module | Enable servo 21 | assigned module // Enable servo 20 | assigned module | Enable servo 21 | assigned module
DARWIN_MM_MODULE_EN11 = 0x0135, // bit 7 | bit 6 | bit 5 | bit 4 | bit 3 | bit 2 | bit 1 | bit 0 DARWIN_MM_MODULE_EN11 = 0x0157, // bit 7 | bit 6 | bit 5 | bit 4 | bit 3 | bit 2 | bit 1 | bit 0
// Enable servo 22 | assigned module | Enable servo 23 | assigned module // Enable servo 22 | assigned module | Enable servo 23 | assigned module
DARWIN_MM_MODULE_EN12 = 0x0136, // bit 7 | bit 6 | bit 5 | bit 4 | bit 3 | bit 2 | bit 1 | bit 0 DARWIN_MM_MODULE_EN12 = 0x0158, // bit 7 | bit 6 | bit 5 | bit 4 | bit 3 | bit 2 | bit 1 | bit 0
// Enable servo 24 | assigned module | Enable servo 25 | assigned module // Enable servo 24 | assigned module | Enable servo 25 | assigned module
DARWIN_MM_MODULE_EN13 = 0x0137, // bit 7 | bit 6 | bit 5 | bit 4 | bit 3 | bit 2 | bit 1 | bit 0 DARWIN_MM_MODULE_EN13 = 0x0159, // bit 7 | bit 6 | bit 5 | bit 4 | bit 3 | bit 2 | bit 1 | bit 0
// Enable servo 26 | assigned module | Enable servo 27 | assigned module // Enable servo 26 | assigned module | Enable servo 27 | assigned module
DARWIN_MM_MODULE_EN14 = 0x0138, // bit 7 | bit 6 | bit 5 | bit 4 | bit 3 | bit 2 | bit 1 | bit 0 DARWIN_MM_MODULE_EN14 = 0x015A, // bit 7 | bit 6 | bit 5 | bit 4 | bit 3 | bit 2 | bit 1 | bit 0
// Enable servo 28 | assigned module | Enable servo 29 | assigned module // Enable servo 28 | assigned module | Enable servo 29 | assigned module
DARWIN_MM_MODULE_EN15 = 0x0139, // bit 7 | bit 6 | bit 5 | bit 4 | bit 3 | bit 2 | bit 1 | bit 0 DARWIN_MM_MODULE_EN15 = 0x015B, // bit 7 | bit 6 | bit 5 | bit 4 | bit 3 | bit 2 | bit 1 | bit 0
// Enable servo 30 | assigned module | Enable servo 31 | assigned module // Enable servo 30 | assigned module | Enable servo 31 | assigned module
DARWIN_MM_SERVO0_CUR_POS_L = 0x013A, // angle in fixed point format 9|7 DARWIN_MM_SERVO0_CUR_POS_L = 0x015C, // angle in fixed point format 9|7
DARWIN_MM_SERVO0_CUR_POS_H = 0x013B, DARWIN_MM_SERVO0_CUR_POS_H = 0x015D,
DARWIN_MM_SERVO1_CUR_POS_L = 0x013C, // angle in fixed point format 9|7 DARWIN_MM_SERVO1_CUR_POS_L = 0x015E, // angle in fixed point format 9|7
DARWIN_MM_SERVO1_CUR_POS_H = 0x013D, DARWIN_MM_SERVO1_CUR_POS_H = 0x015F,
DARWIN_MM_SERVO2_CUR_POS_L = 0x013E, // angle in fixed point format 9|7 DARWIN_MM_SERVO2_CUR_POS_L = 0x0160, // angle in fixed point format 9|7
DARWIN_MM_SERVO2_CUR_POS_H = 0x013F, DARWIN_MM_SERVO2_CUR_POS_H = 0x0161,
DARWIN_MM_SERVO3_CUR_POS_L = 0x0140, // angle in fixed point format 9|7 DARWIN_MM_SERVO3_CUR_POS_L = 0x0162, // angle in fixed point format 9|7
DARWIN_MM_SERVO3_CUR_POS_H = 0x0141, DARWIN_MM_SERVO3_CUR_POS_H = 0x0163,
DARWIN_MM_SERVO4_CUR_POS_L = 0x0142, // angle in fixed point format 9|7 DARWIN_MM_SERVO4_CUR_POS_L = 0x0164, // angle in fixed point format 9|7
DARWIN_MM_SERVO4_CUR_POS_H = 0x0143, DARWIN_MM_SERVO4_CUR_POS_H = 0x0165,
DARWIN_MM_SERVO5_CUR_POS_L = 0x0144, // angle in fixed point format 9|7 DARWIN_MM_SERVO5_CUR_POS_L = 0x0166, // angle in fixed point format 9|7
DARWIN_MM_SERVO5_CUR_POS_H = 0x0145, DARWIN_MM_SERVO5_CUR_POS_H = 0x0167,
DARWIN_MM_SERVO6_CUR_POS_L = 0x0146, // angle in fixed point format 9|7 DARWIN_MM_SERVO6_CUR_POS_L = 0x0168, // angle in fixed point format 9|7
DARWIN_MM_SERVO6_CUR_POS_H = 0x0147, DARWIN_MM_SERVO6_CUR_POS_H = 0x0169,
DARWIN_MM_SERVO7_CUR_POS_L = 0x0148, // angle in fixed point format 9|7 DARWIN_MM_SERVO7_CUR_POS_L = 0x016A, // angle in fixed point format 9|7
DARWIN_MM_SERVO7_CUR_POS_H = 0x0149, DARWIN_MM_SERVO7_CUR_POS_H = 0x016B,
DARWIN_MM_SERVO8_CUR_POS_L = 0x014A, // angle in fixed point format 9|7 DARWIN_MM_SERVO8_CUR_POS_L = 0x016C, // angle in fixed point format 9|7
DARWIN_MM_SERVO8_CUR_POS_H = 0x014B, DARWIN_MM_SERVO8_CUR_POS_H = 0x016D,
DARWIN_MM_SERVO9_CUR_POS_L = 0x014C, // angle in fixed point format 9|7 DARWIN_MM_SERVO9_CUR_POS_L = 0x016E, // angle in fixed point format 9|7
DARWIN_MM_SERVO9_CUR_POS_H = 0x014D, DARWIN_MM_SERVO9_CUR_POS_H = 0x016F,
DARWIN_MM_SERVO10_CUR_POS_L = 0x014E, // angle in fixed point format 9|7 DARWIN_MM_SERVO10_CUR_POS_L = 0x0170, // angle in fixed point format 9|7
DARWIN_MM_SERVO10_CUR_POS_H = 0x014F, DARWIN_MM_SERVO10_CUR_POS_H = 0x0171,
DARWIN_MM_SERVO11_CUR_POS_L = 0x0150, // angle in fixed point format 9|7 DARWIN_MM_SERVO11_CUR_POS_L = 0x0172, // angle in fixed point format 9|7
DARWIN_MM_SERVO11_CUR_POS_H = 0x0151, DARWIN_MM_SERVO11_CUR_POS_H = 0x0173,
DARWIN_MM_SERVO12_CUR_POS_L = 0x0152, // angle in fixed point format 9|7 DARWIN_MM_SERVO12_CUR_POS_L = 0x0174, // angle in fixed point format 9|7
DARWIN_MM_SERVO12_CUR_POS_H = 0x0153, DARWIN_MM_SERVO12_CUR_POS_H = 0x0175,
DARWIN_MM_SERVO13_CUR_POS_L = 0x0154, // angle in fixed point format 9|7 DARWIN_MM_SERVO13_CUR_POS_L = 0x0176, // angle in fixed point format 9|7
DARWIN_MM_SERVO13_CUR_POS_H = 0x0155, DARWIN_MM_SERVO13_CUR_POS_H = 0x0177,
DARWIN_MM_SERVO14_CUR_POS_L = 0x0156, // angle in fixed point format 9|7 DARWIN_MM_SERVO14_CUR_POS_L = 0x0178, // angle in fixed point format 9|7
DARWIN_MM_SERVO14_CUR_POS_H = 0x0157, DARWIN_MM_SERVO14_CUR_POS_H = 0x0179,
DARWIN_MM_SERVO15_CUR_POS_L = 0x0158, // angle in fixed point format 9|7 DARWIN_MM_SERVO15_CUR_POS_L = 0x017A, // angle in fixed point format 9|7
DARWIN_MM_SERVO15_CUR_POS_H = 0x0159, DARWIN_MM_SERVO15_CUR_POS_H = 0x017B,
DARWIN_MM_SERVO16_CUR_POS_L = 0x015A, // angle in fixed point format 9|7 DARWIN_MM_SERVO16_CUR_POS_L = 0x017C, // angle in fixed point format 9|7
DARWIN_MM_SERVO16_CUR_POS_H = 0x015B, DARWIN_MM_SERVO16_CUR_POS_H = 0x017D,
DARWIN_MM_SERVO17_CUR_POS_L = 0x015C, // angle in fixed point format 9|7 DARWIN_MM_SERVO17_CUR_POS_L = 0x017E, // angle in fixed point format 9|7
DARWIN_MM_SERVO17_CUR_POS_H = 0x015D, DARWIN_MM_SERVO17_CUR_POS_H = 0x017F,
DARWIN_MM_SERVO18_CUR_POS_L = 0x015E, // angle in fixed point format 9|7 DARWIN_MM_SERVO18_CUR_POS_L = 0x0180, // angle in fixed point format 9|7
DARWIN_MM_SERVO18_CUR_POS_H = 0x015F, DARWIN_MM_SERVO18_CUR_POS_H = 0x0181,
DARWIN_MM_SERVO19_CUR_POS_L = 0x0160, // angle in fixed point format 9|7 DARWIN_MM_SERVO19_CUR_POS_L = 0x0182, // angle in fixed point format 9|7
DARWIN_MM_SERVO19_CUR_POS_H = 0x0161, DARWIN_MM_SERVO19_CUR_POS_H = 0x0183,
DARWIN_MM_SERVO20_CUR_POS_L = 0x0162, // angle in fixed point format 9|7 DARWIN_MM_SERVO20_CUR_POS_L = 0x0184, // angle in fixed point format 9|7
DARWIN_MM_SERVO20_CUR_POS_H = 0x0163, DARWIN_MM_SERVO20_CUR_POS_H = 0x0185,
DARWIN_MM_SERVO21_CUR_POS_L = 0x0164, // angle in fixed point format 9|7 DARWIN_MM_SERVO21_CUR_POS_L = 0x0186, // angle in fixed point format 9|7
DARWIN_MM_SERVO21_CUR_POS_H = 0x0165, DARWIN_MM_SERVO21_CUR_POS_H = 0x0187,
DARWIN_MM_SERVO22_CUR_POS_L = 0x0166, // angle in fixed point format 9|7 DARWIN_MM_SERVO22_CUR_POS_L = 0x0188, // angle in fixed point format 9|7
DARWIN_MM_SERVO22_CUR_POS_H = 0x0167, DARWIN_MM_SERVO22_CUR_POS_H = 0x0189,
DARWIN_MM_SERVO23_CUR_POS_L = 0x0168, // angle in fixed point format 9|7 DARWIN_MM_SERVO23_CUR_POS_L = 0x018A, // angle in fixed point format 9|7
DARWIN_MM_SERVO23_CUR_POS_H = 0x0169, DARWIN_MM_SERVO23_CUR_POS_H = 0x018B,
DARWIN_MM_SERVO24_CUR_POS_L = 0x016A, // angle in fixed point format 9|7 DARWIN_MM_SERVO24_CUR_POS_L = 0x018C, // angle in fixed point format 9|7
DARWIN_MM_SERVO24_CUR_POS_H = 0x016B, DARWIN_MM_SERVO24_CUR_POS_H = 0x018D,
DARWIN_MM_SERVO25_CUR_POS_L = 0x016C, // angle in fixed point format 9|7 DARWIN_MM_SERVO25_CUR_POS_L = 0x018E, // angle in fixed point format 9|7
DARWIN_MM_SERVO25_CUR_POS_H = 0x016D, DARWIN_MM_SERVO25_CUR_POS_H = 0x018F,
DARWIN_MM_SERVO26_CUR_POS_L = 0x016E, // angle in fixed point format 9|7 DARWIN_MM_SERVO26_CUR_POS_L = 0x0190, // angle in fixed point format 9|7
DARWIN_MM_SERVO26_CUR_POS_H = 0x016F, DARWIN_MM_SERVO26_CUR_POS_H = 0x0191,
DARWIN_MM_SERVO27_CUR_POS_L = 0x0170, // angle in fixed point format 9|7 DARWIN_MM_SERVO27_CUR_POS_L = 0x0192, // angle in fixed point format 9|7
DARWIN_MM_SERVO27_CUR_POS_H = 0x0171, DARWIN_MM_SERVO27_CUR_POS_H = 0x0193,
DARWIN_MM_SERVO28_CUR_POS_L = 0x0172, // angle in fixed point format 9|7 DARWIN_MM_SERVO28_CUR_POS_L = 0x0194, // angle in fixed point format 9|7
DARWIN_MM_SERVO28_CUR_POS_H = 0x0173, DARWIN_MM_SERVO28_CUR_POS_H = 0x0195,
DARWIN_MM_SERVO29_CUR_POS_L = 0x0174, // angle in fixed point format 9|7 DARWIN_MM_SERVO29_CUR_POS_L = 0x0196, // angle in fixed point format 9|7
DARWIN_MM_SERVO29_CUR_POS_H = 0x0175, DARWIN_MM_SERVO29_CUR_POS_H = 0x0197,
DARWIN_MM_SERVO30_CUR_POS_L = 0x0176, // angle in fixed point format 9|7 DARWIN_MM_SERVO30_CUR_POS_L = 0x0198, // angle in fixed point format 9|7
DARWIN_MM_SERVO30_CUR_POS_H = 0x0177, DARWIN_MM_SERVO30_CUR_POS_H = 0x0199,
DARWIN_MM_SERVO31_CUR_POS_L = 0x0178, // angle in fixed point format 9|7 DARWIN_MM_SERVO31_CUR_POS_L = 0x019A, // angle in fixed point format 9|7
DARWIN_MM_SERVO31_CUR_POS_H = 0x0179, DARWIN_MM_SERVO31_CUR_POS_H = 0x019B,
DARWIN_ACTION_PAGE = 0x017A, DARWIN_ACTION_PAGE = 0x019C,
DARWIN_ACTION_CNTRL = 0x017B, // bit 7 | bit 6 | bit 5 | bit 4 | bit 3 | bit 2 | bit 1 | bit 0 DARWIN_ACTION_CNTRL = 0x019D, // bit 7 | bit 6 | bit 5 | bit 4 | bit 3 | bit 2 | bit 1 | bit 0
// | | | page running | | | stop page | start page // | | | page running | | | stop page | start page
DARWIN_WALK_CNTRL = 0x017C, // bit 7 | bit 6 | bit 5 | bit 4 | bit 3 | bit 2 | bit 1 | bit 0 DARWIN_WALK_CNTRL = 0x019E, // bit 7 | bit 6 | bit 5 | bit 4 | bit 3 | bit 2 | bit 1 | bit 0
// current phase walking stop walking start walking // current phase walking stop walking start walking
DARWIN_WALK_STEP_FW_BW = 0x017D, DARWIN_WALK_STEP_FW_BW = 0x019F,
DARWIN_WALK_STEP_LEFT_RIGHT = 0x017E, DARWIN_WALK_STEP_LEFT_RIGHT = 0x01A0,
DARWIN_WALK_STEP_DIRECTION = 0x017F DARWIN_WALK_STEP_DIRECTION = 0x01A1
} darwin_registers; } darwin_registers;
#define GPIO_BASE_ADDRESS 0x0100 #define GPIO_BASE_ADDRESS 0x0100
...@@ -382,6 +382,7 @@ typedef enum { ...@@ -382,6 +382,7 @@ typedef enum {
#define MANAGER_ENABLE 0x01 #define MANAGER_ENABLE 0x01
#define MANAGER_EN_BAL 0x02 #define MANAGER_EN_BAL 0x02
#define MANAGER_EN_PWR 0x04 #define MANAGER_EN_PWR 0x04
#define MANAGER_SCANNING 0x80
#define MANAGER_EVEN_SER_EN 0x80 #define MANAGER_EVEN_SER_EN 0x80
#define MANAGER_EVEN_SER_MOD 0x70 #define MANAGER_EVEN_SER_MOD 0x70
#define MANAGER_ODD_SER_EN 0x08 #define MANAGER_ODD_SER_EN 0x08
......
...@@ -35,6 +35,7 @@ int main(void) ...@@ -35,6 +35,7 @@ int main(void)
EE_ReadVariable(MM_PERIOD_OFFSET+1,&eeprom_data); EE_ReadVariable(MM_PERIOD_OFFSET+1,&eeprom_data);
period+=((eeprom_data&0x00FF)<<8); period+=((eeprom_data&0x00FF)<<8);
manager_init(period); manager_init(period);
gpio_set_led(LED_4);
while(1);/* main function does not return */ while(1);/* main function does not return */
} }
......
#include "darwin_dyn_master.h" #include "darwin_dyn_master.h"
#include "darwin_time.h" #include "darwin_time.h"
#include "usart1.h" #include "usart1.h"
#include "ram.h"
#define ENABLE_RX_EN_GPIO_CLK __GPIOB_CLK_ENABLE() #define ENABLE_RX_EN_GPIO_CLK __GPIOB_CLK_ENABLE()
#define RX_EN_PIN GPIO_PIN_5 #define RX_EN_PIN GPIO_PIN_5
...@@ -94,10 +95,12 @@ void darwin_dyn_master_init(void) ...@@ -94,10 +95,12 @@ void darwin_dyn_master_init(void)
inline void darwin_dyn_master_enable_power(void) inline void darwin_dyn_master_enable_power(void)
{ {
HAL_GPIO_WritePin(POWER_GPIO_PORT,POWER_PIN,GPIO_PIN_SET); HAL_GPIO_WritePin(POWER_GPIO_PORT,POWER_PIN,GPIO_PIN_SET);
ram_data[DARWIN_MM_CNTRL]|=MANAGER_EN_PWR;
} }
inline void darwin_dyn_master_disable_power(void) inline void darwin_dyn_master_disable_power(void)
{ {
HAL_GPIO_WritePin(POWER_GPIO_PORT,POWER_PIN,GPIO_PIN_RESET); HAL_GPIO_WritePin(POWER_GPIO_PORT,POWER_PIN,GPIO_PIN_RESET);
ram_data[DARWIN_MM_CNTRL]&=(~MANAGER_EN_PWR);
} }
...@@ -183,6 +183,7 @@ void manager_init(uint16_t period_us) ...@@ -183,6 +183,7 @@ void manager_init(uint16_t period_us)
/* initialize the dynamixel master module for the servos */ /* initialize the dynamixel master module for the servos */
darwin_dyn_master_init(); darwin_dyn_master_init();
ram_data[DARWIN_MM_CNTRL]|=MANAGER_SCANNING;
// enable power to the servos // enable power to the servos
darwin_dyn_master_enable_power(); darwin_dyn_master_enable_power();
HAL_Delay(1000); HAL_Delay(1000);
...@@ -296,6 +297,7 @@ void manager_init(uint16_t period_us) ...@@ -296,6 +297,7 @@ void manager_init(uint16_t period_us)
} }
} }
darwin_dyn_master_disable_power(); darwin_dyn_master_disable_power();
ram_data[DARWIN_MM_CNTRL]&=(~MANAGER_SCANNING);
/* configure timer */ /* configure timer */
ENABLE_MANAGER_TIMER_CLK; ENABLE_MANAGER_TIMER_CLK;
...@@ -304,6 +306,7 @@ void manager_init(uint16_t period_us) ...@@ -304,6 +306,7 @@ void manager_init(uint16_t period_us)
MANAGER_TIM_Handle.Init.Prescaler = 72; MANAGER_TIM_Handle.Init.Prescaler = 72;
MANAGER_TIM_Handle.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; MANAGER_TIM_Handle.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
MANAGER_TIM_Handle.Init.CounterMode = TIM_COUNTERMODE_UP; MANAGER_TIM_Handle.Init.CounterMode = TIM_COUNTERMODE_UP;
HAL_TIM_Base_Init(&MANAGER_TIM_Handle);
HAL_NVIC_SetPriority(MANAGER_TIMER_IRQn, 2, 1); HAL_NVIC_SetPriority(MANAGER_TIMER_IRQn, 2, 1);
HAL_NVIC_EnableIRQ(MANAGER_TIMER_IRQn); HAL_NVIC_EnableIRQ(MANAGER_TIMER_IRQn);
/* use the internal clock */ /* use the internal clock */
......
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