Mouse code for the MacroRat

Dependencies:   ITG3200 QEI

Committer:
sahilmgandhi
Date:
Sun May 14 23:18:57 2017 +0000
Revision:
18:6a4db94011d3
Publishing again

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sahilmgandhi 18:6a4db94011d3 1 #ifndef UTILS_INTERRUPT_H
sahilmgandhi 18:6a4db94011d3 2 #define UTILS_INTERRUPT_H
sahilmgandhi 18:6a4db94011d3 3
sahilmgandhi 18:6a4db94011d3 4 #include <parts.h>
sahilmgandhi 18:6a4db94011d3 5
sahilmgandhi 18:6a4db94011d3 6 #if XMEGA || MEGA || TINY
sahilmgandhi 18:6a4db94011d3 7 # include "interrupt/interrupt_avr8.h"
sahilmgandhi 18:6a4db94011d3 8 #elif UC3
sahilmgandhi 18:6a4db94011d3 9 # include "interrupt/interrupt_avr32.h"
sahilmgandhi 18:6a4db94011d3 10 #elif SAM
sahilmgandhi 18:6a4db94011d3 11 # include "interrupt/interrupt_sam_nvic.h"
sahilmgandhi 18:6a4db94011d3 12 #else
sahilmgandhi 18:6a4db94011d3 13 # error Unsupported device.
sahilmgandhi 18:6a4db94011d3 14 #endif
sahilmgandhi 18:6a4db94011d3 15
sahilmgandhi 18:6a4db94011d3 16 /**
sahilmgandhi 18:6a4db94011d3 17 * \defgroup interrupt_group Global interrupt management
sahilmgandhi 18:6a4db94011d3 18 *
sahilmgandhi 18:6a4db94011d3 19 * This is a driver for global enabling and disabling of interrupts.
sahilmgandhi 18:6a4db94011d3 20 *
sahilmgandhi 18:6a4db94011d3 21 * @{
sahilmgandhi 18:6a4db94011d3 22 */
sahilmgandhi 18:6a4db94011d3 23
sahilmgandhi 18:6a4db94011d3 24 #if defined(__DOXYGEN__)
sahilmgandhi 18:6a4db94011d3 25 /**
sahilmgandhi 18:6a4db94011d3 26 * \def CONFIG_INTERRUPT_FORCE_INTC
sahilmgandhi 18:6a4db94011d3 27 * \brief Force usage of the ASF INTC driver
sahilmgandhi 18:6a4db94011d3 28 *
sahilmgandhi 18:6a4db94011d3 29 * Predefine this symbol when preprocessing to force the use of the ASF INTC driver.
sahilmgandhi 18:6a4db94011d3 30 * This is useful to ensure compatibility across compilers and shall be used only when required
sahilmgandhi 18:6a4db94011d3 31 * by the application needs.
sahilmgandhi 18:6a4db94011d3 32 */
sahilmgandhi 18:6a4db94011d3 33 # define CONFIG_INTERRUPT_FORCE_INTC
sahilmgandhi 18:6a4db94011d3 34 #endif
sahilmgandhi 18:6a4db94011d3 35
sahilmgandhi 18:6a4db94011d3 36 //! \name Global interrupt flags
sahilmgandhi 18:6a4db94011d3 37 //@{
sahilmgandhi 18:6a4db94011d3 38 /**
sahilmgandhi 18:6a4db94011d3 39 * \typedef irqflags_t
sahilmgandhi 18:6a4db94011d3 40 * \brief Type used for holding state of interrupt flag
sahilmgandhi 18:6a4db94011d3 41 */
sahilmgandhi 18:6a4db94011d3 42
sahilmgandhi 18:6a4db94011d3 43 /**
sahilmgandhi 18:6a4db94011d3 44 * \def cpu_irq_enable
sahilmgandhi 18:6a4db94011d3 45 * \brief Enable interrupts globally
sahilmgandhi 18:6a4db94011d3 46 */
sahilmgandhi 18:6a4db94011d3 47
sahilmgandhi 18:6a4db94011d3 48 /**
sahilmgandhi 18:6a4db94011d3 49 * \def cpu_irq_disable
sahilmgandhi 18:6a4db94011d3 50 * \brief Disable interrupts globally
sahilmgandhi 18:6a4db94011d3 51 */
sahilmgandhi 18:6a4db94011d3 52
sahilmgandhi 18:6a4db94011d3 53 /**
sahilmgandhi 18:6a4db94011d3 54 * \fn irqflags_t cpu_irq_save(void)
sahilmgandhi 18:6a4db94011d3 55 * \brief Get and clear the global interrupt flags
sahilmgandhi 18:6a4db94011d3 56 *
sahilmgandhi 18:6a4db94011d3 57 * Use in conjunction with \ref cpu_irq_restore.
sahilmgandhi 18:6a4db94011d3 58 *
sahilmgandhi 18:6a4db94011d3 59 * \return Current state of interrupt flags.
sahilmgandhi 18:6a4db94011d3 60 *
sahilmgandhi 18:6a4db94011d3 61 * \note This function leaves interrupts disabled.
sahilmgandhi 18:6a4db94011d3 62 */
sahilmgandhi 18:6a4db94011d3 63
sahilmgandhi 18:6a4db94011d3 64 /**
sahilmgandhi 18:6a4db94011d3 65 * \fn void cpu_irq_restore(irqflags_t flags)
sahilmgandhi 18:6a4db94011d3 66 * \brief Restore global interrupt flags
sahilmgandhi 18:6a4db94011d3 67 *
sahilmgandhi 18:6a4db94011d3 68 * Use in conjunction with \ref cpu_irq_save.
sahilmgandhi 18:6a4db94011d3 69 *
sahilmgandhi 18:6a4db94011d3 70 * \param flags State to set interrupt flag to.
sahilmgandhi 18:6a4db94011d3 71 */
sahilmgandhi 18:6a4db94011d3 72
sahilmgandhi 18:6a4db94011d3 73 /**
sahilmgandhi 18:6a4db94011d3 74 * \fn bool cpu_irq_is_enabled_flags(irqflags_t flags)
sahilmgandhi 18:6a4db94011d3 75 * \brief Check if interrupts are globally enabled in supplied flags
sahilmgandhi 18:6a4db94011d3 76 *
sahilmgandhi 18:6a4db94011d3 77 * \param flags Currents state of interrupt flags.
sahilmgandhi 18:6a4db94011d3 78 *
sahilmgandhi 18:6a4db94011d3 79 * \return True if interrupts are enabled.
sahilmgandhi 18:6a4db94011d3 80 */
sahilmgandhi 18:6a4db94011d3 81
sahilmgandhi 18:6a4db94011d3 82 /**
sahilmgandhi 18:6a4db94011d3 83 * \def cpu_irq_is_enabled
sahilmgandhi 18:6a4db94011d3 84 * \brief Check if interrupts are globally enabled
sahilmgandhi 18:6a4db94011d3 85 *
sahilmgandhi 18:6a4db94011d3 86 * \return True if interrupts are enabled.
sahilmgandhi 18:6a4db94011d3 87 */
sahilmgandhi 18:6a4db94011d3 88 //@}
sahilmgandhi 18:6a4db94011d3 89
sahilmgandhi 18:6a4db94011d3 90 //! @}
sahilmgandhi 18:6a4db94011d3 91
sahilmgandhi 18:6a4db94011d3 92 /**
sahilmgandhi 18:6a4db94011d3 93 * \ingroup interrupt_group
sahilmgandhi 18:6a4db94011d3 94 * \defgroup interrupt_deprecated_group Deprecated interrupt definitions
sahilmgandhi 18:6a4db94011d3 95 */
sahilmgandhi 18:6a4db94011d3 96
sahilmgandhi 18:6a4db94011d3 97 #endif /* UTILS_INTERRUPT_H */