SPKDisplay - A mbed display class and processing imaging tools for 128x64 OLEDs using the SSD1305 driver, connected via SPI.

Dependents:   SPK-DVIMXR SPK-DMXer

Committer:
tobyspark
Date:
Sun Apr 15 19:39:17 2012 +0000
Revision:
1:dd3faa2ab1dd
Parent:
0:76bb084fa033
Child:
2:8187d69071f8
Image and font are fully external to class, ie. it will compile for others!

Who changed what in which revision?

UserRevisionLine numberNew contents of line
tobyspark 1:dd3faa2ab1dd 1 int w = 132;
tobyspark 1:dd3faa2ab1dd 2 int h = 64;
tobyspark 1:dd3faa2ab1dd 3 int scaleFactor = 10;
tobyspark 1:dd3faa2ab1dd 4
tobyspark 1:dd3faa2ab1dd 5 PImage imgPixel;
tobyspark 1:dd3faa2ab1dd 6 color white = color(255, 255, 255, 255);
tobyspark 1:dd3faa2ab1dd 7 color black = color(0, 0, 0, 255);
tobyspark 1:dd3faa2ab1dd 8
tobyspark 1:dd3faa2ab1dd 9 void setup()
tobyspark 1:dd3faa2ab1dd 10 {
tobyspark 1:dd3faa2ab1dd 11 size(w*scaleFactor, h*scaleFactor);
tobyspark 1:dd3faa2ab1dd 12 imgPixel = loadImage("spk_dvimxr_screen.png");
tobyspark 1:dd3faa2ab1dd 13
tobyspark 1:dd3faa2ab1dd 14 noSmooth();
tobyspark 1:dd3faa2ab1dd 15 }
tobyspark 1:dd3faa2ab1dd 16
tobyspark 1:dd3faa2ab1dd 17 void draw()
tobyspark 1:dd3faa2ab1dd 18 {
tobyspark 1:dd3faa2ab1dd 19 background(0);
tobyspark 1:dd3faa2ab1dd 20 image(imgPixel, 0, 0, w*scaleFactor, h*scaleFactor);
tobyspark 1:dd3faa2ab1dd 21 }
tobyspark 1:dd3faa2ab1dd 22
tobyspark 1:dd3faa2ab1dd 23 void mouseDragged()
tobyspark 1:dd3faa2ab1dd 24 {
tobyspark 1:dd3faa2ab1dd 25 int x = mouseX/scaleFactor;
tobyspark 1:dd3faa2ab1dd 26 int y = mouseY/scaleFactor;
tobyspark 1:dd3faa2ab1dd 27
tobyspark 1:dd3faa2ab1dd 28 imgPixel.set(x, y, white);
tobyspark 1:dd3faa2ab1dd 29 }
tobyspark 1:dd3faa2ab1dd 30
tobyspark 1:dd3faa2ab1dd 31 void mousePressed()
tobyspark 1:dd3faa2ab1dd 32 {
tobyspark 1:dd3faa2ab1dd 33 int x = mouseX/scaleFactor;
tobyspark 1:dd3faa2ab1dd 34 int y = mouseY/scaleFactor;
tobyspark 1:dd3faa2ab1dd 35
tobyspark 1:dd3faa2ab1dd 36 if (imgPixel.get(x, y) == white)
tobyspark 1:dd3faa2ab1dd 37 {
tobyspark 1:dd3faa2ab1dd 38 imgPixel.set(x, y, black);
tobyspark 1:dd3faa2ab1dd 39 }
tobyspark 1:dd3faa2ab1dd 40 else
tobyspark 1:dd3faa2ab1dd 41 {
tobyspark 1:dd3faa2ab1dd 42 imgPixel.set(x, y, white);
tobyspark 1:dd3faa2ab1dd 43 }
tobyspark 1:dd3faa2ab1dd 44 }
tobyspark 1:dd3faa2ab1dd 45
tobyspark 1:dd3faa2ab1dd 46 void keyPressed()
tobyspark 1:dd3faa2ab1dd 47 {
tobyspark 1:dd3faa2ab1dd 48 println("{");
tobyspark 1:dd3faa2ab1dd 49 for (int page = 0; page < 8; page++)
tobyspark 1:dd3faa2ab1dd 50 {
tobyspark 1:dd3faa2ab1dd 51 for (int i = 0; i < w; i++)
tobyspark 1:dd3faa2ab1dd 52 {
tobyspark 1:dd3faa2ab1dd 53 byte theByte = 0;
tobyspark 1:dd3faa2ab1dd 54 for (int j = 0; j < 8; j++)
tobyspark 1:dd3faa2ab1dd 55 {
tobyspark 1:dd3faa2ab1dd 56 if (imgPixel.get(i, (page*8)+j) == white)
tobyspark 1:dd3faa2ab1dd 57 {
tobyspark 1:dd3faa2ab1dd 58 theByte += pow(2, j);
tobyspark 1:dd3faa2ab1dd 59 }
tobyspark 1:dd3faa2ab1dd 60 }
tobyspark 1:dd3faa2ab1dd 61 print("0x" + hex(theByte, 2));
tobyspark 1:dd3faa2ab1dd 62 print(", ");
tobyspark 1:dd3faa2ab1dd 63 }
tobyspark 1:dd3faa2ab1dd 64 println();
tobyspark 1:dd3faa2ab1dd 65 }
tobyspark 1:dd3faa2ab1dd 66 println("}");
tobyspark 1:dd3faa2ab1dd 67 }