git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@6651 35acf78f-673a-0410-8e92-d51de3d6d3f4
This commit is contained in:
gdisirio 2014-01-28 15:48:05 +00:00
parent e4828a13e5
commit 3a41c23cf7
4 changed files with 9 additions and 2 deletions

View File

@ -54,6 +54,7 @@
ready -> waiting [label="\nicuEnable()"];
waiting -> active [label="\nStart Front"];
waiting -> ready [label="\nicuDisable()"];
waiting -> waiting [label="\nStop Front"];
active -> idle [label="\nStop Front\n>width_cb<"];
active -> ready [label="\nicuDisable()\nicuDisableI()"];
idle -> active [label="\nStart Front\n>period_cb<"];
@ -83,6 +84,7 @@
ready -> waiting [label="\nicuEnable()"];
waiting -> active [label="\nStart Front"];
waiting -> ready [label="\nicuDisable()"];
waiting -> waiting [label="\nStop Front"];
active -> idle [label="\nStop Front\n>width_cb<"];
active -> ready [label="\nicuDisable()\nicuDisableI()"];
idle -> active [label="\nStart Front\n>period_cb<"];

View File

@ -140,8 +140,10 @@ typedef void (*icucallback_t)(ICUDriver *icup);
* @notapi
*/
#define _icu_isr_invoke_width_cb(icup) { \
(icup)->state = ICU_IDLE; \
(icup)->config->width_cb(icup); \
if ((icup)->state != ICU_WAITING) { \
(icup)->state = ICU_IDLE; \
(icup)->config->width_cb(icup); \
} \
}
/**

View File

@ -614,6 +614,7 @@ void icu_lld_stop(ICUDriver *icup) {
*/
void icu_lld_enable(ICUDriver *icup) {
icup->tim->EGR |= STM32_TIM_EGR_UG;
icup->tim->SR = 0; /* Clear pending IRQs (if any). */
if (icup->config->channel == ICU_CHANNEL_1) {
if (icup->config->period_cb != NULL)

View File

@ -89,6 +89,8 @@
*****************************************************************************
*** 2.7.0 ***
- FIX: Fixed spurious callback in ICU driver (bug #461)(backported to 2.6.3
and 2.4.6).
- FIX: Fixed compile error in STM32F0xx ADC driver when STM32F0XX_LD devices
are selected (bug #460)(backported to 2.6.3).
- FIX: Fixed race condition in STM32 SDC driver (bug #458)(backported