| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 |
- /*
- * AutoTest.c
- *
- * Created on: Jun 13, 2024
- * Author: Administrator
- */
- #include "TouchInclude.h"
- #if AUTO_TEST
- TEST_STATE TestState;
- /*********************************************************************
- * @fn EXTI0_INT_INIT
- *
- * @brief Initializes EXTI0 collection.
- *
- * @return none
- */
- void EXTI0_INT_INIT(void)
- {
- EXTI_InitTypeDef EXTI_InitStructure = {0};
- //NVIC_InitTypeDef NVIC_InitStructure = {0};
- GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource5);
- EXTI_InitStructure.EXTI_Line = EXTI_Line5;
- EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Event;//EXTI_Mode_Interrupt;
- EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;
- EXTI_InitStructure.EXTI_LineCmd = ENABLE;
- EXTI_Init(&EXTI_InitStructure);
- EXTI->INTENR |= EXTI_INTENR_MR5;
- // NVIC_InitStructure.NVIC_IRQChannel = EXTI7_0_IRQn;
- // NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
- // NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2;
- // NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
- // NVIC_Init(&NVIC_InitStructure);
- }
- AT(.com_text.gpio_isr)
- void gpio_isr_callback(void)
- {
- gpio_edge_pending_clear();
- printf(info);
- }
- void io_interrupt_init(void)
- {
- gpio_edge_cap_typedef config;
- config.edge = GPIO_EDGE_FALLING;
- config.gpiox = IOKEY_PORT;
- config.gpio_pin = IOKEY_PIN;
- gpio_edge_capture_config(&config);
- gpio_edge_pic_config(gpio_isr_callback, 0);
- }
- void AutoTestInit(void)
- {
- GPIO_InitTypeDef GPIO_InitStructure = {0};
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
- GPIO_InitStructure.GPIO_Pin = TEST_START_PIN;
- GPIO_Init(GPIOA, &GPIO_InitStructure);
- GPIO_SetBits(GPIOB, TEST_BUSY_PIN);
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
- GPIO_InitStructure.GPIO_Pin = TEST_BUSY_PIN;
- GPIO_Init(GPIOB, &GPIO_InitStructure);
- GPIO_SetBits(GPIOA, TEST_OK_PIN);
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
- GPIO_InitStructure.GPIO_Pin = TEST_OK_PIN;
- GPIO_Init(GPIOA, &GPIO_InitStructure);
- GPIO_SetBits(GPIOA, TEST_NG_PIN);
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
- GPIO_InitStructure.GPIO_Pin = TEST_NG_PIN;
- GPIO_Init(GPIOA, &GPIO_InitStructure);
- TestState = TEST_INIT;
- EXTI0_INT_INIT();
- }
- TEST_STATE GetTestState(void)
- {
- return TestState;
- }
- void ReturnTestResult(BOOL rst)
- {
- if(rst)//OK
- {
- GPIO_ResetBits(GPIOA, TEST_OK_PIN);
- GPIO_SetBits(GPIOA, TEST_NG_PIN);
- }
- else //NG
- {
- GPIO_SetBits(GPIOA, TEST_OK_PIN);
- GPIO_ResetBits(GPIOA, TEST_NG_PIN);
- }
- TestState = TEST_FINISH;
- GPIO_SetBits(GPIOB, TEST_BUSY_PIN);
- }
- void AutoTestHandle(void)
- {
- if(EXTI_GetITStatus(EXTI_Line5)!=RESET)
- {
- if(TestState==TEST_INIT || TestState==TEST_FINISH)
- {
- GPIO_ResetBits(GPIOB, TEST_BUSY_PIN);
- TestState = TEST_READY;
- }
- EXTI_ClearITPendingBit(EXTI_Line5); /* Clear Flag */
- }
- }
- //void EXTI7_0_IRQHandler(void) __attribute__((interrupt("WCH-Interrupt-fast")));
- //
- ///*********************************************************************
- // * @fn EXTI0_IRQHandler
- // *
- // * @brief This function handles EXTI0 Handler.
- // *
- // * @return none
- // */
- //void EXTI7_0_IRQHandler(void)
- //{
- // if(EXTI_GetITStatus(EXTI_Line5)!=RESET)
- // {
- // GPIO_ResetBits(GPIOB, TEST_BUSY_PIN);
- //
- // TestState = TEST_READY;
- // EXTI_ClearITPendingBit(EXTI_Line5); /* Clear Flag */
- // //GPIO_SetBits(GPIOB, TEST_BUSY_PIN);
- // }
- //}
- #endif
|