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:48:11 2012 +0000
Revision:
2:8187d69071f8
Parent:
1:dd3faa2ab1dd
Child:
3:ade83210ecf6
Documentation update

Who changed what in which revision?

UserRevisionLine numberNew contents of line
tobyspark 2:8187d69071f8 1 // OLED display using SSD1305 driver
tobyspark 2:8187d69071f8 2 // Copyright *spark audio-visual 2012
tobyspark 2:8187d69071f8 3 //
tobyspark 2:8187d69071f8 4 // This library is free software; you can redistribute it and/or
tobyspark 2:8187d69071f8 5 // modify it under the terms of the GNU Lesser General Public
tobyspark 2:8187d69071f8 6 // License version 3 as published by the Free Software Foundation.
tobyspark 2:8187d69071f8 7
tobyspark 2:8187d69071f8 8 int w = 132;
tobyspark 2:8187d69071f8 9 int h = 64;
tobyspark 2:8187d69071f8 10 int scaleFactor = 10;
tobyspark 2:8187d69071f8 11
tobyspark 2:8187d69071f8 12 PImage imgPixel;
tobyspark 2:8187d69071f8 13 color white = color(255, 255, 255, 255);
tobyspark 2:8187d69071f8 14 color black = color(0, 0, 0, 255);
tobyspark 2:8187d69071f8 15
tobyspark 2:8187d69071f8 16 void setup()
tobyspark 2:8187d69071f8 17 {
tobyspark 2:8187d69071f8 18 size(w*scaleFactor, h*scaleFactor);
tobyspark 2:8187d69071f8 19 imgPixel = loadImage("spk_dvimxr_screen.png");
tobyspark 2:8187d69071f8 20
tobyspark 2:8187d69071f8 21 noSmooth();
tobyspark 2:8187d69071f8 22 }
tobyspark 2:8187d69071f8 23
tobyspark 2:8187d69071f8 24 void draw()
tobyspark 2:8187d69071f8 25 {
tobyspark 2:8187d69071f8 26 background(0);
tobyspark 2:8187d69071f8 27 image(imgPixel, 0, 0, w*scaleFactor, h*scaleFactor);
tobyspark 2:8187d69071f8 28 }
tobyspark 2:8187d69071f8 29
tobyspark 2:8187d69071f8 30 void mouseDragged()
tobyspark 2:8187d69071f8 31 {
tobyspark 2:8187d69071f8 32 int x = mouseX/scaleFactor;
tobyspark 2:8187d69071f8 33 int y = mouseY/scaleFactor;
tobyspark 2:8187d69071f8 34
tobyspark 2:8187d69071f8 35 imgPixel.set(x, y, white);
tobyspark 2:8187d69071f8 36 }
tobyspark 2:8187d69071f8 37
tobyspark 2:8187d69071f8 38 void mousePressed()
tobyspark 2:8187d69071f8 39 {
tobyspark 2:8187d69071f8 40 int x = mouseX/scaleFactor;
tobyspark 2:8187d69071f8 41 int y = mouseY/scaleFactor;
tobyspark 2:8187d69071f8 42
tobyspark 2:8187d69071f8 43 if (imgPixel.get(x, y) == white)
tobyspark 2:8187d69071f8 44 {
tobyspark 2:8187d69071f8 45 imgPixel.set(x, y, black);
tobyspark 2:8187d69071f8 46 }
tobyspark 2:8187d69071f8 47 else
tobyspark 2:8187d69071f8 48 {
tobyspark 2:8187d69071f8 49 imgPixel.set(x, y, white);
tobyspark 2:8187d69071f8 50 }
tobyspark 2:8187d69071f8 51 }
tobyspark 2:8187d69071f8 52
tobyspark 2:8187d69071f8 53 void keyPressed()
tobyspark 2:8187d69071f8 54 {
tobyspark 2:8187d69071f8 55 println("{");
tobyspark 2:8187d69071f8 56 for (int page = 0; page < 8; page++)
tobyspark 2:8187d69071f8 57 {
tobyspark 2:8187d69071f8 58 for (int i = 0; i < w; i++)
tobyspark 2:8187d69071f8 59 {
tobyspark 2:8187d69071f8 60 byte theByte = 0;
tobyspark 2:8187d69071f8 61 for (int j = 0; j < 8; j++)
tobyspark 2:8187d69071f8 62 {
tobyspark 2:8187d69071f8 63 if (imgPixel.get(i, (page*8)+j) == white)
tobyspark 2:8187d69071f8 64 {
tobyspark 2:8187d69071f8 65 theByte += pow(2, j);
tobyspark 2:8187d69071f8 66 }
tobyspark 2:8187d69071f8 67 }
tobyspark 2:8187d69071f8 68 print("0x" + hex(theByte, 2));
tobyspark 2:8187d69071f8 69 print(", ");
tobyspark 2:8187d69071f8 70 }
tobyspark 2:8187d69071f8 71 println();
tobyspark 2:8187d69071f8 72 }
tobyspark 2:8187d69071f8 73 println("}");
tobyspark 2:8187d69071f8 74 }