-
GUIslice
GUIslice drag & drop embedded GUI in C for touchscreen TFT on Arduino, Raspberry Pi, ARM, ESP8266 / ESP32 / M5stack using Adafruit-GFX / TFT_eSPI / UTFT / SDL
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
I am working on a project that uses an adafruit metro m0 express development board (using the ATSAMD21G18 ARM Cortex M0 processor) to drive a stepper motor. I have elected to use the Accelstepper library as it is well documented and makes controlling the stepper simple. The project also is driving a touchscreen display with the GUIslice library. Now - the Accelstepper library uses the main polling loop() function to repeatedly call the .run() method from the library to produce pulses to the stepper driver and move the motor. I have noted that when having the GUIslice function for polling the display in the same loop() function, it can hang the stepper motion for a split second as the processor is taking time to perform those functions (rightfully so).
I was searching online for a solution to this problem and noted several years ago someone created a patch for Accelstepper called iAccelstepper, which uses a hardware timer interrupt to call the .run() method instead of the main polling loop() function to produce the pulses for the driver. After looking at this library, I believe it is a great solution to mine (and possibly others) problem in that it keeps the main polling loop() available to do other functions without inhibiting the motion of the stepper motor. As I looked through the iAccelstepper library it would seem the author created it for the Texas Instruments Tiva-C development board, which uses an ARM Cortex M4 processor, and the TI ecosystem has simple driver libraries to easily access the timer peripherals to do so.
I am working on a project that uses an adafruit metro m0 express development board (using the ATSAMD21G18 ARM Cortex M0 processor) to drive a stepper motor. I have elected to use the Accelstepper library as it is well documented and makes controlling the stepper simple. The project also is driving a touchscreen display with the GUIslice library. Now - the Accelstepper library uses the main polling loop() function to repeatedly call the .run() method from the library to produce pulses to the stepper driver and move the motor. I have noted that when having the GUIslice function for polling the display in the same loop() function, it can hang the stepper motion for a split second as the processor is taking time to perform those functions (rightfully so).