Library for interfacing to Nokia 5110 LCD display (as found on the SparkFun website). Used & amended by D.Leaming, University of Lincoln, December 2021 v01

Committer:
legstar85
Date:
Fri Dec 17 08:26:58 2021 +0000
Revision:
53:200be703ee3b
Parent:
52:09994ce3be7b
Used & amended by D.Leaming, University of Lincoln, December 2021

Who changed what in which revision?

UserRevisionLine numberNew contents of line
legstar85 53:200be703ee3b 1 /* * Print String
legstar85 53:200be703ee3b 2 *
legstar85 53:200be703ee3b 3 * Prints a string of characters to the screen buffer, string is cut off after the 83rd pixel.
legstar85 53:200be703ee3b 4 * @param x - the column number (0 to 83)
legstar85 53:200be703ee3b 5 * @param y - the row number (0-5) - the display is split into 6 banks - each bank can be considered a row
legstar85 53:200be703ee3b 6 * @author - David Leaming - 25574043
legstar85 53:200be703ee3b 7 * @ Date - December 2021
legstar85 53:200be703ee3b 8 *
legstar85 53:200be703ee3b 9 * Acknowledgements
legstar85 53:200be703ee3b 10 * Craig A. Evans, University of Leeds, TMP102 Library ,Feb 2016
legstar85 53:200be703ee3b 11 * Dr Edmond Nurellari, University of Lincoln, Joystick & N5110 Libraries
legstar85 53:200be703ee3b 12 *
legstar85 53:200be703ee3b 13 */
legstar85 53:200be703ee3b 14
valavanisalex 38:92fad278c2c3 15 #ifndef BITMAP_H
valavanisalex 38:92fad278c2c3 16 #define BITMAP_H
valavanisalex 38:92fad278c2c3 17
valavanisalex 38:92fad278c2c3 18 #include <vector>
valavanisalex 38:92fad278c2c3 19
valavanisalex 40:c9262294f2e1 20 // Forward declarations
valavanisalex 40:c9262294f2e1 21 class N5110;
valavanisalex 40:c9262294f2e1 22
valavanisalex 38:92fad278c2c3 23 /**
valavanisalex 40:c9262294f2e1 24 * @brief A black & white bitmap that can be rendered on an N5110 screen
legstar85 52:09994ce3be7b 25 *
valavanisalex 40:c9262294f2e1 26 *
valavanisalex 40:c9262294f2e1 27 * @code
valavanisalex 40:c9262294f2e1 28 // First declare the pixel map data using '1' for black,
valavanisalex 40:c9262294f2e1 29 // or '0' for white pixels
valavanisalex 40:c9262294f2e1 30 static int sprite_data[] = {
valavanisalex 40:c9262294f2e1 31 0,0,1,0,0,
valavanisalex 40:c9262294f2e1 32 0,1,1,1,0,
valavanisalex 40:c9262294f2e1 33 0,0,1,0,0,
valavanisalex 40:c9262294f2e1 34 0,1,1,1,0,
valavanisalex 40:c9262294f2e1 35 1,1,1,1,1,
valavanisalex 40:c9262294f2e1 36 1,1,1,1,1,
valavanisalex 40:c9262294f2e1 37 1,1,0,1,1,
valavanisalex 40:c9262294f2e1 38 1,1,0,1,1
valavanisalex 40:c9262294f2e1 39 };
valavanisalex 40:c9262294f2e1 40
valavanisalex 40:c9262294f2e1 41 // Instantiate the Bitmap object using the data above
valavanisalex 40:c9262294f2e1 42 Bitmap sprite(sprite_data, 8, 5); // Specify rows and columns in sprite
valavanisalex 40:c9262294f2e1 43
valavanisalex 40:c9262294f2e1 44 // We can render the bitmap wherever we want on the screen
valavanisalex 40:c9262294f2e1 45 sprite.render(lcd, 20, 6); // x and y locations for rendering
valavanisalex 40:c9262294f2e1 46 sprite.render(lcd, 30, 10);
valavanisalex 40:c9262294f2e1 47
valavanisalex 40:c9262294f2e1 48 // We can also print its values to the terminal
valavanisalex 40:c9262294f2e1 49 sprite.print();
valavanisalex 40:c9262294f2e1 50 * @endcode
valavanisalex 38:92fad278c2c3 51 */
valavanisalex 38:92fad278c2c3 52 class Bitmap
valavanisalex 38:92fad278c2c3 53 {
valavanisalex 38:92fad278c2c3 54 private:
valavanisalex 38:92fad278c2c3 55 /**
valavanisalex 38:92fad278c2c3 56 * @brief The contents of the drawing, with pixels stored in row-major order
valavanisalex 38:92fad278c2c3 57 * @details '1' represents a black pixel; '0' represents white
valavanisalex 38:92fad278c2c3 58 */
valavanisalex 38:92fad278c2c3 59 std::vector<int> _contents;
valavanisalex 38:92fad278c2c3 60
valavanisalex 38:92fad278c2c3 61 unsigned int _height; ///< The height of the drawing in pixels
valavanisalex 38:92fad278c2c3 62 unsigned int _width; ///< The width of the drawing in pixels
valavanisalex 38:92fad278c2c3 63
valavanisalex 38:92fad278c2c3 64 public:
valavanisalex 40:c9262294f2e1 65 Bitmap(int const *contents,
valavanisalex 40:c9262294f2e1 66 unsigned int const height,
valavanisalex 40:c9262294f2e1 67 unsigned int const width);
valavanisalex 38:92fad278c2c3 68
valavanisalex 38:92fad278c2c3 69 int get_pixel(unsigned int const row,
valavanisalex 38:92fad278c2c3 70 unsigned int const column) const;
valavanisalex 40:c9262294f2e1 71
valavanisalex 40:c9262294f2e1 72 void print() const;
valavanisalex 40:c9262294f2e1 73
valavanisalex 40:c9262294f2e1 74 void render(N5110 &lcd,
valavanisalex 40:c9262294f2e1 75 unsigned int const x0,
valavanisalex 40:c9262294f2e1 76 unsigned int const y0) const;
valavanisalex 38:92fad278c2c3 77 };
valavanisalex 38:92fad278c2c3 78
valavanisalex 40:c9262294f2e1 79 #endif // BITMAP_H