Renesas GR-Peach LCD Interface
Dependencies: EthernetInterface HTTPD PubNub SDFileSystem mbed-rtos mbed picojson
Renesas GR-Peach LCD Interface
gen_helper.h
- Committer:
- nikhilchaturtvedi
- Date:
- 2015-10-23
- Revision:
- 0:0b32d3eaabfe
File content as of revision 0:0b32d3eaabfe:
#ifndef _GEN_HELPER_H_ #define _GEN_HELPER_H_ #include "mbed.h" #include "SDFileSystem.h" /* Helper class for drawing onto LCD over SPI*/ /*#defines for screen settings and color - based on Adafruit definitions*/ #define SW_RESET 0x01 #define AWAKE_SLEEPMODE 0x11 #define NORMAL_DISP_ON 0x13 #define INVOFF 0x20 #define DISPLAY_ON 0x29 #define COLUMN_ADDR_SET 0x2A #define ROW_ADDR_SET 0x2B #define WRITE_RAM 0x2C #define COLOR_MODE 0x3A #define ORIENTATION 0x36 #define FRAMERATE_NORMAL 0xB1 #define FRAMERATE_IDLE 0xB2 #define FRAMERATE_PARTIAL 0xB3 #define INVERTED_MODE_OFF 0xB4 #define POWER_CONTROL_1 0xC0 #define POWER_CONTROL_2 0xC1 #define POWER_CONTROL_3 0xC2 #define POWER_CONTROL_4 0xC3 #define POWER_CONTROL_5 0xC4 #define POWER_CONTROL_6 0xC5 //Screen dimensions #define SCREEN_HEIGHT 160 #define SCREEN_WIDTH 120 // Color definitions #define BLACK 0x0000 #define BLUE 0x001F #define RED 0xF800 #define GREEN 0x07E0 #define CYAN 0x07FF #define MAGENTA 0xF81F #define YELLOW 0xFFE0 #define WHITE 0xFFFF #define SKYBLUE 0x6AFFD8 #define BROWN 0x8B5436 //hardcoded definitions for testing #define HOST_IP_ADDR "143.103.6.188" #define HOST_GATEWAY "143.103.6.254" #define HOST_SUBNET "255.255.255.0" #define HOST_PORT 80 class gen_helper { public: /* LCD function declarations */ int spiwrite(uint8_t c); void write_spi_command(uint8_t c); void write_spi_data(uint8_t c); void draw_pixel(int16_t x, int16_t y, uint16_t color); void lcd_init(); void fill_rect(int16_t x0, int16_t y0, int16_t x1, int16_t y1, uint32_t color); void write_rgb(uint32_t color, uint32_t repeat); void draw_vertical_line(int16_t x, int16_t y, int16_t h, uint16_t color); void draw_horizontal_line(int16_t x, int16_t y, int16_t w, uint16_t color); void set_screen_coor(uint8_t x0, uint8_t y0, uint8_t x1, uint8_t y1); void init_console(); void rotate_line(float x1, float y1, float x2, float y2, uint16_t alpha, float *X, float *Y); void massaged_line(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, float lambda, uint16_t colour, uint16_t *X, uint16_t *Y); void drawLine(int16_t x0, int16_t y0,int16_t x1, int16_t y1,uint16_t color); void draw_pattern_helper(); void draw_custom_pattern(int x0, int y0, int x1, int y1); void draw_pattern(int x1, int y1, int x2, int y2); /* SD card function declarations */ uint8_t init_disk(); uint8_t make_dir(char *path, uint32_t mode); FILE* open_file(char *path, char *mode); uint8_t close_file(FILE *fp); uint8_t init_SD(); uint8_t remove_file(char *path); void decrease_screen_brightness(float); void increase_screen_brightness(float); /* CTOR ; Use the list of pins supported at https://developer.mbed.org/teams/Renesas/wiki/GR-PEACH-rev_B-version-information*/ gen_helper(PinName MOSI, PinName MISO, PinName SCK, PinName CS, PinName Reset, PinName RS, PinName _USBTX, PinName _USBRX, PwmOut pwm); PwmOut pwm; //Backlite pin. need to be a private member and have get/set functions private: SPI lcd; /* SPI0 - MOSI, MISO, SCK P10_14, P10_15, P10_12 */ DigitalOut ssel; // Chip select P10_13 DigitalOut reset; // Reset signal P3_15 DigitalOut rs; // Register select P3_14; Problem with rs pin fixed. Serial console; //write to the console using serial comm SDFileSystem *sd_fs; //SD card file system instance uint8_t colstart; uint8_t rowstart; uint8_t _height; //height of the lcd display uint8_t _width; //width of the lcd display }; #endif