This is a very simple guide, reviewing the steps required to get Blinky working on an Mbed OS platform.

Dependencies:   mbed Adafruit_GFX

Committer:
ParkChunMyong
Date:
Sat Jun 08 12:00:38 2019 +0000
Revision:
95:250afd53b710
first init

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ParkChunMyong 95:250afd53b710 1 #include "PixelArray.h"
ParkChunMyong 95:250afd53b710 2
ParkChunMyong 95:250afd53b710 3 PixelArray::PixelArray(int size)
ParkChunMyong 95:250afd53b710 4 {
ParkChunMyong 95:250afd53b710 5 pbufsize = size;
ParkChunMyong 95:250afd53b710 6 pbuf = new int[pbufsize];
ParkChunMyong 95:250afd53b710 7 SetAll(0x0); // initialise memory to zeros
ParkChunMyong 95:250afd53b710 8
ParkChunMyong 95:250afd53b710 9 }
ParkChunMyong 95:250afd53b710 10
ParkChunMyong 95:250afd53b710 11 PixelArray::~PixelArray()
ParkChunMyong 95:250afd53b710 12 {
ParkChunMyong 95:250afd53b710 13 delete[] pbuf;
ParkChunMyong 95:250afd53b710 14 }
ParkChunMyong 95:250afd53b710 15
ParkChunMyong 95:250afd53b710 16 void PixelArray::SetAll(unsigned int value)
ParkChunMyong 95:250afd53b710 17 {
ParkChunMyong 95:250afd53b710 18 // for each pixel
ParkChunMyong 95:250afd53b710 19 for (int i=0 ; i < pbufsize; i++) {
ParkChunMyong 95:250afd53b710 20 __set_pixel(i,value);
ParkChunMyong 95:250afd53b710 21 }
ParkChunMyong 95:250afd53b710 22 }
ParkChunMyong 95:250afd53b710 23
ParkChunMyong 95:250afd53b710 24
ParkChunMyong 95:250afd53b710 25 void PixelArray::SetAllI(unsigned char value)
ParkChunMyong 95:250afd53b710 26 {
ParkChunMyong 95:250afd53b710 27 // for each pixel
ParkChunMyong 95:250afd53b710 28 for (int i=0 ; i < pbufsize; i++) {
ParkChunMyong 95:250afd53b710 29 __set_pixel_component(i,3,value);
ParkChunMyong 95:250afd53b710 30 }
ParkChunMyong 95:250afd53b710 31 }
ParkChunMyong 95:250afd53b710 32
ParkChunMyong 95:250afd53b710 33
ParkChunMyong 95:250afd53b710 34
ParkChunMyong 95:250afd53b710 35 void PixelArray::SetAllR(unsigned char value)
ParkChunMyong 95:250afd53b710 36 {
ParkChunMyong 95:250afd53b710 37 // for each pixel
ParkChunMyong 95:250afd53b710 38 for (int i=0 ; i < pbufsize; i++) {
ParkChunMyong 95:250afd53b710 39 __set_pixel_component(i,2,value);
ParkChunMyong 95:250afd53b710 40 }
ParkChunMyong 95:250afd53b710 41 }
ParkChunMyong 95:250afd53b710 42
ParkChunMyong 95:250afd53b710 43 void PixelArray::SetAllG(unsigned char value)
ParkChunMyong 95:250afd53b710 44 {
ParkChunMyong 95:250afd53b710 45 // for each pixel
ParkChunMyong 95:250afd53b710 46 for (int i=0 ; i < pbufsize; i++) {
ParkChunMyong 95:250afd53b710 47 __set_pixel_component(i,1,value);
ParkChunMyong 95:250afd53b710 48 }
ParkChunMyong 95:250afd53b710 49 }
ParkChunMyong 95:250afd53b710 50
ParkChunMyong 95:250afd53b710 51 void PixelArray::SetAllB(unsigned char value)
ParkChunMyong 95:250afd53b710 52 {
ParkChunMyong 95:250afd53b710 53 // for each pixel
ParkChunMyong 95:250afd53b710 54 for (int i=0 ; i < pbufsize; i++) {
ParkChunMyong 95:250afd53b710 55 __set_pixel_component(i,0,value);
ParkChunMyong 95:250afd53b710 56 }
ParkChunMyong 95:250afd53b710 57 }
ParkChunMyong 95:250afd53b710 58
ParkChunMyong 95:250afd53b710 59
ParkChunMyong 95:250afd53b710 60
ParkChunMyong 95:250afd53b710 61
ParkChunMyong 95:250afd53b710 62
ParkChunMyong 95:250afd53b710 63 void PixelArray::Set(int i, unsigned int value)
ParkChunMyong 95:250afd53b710 64 {
ParkChunMyong 95:250afd53b710 65 if ((i >= 0) && (i < pbufsize)) {
ParkChunMyong 95:250afd53b710 66 __set_pixel(i,value);
ParkChunMyong 95:250afd53b710 67 }
ParkChunMyong 95:250afd53b710 68 }
ParkChunMyong 95:250afd53b710 69
ParkChunMyong 95:250afd53b710 70
ParkChunMyong 95:250afd53b710 71
ParkChunMyong 95:250afd53b710 72 void PixelArray::SetI(int i, unsigned char value)
ParkChunMyong 95:250afd53b710 73 {
ParkChunMyong 95:250afd53b710 74 if ((i >= 0) && (i < pbufsize)) {
ParkChunMyong 95:250afd53b710 75 __set_pixel_component(i,3,value);
ParkChunMyong 95:250afd53b710 76 }
ParkChunMyong 95:250afd53b710 77 }
ParkChunMyong 95:250afd53b710 78
ParkChunMyong 95:250afd53b710 79
ParkChunMyong 95:250afd53b710 80 void PixelArray::SetR(int i, unsigned char value)
ParkChunMyong 95:250afd53b710 81 {
ParkChunMyong 95:250afd53b710 82 if ((i >= 0) && (i < pbufsize)) {
ParkChunMyong 95:250afd53b710 83 __set_pixel_component(i,2,value);
ParkChunMyong 95:250afd53b710 84 }
ParkChunMyong 95:250afd53b710 85 }
ParkChunMyong 95:250afd53b710 86
ParkChunMyong 95:250afd53b710 87 void PixelArray::SetG(int i, unsigned char value)
ParkChunMyong 95:250afd53b710 88 {
ParkChunMyong 95:250afd53b710 89 if ((i >= 0) && (i < pbufsize)) {
ParkChunMyong 95:250afd53b710 90 __set_pixel_component(i,1,value);
ParkChunMyong 95:250afd53b710 91 }
ParkChunMyong 95:250afd53b710 92 }
ParkChunMyong 95:250afd53b710 93
ParkChunMyong 95:250afd53b710 94 void PixelArray::SetB(int i, unsigned char value)
ParkChunMyong 95:250afd53b710 95 {
ParkChunMyong 95:250afd53b710 96 if ((i >= 0) && (i < pbufsize)) {
ParkChunMyong 95:250afd53b710 97 __set_pixel_component(i,0,value);
ParkChunMyong 95:250afd53b710 98 }
ParkChunMyong 95:250afd53b710 99 }
ParkChunMyong 95:250afd53b710 100
ParkChunMyong 95:250afd53b710 101
ParkChunMyong 95:250afd53b710 102 int* PixelArray::getBuf()
ParkChunMyong 95:250afd53b710 103 {
ParkChunMyong 95:250afd53b710 104 return (pbuf);
ParkChunMyong 95:250afd53b710 105 }
ParkChunMyong 95:250afd53b710 106
ParkChunMyong 95:250afd53b710 107
ParkChunMyong 95:250afd53b710 108 // set either the I,R,G,B value of specific pixel channel
ParkChunMyong 95:250afd53b710 109 void PixelArray::__set_pixel_component(int index, int channel, int value)
ParkChunMyong 95:250afd53b710 110 {
ParkChunMyong 95:250afd53b710 111
ParkChunMyong 95:250afd53b710 112 // AND with 0x00 shifted to the right location to clear the bits
ParkChunMyong 95:250afd53b710 113 pbuf[index] &= ~(0xFF << (8 * channel));
ParkChunMyong 95:250afd53b710 114
ParkChunMyong 95:250afd53b710 115 // Set the bits with an OR
ParkChunMyong 95:250afd53b710 116 pbuf[index] |= (value << (8 * channel));
ParkChunMyong 95:250afd53b710 117 }
ParkChunMyong 95:250afd53b710 118
ParkChunMyong 95:250afd53b710 119
ParkChunMyong 95:250afd53b710 120 // set either the I,R,G,B value of specific pixel channel
ParkChunMyong 95:250afd53b710 121 void PixelArray::__set_pixel(int index, int value)
ParkChunMyong 95:250afd53b710 122 {
ParkChunMyong 95:250afd53b710 123 // AND with 0x00 shifted to the right location to clear the bits
ParkChunMyong 95:250afd53b710 124 pbuf[index] = value;
ParkChunMyong 95:250afd53b710 125 }
ParkChunMyong 95:250afd53b710 126
ParkChunMyong 95:250afd53b710 127
ParkChunMyong 95:250afd53b710 128