added user-visible functions
git-svn-id: svn://anubis/misc/parport-2x20vfd@112 bd8a9e45-a331-0410-811e-c64571078777
This commit is contained in:
parent
dcba2c00fe
commit
2fdd2b821b
55
VFD.cc
55
VFD.cc
@ -49,6 +49,9 @@ bool VFD::connect(const std::string & parport)
|
||||
}
|
||||
else
|
||||
{
|
||||
usleep(INIT_DELAY);
|
||||
sendNibble(0, 0x2); /* set 4-bit mode */
|
||||
sendByte(1, 0); /* set brightness */
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -97,3 +100,55 @@ void VFD::sendByte(unsigned char rs, unsigned char dat)
|
||||
sendNibble(rs, (dat >> 4) & 0xF);
|
||||
sendNibble(rs, dat & 0xF);
|
||||
}
|
||||
|
||||
void VFD::displayClear()
|
||||
{
|
||||
sendByte(0, 0x1);
|
||||
usleep(INIT_DELAY);
|
||||
}
|
||||
|
||||
void VFD::cursorHome()
|
||||
{
|
||||
sendByte(0, 0x2);
|
||||
}
|
||||
|
||||
void VFD::entryModeSet(unsigned char address_direction, /* LEFT|RIGHT */
|
||||
unsigned char display_shift) /* ON|OFF */
|
||||
{
|
||||
sendByte(0, 0x4
|
||||
| ((address_direction & 0x1) << 1)
|
||||
| (display_shift & 0x1) );
|
||||
}
|
||||
|
||||
void VFD::setDisplay(unsigned char display, /* ON|OFF */
|
||||
unsigned char cursor, /* ON|OFF */
|
||||
unsigned char cursor_blink) /* ON|OFF */
|
||||
{
|
||||
sendByte(0, 0x8
|
||||
| ((display & 0x1) << 2)
|
||||
| ((cursor & 0x1) << 1)
|
||||
| (cursor_blink & 0x1) );
|
||||
}
|
||||
|
||||
void VFD::shift(unsigned char shift_display, /* ON|OFF */
|
||||
unsigned char direction) /* LEFT|RIGHT */
|
||||
{
|
||||
sendByte(0, 0x10
|
||||
| ((shift_display & 0x1) << 3)
|
||||
| ((direction & 0x1) << 2) );
|
||||
}
|
||||
|
||||
void VFD::setCGAddress(unsigned char address)
|
||||
{
|
||||
sendByte(0, 0x40 | (address & 0x3F));
|
||||
}
|
||||
|
||||
void VFD::setAddress(unsigned char address)
|
||||
{
|
||||
sendByte(0, 0x80 | (address & 0x7F));
|
||||
}
|
||||
|
||||
void VFD::writeData(unsigned char data)
|
||||
{
|
||||
sendByte(1, data);
|
||||
}
|
||||
|
21
VFD.h
21
VFD.h
@ -32,10 +32,30 @@
|
||||
class VFD
|
||||
{
|
||||
public:
|
||||
static const unsigned char SHIFT_CURSOR = 0;
|
||||
static const unsigned char SHIFT_DISPLAY = 1;
|
||||
static const unsigned char LEFT = 0;
|
||||
static const unsigned char RIGHT = 1;
|
||||
static const unsigned char OFF = 0;
|
||||
static const unsigned char ON = 1;
|
||||
|
||||
VFD();
|
||||
bool connect(const std::string & parport = "/dev/parport0");
|
||||
void disconnect();
|
||||
|
||||
void displayClear();
|
||||
void cursorHome();
|
||||
void entryModeSet(unsigned char address_direction, /* LEFT|RIGHT */
|
||||
unsigned char display_shift); /* ON|OFF */
|
||||
void setDisplay(unsigned char display, /* ON|OFF */
|
||||
unsigned char cursor, /* ON|OFF */
|
||||
unsigned char cursor_blink); /* ON|OFF */
|
||||
void shift(unsigned char shift_display, /* ON|OFF */
|
||||
unsigned char direction); /* LEFT|RIGHT */
|
||||
void setCGAddress(unsigned char address);
|
||||
void setAddress(unsigned char address);
|
||||
void writeData(unsigned char data);
|
||||
|
||||
protected:
|
||||
static const unsigned char RW_WRITE = 0;
|
||||
static const unsigned char RW_READ = 1;
|
||||
@ -47,6 +67,7 @@ class VFD
|
||||
static const unsigned char PP_OFFSET_RW = 1;
|
||||
static const unsigned char PP_OFFSET_E = 2;
|
||||
static const unsigned char PP_OFFSET_DATA = 3;
|
||||
static const int INIT_DELAY = 2400;
|
||||
|
||||
void sendByte(unsigned char rs, unsigned char dat);
|
||||
void sendNibble(unsigned char rs, unsigned char dat);
|
||||
|
Loading…
x
Reference in New Issue
Block a user