nkawu / tft_22_ili9225 Goto Github PK
View Code? Open in Web Editor NEWThis project forked from 4dsystems/screen_4d_22_library
Arduino library for 2.2" TFT display modules with ILI9225 driver
License: GNU General Public License v3.0
This project forked from 4dsystems/screen_4d_22_library
Arduino library for 2.2" TFT display modules with ILI9225 driver
License: GNU General Public License v3.0
Can I load bitmap from SD Card with this library for 2.0" ILI9225?
Triangle draw incorectly.
try this sample:
tft.drawTriangle(0, tft.maxY()/2-1, tft.maxX()/2-1, tft.maxY()/2-1, tft.maxX()/2-1,0, COLOR_WHITE);
tft.drawTriangle(tft.maxX()/2-1, tft.maxY()/2-1, tft.maxX()-1, tft.maxY()/2-1, tft.maxX()-1,0, COLOR_BLUE);
tft.drawTriangle(0, tft.maxY()-1, tft.maxX()/2-1, tft.maxY()-1, tft.maxX()/2-1,tft.maxY()/2-1, COLOR_GREEN);
tft.drawTriangle(tft.maxX()/2-1, tft.maxY()-1, tft.maxX()-1, tft.maxY()-1, tft.maxX()-1,tft.maxY()/2-1, COLOR_RED);
This problem occurs because of the use of the ABS() macro.
This fix fixes the problem.
// int16_t steep = abs(y2 - y1) > abs(x2 - x1);
int16_t y2y1 = y2 - y1;
int16_t x2x1 = x2 - x1;
int16_t steep = abs(y2y1) > abs(x2x1);
// dy = abs(y2 - y1);
int16_t _y2y1 = y2 - y1;
dy = abs(_y2y1);
Testing on a Wemos D1 Mini, with the Opensmart 2.0" 176x220 LCD.
Arduino version 1.8.4, ESP8266 board support V2.3.0, TFT library v1.3.8
The hardware works fine with the example from https://github.com/jorgegarciadev/TFT_22_ILI9225 but that library is older, and missing some features (most notably bitmap display), so I'd like to get it working with this one.
The example code starts up okay, but hangs and gets killed by the watchdog timer in the first execution of tft.clear().
I'm guessing that there's some obscure bug/incompatibility with the 2.3.0 ESP8266 support. But that's just a guess. What version(s) has this library been tested with? Are there any that are required/should be avoided?
Thanks,
Ran
it shows "Error compiling for board Teensy 3.6." while compiling for teensy ,is there any hack to make it work with teensy ?
The new AVR8X chips from Microchip have different SPI peripheral.
I suggest that you add a conditional block for standard SPI
// Standard Byte-by-Byte SPI
#if defined(__AVR_ATmega4809__)
static inline uint8_t _avr_spi_read(void) __attribute__((always_inline));
static inline uint8_t _avr_spi_read(void) {
uint8_t r = 0;
SPI0_DATA = r;
while(!(SPI0_INTFLAGS & _BV(SPI_IF_bp)));
r = SPI0_DATA;
return r;
}
#define HSPI_WRITE(b) {SPI0_DATA = (b); while(!(SPI0_INTFLAGS & _BV(SPI_IF_bp)));}
// #define HSPI_READ() _avr_spi_read()
#elif defined (__AVR__) || defined(TEENSYDUINO)
...
There might be a predefined macro for AVR-0 series targets but I suspect that mega4809 will be the only target in common use. __AVR_ENHANCED__
might be a suitable generic test.
David.
i got 11pin ili9225 , i test in normal analog pin and digital setup but in all demo project only i get whit screen.
help please
I'm interfacing Arduino Uno with ili925 and on uploading, I get the following error
Invalid library found in D:\New folder\Arduino\libraries\TFT_22_ILI9225: no headers files (.h) found in D:\New folder\Arduino\libraries\TFT_22_ILI9225
Hi,
I tried to use the library with STM32F1, using the stm32duino framework, but to allow it to compile I had to modify some file, described below. Can you update your library so it can compile with stm32duino?
regards
Niko
file: TFT_22_ILI9225.h:
line 12: #if defined(ARDUINO_STM32_FEATHER) || defined(ARDUINO_ARCH_STM32) || defined(ARDUINO_ARCH_STM32F1) || defined(STM32F1)
file: DefaultFonts.c:
line 7: #if defined(ARDUINO_ARCH_SAM) || defined(ARDUINO_ARCH_SAMD) || defined(ARDUINO_ARCH_STM32) || defined(ARDUINO_ARCH_STM32F1) || defined(STM32F1)
file Basic_demo:
#if defined (ARDUINO_ARCH_STM32F1)
#define TFT_RST PA1
#define TFT_RS PA2
#define TFT_CS PA0 // SS
#define TFT_SDI PA7 // MOSI
#define TFT_CLK PA5 // SCK
#define TFT_LED 0 // 0 if wired to +5V directly
#else
#define TFT_RST 8
#define TFT_RS 9
#define TFT_CS 10 // SS
#define TFT_SDI 11 // MOSI
#define TFT_CLK 13 // SCK
#define TFT_LED 3 // 0 if wired to +5V directly
#endif
How can display € character with defaults fonts?
Only can $ character
It's possible add only 1 character?
Regards.
The use of USE_FAST_PINIO causes problems on a dual-core ESP32.
USE_FAST_PINIO causes the utilisation of non-atomic access (reading GPIO_OUT_REG, setting/clearing a bit, writing GPIO_OUT_REG). If a second task on the other CPU core concurrently accesses the the same GPIO_OUT_REG, these GPIO modifications may get lost and thus cause unexpected behaviour (which btw are a nightmare to debug)...
I posted some sample code that shows defective behaviour on a ESP32 TTGO T-Beam with external ILI9225 display here: https://www.esp32.com/viewtopic.php?f=19&t=12599
ESP32 should instead only use GPIO_OUT_W1TS_REG/GPIO_OUT_W1TC_REG to directly change GPIO pin values.
Clarification from @4dsystems is required regarding the license of this project, as I have not found any information regarding the use of this code.
Thanks.
How change de drawText color from variable?
I try yo change the color from different condition of my program to ser in a variable example color = "COLOR_GREEN"
But...
color = "COLOR_GREEN";
tft.drawText(0,0,"TEXT Color",color);
no matching function for call to 'TFT_22_ILI9225::drawText(int, int, StringSumHelper&, String&)'
Hi, great library and I am trying to get it working for the ESP32.
My code freezes after/while executing drawLine code. There is no problem with drawRectangle so maybe the
bool inTrans = checkSPI;
if (checkSPI) startWrite();
if (inTrans) checkSPI = false;
and
if (checkSPI) endWrite();
if (inTrans) checkSPI = true;
has some flawns if the function is called directly.
Should it not be:
if (inTrans) endWrite();
if (inTrans) checkSPI = true;
PS: Tested and confirmed this was the problem.
At first Thanks a lot to author! very useful libriry.
at second i coudn't realise how to draw nemeric varible/values such ass int or float without Strings.
But with the Strings the code become huge. any help on it?
Hello there,
I tried to compile the triangle demo, but got an error for the include "Math.h"
I fixed it writting Math in lowercase, but I'm not sure if it is the good way to fix it or if you used your own math library.
Also by the way, the two other examples does not longer run on Atmega 168p because of the reduced memory (16 KB instead of 32, so 14 available instead of 30)
Regardless of where invoked in code (prior to writing to display, or after) there's no display inversion taking place. Is this function working for anyone, and if so, please provide a code example
I wanted to add some shadow/3d effects to the texts I draw. A very common trick to do that is to draw the same text slightly off by several pixels with a darker color and then draw the same text over with a lighter color.
But to do that the background color must not be changed on successive calls to draw text, or the effect is completely ruined.
Would it be possible to add an option not to draw any background color when drawing text (perhaps by adding a special numeric value to setBackgroundcolor())?
Hi
i have problem when i try to compile and uploat the test sketch i get following error message.
C:\Users\Arduino\Documents\Arduino\libraries\TFT_22_ILI9225\src\TFT_22_ILI9225.cpp: In member function 'void TFT_22_ILI9225::_setWindow(uint16_t, uint16_t, uint16_t, uint16_t, autoIncMode_t)':
C:\Users\Arduino\Documents\Arduino\libraries\TFT_22_ILI9225\src\TFT_22_ILI9225.cpp:451:26: error: no matching function for call to 'min(uint16_t&, int)'
x0 = min( x0,_maxX-1 );
^
C:\Users\Arduino\Documents\Arduino\libraries\TFT_22_ILI9225\src\TFT_22_ILI9225.cpp:451:26: note: candidates are:
In file included from c:\users\arduino\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\algorithm:62:0,
from C:\Users\Arduino\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.1\cores\esp8266/Arduino.h:254,
from C:\Users\Arduino\Documents\Arduino\libraries\TFT_22_ILI9225\src\TFT_22_ILI9225.h:20,
from C:\Users\Arduino\Documents\Arduino\libraries\TFT_22_ILI9225\src\TFT_22_ILI9225.cpp:1:
c:\users\arduino\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\bits\stl_algo.h:4226:5: note: template<class _Tp, class _Compare> _Tp std::min(std::initializer_list<_Tp>, _Compare)
min(initializer_list<_Tp> __l, _Compare __comp)
^
c:\users\arduino\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\bits\stl_algo.h:4226:5: note: template argument deduction/substitution failed:
C:\Users\Arduino\Documents\Arduino\libraries\TFT_22_ILI9225\src\TFT_22_ILI9225.cpp:451:26: note: mismatched types 'std::initializer_list<_Tp>' and 'short unsigned int'
x0 = min( x0,_maxX-1 );
^
In file included from c:\users\arduino\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\algorithm:62:0,
from C:\Users\Arduino\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.1\cores\esp8266/Arduino.h:254,
from C:\Users\Arduino\Documents\Arduino\libraries\TFT_22_ILI9225\src\TFT_22_ILI9225.h:20,
from C:\Users\Arduino\Documents\Arduino\libraries\TFT_22_ILI9225\src\TFT_22_ILI9225.cpp:1:
c:\users\arduino\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\bits\stl_algo.h:4221:5: note: template _Tp std::min(std::initializer_list<_Tp>)
min(initializer_list<_Tp> __l)
^
c:\users\arduino\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\bits\stl_algo.h:4221:5: note: template argument deduction/substitution failed:
C:\Users\Arduino\Documents\Arduino\libraries\TFT_22_ILI9225\src\TFT_22_ILI9225.cpp:451:26: note: mismatched types 'std::initializer_list<_Tp>' and 'short unsigned int'
x0 = min( x0,_maxX-1 );
^
In file included from c:\users\arduino\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\algorithm:61:0,
from C:\Users\Arduino\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.1\cores\esp8266/Arduino.h:254,
from C:\Users\Arduino\Documents\Arduino\libraries\TFT_22_ILI9225\src\TFT_22_ILI9225.h:20,
from C:\Users\Arduino\Documents\Arduino\libraries\TFT_22_ILI9225\src\TFT_22_ILI9225.cpp:1:
c:\users\arduino\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\bits\stl_algobase.h:239:5: note: template<class _Tp, class _Compare> const _Tp& std::min(const _Tp&, const _Tp&, _Compare)
min(const _Tp& __a, const _Tp& __b, _Compare __comp)
^
c:\users\arduino\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\bits\stl_algobase.h:239:5: note: template argument deduction/substitution failed:
C:\Users\Arduino\Documents\Arduino\libraries\TFT_22_ILI9225\src\TFT_22_ILI9225.cpp:451:26: note: deduced conflicting types for parameter 'const _Tp' ('short unsigned int' and 'int')
x0 = min( x0,_maxX-1 );
^
In file included from c:\users\arduino\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\algorithm:61:0,
from C:\Users\Arduino\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.1\cores\esp8266/Arduino.h:254,
from C:\Users\Arduino\Documents\Arduino\libraries\TFT_22_ILI9225\src\TFT_22_ILI9225.h:20,
from C:\Users\Arduino\Documents\Arduino\libraries\TFT_22_ILI9225\src\TFT_22_ILI9225.cpp:1:
c:\users\arduino\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\bits\stl_algobase.h:193:5: note: template const _Tp& std::min(const _Tp&, const _Tp&)
min(const _Tp& __a, const _Tp& __b)
^
c:\users\arduino\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\bits\stl_algobase.h:193:5: note: template argument deduction/substitution failed:
C:\Users\Arduino\Documents\Arduino\libraries\TFT_22_ILI9225\src\TFT_22_ILI9225.cpp:451:26: note: deduced conflicting types for parameter 'const _Tp' ('short unsigned int' and 'int')
x0 = min( x0,_maxX-1 );
^
C:\Users\Arduino\Documents\Arduino\libraries\TFT_22_ILI9225\src\TFT_22_ILI9225.cpp:452:26: error: no matching function for call to 'min(uint16_t&, int)'
x1 = min( x1,_maxX-1 );
^
C:\Users\Arduino\Documents\Arduino\libraries\TFT_22_ILI9225\src\TFT_22_ILI9225.cpp:452:26: note: candidates are:
In file included from c:\users\arduino\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\algorithm:62:0,
from C:\Users\Arduino\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.1\cores\esp8266/Arduino.h:254,
from C:\Users\Arduino\Documents\Arduino\libraries\TFT_22_ILI9225\src\TFT_22_ILI9225.h:20,
from C:\Users\Arduino\Documents\Arduino\libraries\TFT_22_ILI9225\src\TFT_22_ILI9225.cpp:1:
c:\users\arduino\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\bits\stl_algo.h:4226:5: note: template<class _Tp, class _Compare> _Tp std::min(std::initializer_list<_Tp>, _Compare)
min(initializer_list<_Tp> __l, _Compare __comp)
^
c:\users\arduino\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\bits\stl_algo.h:4226:5: note: template argument deduction/substitution failed:
C:\Users\Arduino\Documents\Arduino\libraries\TFT_22_ILI9225\src\TFT_22_ILI9225.cpp:452:26: note: mismatched types 'std::initializer_list<_Tp>' and 'short unsigned int'
x1 = min( x1,_maxX-1 );
^
In file included from c:\users\arduino\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\algorithm:62:0,
from C:\Users\Arduino\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.1\cores\esp8266/Arduino.h:254,
from C:\Users\Arduino\Documents\Arduino\libraries\TFT_22_ILI9225\src\TFT_22_ILI9225.h:20,
from C:\Users\Arduino\Documents\Arduino\libraries\TFT_22_ILI9225\src\TFT_22_ILI9225.cpp:1:
c:\users\arduino\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\bits\stl_algo.h:4221:5: note: template _Tp std::min(std::initializer_list<_Tp>)
min(initializer_list<_Tp> __l)
^
c:\users\arduino\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\bits\stl_algo.h:4221:5: note: template argument deduction/substitution failed:
C:\Users\Arduino\Documents\Arduino\libraries\TFT_22_ILI9225\src\TFT_22_ILI9225.cpp:452:26: note: mismatched types 'std::initializer_list<_Tp>' and 'short unsigned int'
x1 = min( x1,_maxX-1 );
^
In file included from c:\users\arduino\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\algorithm:61:0,
from C:\Users\Arduino\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.1\cores\esp8266/Arduino.h:254,
from C:\Users\Arduino\Documents\Arduino\libraries\TFT_22_ILI9225\src\TFT_22_ILI9225.h:20,
from C:\Users\Arduino\Documents\Arduino\libraries\TFT_22_ILI9225\src\TFT_22_ILI9225.cpp:1:
c:\users\arduino\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\bits\stl_algobase.h:239:5: note: template<class _Tp, class _Compare> const _Tp& std::min(const _Tp&, const _Tp&, _Compare)
min(const _Tp& __a, const _Tp& __b, _Compare __comp)
^
c:\users\arduino\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\bits\stl_algobase.h:239:5: note: template argument deduction/substitution failed:
C:\Users\Arduino\Documents\Arduino\libraries\TFT_22_ILI9225\src\TFT_22_ILI9225.cpp:452:26: note: deduced conflicting types for parameter 'const _Tp' ('short unsigned int' and 'int')
x1 = min( x1,_maxX-1 );
^
In file included from c:\users\arduino\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\algorithm:61:0,
from C:\Users\Arduino\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.1\cores\esp8266/Arduino.h:254,
from C:\Users\Arduino\Documents\Arduino\libraries\TFT_22_ILI9225\src\TFT_22_ILI9225.h:20,
from C:\Users\Arduino\Documents\Arduino\libraries\TFT_22_ILI9225\src\TFT_22_ILI9225.cpp:1:
c:\users\arduino\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\bits\stl_algobase.h:193:5: note: template const _Tp& std::min(const _Tp&, const _Tp&)
min(const _Tp& __a, const _Tp& __b)
^
c:\users\arduino\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\bits\stl_algobase.h:193:5: note: template argument deduction/substitution failed:
C:\Users\Arduino\Documents\Arduino\libraries\TFT_22_ILI9225\src\TFT_22_ILI9225.cpp:452:26: note: deduced conflicting types for parameter 'const _Tp' ('short unsigned int' and 'int')
x1 = min( x1,_maxX-1 );
^
C:\Users\Arduino\Documents\Arduino\libraries\TFT_22_ILI9225\src\TFT_22_ILI9225.cpp:453:26: error: no matching function for call to 'min(uint16_t&, int)'
y0 = min( y0,_maxY-1 );
^
C:\Users\Arduino\Documents\Arduino\libraries\TFT_22_ILI9225\src\TFT_22_ILI9225.cpp:453:26: note: candidates are:
In file included from c:\users\arduino\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\algorithm:62:0,
from C:\Users\Arduino\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.1\cores\esp8266/Arduino.h:254,
from C:\Users\Arduino\Documents\Arduino\libraries\TFT_22_ILI9225\src\TFT_22_ILI9225.h:20,
from C:\Users\Arduino\Documents\Arduino\libraries\TFT_22_ILI9225\src\TFT_22_ILI9225.cpp:1:
c:\users\arduino\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\bits\stl_algo.h:4226:5: note: template<class _Tp, class _Compare> _Tp std::min(std::initializer_list<_Tp>, _Compare)
min(initializer_list<_Tp> __l, _Compare __comp)
^
c:\users\arduino\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\bits\stl_algo.h:4226:5: note: template argument deduction/substitution failed:
C:\Users\Arduino\Documents\Arduino\libraries\TFT_22_ILI9225\src\TFT_22_ILI9225.cpp:453:26: note: mismatched types 'std::initializer_list<_Tp>' and 'short unsigned int'
y0 = min( y0,_maxY-1 );
^
In file included from c:\users\arduino\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\algorithm:62:0,
from C:\Users\Arduino\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.1\cores\esp8266/Arduino.h:254,
from C:\Users\Arduino\Documents\Arduino\libraries\TFT_22_ILI9225\src\TFT_22_ILI9225.h:20,
from C:\Users\Arduino\Documents\Arduino\libraries\TFT_22_ILI9225\src\TFT_22_ILI9225.cpp:1:
c:\users\arduino\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\bits\stl_algo.h:4221:5: note: template _Tp std::min(std::initializer_list<_Tp>)
min(initializer_list<_Tp> __l)
^
c:\users\arduino\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\bits\stl_algo.h:4221:5: note: template argument deduction/substitution failed:
C:\Users\Arduino\Documents\Arduino\libraries\TFT_22_ILI9225\src\TFT_22_ILI9225.cpp:453:26: note: mismatched types 'std::initializer_list<_Tp>' and 'short unsigned int'
y0 = min( y0,_maxY-1 );
^
In file included from c:\users\arduino\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\algorithm:61:0,
from C:\Users\Arduino\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.1\cores\esp8266/Arduino.h:254,
from C:\Users\Arduino\Documents\Arduino\libraries\TFT_22_ILI9225\src\TFT_22_ILI9225.h:20,
from C:\Users\Arduino\Documents\Arduino\libraries\TFT_22_ILI9225\src\TFT_22_ILI9225.cpp:1:
c:\users\arduino\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\bits\stl_algobase.h:239:5: note: template<class _Tp, class _Compare> const _Tp& std::min(const _Tp&, const _Tp&, _Compare)
min(const _Tp& __a, const _Tp& __b, _Compare __comp)
^
c:\users\arduino\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\bits\stl_algobase.h:239:5: note: template argument deduction/substitution failed:
C:\Users\Arduino\Documents\Arduino\libraries\TFT_22_ILI9225\src\TFT_22_ILI9225.cpp:453:26: note: deduced conflicting types for parameter 'const _Tp' ('short unsigned int' and 'int')
y0 = min( y0,_maxY-1 );
^
In file included from c:\users\arduino\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\algorithm:61:0,
from C:\Users\Arduino\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.1\cores\esp8266/Arduino.h:254,
from C:\Users\Arduino\Documents\Arduino\libraries\TFT_22_ILI9225\src\TFT_22_ILI9225.h:20,
from C:\Users\Arduino\Documents\Arduino\libraries\TFT_22_ILI9225\src\TFT_22_ILI9225.cpp:1:
c:\users\arduino\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\bits\stl_algobase.h:193:5: note: template const _Tp& std::min(const _Tp&, const _Tp&)
min(const _Tp& __a, const _Tp& __b)
^
c:\users\arduino\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\bits\stl_algobase.h:193:5: note: template argument deduction/substitution failed:
C:\Users\Arduino\Documents\Arduino\libraries\TFT_22_ILI9225\src\TFT_22_ILI9225.cpp:453:26: note: deduced conflicting types for parameter 'const _Tp' ('short unsigned int' and 'int')
y0 = min( y0,_maxY-1 );
^
C:\Users\Arduino\Documents\Arduino\libraries\TFT_22_ILI9225\src\TFT_22_ILI9225.cpp:454:26: error: no matching function for call to 'min(uint16_t&, int)'
y1 = min( y1,_maxY-1 );
^
C:\Users\Arduino\Documents\Arduino\libraries\TFT_22_ILI9225\src\TFT_22_ILI9225.cpp:454:26: note: candidates are:
In file included from c:\users\arduino\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\algorithm:62:0,
from C:\Users\Arduino\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.1\cores\esp8266/Arduino.h:254,
from C:\Users\Arduino\Documents\Arduino\libraries\TFT_22_ILI9225\src\TFT_22_ILI9225.h:20,
from C:\Users\Arduino\Documents\Arduino\libraries\TFT_22_ILI9225\src\TFT_22_ILI9225.cpp:1:
c:\users\arduino\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\bits\stl_algo.h:4226:5: note: template<class _Tp, class _Compare> _Tp std::min(std::initializer_list<_Tp>, _Compare)
min(initializer_list<_Tp> __l, _Compare __comp)
^
c:\users\arduino\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\bits\stl_algo.h:4226:5: note: template argument deduction/substitution failed:
C:\Users\Arduino\Documents\Arduino\libraries\TFT_22_ILI9225\src\TFT_22_ILI9225.cpp:454:26: note: mismatched types 'std::initializer_list<_Tp>' and 'short unsigned int'
y1 = min( y1,_maxY-1 );
^
In file included from c:\users\arduino\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\algorithm:62:0,
from C:\Users\Arduino\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.1\cores\esp8266/Arduino.h:254,
from C:\Users\Arduino\Documents\Arduino\libraries\TFT_22_ILI9225\src\TFT_22_ILI9225.h:20,
from C:\Users\Arduino\Documents\Arduino\libraries\TFT_22_ILI9225\src\TFT_22_ILI9225.cpp:1:
c:\users\arduino\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\bits\stl_algo.h:4221:5: note: template _Tp std::min(std::initializer_list<_Tp>)
min(initializer_list<_Tp> __l)
^
c:\users\arduino\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\bits\stl_algo.h:4221:5: note: template argument deduction/substitution failed:
C:\Users\Arduino\Documents\Arduino\libraries\TFT_22_ILI9225\src\TFT_22_ILI9225.cpp:454:26: note: mismatched types 'std::initializer_list<_Tp>' and 'short unsigned int'
y1 = min( y1,_maxY-1 );
^
In file included from c:\users\arduino\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\algorithm:61:0,
from C:\Users\Arduino\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.1\cores\esp8266/Arduino.h:254,
from C:\Users\Arduino\Documents\Arduino\libraries\TFT_22_ILI9225\src\TFT_22_ILI9225.h:20,
from C:\Users\Arduino\Documents\Arduino\libraries\TFT_22_ILI9225\src\TFT_22_ILI9225.cpp:1:
c:\users\arduino\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\bits\stl_algobase.h:239:5: note: template<class _Tp, class _Compare> const _Tp& std::min(const _Tp&, const _Tp&, _Compare)
min(const _Tp& __a, const _Tp& __b, _Compare __comp)
^
c:\users\arduino\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\bits\stl_algobase.h:239:5: note: template argument deduction/substitution failed:
C:\Users\Arduino\Documents\Arduino\libraries\TFT_22_ILI9225\src\TFT_22_ILI9225.cpp:454:26: note: deduced conflicting types for parameter 'const _Tp' ('short unsigned int' and 'int')
y1 = min( y1,_maxY-1 );
^
In file included from c:\users\arduino\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\algorithm:61:0,
from C:\Users\Arduino\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.1\cores\esp8266/Arduino.h:254,
from C:\Users\Arduino\Documents\Arduino\libraries\TFT_22_ILI9225\src\TFT_22_ILI9225.h:20,
from C:\Users\Arduino\Documents\Arduino\libraries\TFT_22_ILI9225\src\TFT_22_ILI9225.cpp:1:
c:\users\arduino\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\bits\stl_algobase.h:193:5: note: template const _Tp& std::min(const _Tp&, const _Tp&)
min(const _Tp& __a, const _Tp& __b)
^
c:\users\arduino\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\bits\stl_algobase.h:193:5: note: template argument deduction/substitution failed:
C:\Users\Arduino\Documents\Arduino\libraries\TFT_22_ILI9225\src\TFT_22_ILI9225.cpp:454:26: note: deduced conflicting types for parameter 'const _Tp' ('short unsigned int' and 'int')
y1 = min( y1,_maxY-1 );
^
exit status 1
Fehler beim Kompilieren für das Board NodeMCU 1.0 (ESP-12E Module).
I wanted to test the library but unfortunately it doesn't work for me. I have olny white screen. Older fork works great but it haven't
important functionality.
https://github.com/jorgegarciadev/TFT_22_ILI9225
I have AMICA nodemcu and 11 pins 2.0 tft display (china).
When I use your library I get an error on the serial port like this:
ets Jan 8 2013,rst cause:4, boot mode:(3,6)
wdt reset
load 0x4010f000, len 3584, room 16
tail 0
chksum 0xb0
csum 0xb0
v2843a5ac
~ld
This is my pinout mapping:
static const uint8_t D0 = 16;
static const uint8_t D1 = 5;
static const uint8_t D2 = 4;
static const uint8_t D3 = 0;
static const uint8_t D4 = 2;
static const uint8_t D5 = 14;
static const uint8_t D6 = 12;
static const uint8_t D7 = 13;
static const uint8_t D8 = 15;
static const uint8_t D9 = 3;
static const uint8_t D10 = 1;
#define TFT_RST D4
#define TFT_RS D2
#define TFT_CS D8 // SS
#define TFT_SDI D7 // MOSI
#define TFT_CLK D5 // SCK
#define TFT_LED D1 // 0 if wired to +5V directly
Hello NKawu,
I was trying to make a game on ili9225 using arduino leonardo, I noticed when using tft.clear() functions it uses fillRectangle() function with COLOR_BLACK to clear the whole screen. But I want a faster clear functions so that I could animate using fillCircle and fillRectangle functions. Is there any way to clear faster ? I tried removing that delay(10) in clear() function of TFT_22_ILI9225.cpp
Hola, estoy teniendo problemas para usar esta libreria con raspberry pi pico, uso platformio en visual studio code, los errores son los siguientes:
.pio\libdeps\pico\TFT 22 ILI9225\src\DefaultFonts.c:11:30: error: unknown type name 'uint8_t'
11 | #define fontdatatype const uint8_t
| ^~~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\DefaultFonts.c:20:1: note: in expansion of macro 'fontdatatype'
20 | fontdatatype Terminal6x8[] PROGMEM = {
| ^~~~~~~~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\DefaultFonts.c:20:28: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'PROGMEM'
20 | fontdatatype Terminal6x8[] PROGMEM = {
| ^~~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\DefaultFonts.c:11:30: error: unknown type name 'uint8_t'
11 | #define fontdatatype const uint8_t
| ^~~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\DefaultFonts.c:128:1: note: in expansion of macro 'fontdatatype'
128 | fontdatatype Terminal11x16[] PROGMEM = {
| ^~~~~~~~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\DefaultFonts.c:128:30: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'PROGMEM'
128 | fontdatatype Terminal11x16[] PROGMEM = {
| ^~~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\DefaultFonts.c:11:30: error: unknown type name 'uint8_t'
11 | #define fontdatatype const uint8_t
| ^~~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\DefaultFonts.c:236:1: note: in expansion of macro 'fontdatatype'
236 | fontdatatype Terminal12x16[] PROGMEM = {
| ^~~~~~~~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\DefaultFonts.c:236:30: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'PROGMEM'
236 | fontdatatype Terminal12x16[] PROGMEM = {
| ^~~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\DefaultFonts.c:11:30: error: unknown type name 'uint8_t'
11 | #define fontdatatype const uint8_t
| ^~~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\DefaultFonts.c:344:1: note: in expansion of macro 'fontdatatype'
344 | fontdatatype Trebuchet_MS16x21[] PROGMEM = {
| ^~~~~~~~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\DefaultFonts.c:344:34: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'PROGMEM'
344 | fontdatatype Trebuchet_MS16x21[] PROGMEM = {
| ^~~~~~~
Compiling .pio\build\pico\FrameworkArduinoVariant\double_tap_usb_boot.c.o
*** [.pio\build\pico\libe47\TFT 22 ILI9225\DefaultFonts.c.o] Error 1
In file included from src\main.cpp:4:
.pio\libdeps\pico\TFT 22 ILI9225\src/TFT_22_ILI9225.h:419:18: error: 'RwReg' does not name a type
419 | volatile RwReg *mosiport, *clkport, *dcport, *rsport, *csport;
| ^~~~~
*** [.pio\build\pico\src\main.cpp.o] Error 1
In file included from .pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp:1:
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.h:419:18: error: 'RwReg' does not name a type
419 | volatile RwReg *mosiport, *clkport, *dcport, *rsport, *csport;
| ^~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp: In member function 'void TFT_22_ILI9225::begin()':
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp:281:5: error: 'csport' was not declared in this scope; did you mean 'ushort'?
281 | csport = portOutputRegister(digitalPinToPort(_cs));
| ^~~~~~
| ushort
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp:281:17: error: 'portOutputRegister' was not declared in this scope
281 | csport = portOutputRegister(digitalPinToPort(_cs));
| ^~~~~~~~~~~~~~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp:282:17: error: 'digitalPinToBitMask' was not declared in this scope; did you mean 'digitalPinToPinName'?
282 | cspinmask = digitalPinToBitMask(_cs);
| ^~~~~~~~~~~~~~~~~~~
| digitalPinToPinName
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp:283:5: error: 'dcport' was not declared in this scope
283 | dcport = portOutputRegister(digitalPinToPort(_rs));
| ^~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp:294:9: error: 'clkport' was not declared in this scope
294 | clkport = portOutputRegister(digitalPinToPort(_clk));
| ^~~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp:296:9: error: 'mosiport' was not declared in this scope
296 | mosiport = portOutputRegister(digitalPinToPort(_sdi));
| ^~~~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp:301:9: error: 'clkport' was not declared in this scope
301 | clkport = 0;
| ^~~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp:303:9: error: 'mosiport' was not declared in this scope
303 | mosiport = 0;
| ^~~~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp: In member function 'void TFT_22_ILI9225::_spiWrite(uint8_t)':
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp:64:38: error: 'mosiport' was not declared in this scope
64 | #define SSPI_MOSI_HIGH() *mosiport |= mosipinmask
| ^~~~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp:410:13: note: in expansion of macro 'SSPI_MOSI_HIGH'
410 | SSPI_MOSI_HIGH();
| ^~~~~~~~~~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp:65:38: error: 'mosiport' was not declared in this scope
65 | #define SSPI_MOSI_LOW() *mosiport &= ~mosipinmask
| ^~~~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp:412:13: note: in expansion of macro 'SSPI_MOSI_LOW'
412 | SSPI_MOSI_LOW();
| ^~~~~~~~~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp:66:38: error: 'clkport' was not declared in this scope
66 | #define SSPI_SCK_HIGH() *clkport |= clkpinmask
| ^~~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp:414:9: note: in expansion of macro 'SSPI_SCK_HIGH'
414 | SSPI_SCK_HIGH();
| ^~~~~~~~~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp: In member function 'void TFT_22_ILI9225::_spiWriteCommand(uint8_t)':
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp:51:38: error: 'dcport' was not declared in this scope
51 | #define SPI_DC_LOW() *dcport &= ~dcpinmask
| ^~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp:434:5: note: in expansion of macro 'SPI_DC_LOW'
434 | SPI_DC_LOW();
| ^~~~~~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp:53:38: error: 'csport' was not declared in this scope; did you mean 'ushort'?
53 | #define SPI_CS_LOW() *csport &= ~cspinmask
| ^~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp:435:5: note: in expansion of macro 'SPI_CS_LOW'
435 | SPI_CS_LOW();
| ^~~~~~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp: In member function 'void TFT_22_ILI9225::_spiWriteData(uint8_t)':
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp:50:38: error: 'dcport' was not declared in this scope
50 | #define SPI_DC_HIGH() *dcport |= dcpinmask
| ^~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp:442:5: note: in expansion of macro 'SPI_DC_HIGH'
442 | SPI_DC_HIGH();
| ^~~~~~~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp:53:38: error: 'csport' was not declared in this scope; did you mean 'ushort'?
53 | #define SPI_CS_LOW() *csport &= ~cspinmask
| ^~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp:443:5: note: in expansion of macro 'SPI_CS_LOW'
443 | SPI_CS_LOW();
| ^~~~~~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp: In member function 'void TFT_22_ILI9225::_writeCommand16(uint16_t)':
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp:51:38: error: 'dcport' was not declared in this scope
51 | #define SPI_DC_LOW() *dcport &= ~dcpinmask
| ^~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp:809:5: note: in expansion of macro 'SPI_DC_LOW'
809 | SPI_DC_LOW();
| ^~~~~~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp:53:38: error: 'csport' was not declared in this scope; did you mean 'ushort'?
53 | #define SPI_CS_LOW() *csport &= ~cspinmask
| ^~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp:810:5: note: in expansion of macro 'SPI_CS_LOW'
810 | SPI_CS_LOW();
| ^~~~~~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp:64:38: error: 'mosiport' was not declared in this scope
64 | #define SSPI_MOSI_HIGH() *mosiport |= mosipinmask
| ^~~~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp:822:17: note: in expansion of macro 'SSPI_MOSI_HIGH'
822 | SSPI_MOSI_HIGH();
| ^~~~~~~~~~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp:65:38: error: 'mosiport' was not declared in this scope
65 | #define SSPI_MOSI_LOW() *mosiport &= ~mosipinmask
| ^~~~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp:824:17: note: in expansion of macro 'SSPI_MOSI_LOW'
824 | SSPI_MOSI_LOW();
| ^~~~~~~~~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp:66:38: error: 'clkport' was not declared in this scope
66 | #define SSPI_SCK_HIGH() *clkport |= clkpinmask
| ^~~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp:826:13: note: in expansion of macro 'SSPI_SCK_HIGH'
826 | SSPI_SCK_HIGH();
| ^~~~~~~~~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp: In member function 'void TFT_22_ILI9225::_writeData16(uint16_t)':
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp:50:38: error: 'dcport' was not declared in this scope
50 | #define SPI_DC_HIGH() *dcport |= dcpinmask
| ^~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp:835:5: note: in expansion of macro 'SPI_DC_HIGH'
835 | SPI_DC_HIGH();
| ^~~~~~~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp:53:38: error: 'csport' was not declared in this scope; did you mean 'ushort'?
53 | #define SPI_CS_LOW() *csport &= ~cspinmask
| ^~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp:836:5: note: in expansion of macro 'SPI_CS_LOW'
836 | SPI_CS_LOW();
| ^~~~~~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp:64:38: error: 'mosiport' was not declared in this scope
64 | #define SSPI_MOSI_HIGH() *mosiport |= mosipinmask
| ^~~~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp:848:17: note: in expansion of macro 'SSPI_MOSI_HIGH'
848 | SSPI_MOSI_HIGH();
| ^~~~~~~~~~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp:65:38: error: 'mosiport' was not declared in this scope
65 | #define SSPI_MOSI_LOW() *mosiport &= ~mosipinmask
| ^~~~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp:850:17: note: in expansion of macro 'SSPI_MOSI_LOW'
850 | SSPI_MOSI_LOW();
| ^~~~~~~~~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp:66:38: error: 'clkport' was not declared in this scope
66 | #define SSPI_SCK_HIGH() *clkport |= clkpinmask
| ^~~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp:852:13: note: in expansion of macro 'SSPI_SCK_HIGH'
852 | SSPI_SCK_HIGH();
| ^~~~~~~~~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp: In member function 'void TFT_22_ILI9225::drawBitmap(uint16_t, uint16_t, const uint16_t**, int16_t, int16_t)':
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp:50:38: error: 'dcport' was not declared in this scope
50 | #define SPI_DC_HIGH() *dcport |= dcpinmask
| ^~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp:1190:5: note: in expansion of macro 'SPI_DC_HIGH'
1190 | SPI_DC_HIGH();
| ^~~~~~~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp:53:38: error: 'csport' was not declared in this scope; did you mean 'ushort'?
53 | #define SPI_CS_LOW() *csport &= ~cspinmask
| ^~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp:1191:5: note: in expansion of macro 'SPI_CS_LOW'
1191 | SPI_CS_LOW();
| ^~~~~~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp: In member function 'void TFT_22_ILI9225::drawBitmap(uint16_t, uint16_t, uint16_t**, int16_t, int16_t)':
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp:50:38: error: 'dcport' was not declared in this scope
50 | #define SPI_DC_HIGH() *dcport |= dcpinmask
| ^~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp:1212:5: note: in expansion of macro 'SPI_DC_HIGH'
1212 | SPI_DC_HIGH();
| ^~~~~~~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp:53:38: error: 'csport' was not declared in this scope; did you mean 'ushort'?
53 | #define SPI_CS_LOW() *csport &= ~cspinmask
| ^~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp:1213:5: note: in expansion of macro 'SPI_CS_LOW'
1213 | SPI_CS_LOW();
| ^~~~~~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp: In member function 'void TFT_22_ILI9225::drawBitmap(uint16_t, uint16_t, const uint16_t*, int16_t, int16_t)':
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp:50:38: error: 'dcport' was not declared in this scope
50 | #define SPI_DC_HIGH() *dcport |= dcpinmask
| ^~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp:1234:5: note: in expansion of macro 'SPI_DC_HIGH'
1234 | SPI_DC_HIGH();
| ^~~~~~~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp:53:38: error: 'csport' was not declared in this scope; did you mean 'ushort'?
53 | #define SPI_CS_LOW() *csport &= ~cspinmask
| ^~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp:1235:5: note: in expansion of macro 'SPI_CS_LOW'
1235 | SPI_CS_LOW();
| ^~~~~~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp: In member function 'void TFT_22_ILI9225::drawBitmap(uint16_t, uint16_t, uint16_t*, int16_t, int16_t)':
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp:50:38: error: 'dcport' was not declared in this scope
50 | #define SPI_DC_HIGH() *dcport |= dcpinmask
| ^~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp:1253:5: note: in expansion of macro 'SPI_DC_HIGH'
1253 | SPI_DC_HIGH();
| ^~~~~~~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp:53:38: error: 'csport' was not declared in this scope; did you mean 'ushort'?
53 | #define SPI_CS_LOW() *csport &= ~cspinmask
| ^~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp:1254:5: note: in expansion of macro 'SPI_CS_LOW'
1254 | SPI_CS_LOW();
| ^~~~~~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp: In member function 'void TFT_22_ILI9225::startWrite()':
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp:53:38: error: 'csport' was not declared in this scope; did you mean 'ushort'?
53 | #define SPI_CS_LOW() *csport &= ~cspinmask
| ^~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp:1271:9: note: in expansion of macro 'SPI_CS_LOW'
1271 | SPI_CS_LOW();
| ^~~~~~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp: In member function 'void TFT_22_ILI9225::endWrite()':
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp:52:38: error: 'csport' was not declared in this scope; did you mean 'ushort'?
52 | #define SPI_CS_HIGH() *csport |= cspinmask
| ^~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp:1278:9: note: in expansion of macro 'SPI_CS_HIGH'
1278 | SPI_CS_HIGH();
| ^~~~~~~~~~~
In file included from C:\Users\Luciano\.platformio\packages\framework-arduino-mbed\cores\arduino/api/String.h:33,
from C:\Users\Luciano\.platformio\packages\framework-arduino-mbed\cores\arduino/api/IPAddress.h:24,
from C:\Users\Luciano\.platformio\packages\framework-arduino-mbed\cores\arduino/api/ArduinoAPI.h:30,
from C:\Users\Luciano\.platformio\packages\framework-arduino-mbed\cores\arduino/Arduino.h:30,
from .pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.h:20,
from .pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp:1:
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp: In member function 'uint16_t TFT_22_ILI9225::drawGFXChar(int16_t, int16_t, unsigned char, uint16_t)':
C:\Users\Luciano\.platformio\packages\framework-arduino-mbed\cores\arduino/api/deprecated-avr-comp/avr/pgmspace.h:104:32: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
104 | #define pgm_read_dword(addr) (*(const unsigned long *)(addr))
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp:42:45: note: in expansion of macro 'pgm_read_dword'
42 | #define pgm_read_pointer(addr) ((void *)pgm_read_dword(addr))
| ^~~~~~~~~~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp:1315:39: note: in expansion of macro 'pgm_read_pointer'
1315 | GFXglyph *glyph = &(((GFXglyph *)pgm_read_pointer(&gfxFont->glyph))[c]);
| ^~~~~~~~~~~~~~~~
C:\Users\Luciano\.platformio\packages\framework-arduino-mbed\cores\arduino/api/deprecated-avr-comp/avr/pgmspace.h:104:32: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
104 | #define pgm_read_dword(addr) (*(const unsigned long *)(addr))
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp:42:45: note: in expansion of macro 'pgm_read_dword'
42 | #define pgm_read_pointer(addr) ((void *)pgm_read_dword(addr))
| ^~~~~~~~~~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp:1316:35: note: in expansion of macro 'pgm_read_pointer'
1316 | uint8_t *bitmap = (uint8_t *)pgm_read_pointer(&gfxFont->bitmap);
| ^~~~~~~~~~~~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp: In member function 'void TFT_22_ILI9225::getGFXCharExtent(uint8_t, int16_t*, int16_t*, int16_t*)':
C:\Users\Luciano\.platformio\packages\framework-arduino-mbed\cores\arduino/api/deprecated-avr-comp/avr/pgmspace.h:104:32: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
104 | #define pgm_read_dword(addr) (*(const unsigned long *)(addr))
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp:42:45: note: in expansion of macro 'pgm_read_dword'
42 | #define pgm_read_pointer(addr) ((void *)pgm_read_dword(addr))
| ^~~~~~~~~~~~~~
.pio\libdeps\pico\TFT 22 ILI9225\src\TFT_22_ILI9225.cpp:1351:42: note: in expansion of macro 'pgm_read_pointer'
1351 | GFXglyph *glyph = &(((GFXglyph *)pgm_read_pointer(&gfxFont->glyph))[c - first]);
| ^~~~~~~~~~~~~~~~
*** [.pio\build\pico\libe47\TFT 22 ILI9225\TFT_22_ILI9225.cpp.o] Error 1
El codigo que estoy usando es el siguiente:
#include <Arduino.h>
#include "SPI.h"
#include "TFT_22_ILI9225.h"
// Include font definition files
// NOTE: These files may not have all characters defined! Check the GFXfont def
// params 3 + 4, e.g. 0x20 = 32 = space to 0x7E = 126 = ~
#include <../fonts/FreeSans12pt7b.h>
#include <../fonts/FreeSans24pt7b.h>
#if defined (ARDUINO_ARCH_STM32F1)
#define TFT_RST PA1
#define TFT_RS PA2
#define TFT_CS PA0 // SS
#define TFT_SDI PA7 // MOSI
#define TFT_CLK PA5 // SCK
#define TFT_LED 0 // 0 if wired to +5V directly
#elif defined(ESP8266)
#define TFT_RST 4 // D2
#define TFT_RS 5 // D1
#define TFT_CLK 14 // D5 SCK
//#define TFT_SDO 12 // D6 MISO
#define TFT_SDI 13 // D7 MOSI
#define TFT_CS 15 // D8 SS
#define TFT_LED 2 // D4 set 0 if wired to +5V directly -> D3=0 is not possible !!
#elif defined(ESP32)
#define TFT_RST 26 // IO 26
#define TFT_RS 25 // IO 25
#define TFT_CLK 14 // HSPI-SCK
//#define TFT_SDO 12 // HSPI-MISO
#define TFT_SDI 13 // HSPI-MOSI
#define TFT_CS 15 // HSPI-SS0
#define TFT_LED 0 // 0 if wired to +5V directly
#else
#define TFT_RST 6
#define TFT_RS 7
#define TFT_CS 5 // SS
#define TFT_SDI 3 // MOSI
#define TFT_CLK 2 // SCK
#define TFT_LED 0 // 0 if wired to +5V directly;
#endif
#define TFT_BRIGHTNESS 200 // Initial brightness of TFT backlight (optional)
// Use hardware SPI (faster - on Uno: 13-SCK, 12-MISO, 11-MOSI)
TFT_22_ILI9225 tft = TFT_22_ILI9225(TFT_RST, TFT_RS, TFT_CS, TFT_LED, TFT_BRIGHTNESS);
// Use software SPI (slower)
//TFT_22_ILI9225 tft = TFT_22_ILI9225(TFT_RST, TFT_RS, TFT_CS, TFT_SDI, TFT_CLK, TFT_LED, TFT_BRIGHTNESS);
// Variables and constants
int16_t x=0, y=0, w, h;
// Setup
void setup() {
tft.begin();
tft.clear();
// Draw first string in big font
String s1 = "6789";
tft.setGFXFont(&FreeSans24pt7b); // Set current font
tft.getGFXTextExtent(s1, x, y, &w, &h); // Get string extents
y = h; // Set y position to string height
tft.drawGFXText(x, y, s1, COLOR_RED); // Print string
// Draw second string in smaller font
tft.setGFXFont(&FreeSans12pt7b); // Change font
String s2 = "Hello"; // Create string object
tft.getGFXTextExtent(s2, x, y, &w, &h); // Get string extents
y += h + 10; // Set y position to string height plus shift down 10 pixels
tft.drawGFXText(x, y, s2, COLOR_BLUE); // Print string
// Draw third string in same font
String s3 = "World!"; // Create string object
y += h + 2; // Set y position to previous string height plus shift down 2 pixels
tft.drawGFXText(x, y, s3, COLOR_GREEN); // Print string
}
// Loop
void loop() {
}
It seems that the 2.2 inch TFT is outdated and no longer being made. The 2.2" is hard to find now. More frequent you see the 2.0" TFT, which seems equal but smaller. Do you think that the library works for the 2.0"also?
https://www.ebay.com/itm/ILI9225-2-0-Inch-TFT-Display-Module-Serial-Port-SPI-Interface-Applied-176x220-/302188734615?hash=item465bda2897:g:r8sAAOSw5cNYb0Lf
Hi there, i'm trying to draw a color image on the screen with some drawBitmap variants. I noticed that it takes a 2D matrix, but it might be useful to have a version with takes a single array (of size wh2). For example in GIMP you can save a file in C format and it outputs a ready made 16 bit 5,6,5 array.
Should be trivial to implement.
Thanks!
Thanks for creating this library! One thing I am struggling with is the backlight. I have tried various things to get the backlight to fade in. It seems all I can do is have it on or off. For example when analog write goes over 127 and backlight come on then when it goes below 128 it turns off. Do you think you could possibly provide an example sketch in the library demonstrating this?
Has this library been tested successfully with STM32 Nucleo boards?
It works fine with an Arduino Nano, but I don't manage to run the examples on a STM32L412KB, which has the same pins. It compiles but nothing happens after loading. even a Serial.println message doesn't show off, which suggests that it fails earlyer.
I tried to declare the pins with Arduino style (9, 10, 11...) and STM style (PA8, PA11, PB5).
Thank you for any help.
#include "SPI.h"
#include "TFT_22_ILI9225.h"
#define TFT_RST PB4 //12
#define TFT_DC PA8 //9
//#define TFT_RS PA8 //9
#define TFT_CS PA11 //10 // SS
#define TFT_SDI PB5 //11 // MOSI
#define TFT_CLK PB3 //13 // SCK
#define TFT_LED 0 // 0 if wired to +5V directly
TFT_22_ILI9225 tft = TFT_22_ILI9225(TFT_RST, TFT_DC, TFT_CS, TFT_LED, TFT_BRIGHTNESS);
void setup() {
Serial.begin(9600);
Serial.println("Setup...");
//#if defined(ESP32)
// hspi.begin();
// tft.begin(hspi);
//#else
// tft.begin();
//#endif
//
// //Orientation paysage
// tft.setOrientation(3);
// tft.clear();
Serial.println("Setup end...");
}
I'm interfacing Arduino Uno with ili925 and on uploading, I get the following error
Invalid library found in D:\New folder\Arduino\libraries\TFT_22_ILI9225: no headers files (.h) found in D:\New folder\Arduino\libraries\TFT_22_ILI9225
Hello, i'm trying to make it work with an esp8266 from a couple of hours.
Please can you give me a working GPIO config between esp-12 and ili9225 ? thanks
Dario
Hi!
Could you please gimme the advice to change library code correctly to add Cortex-M0 support?
I got Arduino M0 board, but according to Your source files and library.json it`s not supported.
Thanks.
When I try to compile for the ESP32 example "Basic_Demo" I get an error:
In file included from /home/xxxxx/Arduino/libraries/TFT_22_ILI9225/examples/Basic_Demo/Basic_Demo.ino:3:0: /home/xxxxx/Arduino/libraries/TFT_22_ILI9225/src/TFT_22_ILI9225.h:145:33: error: expected ';' at end of member declaration void begin(SPIClass &spi) ^ /home/xxxxx/Arduino/libraries/TFT_22_ILI9225/examples/Basic_Demo/Basic_Demo.ino: In function 'void setup()': Basic_Demo:253: error: no matching function for call to 'TFT_22_ILI9225::begin()' tft.begin(); ^ In file included from /home/xxxxx/Arduino/libraries/TFT_22_ILI9225/examples/Basic_Demo/Basic_Demo.ino:3:0: /home/xxxxx/Arduino/libraries/TFT_22_ILI9225/src/TFT_22_ILI9225.h:145:14: note: candidate: void TFT_22_ILI9225::begin(SPIClass&) void begin(SPIClass &spi) ^ /home/xxxxx/Arduino/libraries/TFT_22_ILI9225/src/TFT_22_ILI9225.h:145:14: note: candidate expects 1 argument, 0 provided exit status 1 no matching function for call to 'TFT_22_ILI9225::begin()'
My configuration:
Linux Mint 18.2 64bit
Arduino 1.8.5
board definition ESP32 espressif GIT version
Здравствуйте!
Не могли бы Вы добавить в библиотеку числовые шрифты больших размеров.
How to write new values on display so that the old characterrs are erased rom the background (using GXF Fonts)? I think 'tft.setBackgroundColor(COLOR_BLACK);' does not work with GFX Fonts? Now I'm using 'tft.fillRectangle();' to cover the old fonts before drawing new ones but it makes a flickering effect.
Is it platform independent?
Is it works with:
Raspberry Pi Pico
ESP32
ESP8266 ?
Hi again,
I discovered another bug. drawChar applies startWrite/checkSPI but if fastmode becomes enabled, the code calls _setWindow, which also calls startWrite. Hence a hangup.
Before proposing a pull request (currently I disable fastMode), I wonder how we are supposed to deal with these startWrite/checkSPI functions.
The current idea is that only the first function opens the SPI transaction. But as also helper functions can be called directly themselves (p.e. drawText calls drawChar, drawChar calls _setWindows, etc), the code has to check whether it is a main function or a helper function.
@Nkawu (or others): how to proceed?
PS: For example use a counter: only '0' starts the transaction, and helpers '1' or helper-helpers '2', etc only transmit.
How to convert colour image to bitmap in order to display on the LCD screen.
Hi,
As the title says, I'm using version 1.4.3 and when I use fillCircle
to render a circle partially offscreen (probably only about 20% off), it freezes my arduino.
how to increase font size in this library Nkawu /TFT_22_ILI9225 . thank you
ESP32 supports hardware SPI on arbitrary GPIO pins.
Could you add a feature that allows using hardware SPI instead of software SPI in the code?(instead of activating software SPI for non-standard pins, the pin numbers need to be passed to _spi.begin(...) as arguments)
A quick&dirty hack solution (for ESP32 only, tested and functional) is to replace
// Hardware SPI
SPI_BEGIN();
with
// Hardware SPI
if(_clk < 0) { SPI_BEGIN(); }
else {
SPI_OBJECT.begin(_clk, -1, _sdi, _cs);
_clk = -1; // force use of hardware SPI in remaining code parts
}
But this is not elegant, and of course should be made conditional only for ESP32
When I use ESP32 Dev module to control TFT LCD ILI9225, I found that setbacklight() and setBacklightBrightness() can not work, backlight pin still remain LOW. Then I found out the following code in the setbacklight () function in the TFT_22_ILI9225.cpp file by debugging the code
** # ifndef ESP32
if (_led)
analogWrite (_led, blState? _brightness: 0);
# endif **
When I commented out #ifndef ESP32 statement, setbacklight () worked normally.I don't know why add these two pre-coniles codes?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.