Revert nvic_set_priority to original form. Minor doxygen markup changes.

This commit is contained in:
Ken Sarkies 2012-08-14 18:25:19 +09:30
parent cb07ab7c6e
commit 0e5e451e22
2 changed files with 25 additions and 18 deletions

View File

@ -27,7 +27,7 @@
*/ */
/* User Interrupts */ /* User Interrupts */
/** @defgroup nvic_stn32f1_userint STM32F1xx User Interrupts /** @defgroup nvic_stm32f1_userint STM32F1xx User Interrupts
@ingroup STM32F_nvic_defines @ingroup STM32F_nvic_defines
@{*/ @{*/

View File

@ -9,13 +9,15 @@
@author @htmlonly &copy; @endhtmlonly 2010 Thomas Otto <tommi@viadmin.org> @author @htmlonly &copy; @endhtmlonly 2010 Thomas Otto <tommi@viadmin.org>
@author @htmlonly &copy; @endhtmlonly 2012 Fergus Noble <fergusnoble@gmail.com> @author @htmlonly &copy; @endhtmlonly 2012 Fergus Noble <fergusnoble@gmail.com>
@date 7 July 2012 @date 14 August 2012
The STM32F series provides up to 68 maskable user interrupts for the STM32F10x The STM32F series provides up to 68 maskable user interrupts for the STM32F10x
series, and 87 for the STM32F2xx and STM32F4xx series. series, and 87 for the STM32F2xx and STM32F4xx series.
The NVIC registers are defined by the ARM standards The NVIC registers are defined by the ARM standards but the STM32F series have some
additional limitations
@see Cortex-M3 Devices Generic User Guide @see Cortex-M3 Devices Generic User Guide
@see STM32F10xxx Cortex-M3 programming manual
LGPL License Terms @ref lgpl_license LGPL License Terms @ref lgpl_license
@ -47,7 +49,7 @@ LGPL License Terms @ref lgpl_license
Enables a user interrupt. Enables a user interrupt.
@param[in] irqn Unsigned int8. Interrupt number @ref nvic_stn32f1_userint @param[in] irqn Unsigned int8. Interrupt number @ref nvic_stm32f1_userint
*/ */
void nvic_enable_irq(u8 irqn) void nvic_enable_irq(u8 irqn)
@ -60,7 +62,7 @@ void nvic_enable_irq(u8 irqn)
Disables a user interrupt. Disables a user interrupt.
@param[in] irqn Unsigned int8. Interrupt number @ref nvic_stn32f1_userint @param[in] irqn Unsigned int8. Interrupt number @ref nvic_stm32f1_userint
*/ */
void nvic_disable_irq(u8 irqn) void nvic_disable_irq(u8 irqn)
@ -73,7 +75,7 @@ void nvic_disable_irq(u8 irqn)
True if the interrupt has occurred and is waiting for service. True if the interrupt has occurred and is waiting for service.
@param[in] irqn Unsigned int8. Interrupt number @ref nvic_stn32f1_userint @param[in] irqn Unsigned int8. Interrupt number @ref nvic_stm32f1_userint
@return Boolean. Interrupt pending. @return Boolean. Interrupt pending.
*/ */
@ -85,10 +87,10 @@ u8 nvic_get_pending_irq(u8 irqn)
/*-----------------------------------------------------------------------------*/ /*-----------------------------------------------------------------------------*/
/** @brief NVIC Set Pending Interrupt /** @brief NVIC Set Pending Interrupt
Force a user interrupt to a pending state. No effect if the interrupt is already Force a user interrupt to a pending state. This has no effect if the interrupt
pending. is already pending.
@param[in] irqn Unsigned int8. Interrupt number @ref nvic_stn32f1_userint @param[in] irqn Unsigned int8. Interrupt number @ref nvic_stm32f1_userint
*/ */
void nvic_set_pending_irq(u8 irqn) void nvic_set_pending_irq(u8 irqn)
@ -99,10 +101,10 @@ void nvic_set_pending_irq(u8 irqn)
/*-----------------------------------------------------------------------------*/ /*-----------------------------------------------------------------------------*/
/** @brief NVIC Clear Pending Interrupt /** @brief NVIC Clear Pending Interrupt
Force remove a user interrupt from a pending state. No effect if the interrupt is Force remove a user interrupt from a pending state. This has no effect if the
actively being serviced. interrupt is actively being serviced.
@param[in] irqn Unsigned int8. Interrupt number @ref nvic_stn32f1_userint @param[in] irqn Unsigned int8. Interrupt number @ref nvic_stm32f1_userint
*/ */
void nvic_clear_pending_irq(u8 irqn) void nvic_clear_pending_irq(u8 irqn)
@ -115,7 +117,7 @@ void nvic_clear_pending_irq(u8 irqn)
Interrupt has occurred and is currently being serviced. Interrupt has occurred and is currently being serviced.
@param[in] irqn Unsigned int8. Interrupt number @ref nvic_stn32f1_userint @param[in] irqn Unsigned int8. Interrupt number @ref nvic_stm32f1_userint
@return Boolean. Interrupt active. @return Boolean. Interrupt active.
*/ */
@ -127,7 +129,7 @@ u8 nvic_get_active_irq(u8 irqn)
/*-----------------------------------------------------------------------------*/ /*-----------------------------------------------------------------------------*/
/** @brief NVIC Return Enabled Interrupt /** @brief NVIC Return Enabled Interrupt
@param[in] irqn Unsigned int8. Interrupt number @ref nvic_stn32f1_userint @param[in] irqn Unsigned int8. Interrupt number @ref nvic_stm32f1_userint
@return Boolean. Interrupt enabled. @return Boolean. Interrupt enabled.
*/ */
@ -139,13 +141,18 @@ u8 nvic_get_irq_enabled(u8 irqn)
/*-----------------------------------------------------------------------------*/ /*-----------------------------------------------------------------------------*/
/** @brief NVIC Set Interrupt Priority /** @brief NVIC Set Interrupt Priority
@param[in] irqn Unsigned int8. Interrupt number @ref nvic_stn32f1_userint There are 16 priority levels only, given by the upper four bits of the priority
@param[in] priority Unsigned int8. Interrupt priority (0 ... 255) byte, as required by ARM standards. The priority levels are interpreted according
to the pre-emptive priority grouping set in the SCB Application Interrupt and Reset
Control Register (SCB_AIRCR), as done in @ref scb_set_priority_grouping.
@param[in] irqn Unsigned int8. Interrupt number @ref nvic_stm32f1_userint
@param[in] priority Unsigned int8. Interrupt priority (0 ... 255 in steps of 16)
*/ */
void nvic_set_priority(u8 irqn, u8 priority) void nvic_set_priority(u8 irqn, u8 priority)
{ {
NVIC_IPR(irqn / 4) = (priority << ((irqn % 4) * 8)); NVIC_IPR(irqn) = priority;
} }
/*-----------------------------------------------------------------------------*/ /*-----------------------------------------------------------------------------*/
@ -154,7 +161,7 @@ void nvic_set_priority(u8 irqn, u8 priority)
Generate an interrupt from software. This has no effect for unprivileged access Generate an interrupt from software. This has no effect for unprivileged access
unless the privilege level has been elevated through the System Control Registers. unless the privilege level has been elevated through the System Control Registers.
@param[in] sgin Unsigned int16. Interrupt number (0 ... 239) @param[in] irqn Unsigned int16. Interrupt number (0 ... 239)
*/ */
void nvic_generate_software_interrupt(u16 irqn) void nvic_generate_software_interrupt(u16 irqn)