text: /**
   * Native Board board implementation
   *
   * Copyright (C) 2018 Gilles DOFFE <g.doffe@gmail.com>
   *
   * This file is subject to the terms and conditions of the GNU Lesser
   * General Public License v2.1. See the file LICENSE in the top level
   * directory for more details.
   *
   * @ingroup boards_native
   * @{
   * @file
   * @author  Gilles DOFFE <g.doffe@gmail.com>
   * @}
   */
  #include <inttypes.h>
  #include <stdio.h>
  
  /* RIOT includes */
  #include <board.h>
  #include <log.h>
  
  #ifdef MODULE_PERIPH_QDEC
  
  extern int32_t qdecs_value[QDEC_NUMOF];
  
  void native_motor_driver_qdec_simulation(
      const motor_driver_t motor_driver, uint8_t motor_id,
      int32_t pwm_duty_cycle)
  {
      uint32_t id = 0;
  
      for (uint32_t i = 0; i < motor_driver; i++) {
          const motor_driver_config_t motor_driver_conf =
              motor_driver_config[motor_driver];
          id += motor_driver_conf.nb_motors;
      }
      id += motor_id;
  
      if (id < QDEC_NUMOF) {
          qdecs_value[id] = pwm_duty_cycle;
  
          LOG_DEBUG("MOTOR-DRIVER=%u"             \
              "    MOTOR_ID = %u"                 \
              "    PWM_VALUE = %d"                \
              "    QDEC_ID = %"PRIu32""           \
              "    QDEC_VALUE = %d\n",            \
              motor_driver, motor_id, pwm_duty_cycle, id, pwm_duty_cycle);
      }
      else {
          LOG_ERROR("MOTOR-DRIVER=%u"             \
              "    MOTOR_ID = %u"                 \
              "    no QDEC device associated\n",  \
              motor_driver, motor_id);
      }
  }
  
  #endif /* MODULE_PERIPH_QDEC */
  