diff --git a/Makefile b/Makefile index ec863f8dbd6ab43f664cb33dd39e98b5b0f575db..19efbc3d6a6797b84b6d1b7bbca0e18875466d98 100755 --- a/Makefile +++ b/Makefile @@ -2,23 +2,7 @@ # modified by zerom for WinARM 8/2010 PROJECT_NAME=bioloid_firmware -#TARGET_FILES=$(wildcard src/*.c) -TARGET_FILES=src/bioloid_stm32.c -TARGET_FILES+=src/system_stm32f4xx.c -TARGET_FILES+=src/stm32f4xx_hal_msp.c -TARGET_FILES+=src/gpio.c -TARGET_FILES+=src/eeprom.c -TARGET_FILES+=src/ram.c -TARGET_FILES+=src/adc_dma.c -TARGET_FILES+=src/zigbee.c -TARGET_FILES+=src/bioloid_time.c -TARGET_FILES+=src/bioloid_dyn_slave.c -TARGET_FILES+=src/bioloid_dyn_master_sensors.c -TARGET_FILES+=src/bioloid_dyn_master_servos.c -TARGET_FILES+=src/motion_pages.c -TARGET_FILES+=src/motion_manager.c -TARGET_FILES+=src/action.c -TARGET_FILES+=src/bioloid_gyro.c +TARGET_FILES=$(wildcard src/*.c) TARGET_PROCESSOR=STM32F407VG HAL_PATH=../../STM32_processor/hal/f4 diff --git a/src/bioloid_stm32.c b/src/bioloid_stm32.c index b34b9d4fe471f0e2f2f7078f754c20ca7a382c6f..7f63859a98b101a8459ff4be003ece57f0b5c23f 100644 --- a/src/bioloid_stm32.c +++ b/src/bioloid_stm32.c @@ -27,7 +27,7 @@ int32_t main(void) bioloid_time_init(); /* initialize zigbee module */ zigbee_init(); - zigbee_enable_power(); +// zigbee_enable_power(); /* initialize the dynamixel slave interface */ bioloid_dyn_slave_init(); bioloid_dyn_slave_start(); diff --git a/src/eeprom.c b/src/eeprom.c index 68155b94ad2c0608c3ccdb1388c184cecd3545e3..2f1c990eeff5762b655c1ba6b313c11e9e4d2e41 100755 --- a/src/eeprom.c +++ b/src/eeprom.c @@ -52,7 +52,7 @@ #define DEFAULT_DEVICE_ID 0x0002 #define DEFAULT_BAUDRATE 0x0001 #define DEFAULT_RETURN_DELAY 0x0000 -#define DEFAULT_MM_PERIOD 0x01FF +#define DEFAULT_MM_PERIOD 0x1E78 #define DEFAULT_BAL_KNEE_GAIN 0x04BE // 1/54 in fixed point format 0|16 #define DEFAULT_BAL_ANKLE_ROLL_GAIN 0x0CCD // 1/20 #define DEFAULT_BAL_ANKLE_PITCH_GAIN 0x0E39 // 1/18 diff --git a/src/motion_manager.c b/src/motion_manager.c index 8a172e0def975f19b1e07078d6fc3b250fead857..2ea42c2809eb604b8459144f1e46bc316321ae43 100644 --- a/src/motion_manager.c +++ b/src/motion_manager.c @@ -147,7 +147,7 @@ void MANAGER_TIMER_IRQHandler(void) { __HAL_TIM_CLEAR_IT(&MANAGER_TIM_Handle, TIM_IT_CC1); capture = HAL_TIM_ReadCapturedValue(&MANAGER_TIM_Handle, TIM_CHANNEL_1); - __HAL_TIM_SET_COMPARE(&MANAGER_TIM_Handle, TIM_CHANNEL_1, (capture + manager_motion_period)); + __HAL_TIM_SET_COMPARE(&MANAGER_TIM_Handle, TIM_CHANNEL_1, (capture + manager_motion_period_us)); // call the action process action_process(); // call the joint motion process @@ -185,6 +185,10 @@ void manager_init(uint16_t period_us) // detect the servos connected dyn_master_scan(&bioloid_dyn_master_servos,&num,servo_ids); ram_data[BIOLOID_MM_NUM_SERVOS]=num; + if(num>0) + gpio_set_led(TXD_LED); + if(num==18) + gpio_set_led(RXD_LED); manager_num_servos=0; for(i=0;i<MANAGER_MAX_NUM_SERVOS;i++) { @@ -335,7 +339,7 @@ uint16_t manager_get_period_us(void) void manager_set_period(uint16_t period_us) { - manager_motion_period=(period_us*1000000)>>16; + manager_motion_period=(period_us<<16)/1000000; manager_motion_period_us=period_us; ram_data[BIOLOID_MM_PERIOD_L]=period_us&0x00FF; ram_data[BIOLOID_MM_PERIOD_H]=(period_us&0xFF00)>>8; @@ -350,7 +354,7 @@ inline void manager_enable(void) TIM_OCInitStructure.OCPolarity = TIM_OCPOLARITY_HIGH; TIM_OCInitStructure.OCFastMode = TIM_OCFAST_DISABLE; capture = HAL_TIM_ReadCapturedValue(&MANAGER_TIM_Handle, TIM_CHANNEL_1); - TIM_OCInitStructure.Pulse = capture+manager_motion_period; + TIM_OCInitStructure.Pulse = capture+manager_motion_period_us; HAL_TIM_OC_ConfigChannel(&MANAGER_TIM_Handle, &TIM_OCInitStructure,TIM_CHANNEL_1); HAL_TIM_OC_Start_IT(&MANAGER_TIM_Handle, TIM_CHANNEL_1); ram_data[BIOLOID_MM_CNTRL]|=MANAGER_ENABLE;