add poc adc with timer
This commit is contained in:
		| @@ -56,7 +56,6 @@ void DebugMon_Handler(void); | |||||||
| void PendSV_Handler(void); | void PendSV_Handler(void); | ||||||
| void SysTick_Handler(void); | void SysTick_Handler(void); | ||||||
| void ADC_IRQHandler(void); | void ADC_IRQHandler(void); | ||||||
| void TIM1_CC_IRQHandler(void); |  | ||||||
| void TIM6_DAC_IRQHandler(void); | void TIM6_DAC_IRQHandler(void); | ||||||
| void LTDC_IRQHandler(void); | void LTDC_IRQHandler(void); | ||||||
| void DMA2D_IRQHandler(void); | void DMA2D_IRQHandler(void); | ||||||
|   | |||||||
| @@ -6,9 +6,13 @@ | |||||||
|  */ |  */ | ||||||
|  |  | ||||||
| #include "stm32f7xx_hal.h" | #include "stm32f7xx_hal.h" | ||||||
|  | #include "main.h" | ||||||
|  |  | ||||||
|  |  | ||||||
| extern "C" void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef * hadc) { | extern "C" void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef * hadc) { | ||||||
|  | 	HAL_GPIO_TogglePin(OUT1_GPIO_Port, OUT1_Pin); | ||||||
| 	volatile uint32_t value = HAL_ADC_GetValue(hadc); | 	volatile uint32_t value = HAL_ADC_GetValue(hadc); | ||||||
| } | } | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|   | |||||||
| @@ -93,6 +93,8 @@ static void MX_USART1_UART_Init(void); | |||||||
| /* Private user code ---------------------------------------------------------*/ | /* Private user code ---------------------------------------------------------*/ | ||||||
| /* USER CODE BEGIN 0 */ | /* USER CODE BEGIN 0 */ | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| /* USER CODE END 0 */ | /* USER CODE END 0 */ | ||||||
|  |  | ||||||
| /** | /** | ||||||
| @@ -140,14 +142,16 @@ int main(void) | |||||||
|   MX_USART1_UART_Init(); |   MX_USART1_UART_Init(); | ||||||
|   /* USER CODE BEGIN 2 */ |   /* USER CODE BEGIN 2 */ | ||||||
|  |  | ||||||
|  |   HAL_TIM_OC_Start_IT(&htim1, TIM_CHANNEL_1); | ||||||
|  |   HAL_ADC_Start_IT(&hadc3); | ||||||
|  |  | ||||||
|   /* USER CODE END 2 */ |   /* USER CODE END 2 */ | ||||||
|  |  | ||||||
|   /* Infinite loop */ |   /* Infinite loop */ | ||||||
|   /* USER CODE BEGIN WHILE */ |   /* USER CODE BEGIN WHILE */ | ||||||
|   while (1) { |   while (1) { | ||||||
|  |  | ||||||
| 	  HAL_ADC_Start_IT(&hadc3); | 	  //HAL_Delay(2000); | ||||||
| 	  HAL_Delay(2000); |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| @@ -241,8 +245,8 @@ static void MX_ADC3_Init(void) | |||||||
|   hadc3.Init.ScanConvMode = ADC_SCAN_DISABLE; |   hadc3.Init.ScanConvMode = ADC_SCAN_DISABLE; | ||||||
|   hadc3.Init.ContinuousConvMode = DISABLE; |   hadc3.Init.ContinuousConvMode = DISABLE; | ||||||
|   hadc3.Init.DiscontinuousConvMode = DISABLE; |   hadc3.Init.DiscontinuousConvMode = DISABLE; | ||||||
|   hadc3.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE; |   hadc3.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_RISINGFALLING; | ||||||
|   hadc3.Init.ExternalTrigConv = ADC_SOFTWARE_START; |   hadc3.Init.ExternalTrigConv = ADC_EXTERNALTRIGCONV_T1_CC1; | ||||||
|   hadc3.Init.DataAlign = ADC_DATAALIGN_RIGHT; |   hadc3.Init.DataAlign = ADC_DATAALIGN_RIGHT; | ||||||
|   hadc3.Init.NbrOfConversion = 1; |   hadc3.Init.NbrOfConversion = 1; | ||||||
|   hadc3.Init.DMAContinuousRequests = DISABLE; |   hadc3.Init.DMAContinuousRequests = DISABLE; | ||||||
| @@ -595,14 +599,16 @@ static void MX_TIM1_Init(void) | |||||||
|  |  | ||||||
|   TIM_ClockConfigTypeDef sClockSourceConfig = {0}; |   TIM_ClockConfigTypeDef sClockSourceConfig = {0}; | ||||||
|   TIM_MasterConfigTypeDef sMasterConfig = {0}; |   TIM_MasterConfigTypeDef sMasterConfig = {0}; | ||||||
|  |   TIM_OC_InitTypeDef sConfigOC = {0}; | ||||||
|  |   TIM_BreakDeadTimeConfigTypeDef sBreakDeadTimeConfig = {0}; | ||||||
|  |  | ||||||
|   /* USER CODE BEGIN TIM1_Init 1 */ |   /* USER CODE BEGIN TIM1_Init 1 */ | ||||||
|  |  | ||||||
|   /* USER CODE END TIM1_Init 1 */ |   /* USER CODE END TIM1_Init 1 */ | ||||||
|   htim1.Instance = TIM1; |   htim1.Instance = TIM1; | ||||||
|   htim1.Init.Prescaler = 0; |   htim1.Init.Prescaler = 199; | ||||||
|   htim1.Init.CounterMode = TIM_COUNTERMODE_UP; |   htim1.Init.CounterMode = TIM_COUNTERMODE_UP; | ||||||
|   htim1.Init.Period = 65535; |   htim1.Init.Period = 99; | ||||||
|   htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; |   htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; | ||||||
|   htim1.Init.RepetitionCounter = 0; |   htim1.Init.RepetitionCounter = 0; | ||||||
|   htim1.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; |   htim1.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; | ||||||
| @@ -615,6 +621,10 @@ static void MX_TIM1_Init(void) | |||||||
|   { |   { | ||||||
|     Error_Handler(); |     Error_Handler(); | ||||||
|   } |   } | ||||||
|  |   if (HAL_TIM_OC_Init(&htim1) != HAL_OK) | ||||||
|  |   { | ||||||
|  |     Error_Handler(); | ||||||
|  |   } | ||||||
|   sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET; |   sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET; | ||||||
|   sMasterConfig.MasterOutputTrigger2 = TIM_TRGO2_RESET; |   sMasterConfig.MasterOutputTrigger2 = TIM_TRGO2_RESET; | ||||||
|   sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; |   sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; | ||||||
| @@ -622,6 +632,32 @@ static void MX_TIM1_Init(void) | |||||||
|   { |   { | ||||||
|     Error_Handler(); |     Error_Handler(); | ||||||
|   } |   } | ||||||
|  |   sConfigOC.OCMode = TIM_OCMODE_TOGGLE; | ||||||
|  |   sConfigOC.Pulse = 0; | ||||||
|  |   sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH; | ||||||
|  |   sConfigOC.OCNPolarity = TIM_OCNPOLARITY_HIGH; | ||||||
|  |   sConfigOC.OCFastMode = TIM_OCFAST_DISABLE; | ||||||
|  |   sConfigOC.OCIdleState = TIM_OCIDLESTATE_RESET; | ||||||
|  |   sConfigOC.OCNIdleState = TIM_OCNIDLESTATE_RESET; | ||||||
|  |   if (HAL_TIM_OC_ConfigChannel(&htim1, &sConfigOC, TIM_CHANNEL_1) != HAL_OK) | ||||||
|  |   { | ||||||
|  |     Error_Handler(); | ||||||
|  |   } | ||||||
|  |   sBreakDeadTimeConfig.OffStateRunMode = TIM_OSSR_DISABLE; | ||||||
|  |   sBreakDeadTimeConfig.OffStateIDLEMode = TIM_OSSI_DISABLE; | ||||||
|  |   sBreakDeadTimeConfig.LockLevel = TIM_LOCKLEVEL_OFF; | ||||||
|  |   sBreakDeadTimeConfig.DeadTime = 0; | ||||||
|  |   sBreakDeadTimeConfig.BreakState = TIM_BREAK_DISABLE; | ||||||
|  |   sBreakDeadTimeConfig.BreakPolarity = TIM_BREAKPOLARITY_HIGH; | ||||||
|  |   sBreakDeadTimeConfig.BreakFilter = 0; | ||||||
|  |   sBreakDeadTimeConfig.Break2State = TIM_BREAK2_DISABLE; | ||||||
|  |   sBreakDeadTimeConfig.Break2Polarity = TIM_BREAK2POLARITY_HIGH; | ||||||
|  |   sBreakDeadTimeConfig.Break2Filter = 0; | ||||||
|  |   sBreakDeadTimeConfig.AutomaticOutput = TIM_AUTOMATICOUTPUT_DISABLE; | ||||||
|  |   if (HAL_TIMEx_ConfigBreakDeadTime(&htim1, &sBreakDeadTimeConfig) != HAL_OK) | ||||||
|  |   { | ||||||
|  |     Error_Handler(); | ||||||
|  |   } | ||||||
|   /* USER CODE BEGIN TIM1_Init 2 */ |   /* USER CODE BEGIN TIM1_Init 2 */ | ||||||
|  |  | ||||||
|   /* USER CODE END TIM1_Init 2 */ |   /* USER CODE END TIM1_Init 2 */ | ||||||
|   | |||||||
| @@ -677,9 +677,6 @@ void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base) | |||||||
|     GPIO_InitStruct.Alternate = GPIO_AF1_TIM1; |     GPIO_InitStruct.Alternate = GPIO_AF1_TIM1; | ||||||
|     HAL_GPIO_Init(ARDUINO_PWM_D10_GPIO_Port, &GPIO_InitStruct); |     HAL_GPIO_Init(ARDUINO_PWM_D10_GPIO_Port, &GPIO_InitStruct); | ||||||
|  |  | ||||||
|     /* TIM1 interrupt Init */ |  | ||||||
|     HAL_NVIC_SetPriority(TIM1_CC_IRQn, 0, 0); |  | ||||||
|     HAL_NVIC_EnableIRQ(TIM1_CC_IRQn); |  | ||||||
|   /* USER CODE BEGIN TIM1_MspInit 1 */ |   /* USER CODE BEGIN TIM1_MspInit 1 */ | ||||||
|  |  | ||||||
|   /* USER CODE END TIM1_MspInit 1 */ |   /* USER CODE END TIM1_MspInit 1 */ | ||||||
| @@ -862,8 +859,6 @@ void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base) | |||||||
|     */ |     */ | ||||||
|     HAL_GPIO_DeInit(ARDUINO_PWM_D10_GPIO_Port, ARDUINO_PWM_D10_Pin); |     HAL_GPIO_DeInit(ARDUINO_PWM_D10_GPIO_Port, ARDUINO_PWM_D10_Pin); | ||||||
|  |  | ||||||
|     /* TIM1 interrupt DeInit */ |  | ||||||
|     HAL_NVIC_DisableIRQ(TIM1_CC_IRQn); |  | ||||||
|   /* USER CODE BEGIN TIM1_MspDeInit 1 */ |   /* USER CODE BEGIN TIM1_MspDeInit 1 */ | ||||||
|  |  | ||||||
|   /* USER CODE END TIM1_MspDeInit 1 */ |   /* USER CODE END TIM1_MspDeInit 1 */ | ||||||
|   | |||||||
| @@ -58,7 +58,6 @@ | |||||||
| extern ADC_HandleTypeDef hadc3; | extern ADC_HandleTypeDef hadc3; | ||||||
| extern DMA2D_HandleTypeDef hdma2d; | extern DMA2D_HandleTypeDef hdma2d; | ||||||
| extern LTDC_HandleTypeDef hltdc; | extern LTDC_HandleTypeDef hltdc; | ||||||
| extern TIM_HandleTypeDef htim1; |  | ||||||
| extern TIM_HandleTypeDef htim6; | extern TIM_HandleTypeDef htim6; | ||||||
|  |  | ||||||
| /* USER CODE BEGIN EV */ | /* USER CODE BEGIN EV */ | ||||||
| @@ -217,20 +216,6 @@ void ADC_IRQHandler(void) | |||||||
|   /* USER CODE END ADC_IRQn 1 */ |   /* USER CODE END ADC_IRQn 1 */ | ||||||
| } | } | ||||||
|  |  | ||||||
| /** |  | ||||||
|   * @brief This function handles TIM1 capture compare interrupt. |  | ||||||
|   */ |  | ||||||
| void TIM1_CC_IRQHandler(void) |  | ||||||
| { |  | ||||||
|   /* USER CODE BEGIN TIM1_CC_IRQn 0 */ |  | ||||||
|  |  | ||||||
|   /* USER CODE END TIM1_CC_IRQn 0 */ |  | ||||||
|   HAL_TIM_IRQHandler(&htim1); |  | ||||||
|   /* USER CODE BEGIN TIM1_CC_IRQn 1 */ |  | ||||||
|  |  | ||||||
|   /* USER CODE END TIM1_CC_IRQn 1 */ |  | ||||||
| } |  | ||||||
|  |  | ||||||
| /** | /** | ||||||
|   * @brief This function handles TIM6 global interrupt, DAC1 and DAC2 underrun error interrupts. |   * @brief This function handles TIM6 global interrupt, DAC1 and DAC2 underrun error interrupts. | ||||||
|   */ |   */ | ||||||
|   | |||||||
| @@ -1,7 +1,9 @@ | |||||||
| #MicroXplorer Configuration settings - do not modify | #MicroXplorer Configuration settings - do not modify | ||||||
| ADC3.Channel-0\#ChannelRegularConversion=ADC_CHANNEL_0 | ADC3.Channel-0\#ChannelRegularConversion=ADC_CHANNEL_0 | ||||||
| ADC3.Channel-IN0=ADC_CHANNEL_0 | ADC3.Channel-IN0=ADC_CHANNEL_0 | ||||||
| ADC3.IPParameters=Channel-IN0,Channel-0\#ChannelRegularConversion | ADC3.ExternalTrigConv=ADC_EXTERNALTRIGCONV_T1_CC1 | ||||||
|  | ADC3.ExternalTrigConvEdge=ADC_EXTERNALTRIGCONVEDGE_RISINGFALLING | ||||||
|  | ADC3.IPParameters=Channel-IN0,Channel-0\#ChannelRegularConversion,ExternalTrigConv,ExternalTrigConvEdge | ||||||
| FMC.CASLatency1=FMC_SDRAM_CAS_LATENCY_3 | FMC.CASLatency1=FMC_SDRAM_CAS_LATENCY_3 | ||||||
| FMC.ExitSelfRefreshDelay1=7 | FMC.ExitSelfRefreshDelay1=7 | ||||||
| FMC.IPParameters=CASLatency1,SDClockPeriod1,SDClockPeriod2,ReadBurst1,ReadBurst2,LoadToActiveDelay1,ExitSelfRefreshDelay1,SelfRefreshTime1,RowCycleDelay1,RowCycleDelay2,WriteRecoveryTime1,RPDelay1,RPDelay2,RCDDelay1 | FMC.IPParameters=CASLatency1,SDClockPeriod1,SDClockPeriod2,ReadBurst1,ReadBurst2,LoadToActiveDelay1,ExitSelfRefreshDelay1,SelfRefreshTime1,RowCycleDelay1,RowCycleDelay2,WriteRecoveryTime1,RPDelay1,RPDelay2,RCDDelay1 | ||||||
| @@ -148,10 +150,11 @@ Mcu.Pin171=VP_RTC_VS_RTC_Alarm_B_Intern | |||||||
| Mcu.Pin172=VP_RTC_VS_RTC_Alarm_A_Intern | Mcu.Pin172=VP_RTC_VS_RTC_Alarm_A_Intern | ||||||
| Mcu.Pin173=VP_SYS_VS_tim6 | Mcu.Pin173=VP_SYS_VS_tim6 | ||||||
| Mcu.Pin174=VP_TIM1_VS_ClockSourceINT | Mcu.Pin174=VP_TIM1_VS_ClockSourceINT | ||||||
| Mcu.Pin175=VP_TIM2_VS_ClockSourceINT | Mcu.Pin175=VP_TIM1_VS_no_output1 | ||||||
| Mcu.Pin176=VP_TIM3_VS_ClockSourceINT | Mcu.Pin176=VP_TIM2_VS_ClockSourceINT | ||||||
| Mcu.Pin177=VP_TIM5_VS_ClockSourceINT | Mcu.Pin177=VP_TIM3_VS_ClockSourceINT | ||||||
| Mcu.Pin178=VP_TIM8_VS_ClockSourceINT | Mcu.Pin178=VP_TIM5_VS_ClockSourceINT | ||||||
|  | Mcu.Pin179=VP_TIM8_VS_ClockSourceINT | ||||||
| Mcu.Pin18=PB9 | Mcu.Pin18=PB9 | ||||||
| Mcu.Pin19=PB7 | Mcu.Pin19=PB7 | ||||||
| Mcu.Pin2=PE2 | Mcu.Pin2=PE2 | ||||||
| @@ -242,7 +245,7 @@ Mcu.Pin96=PF6 | |||||||
| Mcu.Pin97=PF5 | Mcu.Pin97=PF5 | ||||||
| Mcu.Pin98=PH2 | Mcu.Pin98=PH2 | ||||||
| Mcu.Pin99=PJ6 | Mcu.Pin99=PJ6 | ||||||
| Mcu.PinsNb=179 | Mcu.PinsNb=180 | ||||||
| Mcu.ThirdPartyNb=0 | Mcu.ThirdPartyNb=0 | ||||||
| Mcu.UserConstants= | Mcu.UserConstants= | ||||||
| Mcu.UserName=STM32F746NGHx | Mcu.UserName=STM32F746NGHx | ||||||
| @@ -261,7 +264,6 @@ NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:true | |||||||
| NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4 | NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4 | ||||||
| NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:true | NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:true | ||||||
| NVIC.SysTick_IRQn=true\:15\:0\:false\:false\:true\:false\:true\:true | NVIC.SysTick_IRQn=true\:15\:0\:false\:false\:true\:false\:true\:true | ||||||
| NVIC.TIM1_CC_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true |  | ||||||
| NVIC.TIM6_DAC_IRQn=true\:15\:0\:false\:false\:true\:false\:true\:true | NVIC.TIM6_DAC_IRQn=true\:15\:0\:false\:false\:true\:false\:true\:true | ||||||
| NVIC.TimeBase=TIM6_DAC_IRQn | NVIC.TimeBase=TIM6_DAC_IRQn | ||||||
| NVIC.TimeBaseIP=TIM6 | NVIC.TimeBaseIP=TIM6 | ||||||
| @@ -1221,8 +1223,11 @@ SPI2.Direction=SPI_DIRECTION_2LINES | |||||||
| SPI2.IPParameters=VirtualType,Mode,Direction,CalculateBaudRate | SPI2.IPParameters=VirtualType,Mode,Direction,CalculateBaudRate | ||||||
| SPI2.Mode=SPI_MODE_MASTER | SPI2.Mode=SPI_MODE_MASTER | ||||||
| SPI2.VirtualType=VM_MASTER | SPI2.VirtualType=VM_MASTER | ||||||
| TIM1.IPParameters=Prescaler | TIM1.Channel-Output\ Compare1\ No\ Output=TIM_CHANNEL_1 | ||||||
| TIM1.Prescaler=0 | TIM1.IPParameters=Prescaler,Period,Channel-Output Compare1 No Output,OCMode_1 | ||||||
|  | TIM1.OCMode_1=TIM_OCMODE_TOGGLE | ||||||
|  | TIM1.Period=99 | ||||||
|  | TIM1.Prescaler=199 | ||||||
| TIM12.Channel-PWM\ Generation1\ CH1=TIM_CHANNEL_1 | TIM12.Channel-PWM\ Generation1\ CH1=TIM_CHANNEL_1 | ||||||
| TIM12.IPParameters=Channel-PWM Generation1 CH1 | TIM12.IPParameters=Channel-PWM Generation1 CH1 | ||||||
| TIM2.Channel-PWM\ Generation1\ CH1=TIM_CHANNEL_1 | TIM2.Channel-PWM\ Generation1\ CH1=TIM_CHANNEL_1 | ||||||
| @@ -1249,6 +1254,8 @@ VP_SYS_VS_tim6.Mode=TIM6 | |||||||
| VP_SYS_VS_tim6.Signal=SYS_VS_tim6 | VP_SYS_VS_tim6.Signal=SYS_VS_tim6 | ||||||
| VP_TIM1_VS_ClockSourceINT.Mode=Internal | VP_TIM1_VS_ClockSourceINT.Mode=Internal | ||||||
| VP_TIM1_VS_ClockSourceINT.Signal=TIM1_VS_ClockSourceINT | VP_TIM1_VS_ClockSourceINT.Signal=TIM1_VS_ClockSourceINT | ||||||
|  | VP_TIM1_VS_no_output1.Mode=Output Compare1 No Output | ||||||
|  | VP_TIM1_VS_no_output1.Signal=TIM1_VS_no_output1 | ||||||
| VP_TIM2_VS_ClockSourceINT.Mode=Internal | VP_TIM2_VS_ClockSourceINT.Mode=Internal | ||||||
| VP_TIM2_VS_ClockSourceINT.Signal=TIM2_VS_ClockSourceINT | VP_TIM2_VS_ClockSourceINT.Signal=TIM2_VS_ClockSourceINT | ||||||
| VP_TIM3_VS_ClockSourceINT.Mode=Internal | VP_TIM3_VS_ClockSourceINT.Mode=Internal | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user