diff --git a/sdk b/sdk index 40531be..74ab9d3 160000 --- a/sdk +++ b/sdk @@ -1 +1 @@ -Subproject commit 40531be4a6a1d8479adeaaa83fee988224d4f393 +Subproject commit 74ab9d32d67b4c0b8d1afb63b0421e0c11a924e5 diff --git a/usrc/main.cpp b/usrc/main.cpp index 19eddd6..345c934 100644 --- a/usrc/main.cpp +++ b/usrc/main.cpp @@ -112,9 +112,9 @@ static void board_post_init() { case 200: Subboard200ExtTmc5160::ins()->initialize(); break; - // case 90: - // Subboard90OpticalModule::ins()->initialize(); - // break; + case 90: + Subboard90OpticalModule::ins()->initialize(); + break; default: break; } diff --git a/usrc/public_service/gins.c b/usrc/public_service/gins.c index 95ffcdc..89fdf68 100644 --- a/usrc/public_service/gins.c +++ b/usrc/public_service/gins.c @@ -36,6 +36,11 @@ DEFINE_GLOBAL(SPI_HandleTypeDef, hspi1); DEFINE_GLOBAL(SPI_HandleTypeDef, hspi2); DEFINE_GLOBAL(SPI_HandleTypeDef, hspi3); +DEFINE_GLOBAL(ADC_HandleTypeDef, hadc1); + + + + /*********************************************************************************************************************** * PTR * ***********************************************************************************************************************/ diff --git a/usrc/public_service/gins.h b/usrc/public_service/gins.h index c51852e..035e81c 100644 --- a/usrc/public_service/gins.h +++ b/usrc/public_service/gins.h @@ -58,6 +58,9 @@ EXTERN_GLOBAL(SPI_HandleTypeDef, hspi1); EXTERN_GLOBAL(SPI_HandleTypeDef, hspi2); EXTERN_GLOBAL(SPI_HandleTypeDef, hspi3); +EXTERN_GLOBAL(ADC_HandleTypeDef, hadc1); + + /*********************************************************************************************************************** * PTR * ***********************************************************************************************************************/ diff --git a/usrc/subboards/subboard10_hbot/subboard10_hbot.cpp b/usrc/subboards/subboard10_hbot/subboard10_hbot.cpp index 7b13f56..56b7d31 100644 --- a/usrc/subboards/subboard10_hbot/subboard10_hbot.cpp +++ b/usrc/subboards/subboard10_hbot/subboard10_hbot.cpp @@ -42,7 +42,7 @@ void Subboard10Hbot::initialize() { }; motora.initialize(&cfg); motora.setMotorShaft(false); - motora.setGlobalScale(32); + motora.setGlobalScale(31); ZLOGI(TAG, "motora initialize TMC4361A:%x DriverIC:%x", motora.readICVersion(), motora.driverIC_readICVersion()); } @@ -58,7 +58,7 @@ void Subboard10Hbot::initialize() { }; motorb.initialize(&cfg); motorb.setMotorShaft(false); - motorb.setGlobalScale(32); + motorb.setGlobalScale(31); ZLOGI(TAG, "motorb initialize TMC4361A:%x DriverIC:%x", motorb.readICVersion(), motorb.driverIC_readICVersion()); } @@ -91,7 +91,7 @@ void Subboard10Hbot::initialize() { xy_defaultcfg.x_shaft = 0; xy_defaultcfg.y_shaft = 1; xy_defaultcfg.ihold = 3; - xy_defaultcfg.irun = 20; + xy_defaultcfg.irun = 31; xy_defaultcfg.iholddelay = 100; xy_defaultcfg.distance_scale = 7344; xy_defaultcfg.shift_x = 0; @@ -106,7 +106,7 @@ void Subboard10Hbot::initialize() { xy_defaultcfg.max_y = 0; xy_defaultcfg.default_velocity = 300; - xy_defaultcfg.run_to_zero_speed = 80; + xy_defaultcfg.run_to_zero_speed = 40; xy_defaultcfg.look_zero_edge_speed = 10; xyRobotCtrlModule.initialize(getmoduleId(1), &motora, &motorb, &input[0], 4, xy_defaultcfg); diff --git a/usrc/subboards/subboard90_optical_module/subboard90_optical_module_board.c b/usrc/subboards/subboard90_optical_module/subboard90_optical_module_board.c index c720087..d9a6a4b 100644 --- a/usrc/subboards/subboard90_optical_module/subboard90_optical_module_board.c +++ b/usrc/subboards/subboard90_optical_module/subboard90_optical_module_board.c @@ -98,6 +98,61 @@ void MX_SPI3_Init(void) { hspi3_enable = true; } +/* ADC1 init function */ +static void ADC1_Init(void) { + __HAL_RCC_ADC1_CLK_ENABLE(); + __HAL_RCC_GPIOC_CLK_ENABLE(); + /* USER CODE BEGIN ADC1_Init 0 */ + + /* USER CODE END ADC1_Init 0 */ + + ADC_ChannelConfTypeDef sConfig = {0}; + + /* USER CODE BEGIN ADC1_Init 1 */ + + /* USER CODE END ADC1_Init 1 */ + + /** Configure the global features of the ADC (Clock, Resolution, Data Alignment and number of conversion) + */ + hadc1.Instance = ADC1; + hadc1.Init.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV2; + hadc1.Init.Resolution = ADC_RESOLUTION_12B; + hadc1.Init.ScanConvMode = DISABLE; + hadc1.Init.ContinuousConvMode = DISABLE; + hadc1.Init.DiscontinuousConvMode = DISABLE; + hadc1.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE; + hadc1.Init.ExternalTrigConv = ADC_SOFTWARE_START; + hadc1.Init.DataAlign = ADC_DATAALIGN_RIGHT; + hadc1.Init.NbrOfConversion = 1; + hadc1.Init.DMAContinuousRequests = DISABLE; + hadc1.Init.EOCSelection = ADC_EOC_SINGLE_CONV; + if (HAL_ADC_Init(&hadc1) != HAL_OK) { + Error_Handler(); + } + + /** Configure for the selected ADC regular channel its corresponding rank in the sequencer and its sample time. + */ + sConfig.Channel = ADC_CHANNEL_10; + sConfig.Rank = 1; + sConfig.SamplingTime = ADC_SAMPLETIME_3CYCLES; + if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK) { + Error_Handler(); + } + GPIO_InitTypeDef GPIO_InitStruct = {0}; + + /**ADC1 GPIO Configuration + PC0 ------> ADC1_IN10 + PC1 ------> ADC1_IN11 + PC2 ------> ADC1_IN12 + PC3 ------> ADC1_IN13 + */ + GPIO_InitStruct.Pin = GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_3; + GPIO_InitStruct.Mode = GPIO_MODE_ANALOG; + GPIO_InitStruct.Pull = GPIO_NOPULL; + HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); + hadc1_enable = true; +} + /** * @brief 板夹仓初始化 */ @@ -107,4 +162,5 @@ void subboard90_optical_module_board_init() { MX_SPI1_Init(); MX_SPI2_Init(); MX_SPI3_Init(); + ADC1_Init(); }