Check refresh speed by transfermode 4bit,3bit,1bit with MIP8F_SPI_Ver50
Dependencies: MIP8F_SPI_Ver50 MIP8f_FRDM_LineBuffer_sample mbed
Dependents: MIP8f_FRDM_Animation_sample
Introduction
this sample is checking the refresh display speed between 4bit,3bit and 1bit transfer mode.
- spi-transfer to Display has 3 mode. 4bit mode is color display, this bit arrange is R,G,B,x. R,G,B = R,G,B subpixel bit. x bit is Dummy. 3bit mode is color display, this bit arrange is R,G,B. R,G,B = R,G,B subpixel bit. No bit is Dummy. 1bit mode is monocrome display,high speed refresh mode. a only Green subpixel of bitmap data is transfered.
Other information , please refer to https://os.mbed.com/teams/JapanDisplayInc/code/MIP8f_FRDM_sample/
Usage
Copy Setting File and Image to micro SD-CARD. you can NOT use same sample color images of OTHER VERSION SAMPLE.
a) Download the following file corresponding to the target panel, and rename file identifier (.bin -> .zip), and unzip the file on micro SD Card's root directory.
LPM027M128x (400x240) :/media/uploads/JDI_Mbed_Team/400x240_ver30.bin
b) Insert micro SD-CARD to FRDM-K64F. c) Upload binary file to FRDM-K64F.and push Reset Button.
Other information
refer to Usage on https://os.mbed.com/teams/JapanDisplayInc/code/MIP8f_FRDM_sample/
this Sample Code (.bin)
/media/uploads/JDI_Mbed_Team/mip8f_frdm_transfermode_sample.k64f.bin
Adafruit_LEDBackpack/Adafruit_LEDBackpack.cpp@16:7c472f8a81a5, 2018-11-12 (annotated)
- Committer:
- JDI_Mbed_Team
- Date:
- Mon Nov 12 05:09:38 2018 +0000
- Revision:
- 16:7c472f8a81a5
- Parent:
- 0:33fe30a2b785
updata
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
JDI_Mbed_Team | 0:33fe30a2b785 | 1 | /*************************************************** |
JDI_Mbed_Team | 0:33fe30a2b785 | 2 | This is a library for our I2C LED Backpacks |
JDI_Mbed_Team | 0:33fe30a2b785 | 3 | |
JDI_Mbed_Team | 0:33fe30a2b785 | 4 | Designed specifically to work with the Adafruit LED Matrix backpacks |
JDI_Mbed_Team | 0:33fe30a2b785 | 5 | ----> http://www.adafruit.com/products/ |
JDI_Mbed_Team | 0:33fe30a2b785 | 6 | ----> http://www.adafruit.com/products/ |
JDI_Mbed_Team | 0:33fe30a2b785 | 7 | |
JDI_Mbed_Team | 0:33fe30a2b785 | 8 | These displays use I2C to communicate, 2 pins are required to |
JDI_Mbed_Team | 0:33fe30a2b785 | 9 | interface. There are multiple selectable I2C addresses. For backpacks |
JDI_Mbed_Team | 0:33fe30a2b785 | 10 | with 2 Address Select pins: 0x70, 0x71, 0x72 or 0x73. For backpacks |
JDI_Mbed_Team | 0:33fe30a2b785 | 11 | with 3 Address Select pins: 0x70 thru 0x77 |
JDI_Mbed_Team | 0:33fe30a2b785 | 12 | |
JDI_Mbed_Team | 0:33fe30a2b785 | 13 | Adafruit invests time and resources providing this open source code, |
JDI_Mbed_Team | 0:33fe30a2b785 | 14 | please support Adafruit and open-source hardware by purchasing |
JDI_Mbed_Team | 0:33fe30a2b785 | 15 | products from Adafruit! |
JDI_Mbed_Team | 0:33fe30a2b785 | 16 | |
JDI_Mbed_Team | 0:33fe30a2b785 | 17 | Written by Limor Fried/Ladyada for Adafruit Industries. |
JDI_Mbed_Team | 0:33fe30a2b785 | 18 | BSD license, all text above must be included in any redistribution |
JDI_Mbed_Team | 0:33fe30a2b785 | 19 | ****************************************************/ |
JDI_Mbed_Team | 0:33fe30a2b785 | 20 | |
JDI_Mbed_Team | 0:33fe30a2b785 | 21 | /* |
JDI_Mbed_Team | 0:33fe30a2b785 | 22 | * Modified by Luiz Hespanha (http://www.d3.do) 8/16/2013 for use in LPC1768 |
JDI_Mbed_Team | 0:33fe30a2b785 | 23 | */ |
JDI_Mbed_Team | 0:33fe30a2b785 | 24 | |
JDI_Mbed_Team | 0:33fe30a2b785 | 25 | #include "mbed.h" |
JDI_Mbed_Team | 0:33fe30a2b785 | 26 | #include "Adafruit_LEDBackpack.h" |
JDI_Mbed_Team | 0:33fe30a2b785 | 27 | #include "Adafruit_GFX.h" |
JDI_Mbed_Team | 0:33fe30a2b785 | 28 | |
JDI_Mbed_Team | 0:33fe30a2b785 | 29 | void Adafruit_LEDBackpack::setBrightness(uint8_t b) { |
JDI_Mbed_Team | 0:33fe30a2b785 | 30 | if (b > 15) b = 15; |
JDI_Mbed_Team | 0:33fe30a2b785 | 31 | uint8_t c = 0xE0 | b; |
JDI_Mbed_Team | 0:33fe30a2b785 | 32 | char foo[1]; |
JDI_Mbed_Team | 0:33fe30a2b785 | 33 | foo[0] = c; |
JDI_Mbed_Team | 0:33fe30a2b785 | 34 | _i2c->write(i2c_addr, foo, 1); |
JDI_Mbed_Team | 0:33fe30a2b785 | 35 | } |
JDI_Mbed_Team | 0:33fe30a2b785 | 36 | |
JDI_Mbed_Team | 0:33fe30a2b785 | 37 | void Adafruit_LEDBackpack::blinkRate(uint8_t b) { |
JDI_Mbed_Team | 0:33fe30a2b785 | 38 | if (b > 3) b = 0; // turn off if not sure |
JDI_Mbed_Team | 0:33fe30a2b785 | 39 | uint8_t c = HT16K33_BLINK_CMD | HT16K33_BLINK_DISPLAYON | (b << 1); |
JDI_Mbed_Team | 0:33fe30a2b785 | 40 | char foo[1]; |
JDI_Mbed_Team | 0:33fe30a2b785 | 41 | foo[0] = c; |
JDI_Mbed_Team | 0:33fe30a2b785 | 42 | _i2c->write(i2c_addr, foo, 1); |
JDI_Mbed_Team | 0:33fe30a2b785 | 43 | } |
JDI_Mbed_Team | 0:33fe30a2b785 | 44 | |
JDI_Mbed_Team | 0:33fe30a2b785 | 45 | Adafruit_LEDBackpack::Adafruit_LEDBackpack(I2C *i2c): _i2c(i2c) { |
JDI_Mbed_Team | 0:33fe30a2b785 | 46 | } |
JDI_Mbed_Team | 0:33fe30a2b785 | 47 | |
JDI_Mbed_Team | 0:33fe30a2b785 | 48 | void Adafruit_LEDBackpack::begin(uint8_t _addr = 0x70) { |
JDI_Mbed_Team | 0:33fe30a2b785 | 49 | i2c_addr = _addr << 1; |
JDI_Mbed_Team | 0:33fe30a2b785 | 50 | |
JDI_Mbed_Team | 0:33fe30a2b785 | 51 | char foo[1]; |
JDI_Mbed_Team | 0:33fe30a2b785 | 52 | foo[0] = 0x21; |
JDI_Mbed_Team | 0:33fe30a2b785 | 53 | |
JDI_Mbed_Team | 0:33fe30a2b785 | 54 | _i2c->write(i2c_addr, foo, 1); // turn on oscillator |
JDI_Mbed_Team | 0:33fe30a2b785 | 55 | |
JDI_Mbed_Team | 0:33fe30a2b785 | 56 | blinkRate(HT16K33_BLINK_OFF); |
JDI_Mbed_Team | 0:33fe30a2b785 | 57 | |
JDI_Mbed_Team | 0:33fe30a2b785 | 58 | setBrightness(15); // max brightness |
JDI_Mbed_Team | 0:33fe30a2b785 | 59 | } |
JDI_Mbed_Team | 0:33fe30a2b785 | 60 | |
JDI_Mbed_Team | 0:33fe30a2b785 | 61 | void Adafruit_LEDBackpack::writeDisplay(void) { |
JDI_Mbed_Team | 0:33fe30a2b785 | 62 | char foo[17]; |
JDI_Mbed_Team | 0:33fe30a2b785 | 63 | foo[0] = 0x00; |
JDI_Mbed_Team | 0:33fe30a2b785 | 64 | int j = 0; |
JDI_Mbed_Team | 0:33fe30a2b785 | 65 | for (uint8_t i=1; i<=16; i+=2) { |
JDI_Mbed_Team | 0:33fe30a2b785 | 66 | int x = displaybuffer[j] & 0xFF; |
JDI_Mbed_Team | 0:33fe30a2b785 | 67 | foo[i] = x; |
JDI_Mbed_Team | 0:33fe30a2b785 | 68 | int x2 = displaybuffer[j] >> 8; |
JDI_Mbed_Team | 0:33fe30a2b785 | 69 | foo[i+1] = x2; |
JDI_Mbed_Team | 0:33fe30a2b785 | 70 | j++; |
JDI_Mbed_Team | 0:33fe30a2b785 | 71 | } |
JDI_Mbed_Team | 0:33fe30a2b785 | 72 | _i2c->write(i2c_addr, foo, 17); |
JDI_Mbed_Team | 0:33fe30a2b785 | 73 | } |
JDI_Mbed_Team | 0:33fe30a2b785 | 74 | |
JDI_Mbed_Team | 0:33fe30a2b785 | 75 | void Adafruit_LEDBackpack::clear(void) { |
JDI_Mbed_Team | 0:33fe30a2b785 | 76 | for (uint8_t i=0; i<8; i++) { |
JDI_Mbed_Team | 0:33fe30a2b785 | 77 | displaybuffer[i] = 0; |
JDI_Mbed_Team | 0:33fe30a2b785 | 78 | } |
JDI_Mbed_Team | 0:33fe30a2b785 | 79 | } |
JDI_Mbed_Team | 0:33fe30a2b785 | 80 | |
JDI_Mbed_Team | 0:33fe30a2b785 | 81 | Adafruit_8x8matrix::Adafruit_8x8matrix(I2C *i2c) : Adafruit_LEDBackpack(i2c), Adafruit_GFX(8, 8) { |
JDI_Mbed_Team | 0:33fe30a2b785 | 82 | } |
JDI_Mbed_Team | 0:33fe30a2b785 | 83 | |
JDI_Mbed_Team | 0:33fe30a2b785 | 84 | void Adafruit_8x8matrix::drawPixel(int16_t x, int16_t y, uint16_t color) { |
JDI_Mbed_Team | 0:33fe30a2b785 | 85 | if ((y < 0) || (y >= 8)) return; |
JDI_Mbed_Team | 0:33fe30a2b785 | 86 | if ((x < 0) || (x >= 8)) return; |
JDI_Mbed_Team | 0:33fe30a2b785 | 87 | |
JDI_Mbed_Team | 0:33fe30a2b785 | 88 | // check rotation, move pixel around if necessary |
JDI_Mbed_Team | 0:33fe30a2b785 | 89 | switch (getRotation()) { |
JDI_Mbed_Team | 0:33fe30a2b785 | 90 | case 1: |
JDI_Mbed_Team | 0:33fe30a2b785 | 91 | swap(x, y); |
JDI_Mbed_Team | 0:33fe30a2b785 | 92 | x = 8 - x - 1; |
JDI_Mbed_Team | 0:33fe30a2b785 | 93 | break; |
JDI_Mbed_Team | 0:33fe30a2b785 | 94 | case 2: |
JDI_Mbed_Team | 0:33fe30a2b785 | 95 | x = 8 - x - 1; |
JDI_Mbed_Team | 0:33fe30a2b785 | 96 | y = 8 - y - 1; |
JDI_Mbed_Team | 0:33fe30a2b785 | 97 | break; |
JDI_Mbed_Team | 0:33fe30a2b785 | 98 | case 3: |
JDI_Mbed_Team | 0:33fe30a2b785 | 99 | swap(x, y); |
JDI_Mbed_Team | 0:33fe30a2b785 | 100 | y = 8 - y - 1; |
JDI_Mbed_Team | 0:33fe30a2b785 | 101 | break; |
JDI_Mbed_Team | 0:33fe30a2b785 | 102 | } |
JDI_Mbed_Team | 0:33fe30a2b785 | 103 | |
JDI_Mbed_Team | 0:33fe30a2b785 | 104 | // wrap around the x |
JDI_Mbed_Team | 0:33fe30a2b785 | 105 | x += 7; |
JDI_Mbed_Team | 0:33fe30a2b785 | 106 | x %= 8; |
JDI_Mbed_Team | 0:33fe30a2b785 | 107 | |
JDI_Mbed_Team | 0:33fe30a2b785 | 108 | |
JDI_Mbed_Team | 0:33fe30a2b785 | 109 | if (color) { |
JDI_Mbed_Team | 0:33fe30a2b785 | 110 | displaybuffer[y] |= 1 << x; |
JDI_Mbed_Team | 0:33fe30a2b785 | 111 | } else { |
JDI_Mbed_Team | 0:33fe30a2b785 | 112 | displaybuffer[y] &= ~(1 << x); |
JDI_Mbed_Team | 0:33fe30a2b785 | 113 | } |
JDI_Mbed_Team | 0:33fe30a2b785 | 114 | } |