runner
Dependencies: mbed
Diff: N5110/N5110.h
- Revision:
- 2:1900a4144537
- Parent:
- 0:1e61ade20a23
--- a/N5110/N5110.h Tue May 07 19:11:13 2019 +0000 +++ b/N5110/N5110.h Thu May 09 03:52:35 2019 +0000 @@ -3,6 +3,30 @@ #include "mbed.h" +// Command Bytes - taken from Chris Yan's library +// More information can be found in the display datasheet +// H = 0 - Basic instructions +#define CMD_DC_CLEAR_DISPLAY 0x08 +#define CMD_DC_NORMAL_MODE 0x0C +#define CMD_DC_FILL_DISPLAY 0x09 +#define CMD_DC_INVERT_VIDEO 0x0D +#define CMD_FS_HORIZONTAL_MODE 0x00 +#define CMD_FS_VERTICAL_MODE 0x02 +#define CMD_FS_BASIC_MODE 0x00 +#define CMD_FS_EXTENDED_MODE 0x01 +#define CMD_FS_ACTIVE_MODE 0x00 +#define CMD_FS_POWER_DOWN_MODE 0x04 +// H = 1 - Extended instructions +#define CMD_TC_TEMP_0 0x04 +#define CMD_TC_TEMP_1 0x05 +#define CMD_TC_TEMP_2 0x06 +#define CMD_TC_TEMP_3 0x07 +#define CMD_BI_MUX_24 0x15 +#define CMD_BI_MUX_48 0x13 +#define CMD_BI_MUX_100 0x10 +#define CMD_VOP_6V06 0xB2 +#define CMD_VOP_7V38 0xC8 + // number of pixels on display #define WIDTH 84 #define HEIGHT 48 @@ -33,31 +57,14 @@ #include "mbed.h" #include "N5110.h" -// rows,cols -int sprite[8][5] = { - { 0,0,1,0,0 }, - { 0,1,1,1,0 }, - { 0,0,1,0,0 }, - { 0,1,1,1,0 }, - { 1,1,1,1,1 }, - { 1,1,1,1,1 }, - { 1,1,0,1,1 }, - { 1,1,0,1,1 }, -}; - // VCC,SCE,RST,D/C,MOSI,SCLK,LED //N5110 lcd(p7,p8,p9,p10,p11,p13,p21); // LPC1768 - pwr from GPIO -N5110 lcd(p8,p9,p10,p11,p13,p21); // LPC1768 - powered from +3V3 - JP1 in 2/3 position -//N5110 lcd(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11); // K64F - pwr from 3V3 +N5110 lcd(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11); // K64F - pwr from 3V3 int main() { // first need to initialise display lcd.init(); - - // change set contrast in range 0.0 to 1.0 - // 0.4 appears to be a good starting point - lcd.setContrast(0.4); while(1) { @@ -65,12 +72,6 @@ lcd.normalMode(); // normal colour mode lcd.setBrightness(0.5); // put LED backlight on 50% - lcd.clear(); - // x origin, y origin, rows, cols, sprite - lcd.drawSprite(20,6,8,5,(int *)sprite); - lcd.refresh(); - wait(5.0); - lcd.clear(); // clear buffer at start of every loop // can directly print strings at specified co-ordinates (must be less than 84 pixels to fit on display) lcd.printString("Hello, World!",0,0); @@ -94,7 +95,7 @@ // draw a line across the display at y = 40 pixels (origin top-left) for (int i = 0; i < WIDTH; i++) { - lcd.setPixel(i,40,true); + lcd.setPixel(i,40); } // need to refresh display after setting pixels or writing strings lcd.refresh(); @@ -102,21 +103,23 @@ // can check status of pixel using getPixel(x,y); lcd.clear(); // clear buffer - lcd.setPixel(2,2,true); // set random pixel in buffer + lcd.setPixel(2,2); // set random pixel in buffer lcd.refresh(); wait(1.0); int pixel_to_test = lcd.getPixel(2,2); + printf("2,2 Pixel value = %i\n",pixel_to_test); + if ( pixel_to_test ) { lcd.printString("2,2 is set",0,4); } // this one shouldn't be set - lcd.setPixel(3,3,false); // clear random pixel in buffer - lcd.refresh(); pixel_to_test = lcd.getPixel(3,3); + printf("3,3 Pixel value = %i\n",pixel_to_test); + if ( pixel_to_test == 0 ) { lcd.printString("3,3 is clear",0,5); } @@ -166,14 +169,12 @@ // origin x,y,width,height,type lcd.drawRect(10,10,50,30,FILL_BLACK); // filled black rectangle lcd.drawRect(15,15,20,10,FILL_WHITE); // filled white rectange (no outline) - lcd.drawRect(2,2,70,40,FILL_TRANSPARENT); // transparent, just outline + lcd.drawRect(2,2,70,40, FILL_TRANSPARENT); // transparent, just outline lcd.refresh(); // refresh after drawing shapes wait(5.0); - } } - @endcode */ class N5110 @@ -252,11 +253,6 @@ */ void clear(); - /** Set screen constrast - * @param constrast - float in range 0.0 to 1.0 (0.40 to 0.60 is usually a good value) - */ - void setContrast(float contrast); - /** Turn on normal video mode (default) * Black on white */ @@ -295,33 +291,23 @@ unsigned int const x, unsigned int const y); - /** - * @brief Set a Pixel + /** Set a Pixel * - * @param x The x co-ordinate of the pixel (0 to 83) - * @param y The y co-ordinate of the pixel (0 to 47) - * @param state The state of the pixel [true=black (default), false=white] - * - * @details This function sets the state of a pixel in the screen buffer. - * The third parameter can be omitted, + * This function sets a pixel in the screen buffer. + * @param x - the x co-ordinate of the pixel (0 to 83) + * @param y - the y co-ordinate of the pixel (0 to 47) */ void setPixel(unsigned int const x, - unsigned int const y, - bool const state = true); + unsigned int const y); - /** - * @brief Clear a Pixel + /** Clear a Pixel * + * This function clears pixel in the screen buffer * @param x - the x co-ordinate of the pixel (0 to 83) * @param y - the y co-ordinate of the pixel (0 to 47) - * - * @details This function clears pixel in the screen buffer - * - * @deprecated Use setPixel(x, y, false) instead */ void clearPixel(unsigned int const x, - unsigned int const y) - __attribute__((deprecated("Use setPixel(x,y,false) instead"))); + unsigned int const y); /** Get a Pixel * @@ -402,22 +388,6 @@ unsigned int const height, FillType const fill); - /** Draw Sprite - * - * This function draws a sprite as defined in a 2D array - * @param x0 - x-coordinate of origin (top-left) - * @param y0 - y-coordinate of origin (top-left) - * @param nrows - number of rows in sprite - * @param ncols - number of columns in sprite - * @param sprite - 2D array representing the sprite - */ - void drawSprite(int x0, - int y0, - int nrows, - int ncols, - int *sprite); - - private: // methods void setXYAddress(unsigned int const x, @@ -428,8 +398,6 @@ void clearRAM(); void sendCommand(unsigned char command); void sendData(unsigned char data); - void setTempCoefficient(char tc); // 0 to 3 - void setBias(char bias); // 0 to 7 }; const unsigned char font5x7[480] = {