Animation demo with MIP8F_SPI_Ver60

Dependencies:   mbed MIP8F_SPI_Ver60 MIP8f_FRDM_LineBuffer_sample MIP8f_FRDM_TransferMode_sample

Introduction

Animation Demo. Some Goldfish swin in water, from left to right, from bottom to top. Color and monochrome version

Only for LPM027M128x (400x240) ,JDI DIsplay.

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/goldfish_400x240.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_animation_sample.k64f.bin

Committer:
JDI_Mbed_Team
Date:
Thu Nov 22 07:46:49 2018 +0000
Revision:
21:d1beeb6c4a53
Parent:
0:33fe30a2b785
bug fixed

Who changed what in which revision?

UserRevisionLine numberNew 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 }