TMCStepper
Library supporting Trinamic Stepper Drivers for Arduino platforms
Loading...
Searching...
No Matches
TMC_platforms.h
Go to the documentation of this file.
1
7#ifdef ARDUINO_ARCH_AVR // 125kHz
8 typedef volatile uint8_t* fastio_reg;
9 typedef uint8_t fastio_bm;
10 #define getPort(P) digitalPinToPort(P)
11 #define writeMOSI_H *mosi_register |= mosi_bm
12 #define writeMOSI_L *mosi_register &= ~mosi_bm
13 #define writeSCK_H *sck_register |= sck_bm
14 #define writeSCK_L *sck_register &= ~sck_bm
15 #define readMISO *miso_register & miso_bm
16#elif defined(ARDUINO_ARCH_SAM) // DUE:700kHz
17 // by stimmer https://forum.arduino.cc/index.php?topic=129868.msg980466#msg980466
18 #define writeMOSI_H g_APinDescription[mosi_pin].pPort -> PIO_SODR = g_APinDescription[mosi_pin].ulPin
19 #define writeMOSI_L g_APinDescription[mosi_pin].pPort -> PIO_CODR = g_APinDescription[mosi_pin].ulPin
20 #define writeSCK_H g_APinDescription[sck_pin].pPort -> PIO_SODR = g_APinDescription[sck_pin].ulPin
21 #define writeSCK_L g_APinDescription[sck_pin].pPort -> PIO_CODR = g_APinDescription[sck_pin].ulPin
22 #define readMISO PIO_Get( g_APinDescription[miso_pin].pPort, PIO_INPUT, g_APinDescription[miso_pin].ulPin )
23#elif defined(TARGET_LPC1768)
24 //typedef volatile LPC_GPIO_TypeDef* fastio_reg;
25 //typedef uint32_t fastio_bm;
26 #define writeMOSI_H LPC176x::gpio_set(mosi_pin)
27 #define writeMOSI_L LPC176x::gpio_clear(mosi_pin)
28 #define writeSCK_H LPC176x::delay_ns(240); LPC176x::gpio_set(sck_pin)
29 #define writeSCK_L LPC176x::delay_ns(240); LPC176x::gpio_clear(sck_pin)
30 #define readMISO LPC176x::gpio_get(miso_pin)
31#elif defined(__STM32F1__) || defined(TARGET_STM32F1)
32 #define writeMOSI_H digitalWrite(mosi_pin, HIGH)
33 #define writeMOSI_L digitalWrite(mosi_pin, LOW)
34 #define writeSCK_H digitalWrite(sck_pin, HIGH)
35 #define writeSCK_L digitalWrite(sck_pin, LOW)
36 #define readMISO digitalRead(miso_pin)
37#else // DUE:116kHz
38 #define writeMOSI_H digitalWrite(mosi_pin, HIGH)
39 #define writeMOSI_L digitalWrite(mosi_pin, LOW)
40 #define writeSCK_H digitalWrite(sck_pin, HIGH)
41 #define writeSCK_L digitalWrite(sck_pin, LOW)
42 #define readMISO digitalRead(miso_pin)
43#endif