TMCStepper
Library supporting Trinamic Stepper Drivers for Arduino platforms
Loading...
Searching...
No Matches
TMCStepper.h
Go to the documentation of this file.
1
19#pragma once
20
21//#define TMCDEBUG
22
23#pragma GCC diagnostic push
24#pragma GCC diagnostic ignored "-Wunused-function"
25#pragma GCC diagnostic ignored "-Wunused-variable"
26
27#if defined(ARDUINO) && ARDUINO >= 100
28 #include <Arduino.h>
29 #include <SPI.h>
30 #include <Stream.h>
31#elif defined(bcm2835)
32 #include <bcm2835.h>
33 #include "source/bcm2835_spi.h"
35#elif defined(__has_include)
36 #if __has_include(<Arduino.h>)
37 #include <Arduino.h>
38 #endif
39 #if __has_include(<SPI.h>)
40 #include <SPI.h>
41 #endif
42 #if __has_include(<Stream.h>)
43 #include <Stream.h>
44 #endif
45#endif
46
47#ifndef TMCSTEPPER_SW_SERIAL
48 #ifdef __has_include
49 #if __has_include(<SoftwareSerial.h>)
50 #define TMCSTEPPER_SW_SERIAL 1
51 #else
52 #define TMCSTEPPER_SW_SERIAL 0
53 #endif
54 #elif defined(__AVR__) || defined(TARGET_LPC1768) || defined(ARDUINO_ARCH_STM32)
55 #define TMCSTEPPER_SW_SERIAL 1
56 #else
57 #define TMCSTEPPER_SW_SERIAL 0
58 #endif
59#endif
60
61#define HAS_HALF_DUPLEX_MODE (TMCSTEPPER_SW_SERIAL && defined(ARDUINO_ARCH_AVR))
62
63#if TMCSTEPPER_SW_SERIAL
64 #include <SoftwareSerial.h>
65#endif
66
68#include "source/SW_SPI.h"
69
70#pragma GCC diagnostic pop
71
72// Usage: INIT_REGISTER(GCONF); // Result: GCONF_t GCONF_register{};
73#define INIT_REGISTER(REG) REG##_t REG##_register{}
74#define SET_ALIAS(TYPE, DRIVER, NEW, ARG, OLD) TYPE (DRIVER::*NEW)(ARG) = &DRIVER::OLD
75
76#define TMCSTEPPER_VERSION 0x000809 // v0.8.9 - Marlin bumps minor version
77
86