Edge trigger works
This commit is contained in:
parent
2511ea07ba
commit
e96cff0d10
@ -1,2 +1,2 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<module classpath="CIDR" type="CPP_MODULE" version="4" />
|
<module classpath="CMake" type="CPP_MODULE" version="4" />
|
||||||
@ -57,6 +57,9 @@ void Error_Handler(void);
|
|||||||
/* USER CODE END EFP */
|
/* USER CODE END EFP */
|
||||||
|
|
||||||
/* Private defines -----------------------------------------------------------*/
|
/* Private defines -----------------------------------------------------------*/
|
||||||
|
#define PIN_Pin GPIO_PIN_1
|
||||||
|
#define PIN_GPIO_Port GPIOA
|
||||||
|
#define PIN_EXTI_IRQn EXTI1_IRQn
|
||||||
|
|
||||||
/* USER CODE BEGIN Private defines */
|
/* USER CODE BEGIN Private defines */
|
||||||
|
|
||||||
|
|||||||
@ -55,6 +55,7 @@ void SVC_Handler(void);
|
|||||||
void DebugMon_Handler(void);
|
void DebugMon_Handler(void);
|
||||||
void PendSV_Handler(void);
|
void PendSV_Handler(void);
|
||||||
void SysTick_Handler(void);
|
void SysTick_Handler(void);
|
||||||
|
void EXTI1_IRQHandler(void);
|
||||||
void USB_LP_IRQHandler(void);
|
void USB_LP_IRQHandler(void);
|
||||||
void TIM1_UP_TIM16_IRQHandler(void);
|
void TIM1_UP_TIM16_IRQHandler(void);
|
||||||
/* USER CODE BEGIN EFP */
|
/* USER CODE BEGIN EFP */
|
||||||
|
|||||||
@ -66,11 +66,7 @@ int _write(int file, char *ptr, int len) {
|
|||||||
|
|
||||||
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
|
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
|
||||||
{
|
{
|
||||||
uint32_t current_count = EXT_TIMER.Instance->CNT;
|
|
||||||
uint32_t difference = current_count-last_count;
|
|
||||||
|
|
||||||
last_count = current_count;
|
|
||||||
printf("%d\n", difference);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void USB_CDC_RxHandler(uint8_t* Buf, uint32_t Len)
|
void USB_CDC_RxHandler(uint8_t* Buf, uint32_t Len)
|
||||||
@ -85,6 +81,34 @@ void USB_CDC_RxHandler(uint8_t* Buf, uint32_t Len)
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint32_t check_pin_state()
|
||||||
|
{
|
||||||
|
return HAL_GPIO_ReadPin(PIN_GPIO_Port, PIN_Pin);
|
||||||
|
}
|
||||||
|
|
||||||
|
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
|
||||||
|
{
|
||||||
|
uint32_t current_count = EXT_TIMER.Instance->CNT;
|
||||||
|
|
||||||
|
if (check_pin_state() )
|
||||||
|
{
|
||||||
|
// printf("RISING\n");
|
||||||
|
//Reset
|
||||||
|
last_count = current_count;
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// printf("FALLING\n");
|
||||||
|
//Send
|
||||||
|
uint32_t difference = current_count-last_count;
|
||||||
|
|
||||||
|
|
||||||
|
printf("%d\n", difference);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
void receive_handler();
|
void receive_handler();
|
||||||
/* USER CODE END PFP */
|
/* USER CODE END PFP */
|
||||||
|
|
||||||
@ -295,6 +319,7 @@ static void MX_TIM2_Init(void)
|
|||||||
*/
|
*/
|
||||||
static void MX_GPIO_Init(void)
|
static void MX_GPIO_Init(void)
|
||||||
{
|
{
|
||||||
|
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
||||||
/* USER CODE BEGIN MX_GPIO_Init_1 */
|
/* USER CODE BEGIN MX_GPIO_Init_1 */
|
||||||
/* USER CODE END MX_GPIO_Init_1 */
|
/* USER CODE END MX_GPIO_Init_1 */
|
||||||
|
|
||||||
@ -302,6 +327,16 @@ static void MX_GPIO_Init(void)
|
|||||||
__HAL_RCC_GPIOF_CLK_ENABLE();
|
__HAL_RCC_GPIOF_CLK_ENABLE();
|
||||||
__HAL_RCC_GPIOA_CLK_ENABLE();
|
__HAL_RCC_GPIOA_CLK_ENABLE();
|
||||||
|
|
||||||
|
/*Configure GPIO pin : PIN_Pin */
|
||||||
|
GPIO_InitStruct.Pin = PIN_Pin;
|
||||||
|
GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING_FALLING;
|
||||||
|
GPIO_InitStruct.Pull = GPIO_PULLUP;
|
||||||
|
HAL_GPIO_Init(PIN_GPIO_Port, &GPIO_InitStruct);
|
||||||
|
|
||||||
|
/* EXTI interrupt init*/
|
||||||
|
HAL_NVIC_SetPriority(EXTI1_IRQn, 0, 0);
|
||||||
|
HAL_NVIC_EnableIRQ(EXTI1_IRQn);
|
||||||
|
|
||||||
/* USER CODE BEGIN MX_GPIO_Init_2 */
|
/* USER CODE BEGIN MX_GPIO_Init_2 */
|
||||||
/* USER CODE END MX_GPIO_Init_2 */
|
/* USER CODE END MX_GPIO_Init_2 */
|
||||||
}
|
}
|
||||||
|
|||||||
@ -199,6 +199,20 @@ void SysTick_Handler(void)
|
|||||||
/* please refer to the startup file (startup_stm32g4xx.s). */
|
/* please refer to the startup file (startup_stm32g4xx.s). */
|
||||||
/******************************************************************************/
|
/******************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief This function handles EXTI line1 interrupt.
|
||||||
|
*/
|
||||||
|
void EXTI1_IRQHandler(void)
|
||||||
|
{
|
||||||
|
/* USER CODE BEGIN EXTI1_IRQn 0 */
|
||||||
|
|
||||||
|
/* USER CODE END EXTI1_IRQn 0 */
|
||||||
|
HAL_GPIO_EXTI_IRQHandler(PIN_Pin);
|
||||||
|
/* USER CODE BEGIN EXTI1_IRQn 1 */
|
||||||
|
|
||||||
|
/* USER CODE END EXTI1_IRQn 1 */
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief This function handles USB low priority interrupt remap.
|
* @brief This function handles USB low priority interrupt remap.
|
||||||
*/
|
*/
|
||||||
|
|||||||
24
jakub.ioc
24
jakub.ioc
@ -20,13 +20,14 @@ Mcu.Package=LQFP64
|
|||||||
Mcu.Pin0=PF0-OSC_IN
|
Mcu.Pin0=PF0-OSC_IN
|
||||||
Mcu.Pin1=PF1-OSC_OUT
|
Mcu.Pin1=PF1-OSC_OUT
|
||||||
Mcu.Pin2=PA0
|
Mcu.Pin2=PA0
|
||||||
Mcu.Pin3=PA11
|
Mcu.Pin3=PA1
|
||||||
Mcu.Pin4=PA12
|
Mcu.Pin4=PA11
|
||||||
Mcu.Pin5=VP_SYS_VS_Systick
|
Mcu.Pin5=PA12
|
||||||
Mcu.Pin6=VP_SYS_VS_DBSignals
|
Mcu.Pin6=VP_SYS_VS_Systick
|
||||||
Mcu.Pin7=VP_TIM1_VS_ClockSourceINT
|
Mcu.Pin7=VP_SYS_VS_DBSignals
|
||||||
Mcu.Pin8=VP_USB_DEVICE_VS_USB_DEVICE_CDC_FS
|
Mcu.Pin8=VP_TIM1_VS_ClockSourceINT
|
||||||
Mcu.PinsNb=9
|
Mcu.Pin9=VP_USB_DEVICE_VS_USB_DEVICE_CDC_FS
|
||||||
|
Mcu.PinsNb=10
|
||||||
Mcu.ThirdPartyNb=0
|
Mcu.ThirdPartyNb=0
|
||||||
Mcu.UserConstants=
|
Mcu.UserConstants=
|
||||||
Mcu.UserName=STM32G474RETx
|
Mcu.UserName=STM32G474RETx
|
||||||
@ -34,6 +35,7 @@ MxCube.Version=6.9.1
|
|||||||
MxDb.Version=DB.6.0.91
|
MxDb.Version=DB.6.0.91
|
||||||
NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
|
NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
|
||||||
NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
|
NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
|
||||||
|
NVIC.EXTI1_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
|
||||||
NVIC.ForceEnableDMAVector=true
|
NVIC.ForceEnableDMAVector=true
|
||||||
NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
|
NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
|
||||||
NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
|
NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
|
||||||
@ -47,6 +49,12 @@ NVIC.USB_LP_IRQn=true\:2\:0\:true\:false\:true\:false\:true\:true
|
|||||||
NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
|
NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
|
||||||
PA0.Locked=true
|
PA0.Locked=true
|
||||||
PA0.Signal=S_TIM2_ETR
|
PA0.Signal=S_TIM2_ETR
|
||||||
|
PA1.GPIOParameters=GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultEXTI
|
||||||
|
PA1.GPIO_Label=PIN
|
||||||
|
PA1.GPIO_ModeDefaultEXTI=GPIO_MODE_IT_RISING_FALLING
|
||||||
|
PA1.GPIO_PuPd=GPIO_PULLUP
|
||||||
|
PA1.Locked=true
|
||||||
|
PA1.Signal=GPXTI1
|
||||||
PA11.Mode=Device
|
PA11.Mode=Device
|
||||||
PA11.Signal=USB_DM
|
PA11.Signal=USB_DM
|
||||||
PA12.Mode=Device
|
PA12.Mode=Device
|
||||||
@ -139,6 +147,8 @@ RCC.USART3Freq_Value=150000000
|
|||||||
RCC.USBFreq_Value=48000000
|
RCC.USBFreq_Value=48000000
|
||||||
RCC.VCOInputFreq_Value=12500000
|
RCC.VCOInputFreq_Value=12500000
|
||||||
RCC.VCOOutputFreq_Value=300000000
|
RCC.VCOOutputFreq_Value=300000000
|
||||||
|
SH.GPXTI1.0=GPIO_EXTI1
|
||||||
|
SH.GPXTI1.ConfNb=1
|
||||||
SH.S_TIM2_ETR.0=TIM2_ETR,ClockSourceETR_Mode2
|
SH.S_TIM2_ETR.0=TIM2_ETR,ClockSourceETR_Mode2
|
||||||
SH.S_TIM2_ETR.ConfNb=1
|
SH.S_TIM2_ETR.ConfNb=1
|
||||||
TIM1.ClockDivision=TIM_CLOCKDIVISION_DIV1
|
TIM1.ClockDivision=TIM_CLOCKDIVISION_DIV1
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user