zhyinch
2019-06-08 e5f73b1e954eb54e0af326b3a5aee5fab719f0ce
Ô´Âë/ºËÐİå/Src/ExternalDevices/dw_driver.c
@@ -1,4 +1,5 @@
#include "dw_driver.h"
#include "deca_device_api.h"
void Reset_DW1000(void)
{
@@ -49,12 +50,16 @@
    EXTI_InitStructure.EXTI_Line = DECAIRQ_EXTI;
    EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
    EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;   //MPW3 IRQ polarity is high by default
    EXTI_InitStructure.EXTI_LineCmd = DISABLE;
    EXTI_InitStructure.EXTI_LineCmd = ENABLE;
    EXTI_Init(&EXTI_InitStructure);
}
//读取外部中断状态
ITStatus Get_Ext_IRQ_Statues(void)
{
   return EXTI_GetITStatus(DECAIRQ_EXTI);
}
//使能外部中断
@@ -66,7 +71,7 @@
//禁止外部中断
void Disable_Ext_IRQ(void)
{
   NVIC_DisnableIRQ(DECAIRQ_EXTI_IRQn);
   NVIC_DisableIRQ(DECAIRQ_EXTI_IRQn);
}
/*! ------------------------------------------------------------------------------------------------------------------
@@ -85,11 +90,11 @@
 */
decaIrqStatus_t decamutexon(void)
{
    decaIrqStatus_t s = port_GetEXT_IRQStatus();
    decaIrqStatus_t s = Get_Ext_IRQ_Statues();
    if(s)
    {
        port_DisableEXT_IRQ(); //disable the external interrupt line
        Disable_Ext_IRQ(); //disable the external interrupt line
    }
    return s ;   // return state before disable, value is used to re-enable in decamutexoff call
}
@@ -113,6 +118,7 @@
{
    if(s)   //need to check the port state as we can't use level sensitive interrupt on the STM ARM
    {
        port_EnableEXT_IRQ();
        Enable_Ext_IRQ();
    }
}
}