| | |
| | | #include "dw_driver.h" |
| | | #include "deca_sleep.h" |
| | | |
| | | void Reset_DW1000(void) |
| | | { |
| | |
| | | EXTI_Init(&EXTI_InitStructure); |
| | | |
| | | } |
| | | |
| | | //读åå¤é¨ä¸æç¶æ |
| | | |
| | | |
| | | //使è½å¤é¨ä¸æ |
| | | void Enable_Ext_IRQ(void) |
| | | { |
| | | NVIC_EnableIRQ(DECAIRQ_EXTI_IRQn); |
| | | } |
| | | |
| | | //ç¦æ¢å¤é¨ä¸æ |
| | | void Disable_Ext_IRQ(void) |
| | | { |
| | | NVIC_DisnableIRQ(DECAIRQ_EXTI_IRQn); |
| | | } |
| | | |
| | | /*! ------------------------------------------------------------------------------------------------------------------ |
| | | * Function: decamutexon() |
| | | * |
| | | * Description: This function should disable interrupts. This is called at the start of a critical section |
| | | * It returns the irq state before disable, this value is used to re-enable in decamutexoff call |
| | | * |
| | | * Note: The body of this function is defined in deca_mutex.c and is platform specific |
| | | * |
| | | * input parameters: |
| | | * |
| | | * output parameters |
| | | * |
| | | * returns the state of the DW1000 interrupt |
| | | */ |
| | | decaIrqStatus_t decamutexon(void) |
| | | { |
| | | decaIrqStatus_t s = port_GetEXT_IRQStatus(); |
| | | |
| | | if(s) |
| | | { |
| | | port_DisableEXT_IRQ(); //disable the external interrupt line |
| | | } |
| | | return s ; // return state before disable, value is used to re-enable in decamutexoff call |
| | | } |
| | | |
| | | /*! ------------------------------------------------------------------------------------------------------------------ |
| | | * Function: decamutexoff() |
| | | * |
| | | * Description: This function should re-enable interrupts, or at least restore their state as returned(&saved) by decamutexon |
| | | * This is called at the end of a critical section |
| | | * |
| | | * Note: The body of this function is defined in deca_mutex.c and is platform specific |
| | | * |
| | | * input parameters: |
| | | * @param s - the state of the DW1000 interrupt as returned by decamutexon |
| | | * |
| | | * output parameters |
| | | * |
| | | * returns the state of the DW1000 interrupt |
| | | */ |
| | | void decamutexoff(decaIrqStatus_t s) // put a function here that re-enables the interrupt at the end of the critical section |
| | | { |
| | | if(s) //need to check the port state as we can't use level sensitive interrupt on the STM ARM |
| | | { |
| | | port_EnableEXT_IRQ(); |
| | | } |
| | | } |