#include "stm32f10x.h"  // 包含STM32F103ZET6的标准库
#include "uart_log.h"
#include "distance_switch.h"

void Distance_Switch_Interruption(void) {
	Serial_Printf("Hello, Distance_Switch_Interruption!\n");
    // 检查是否是PG15触发的中断
    if (EXTI->PR & EXTI_PR_PR15) {
        if (GPIOG->IDR & (1 << 15)) {  // 检测PG15的上升沿
            Serial_Print("PG15: 接近 (NPN传感器 - 高电平)\n");
        } else {  // 检测PG15的下降沿
            Serial_Print("PG15: 远离 (NPN传感器 - 低电平)\n");
        }
        // 清除中断标志位
        //EXTI->PR = EXTI_PR_PR15;
    }

    // 检查是否是PD6触发的中断
    if (EXTI->PR & EXTI_PR_PR6) {
        if (GPIOD->IDR & (1 << 6)) {  // 检测PD14的上升沿
            Serial_Print("PD6: 接近 (PNP传感器 - 高电平)\n");
        } else {  // 检测PD14的下降沿
            Serial_Print("PD6: 远离 (PNP传感器 - 低电平)\n");
        }
        // 清除中断标志位
        //EXTI->PR = EXTI_PR_PR6;
    }
}
