diff --git a/Sming/Libraries/Adafruit_PCD8544/Adafruit_PCD8544.h b/Sming/Libraries/Adafruit_PCD8544/Adafruit_PCD8544.h index 1199b0fa87..d573fde4e1 100644 --- a/Sming/Libraries/Adafruit_PCD8544/Adafruit_PCD8544.h +++ b/Sming/Libraries/Adafruit_PCD8544/Adafruit_PCD8544.h @@ -32,8 +32,8 @@ All text above, and the splash screen must be included in any redistribution typedef volatile RwReg PortReg; typedef uint32_t PortMask; #else - typedef volatile uint8_t PortReg; - typedef uint8_t PortMask; + typedef volatile GPIO_REG_TYPE PortReg; + typedef GPIO_REG_TYPE PortMask; #endif #define BLACK 1 diff --git a/Sming/Libraries/Adafruit_SSD1306/Adafruit_SSD1306.cpp b/Sming/Libraries/Adafruit_SSD1306/Adafruit_SSD1306.cpp index 6d0d109b83..37358798bb 100644 --- a/Sming/Libraries/Adafruit_SSD1306/Adafruit_SSD1306.cpp +++ b/Sming/Libraries/Adafruit_SSD1306/Adafruit_SSD1306.cpp @@ -517,14 +517,18 @@ void Adafruit_SSD1306::display(void) { if (sid != -1) { // SPI + //digitalWrite(cs, HIGH); *csport |= cspinmask; + //digitalWrite(dc, HIGH); *dcport |= dcpinmask; + //digitalWrite(cs, LOW); *csport &= ~cspinmask; for (uint16_t i=0; i<(SSD1306_LCDWIDTH*SSD1306_LCDHEIGHT/8); i++) { fastSPIwrite(buffer[i]); //ssd1306_data(buffer[i]); } + //digitalWrite(cs, HIGH); *csport |= cspinmask; } else diff --git a/Sming/Libraries/Adafruit_SSD1306/Adafruit_SSD1306.h b/Sming/Libraries/Adafruit_SSD1306/Adafruit_SSD1306.h index 524531ac1a..8d68b79148 100644 --- a/Sming/Libraries/Adafruit_SSD1306/Adafruit_SSD1306.h +++ b/Sming/Libraries/Adafruit_SSD1306/Adafruit_SSD1306.h @@ -28,8 +28,8 @@ All text above, and the splash screen must be included in any redistribution typedef volatile RwReg PortReg; typedef uint32_t PortMask; #else - typedef volatile uint8_t PortReg; - typedef uint8_t PortMask; + typedef volatile GPIO_REG_TYPE PortReg; + typedef GPIO_REG_TYPE PortMask; #endif #include "../../SmingCore/SPI.h" diff --git a/Sming/Libraries/Adafruit_ST7735/Adafruit_ST7735.h b/Sming/Libraries/Adafruit_ST7735/Adafruit_ST7735.h index 10e69a890e..1806fac187 100644 --- a/Sming/Libraries/Adafruit_ST7735/Adafruit_ST7735.h +++ b/Sming/Libraries/Adafruit_ST7735/Adafruit_ST7735.h @@ -169,7 +169,7 @@ class Adafruit_ST7735 : public Adafruit_GFX { boolean hwSPI; #if defined(__AVR__) || defined(CORE_TEENSY) || defined (__ESP8266_EX__) - volatile uint8_t *dataport, *clkport, *csport, *rsport; + GPIO_REG_TYPE *dataport, *clkport, *csport, *rsport; uint8_t _cs, _rs, _rst, _sid, _sclk, datapinmask, clkpinmask, cspinmask, rspinmask, colstart, rowstart; // some displays need this changed diff --git a/Sming/Libraries/CapacitiveSensor/CapacitiveSensor.h b/Sming/Libraries/CapacitiveSensor/CapacitiveSensor.h index e9a84802ff..b19a7b62c0 100644 --- a/Sming/Libraries/CapacitiveSensor/CapacitiveSensor.h +++ b/Sming/Libraries/CapacitiveSensor/CapacitiveSensor.h @@ -24,7 +24,7 @@ #define PIN_TO_BASEREG(pin) (portOutputRegister(digitalPinToPort(pin))) #define PIN_TO_BITMASK(pin) (digitalPinToBitMask(pin)) -#define IO_REG_TYPE uint8_t +#define IO_REG_TYPE GPIO_REG_TYPE #define IO_REG_ASM #define DIRECT_READ(base, mask) (((*((base)+GPIO_IN_ADDRESS)) & (mask)) ? 1 : 0) #define DIRECT_MODE_INPUT(base, mask) ((*((base)+GPIO_ENABLE_ADDRESS)) &= ~(mask)) diff --git a/Sming/Libraries/TFT_ILI9163C/TFT_ILI9163C.h b/Sming/Libraries/TFT_ILI9163C/TFT_ILI9163C.h index fc133ec401..036f530eee 100644 --- a/Sming/Libraries/TFT_ILI9163C/TFT_ILI9163C.h +++ b/Sming/Libraries/TFT_ILI9163C/TFT_ILI9163C.h @@ -295,9 +295,9 @@ class TFT_ILI9163C : public Adafruit_GFX { #if defined(__ESP8266_EX__) void spiwrite(uint8_t); - volatile uint8_t *csport, *rsport; + volatile GPIO_REG_TYPE *csport, *rsport; uint8_t _cs,_rs,_sid,_sclk,_rst; - uint8_t cspinmask, rspinmask; + GPIO_REG_TYPE cspinmask, rspinmask; #endif // #ifdef __ESP8266_EX__ }; #endif diff --git a/Sming/SmingCore/pins_arduino.h b/Sming/SmingCore/pins_arduino.h index d674601df7..286d22be0b 100644 --- a/Sming/SmingCore/pins_arduino.h +++ b/Sming/SmingCore/pins_arduino.h @@ -20,7 +20,7 @@ extern const unsigned int A0; // Single ESP8266EX analog input pin (TOUT) 10 bit #define PB 2 #define PC 3 -#define GPIO_REG_TYPE uint8_t +#define GPIO_REG_TYPE uint32_t // We use maximum compatibility to standard Arduino logic. @@ -34,9 +34,9 @@ extern const unsigned int A0; // Single ESP8266EX analog input pin (TOUT) 10 bit #define STD_GPIO_IN (PERIPHS_GPIO_BASEADDR + GPIO_IN_ADDRESS) #define STD_GPIO_ENABLE (PERIPHS_GPIO_BASEADDR + GPIO_ENABLE_ADDRESS) -#define portOutputRegister(P) ( ((volatile uint8_t*)(P != PC ? STD_GPIO_OUT : RTC_GPIO_OUT)) + ( ( ((int)P) == PB ) ? 1 : 0) ) -#define portInputRegister(P) ( ((volatile uint8_t*)(P != PC ? STD_GPIO_IN : RTC_GPIO_IN_DATA)) + ( ( ((int)P) == PB ) ? 1 : 0) ) -#define portModeRegister(P) ( ((volatile uint8_t*)(P != PC ? STD_GPIO_ENABLE : RTC_GPIO_ENABLE)) + ( ( ((int)P) == PB ) ? 1 : 0) ) // Stored bits: 0=In, 1=Out +#define portOutputRegister(P) ( ((GPIO_REG_TYPE*)(P != PC ? STD_GPIO_OUT : RTC_GPIO_OUT)) + ( ( ((int)P) == PB ) ? 1 : 0) ) +#define portInputRegister(P) ( ((GPIO_REG_TYPE*)(P != PC ? STD_GPIO_IN : RTC_GPIO_IN_DATA)) + ( ( ((int)P) == PB ) ? 1 : 0) ) +#define portModeRegister(P) ( ((GPIO_REG_TYPE*)(P != PC ? STD_GPIO_ENABLE : RTC_GPIO_ENABLE)) + ( ( ((int)P) == PB ) ? 1 : 0) ) // Stored bits: 0=In, 1=Out #endif /* WIRING_PINS_ARDUINO_H_ */