diff options
| author | gdisirio <gdisirio@110e8d01-0319-4d1e-a829-52ad28d1bb01> | 2018-07-07 09:50:34 +0000 | 
|---|---|---|
| committer | gdisirio <gdisirio@110e8d01-0319-4d1e-a829-52ad28d1bb01> | 2018-07-07 09:50:34 +0000 | 
| commit | 3d7b366fd0fa5cb43743b58661c1027cd2623350 (patch) | |
| tree | a10c5fc6208d0c2306597039e45906f4b2c06791 /os | |
| parent | d8c1554717a8162fe2741533a50631f7ae99d067 (diff) | |
| download | ChibiOS-3d7b366fd0fa5cb43743b58661c1027cd2623350.tar.gz ChibiOS-3d7b366fd0fa5cb43743b58661c1027cd2623350.tar.bz2 ChibiOS-3d7b366fd0fa5cb43743b58661c1027cd2623350.zip | |
Fixed bug #957.
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@12138 110e8d01-0319-4d1e-a829-52ad28d1bb01
Diffstat (limited to 'os')
| -rw-r--r-- | os/hal/ports/STM32/LLD/TIMv1/hal_gpt_lld.c | 6 | ||||
| -rw-r--r-- | os/hal/ports/STM32/LLD/TIMv1/hal_gpt_lld.h | 4 | 
2 files changed, 5 insertions, 5 deletions
| diff --git a/os/hal/ports/STM32/LLD/TIMv1/hal_gpt_lld.c b/os/hal/ports/STM32/LLD/TIMv1/hal_gpt_lld.c index 3dda5fbea..0de6ac49d 100644 --- a/os/hal/ports/STM32/LLD/TIMv1/hal_gpt_lld.c +++ b/os/hal/ports/STM32/LLD/TIMv1/hal_gpt_lld.c @@ -819,7 +819,7 @@ void gpt_lld_stop(GPTDriver *gptp) {   */
  void gpt_lld_start_timer(GPTDriver *gptp, gptcnt_t interval) {
 -  gptp->tim->ARR = (uint32_t)interval;          /* Time constant.           */
 +  gptp->tim->ARR = (uint32_t)(interval - 1U);   /* Time constant.           */
    gptp->tim->EGR = STM32_TIM_EGR_UG;            /* Update event.            */
    gptp->tim->CNT = 0;                           /* Reset counter.           */
 @@ -861,9 +861,9 @@ void gpt_lld_stop_timer(GPTDriver *gptp) {   */
  void gpt_lld_polled_delay(GPTDriver *gptp, gptcnt_t interval) {
 -  gptp->tim->ARR = (uint32_t)interval;          /* Time constant.           */
 +  gptp->tim->ARR = (uint32_t)(interval - 1U);   /* Time constant.           */
    gptp->tim->EGR = STM32_TIM_EGR_UG;            /* Update event.            */
 -  gptp->tim->SR = 0;                            /* Clear pending IRQs.      */
 +  gptp->tim->SR  = 0;                           /* Clear pending IRQs.      */
    gptp->tim->CR1 = STM32_TIM_CR1_OPM | STM32_TIM_CR1_URS | STM32_TIM_CR1_CEN;
    while (!(gptp->tim->SR & STM32_TIM_SR_UIF))
      ;
 diff --git a/os/hal/ports/STM32/LLD/TIMv1/hal_gpt_lld.h b/os/hal/ports/STM32/LLD/TIMv1/hal_gpt_lld.h index f453243cb..df6645c12 100644 --- a/os/hal/ports/STM32/LLD/TIMv1/hal_gpt_lld.h +++ b/os/hal/ports/STM32/LLD/TIMv1/hal_gpt_lld.h @@ -542,7 +542,7 @@ struct GPTDriver {   * @notapi
   */
  #define gpt_lld_change_interval(gptp, interval)                             \
 -  ((gptp)->tim->ARR = (uint32_t)(interval))
 +  ((gptp)->tim->ARR = (uint32_t)((interval) - 1U))
  /**
   * @brief   Returns the interval of GPT peripheral.
 @@ -553,7 +553,7 @@ struct GPTDriver {   *
   * @notapi
   */
 -#define gpt_lld_get_interval(gptp) ((gptcnt_t)(gptp)->tim->ARR)
 +#define gpt_lld_get_interval(gptp) ((gptcnt_t)((gptp)->tim->ARR + 1U))
  /**
   * @brief   Returns the counter value of GPT peripheral.
 | 
