Library for Matrix Orbital VFD2041 display. Also useable for LCD2041 modules.
VFD.cpp
- Committer:
- wsalis01
- Date:
- 2012-03-05
- Revision:
- 1:770ec826c555
- Parent:
- 0:f0e9065504cd
- Child:
- 2:b170a67a8dae
File content as of revision 1:770ec826c555:
#include "mbed.h" #include <string> #include "VFD.h" VFD::VFD() : _i2c(SDA, SCL) { //Nothing to see here } VFD::~VFD() { //Nothing to see here } int VFD::init() { const char cmd[] = {254,160,0}; int length = 3; return write(cmd, length); } int VFD::print(string msg) { int len = msg.size(); char * cmd = new char(len); memcpy(cmd, msg.data(), len); return write(cmd, len); } int VFD::autoScrollOn() { const char cmd[] = {254, 81}; int length = 2; return write(cmd, length); } int VFD::autoScrollOff() { const char cmd[] = {254, 82}; int length = 2; return write(cmd, length); } int VFD::lineWrapOn() { const char cmd[] = {254, 67}; int length = 2; return write(cmd, length); } int VFD::lineWrapOff() { const char cmd[] = {254, 68}; int length = 2; return write(cmd, length); } int VFD::setCursor(const int col, const int row) { const char cmd[] = {254, 71, col, row}; int length = 4; return write(cmd, length); } int VFD::clearScreen() { const char cmd[] = {254, 88}; int length = 2; return write(cmd, length); } int VFD::goHome() { const char cmd[] = {254, 72}; int length = 2; return write(cmd, length); } int VFD::initLargeNumbers() { const char cmd[] = {254, 110}; int length = 2; return write(cmd, length); } int VFD::setBrightness(const int val) { if (val < 0 || val > 3) return -1; const char cmd[] = {254, 89, val}; int length = 3; return write(cmd, length); } int VFD::write(const char * data, int length) { int ret = _i2c.write(address, data, length); //Performs a complete write transaction wait_us(625); return ret; //Return I2C.write(...) return value } int VFD::read(char * data, int length) { int ret = _i2c.read(address, data, length); //Performs a complete write transaction wait_us(625); return ret; //Return I2C.write(...) return value }