Jump to content
43oh

[Energia Library] TI Launchpad TM4C129 QEI (Quadrature Encoder Interface) Energia Code


Recommended Posts

#include <stdint.h>
#include "driverlib/sysctl.h"
#include "driverlib/qei.h"
 
int pos;
 
// On TM4C129, connect phase A to PL_1 and phase B to PL_2
 
void setup() {
  Serial.begin(9600);
 
  // Setup QEI Module
  SysCtlPeripheralEnable(SYSCTL_PERIPH_QEI0);
  GPIOPinConfigure(0x000A0406); //GPIO_PL1_PHA0
  GPIOPinConfigure(0x000A0806); //GPIO_PL2_PHB0
  GPIOPinTypeQEI(GPIO_PORTL_BASE, GPIO_PIN_1 |  GPIO_PIN_2);
 
  // Configure and Enable QEI
  QEIConfigure(QEI0_BASE, (QEI_CONFIG_CAPTURE_A_B | QEI_CONFIG_NO_RESET | QEI_CONFIG_QUADRATURE | QEI_CONFIG_NO_SWAP), 20000);
  QEIVelocityConfigure(QEI0_BASE, QEI_VELDIV_1, SysCtlClockGet()); // Divide by clock speed to get counts/sec
  QEIEnable(QEI0_BASE);
  QEIVelocityEnable(QEI0_BASE);
}
 
void loop() {
  // Report Position & Velocity of Encoder to Serial Terminal
  Serial.print(QEIPositionGet(QEI0_BASE));
  Serial.print(',');
  Serial.println(QEIVelocityGet(QEI0_BASE));
}

Working code using the hardware QEI interface on the TM4C129. Hopefully useful for somebody else.

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...