General > Jobs

Porting ILI9341 C++ code from Arduino to CCS project

(1/1)

Jester:
Update: I have found someone to do this project. I will likely need additional software/firmware in the future, so if that’s your thing, drop me a PM.

I’m looking for an estimate (time and cost) to port the following three open source libraries that are typically used with various Arduino boards to compile and work under CCS (CodeCompserStudio ) for the Texas Instruments TMS320F280049 :

* Adafruit_ILI9341      https://github.com/adafruit/Adafruit_ILI9341
* Adafruit_GFX     https://github.com/adafruit/Adafruit-GFX-Library
* XPT2046_Touchscreen  https://github.com/PaulStoffregen/XPT2046_Touchscreen
These thee libraries are written in C++ and are used to control a small LCD display with the ILI9341 driver as well as the XPT2046 touchscreen controller for the same display. Both the ILI9341 and XPT2046 use SPI, so I think the bulk of the work is tweaking the code to use one of the SPI interfaces on the TMS320F28009 (gpio24=mosi, gpio31=miso, gpio32 = clk) instead of the Arduino SPI interface. I don’t use all of the graphic functions (for example scrolling), so no need to port everything if it’s easier not to.
I would think the “tft.” Calls in the _GFX library would likely compile as is because it simply uses the various commands used to control the ILI9341.
Presently the libraries are called as:
    Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC);  //gpio10, gpio30 on TI part
    XPT2046_Touchscreen ts(CS_PIN, 255);  // Param 2 - 255 - No interrupts   //gpio12 on TI part, button presses are scanned not irq based.

The following functions are required in the above libraries:
    tft.begin();
    tft.setRotation(3);           // Display orientation, 3 = pins on LHS
    tft.fillRoundRect(1, 4, 57, 30, 3, ILI9341_BLACK);   //x,y,w,h,r,color   
    tft.fillRect(0, 20, w, 2, ILI9341_WHITE);        // Horizontal bar upper
    tft.fillScreen(ILI9341_BLACK);
    tft.drawLine(w/4, 187, w/4, h, ILI9341_YELLOW);           // Set button right boundary Vertical line 1
    tft.drawCircle(225, 72, 5, ILI9341_CYAN);  // circle around R
    tft.drawRoundRect(163, 187, 76, 50, 3, ILI9341_BLUE);   //x,y,w,h,r,  Button outline
    tft.fillTriangle(196,77, 211,67,  211,87, ILI9341_GREEN); //                                         <-----
    tft.setTextSize(2);
    tft.setCursor(x, y);
    tft.setTextColor(color);
    tft.println(string);
    tft.print(sVal);                     
    tft.height();

    ts.begin();
    ts.getPoint();
    ts.touched();
   if (p.z > 300)

I will provide a simple program that presently compiles under CCS and runs on a custom board, the goal is to be able to control the display and get the touchscreen pushes from the display into the code provided.

Please PM with questions and or quote

Navigation

[0] Message Index

There was an error while thanking
Thanking...
Go to full version