Main Page | Modules | Class Hierarchy | Alphabetical List | Data Structures | File List | Data Fields | Globals | Related Pages

otGraphics - Code example
[Graphics - TFT display library for ILI9341,ILI9486,ILI9488 and ST7735 controller]

 #include <otSerial.h>
 #include <otTimer.h>
 #include <otPrintfLite.h>
 #include <otGraphics.h>
 
 void CLineDemo();
 void CRectangleFilledDemo();
 void CRectangleDemo();
 void CCircleDemo();
 
 otGraphics tft;
 
 void setup()
 {
        UartEnableSignals(UART0);
        UartSetBaud(UART0, 115200);
        setStdout(UART0); // printf output is now directed on UART0
        TimerSetAsCounter(TIMER0);
        TimerEnable(TIMER0, true);
        tft.init();
        tft.setRotation(otGraphics::IR_270);
        tft.clear();
        tft.setTextColor(RGB565_YELLOW, RGB565_BLACK);
        tft.setTextSize(3);
 }
 
 void loop()
 {
        char    buf[16];
        CLineDemo();
        CRectangleFilledDemo();
        CRectangleDemo();
        CCircleDemo();
        for(int i = 0; i < 5000; i++)
        {
                sprintf(buf, "%04d", i);
                tft.setCursor(0, 120);
                tft.writeString(buf);
        }
 }
 
 unsigned randx(unsigned val)
 {
        return TimerGetCounts(TIMER0) * 0x1961957 + val;
 }
 
 U16 const colorIndex[16] ={ RGB565_BLACK,
                                                        RGB565_NAVY,
                                                        RGB565_DARKGREEN,
                                                        RGB565_DARKCYAN,
                                                        RGB565_MAROON,
                                                        RGB565_PURPLE,
                                                        RGB565_OLIVE,
                                                        RGB565_LIGHTGREY,
                                                        RGB565_DARKGRAY,
                                                        RGB565_BLUE,
                                                        RGB565_GREEN,
                                                        RGB565_CYAN,
                                                        RGB565_RED,
                                                        RGB565_MAGENTA,
                                                        RGB565_YELLOW,
                                                        RGB565_WHITE
 };
 
 void CLineDemo()
 {
        U16     x0, y0;
        U16     x1, y1;
        U16     color;   
        U16     no;
        const   U16 CENTER_X    = 160;
        const   U16 CENTER_Y    = 120;
        tft.clear();
        for(no = 0; no < 5000; no++)
        {
                x0 = randx(x0) % 320;
                y0 = randx(y0) % 160;
                color = no % 16;
                x1 = 2 * CENTER_X - x0;
                y1 = 2 * CENTER_Y - y0;
                tft.drawLine(x0, y0, x1, y1, colorIndex[color]);
        }
        tft.clear();
 }
  * 
 void CRectangleFilledDemo()
 {
        U16     x0, y0;
        U16     x1, y1;
        U16     color;
        U16     no;
          
        for(no = 0; no < 500; no++)
        {
                x0 = randx(x0) % 160;
                y0 = randx(y0) % 120;
                color = no % 16;
                x1 = x0 + randx(x1) % 160;
                y1 = y0 + randx(y1) % 120;
                tft.fillRect(x0, y0, x1, y1, colorIndex[color]);
        }
        tft.clear();
 }
 
 void CRectangleDemo()
 {
        U16     x0, y0;
        U16     x1, y1;
        U16     color;
        U16     no;
          
        for(no = 0; no < 5000; no++)
        {
                x0 = randx(x0) % 160;
                y0 = randx(y0) % 120;
                color = no % 16;
                x1 = x0 + randx(x1) % 160;
                y1 = y0 + randx(y1) % 120;
                tft.drawRect(x0, y0, x1, y1, colorIndex[color]);
        }
        tft.clear();
 }
 
 void CCircleDemo()
 {
        U16         x0, y0;
        U16         radius;
        U16         color;
        U16         no;
          
        for(no = 0; no < 5000; no++)
        {
                x0 = randx(x0) % 240;
                y0 = randx(y0) % 320;
                color = no % 16;
                radius = randx(radius) % 100;
                tft.drawCircle(x0, y0, radius, colorIndex[color]);
        }
        tft.clear();
 }
footer
otStudio - Library Reference - (C) 2020-23 Officina Turini, All Rights Reserved
Document built with Doxygen 1.4.0