|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275 |
- #ifndef _RA8875_CPU_H_
- #define _RA8875_CPU_H_
- /*
- CPU based Preprocessor directives file.
- RA8875 Library support many MCU's so I wroted this to simplify the overall code.
-
- Part of RA8875 library from https://github.com/sumotoy/RA8875
-
- RA8875 fast SPI library for RAiO SPI RA8875 drived TFT
- Copyright (C) 2014 egidio massimo costa sumotoy (a t) gmail.com
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
- /*
- --------------------------------------------------------------
- ENERGIA BASED BOARDS
- Partially supported and actually never tested
- --------------------------------------------------------------
- */
- #if defined(ENERGIA)
- #include "Energia.h"
- #undef byte
- #define byte uint8_t
- #if defined(__TM4C129XNCZAD__) || defined(__TM4C1294NCPDT__)//tiva???
- #define NEEDS_SET_MODULE
- #define _FASTCPU
- #if defined(_FORCE_PROGMEM__)//arm do not need this
- #undef _FORCE_PROGMEM__//force library not use PROGMEM
- #endif
- #define __PRGMTAG_
- #elif defined(__LM4F120H5QR__) || defined(__TM4C123GH6PM__)//stellaris first version
- #define NEEDS_SET_MODULE
- #define _FASTCPU
- #if defined(_FORCE_PROGMEM__)//arm do not need this
- #undef _FORCE_PROGMEM__//force library not use PROGMEM
- #endif
- #define __PRGMTAG_
- #elif defined(__MSP430MCU__)//MSP430???
- // don't know
- #elif defined(TMS320F28069)//C2000???
- // don't know
- #elif defined(__CC3200R1M1RGC__)//CC3200???
- // don't know
- #endif
- static uint8_t SPImodule;
- static uint8_t SPDR;
- #elif defined(__AVR__)
- /*
- --------------------------------------------------------------
- 8 BIT AVR BOARDS (UNO,YUN,LEONARDO,ETC.)
- Fully supported (tested)
- --------------------------------------------------------------
- */
- #if !defined(_FORCE_PROGMEM__)//avr need this
- #define _FORCE_PROGMEM__
- #endif
- #include "Arduino.h"
- #include <pins_arduino.h>
- #include <math.h>
- #include <avr/pgmspace.h>
- #define __PRGMTAG_ PROGMEM
- #elif defined(__MK20DX128__) || defined(__MK20DX256__) || defined(__MKL26Z64__) || defined(__MK64FX512__) || defined(__MK66FX1M0__)
- /*
- --------------------------------------------------------------
- TEENSY 3, TEENSY 3.1, TEENSY 3.2, TEENSY LC
- Fully supported (tested)
- --------------------------------------------------------------
- */
- #define ___TEENSYES
- #define _FASTCPU//It's a fast CPU with a fast SPI
- #include "Arduino.h"
- #if defined(_FORCE_PROGMEM__)//arm do not need this
- //#include <avr/pgmspace.h>
- #undef _FORCE_PROGMEM__//force library not use PROGMEM
- //Mmm... Maybe not needed. Maybe useful for user code?
- //#define PROGMEM __attribute__((section(".progmem.data")))
- #endif
-
- #define __PRGMTAG_
- #elif defined(__MK64FX512__) || defined(__MK66FX1M0__) || defined(__IMXRT1062__)
- /*
- --------------------------------------------------------------
- FUTURE TEENSY PRODUCTS
- will be supported in future
- --------------------------------------------------------------
- */
- #define ___TEENSYES
- #define _FASTCPU//It's a fast CPU with a fast SPI
- #include "Arduino.h"
- #if defined(_FORCE_PROGMEM__)//arm do not need this
- //#include <avr/pgmspace.h>
- #undef _FORCE_PROGMEM__//force library not use PROGMEM
- //Mmm... Maybe not needed. Maybe useful for user code?
- //#define PROGMEM __attribute__((section(".progmem.data")))
- #endif
- #define __PRGMTAG_
- #elif defined(__32MX320F128H__) || defined(__32MX795F512L__) //chipkit uno, chipkit max
- /*
- --------------------------------------------------------------
- CHIPKIT UNO, CHIPKIT MAX
- Partially supported and never tested
- the following defines need some changes!
- --------------------------------------------------------------
- */
- #define ___CHIPKIT
- #define _FASTCPU//It's a fast CPU with a fast SPI
- #include "Arduino.h"
- #if defined(_FORCE_PROGMEM__)
- #undef _FORCE_PROGMEM__
- #endif
- #ifndef __PGMSPACE_H_
- #define __PGMSPACE_H_ 1
- #define PROGMEM
- //following probably useless!
- #define PGM_P const char *
- #define PSTR(str) (str)
- #define pgm_read_byte_near(addr) pgm_read_byte(addr)
- #define pgm_read_byte(addr) (*(const unsigned char *)(addr))
- #define pgm_read_word(addr) (*(const unsigned short *)(addr))
- #endif
- #define __PRGMTAG_
- #elif defined (__arm__) && defined(ARDUINO_ARCH_SAM)
- /*
- --------------------------------------------------------------
- ARDUINO DUE
- Fully supported (tested)
- --------------------------------------------------------------
- */
- #define ___DUESTUFF
- #define _FASTCPU//It's a fast CPU with a fast SPI
- #include "Arduino.h"
- #include <pins_arduino.h>
- #ifndef __PGMSPACE_H_
- #define __PGMSPACE_H_ 1
- #define PROGMEM
- //following probably useless! ARM do not need PROGMEM
- #define PGM_P const char *
- #define PSTR(str) (str)
- #define pgm_read_byte_near(addr) pgm_read_byte(addr)
- #define pgm_read_byte(addr) (*(const unsigned char *)(addr))
- #define pgm_read_word(addr) (*(const unsigned short *)(addr))
- #endif
- #define __PRGMTAG_
- #elif defined (__arm__) && defined(ARDUINO_ARCH_SAMD)
- /*
- --------------------------------------------------------------
- ARDUINO ZERO
- Actually NOT supported
- --------------------------------------------------------------
- */
- #include "Arduino.h"
- #include <pins_arduino.h>
- #define ___ZEROSTUFF
- #error "your board it's not supported yet!"
- #elif defined (__arm__) && defined(__SAM3X8E__)
- /*
- --------------------------------------------------------------
- ARDUINO DUE COMPATIBLE
- Fully supported (as DUE, tested)
- --------------------------------------------------------------
- */
- #define ___DUESTUFF
- #define _FASTCPU
- #include "Arduino.h"
- #include <pins_arduino.h>
- #ifndef __PGMSPACE_H_
- #define __PGMSPACE_H_ 1
- #define PROGMEM
- //following probably useless! ARM do not need PROGMEM
- #define PGM_P const char *
- #define PSTR(str) (str)
- #define pgm_read_byte_near(addr) pgm_read_byte(addr)
- #define pgm_read_byte(addr) (*(const unsigned char *)(addr))
- #define pgm_read_word(addr) (*(const unsigned short *)(addr))
- #endif
- #elif !defined(SPARK) && (defined(STM32F2XX) || defined(STM32F10X_MD) || defined(STM32_SERIES_F1) || defined(STM32_SERIES_F2))
- /*
- --------------------------------------------------------------
- STM32 BOARDS
- Initial support and actually won't compile
- --------------------------------------------------------------
- */
- #define ___STM32STUFF
- #include "Arduino.h"
- #if defined(_FORCE_PROGMEM__)
- #undef _FORCE_PROGMEM__
- #endif
- #define __PRGMTAG_
- #elif defined(ESP8266)
- /*
- --------------------------------------------------------------
- XTENSA (ESP8266)
- It compiles but never tested
- --------------------------------------------------------------
- */
- #include "Arduino.h"
- #include <pins_arduino.h>
- //#define _FASTCPU
- #if defined(_FORCE_PROGMEM__)
- //#undef _FORCE_PROGMEM__
- #define PROGMEM __attribute__((section(".progmem.data")))//Really necessary? Prolly not
- #endif
- #define __PRGMTAG_
- #elif defined (__arm__) && defined(SPARK)
- /*
- --------------------------------------------------------------
- PARTICLE PHOTON, ETC.
- Still in development
- --------------------------------------------------------------
- */
- #include "application.h"
- #include "math.h"
- /*
- #define pgm_read_byte(addr) (*(const unsigned char *)(addr))
- #define pgm_read_byte_near(addr) (*(const unsigned char *)(addr))
- #define pgm_read_word(addr) (*(const unsigned short *)(addr))
- #define pgm_read_word_near(addr) (*(const unsigned short *)(addr))
- */
- #ifndef bitRead
- #define bitRead(a,b) ((a) & (1<<(b)))
- #endif
- #ifndef bitWrite
- #define __bitSet(value, bit) ((value) |= (1UL << (bit)))
- #define __bitClear(value, bit) ((value) &= ~(1UL << (bit)))
- #define bitWrite(value, bit, bitvalue) (bitvalue ? __bitSet(value, bit) : __bitClear(value, bit))
- #endif
- #ifndef PI
- #define PI 3.14159265358979323846
- #endif
- #if defined(_FORCE_PROGMEM__)
- #undef _FORCE_PROGMEM__
- #endif
- #undef PROGMEM
- //prolly not needed but fix the compiler warning
- #define PROGMEM __attribute__((section(".progmem.data")))
- //
- #define __PRGMTAG_
- #elif defined(__arm__) && !defined(ESP8266) && !defined(___TEENSYES) && !defined(SPARK) && !defined(STM32F2XX) && !defined(STM32F10X_MD) && !defined(STM32_SERIES_F1) && !defined(STM32_SERIES_F2) && !defined(ESP8266)
- /*
- --------------------------------------------------------------
- ARM generic
- Mistery....
- --------------------------------------------------------------
- */
- #if defined(_FORCE_PROGMEM__)
- #undef _FORCE_PROGMEM__
- #endif
- #include "Arduino.h"
- #define __PRGMTAG_
- #warning "Generic Arm detected, not sure if your board it's compatible!"
-
-
- /*
- --------------------------------------------------------------
- NOT SUPPORTED
- --------------------------------------------------------------
- */
- #else
- #error "your board it's not supported yet!"
- #endif
-
- #include "Print.h"
-
- #endif
|