This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TM4C123GH6PM: Doubt regarding RPM calculation using Quadrature Encoder Interface (QEI)

Part Number: TM4C123GH6PM

Can someone explain the API available in tivaware/driverlib/qei.h :

extern void QEIVelocityConfigure(uint32_t ui32Base, uint32_t ui32PreDiv,
                                 uint32_t ui32Period);

what is the ui32Period here?

I wrote a simple program to calculate the position, direction of motion and velocity of a motor:

/*!
 * @author      Yash Bansod
 * @date        26th September 2017
 *
 * @brief       Quadrature Encoder
 * @details     The program interfaces the quadrature encoder peripheral to get the position
 *              and velocity information of a encoded DC motor.
 * @note        The tm4c123ghpm_startup_ccs.c contains the vector table for the
 *              microcontroller. It was modified to execute the specified ISR on
 *              PortF Interrupts.
 */
/* -----------------------          Include Files       --------------------- */
#include <stdint.h>                         // Library of Standard Integer Types
#include <stdbool.h>                        // Library of Standard Boolean Types
#include "inc/tm4c123gh6pm.h"               // Definitions for interrupt and register assignments on Tiva C
#include "inc/hw_memmap.h"                  // Macros defining the memory map of the Tiva C Series device
#include "inc/hw_types.h"                   // Defines common types and macros
#include "inc/hw_gpio.h"                    // Defines Macros for GPIO hardware
#include "inc/hw_qei.h"                     // Macros used when accessing the QEI hardware
#include "driverlib/debug.h"                // Macros for assisting debug of the driver library
#include "driverlib/sysctl.h"               // Defines and macros for System Control API of DriverLib
#include "driverlib/interrupt.h"            // Defines and macros for NVIC Controller API of DriverLib
#include "driverlib/gpio.h"                 // Defines and macros for GPIO API of DriverLib
#include "driverlib/pin_map.h"              // Mapping of peripherals to pins for all parts
#include "driverlib/rom.h"                  // Defines and macros for ROM API of driverLib
#include "driverlib/qei.h"                  // Prototypes for the Quadrature Encoder Driver

/* -----------------------      Global Variables        --------------------- */
volatile uint32_t ui32Qei1Pos;              // Variable to store the position of QEI1
volatile int32_t i32Qei1Dir;              // Variable to store the direction of QEI1
volatile uint32_t ui32Qei1Vel;              // Variable to store the velocity of QEI1

/* -----------------------      Function Prototypes     --------------------- */

/* -----------------------          Main Program        --------------------- */
int main(void){
    // Set the System clock to 80MHz and the PWM Module clock to 1.25 MHz
    ROM_SysCtlClockSet(SYSCTL_SYSDIV_2_5 |SYSCTL_USE_PLL |SYSCTL_OSC_MAIN |SYSCTL_XTAL_16MHZ);

    // Enable the clock for peripherals PortD and QEI1
    ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_QEI1);
    ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOC);

    // Configure the PC4, PC5, PC6 for QEI signals
    ROM_GPIOPinTypeQEI(GPIO_PORTC_BASE, GPIO_PIN_5 | GPIO_PIN_6);
    ROM_GPIOPinConfigure(GPIO_PC5_PHA1);
    ROM_GPIOPinConfigure(GPIO_PC6_PHB1);

    // Configure the QEI1 to increment for both PhA and PhB for quadrature input with 2400 PPR
    ROM_QEIConfigure(QEI1_BASE, QEI_CONFIG_CAPTURE_A_B | QEI_CONFIG_QUADRATURE, 2400);

    ROM_QEIVelocityConfigure(QEI1_BASE, QEI_VELDIV_1, 10000);
    ROM_QEIVelocityEnable(QEI1_BASE);

    // Enable the QEI1
    ROM_QEIEnable(QEI1_BASE);

    while (1){
        ui32Qei1Pos = ROM_QEIPositionGet(QEI1_BASE);
        i32Qei1Dir = ROM_QEIDirectionGet(QEI1_BASE);
        ui32Qei1Vel = ROM_QEIVelocityGet(QEI1_BASE);
    }
}

/* -----------------------      Function Definition     --------------------- */

In what terms am I getting the Velocity here? Is it directly converted to RPM or is it in form of ticks?