-
Notifications
You must be signed in to change notification settings - Fork 0
/
ToZero_3x_SPI.h
53 lines (41 loc) · 1.52 KB
/
ToZero_3x_SPI.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
/*
ToZero_3x_SPI.h - Library for use with the ToZero 3x adapter board that maps
the pinout of the Teensy family of microcontrollers (3.2, 3.5, 3.6, LC) to
the Raspberry Pi GPIO header
Copyright (c) 2020 Christopher (@ZodiusInfuser) Parrott. All right reserved.
*/
#ifndef _TO_ZERO_3X_SPI_H
#define _TO_ZERO_3X_SPI_H
#include <ToZero_3x_GPIO.h>
#if defined(__MK20DX256__) || defined(__MKL26Z64__) || defined(__MK64FX512__) || defined(__MK66FX1M0__) //Teensy 3.2, 3.5, 3.6 & LC
#include <SPI.h>
static SPIClass& GPIO_SPI = SPI;
#if defined(__MK64FX512__) || defined(__MK66FX1M0__) //Teensy 3.5 & 3.6
static SPIClass& BreakoutSPI = SPI2;
#endif
#define GPIO_SPI_MOSI GPIO_10
#define GPIO_SPI_MISO GPIO_9
#define GPIO_SPI_SCK GPIO_11
#define GPIO_SPI_CE0 GPIO_8
#ifdef GPIO_7
#define GPIO_SPI_CE1 GPIO_7
#endif
#if defined(__MK64FX512__) || defined(__MK66FX1M0__) //Teensy 3.5 & 3.6
#define BREAKOUT_SPI_MOSI 44
#define BREAKOUT_SPI_MISO 45
#define BREAKOUT_SPI_SCK 46
#define BREAKOUT_SPI_CE0 43
#endif
#define TO_ZERO_SPI_SETUP
static inline void ToZero_SPI_Setup(void)
{
GPIO_SPI.setSCK(GPIO_SPI_SCK);
GPIO_SPI.setMOSI(GPIO_SPI_MOSI);
};
#if !defined(NO_TO_ZERO_WARNINGS) && !defined(_TO_ZERO_3X_H)
#warning "ToZero 3x SPI loaded. Remember to call ToZero_SPI_Setup(); in you Arduino setup() function."
#endif
#elif !defined(_TO_ZERO_3X_H)
#error "Incompatible Board Selected. The ToZero 3x adapter only supports the Teensy 3.2, 3.5, 3.6 & LC. If using a Teensy 4.0 or 4.1 then a ToZero 4x adapter will be needed."
#endif
#endif