Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
Fork of el17ajf by
Graphics/Graphics.cpp
- Committer:
- el17ajf
- Date:
- 2019-03-19
- Revision:
- 15:afeefa3ceb61
- Parent:
- 14:53d2167d7c9a
- Child:
- 16:3f84f2d7b910
File content as of revision 15:afeefa3ceb61:
#include "Graphics.h" namespace Graphics { const int SCREEN_HEIGHT = 84; const int SCREEN_WIDTH = 48; const int BLOCK_SIZE = 4; const int BORDER_SIZE = 2; N5110 * lcd; // "private" methods void drawPoint(int x, int y); void drawLine(int x1, int y1, int x2, int y2); void drawBox(int x1, int y1, int x2, int y2); void drawDottedLine(int x1, int y1, int x2, int y2); int gridYToScreenX(int grid_y); int gridXToScreenY(int grid_x); void init() { lcd = new N5110(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11); lcd->init(); lcd->setContrast(0.5); lcd->setBrightness(0); } void deinit() { delete lcd; } void clear() { lcd->clear(); } void render() { lcd->refresh(); } void drawPoint(int x, int y) { lcd->setPixel(x, y, true); } void drawLine(int x1, int y1, int x2, int y2) { lcd->drawLine(x1, y1, x2, y2, 1); } void drawDottedLine(int x1, int y1, int x2, int y2) { lcd->drawLine( y1,// f(0) -> S_W - 1, f(S_W - 1) = 0 (SCREEN_WIDTH - 1) - x1, y2, (SCREEN_WIDTH - 1) - x2, 2 // dotted ); } void drawBox(int x1, int y1, int x2, int y2) { drawLine(x1, y1, x2, y1); drawLine(x2, y1, x2, y2); drawLine(x2, y2, x1, y2); drawLine(x1, y2, x1, y1); } void drawBlock(int grid_x, int grid_y) { // screen coords int x = gridYToScreenX(grid_y); int y = gridXToScreenY(grid_x); drawBox(x, y, x + 3, y - 3); drawPoint(x + 2, y - 2); } void drawBorder() { drawDottedLine(0, 0, 0, SCREEN_HEIGHT - 1); // drawDottedLine(1, 1, 1, SCREEN_HEIGHT - 2); drawDottedLine(0, SCREEN_HEIGHT - 1, SCREEN_WIDTH - 1 - 5, SCREEN_HEIGHT - 1); drawDottedLine(1, SCREEN_HEIGHT - 2, SCREEN_WIDTH - 2 - 5, SCREEN_HEIGHT - 2); drawDottedLine(SCREEN_WIDTH - 1 - 5, SCREEN_HEIGHT - 1, SCREEN_WIDTH - 1 - 5, 0); drawDottedLine(SCREEN_WIDTH - 2 - 5, SCREEN_HEIGHT - 2, SCREEN_WIDTH - 2 - 5, 1); } int gridYToScreenX(int grid_y) { return grid_y * BLOCK_SIZE + BORDER_SIZE; } int gridXToScreenY(int grid_x) { return SCREEN_WIDTH - (grid_x * BLOCK_SIZE) - BORDER_SIZE; } };