Anders Hörnfeldt / Display
Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers Display.h Source File

Display.h

00001 /*
00002  Copyright (c) 2010 Anders Hörnfeldt
00003 
00004  Permission is hereby granted, free of charge, to any person obtaining a copy
00005  of this software and associated documentation files (the "Software"), to deal
00006  in the Software without restriction, including without limitation the rights
00007  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
00008  copies of the Software, and to permit persons to whom the Software is
00009  furnished to do so, subject to the following conditions:
00010 
00011  The above copyright notice and this permission notice shall be included in
00012  all copies or substantial portions of the Software.
00013 
00014  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
00015  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
00016  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
00017  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
00018  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
00019  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
00020  THE SOFTWARE.
00021 */
00022 #ifndef DISPLAY_H
00023 #define DISPLAY_H
00024 
00025 #define RS_f = 1
00026 #define RW_f = 2
00027 #define CS1_f = 4
00028 #define CS2_f = 8
00029 
00030 #include "mbed.h"
00031 #include "font.h"
00032 
00033 class Display  {
00034     public:
00035         // Constructor:
00036         Display (PinName _RS, PinName _RW, PinName _E, PinName _CS1, PinName _CS2, PinName DB0, PinName DB1, PinName DB2, PinName DB3, PinName DB4, PinName DB5, PinName DB6, PinName DB7);
00037         // Send write command to Display
00038         // Page 0-7, y 0-127
00039         void write (int page, int y, unsigned int data);
00040         // 
00041         void SetAddress(int);
00042         int SendCommand(unsigned int, int);
00043         // Row 0-7, col 0-122
00044         void writec(int row, int Y, int c);
00045         
00046     private:
00047         BusInOut DB;
00048         DigitalOut RS;
00049         DigitalOut RW;
00050         DigitalOut E;
00051         DigitalOut CS1;
00052         DigitalOut CS2;
00053         int CurCol;
00054 };
00055 
00056 class DisplayTTY : public Stream {
00057     public:
00058         DisplayTTY (Display *d, int _row, int _startY, int _numOfChars=10, int _numOfRows=1, int _charOffset=6, int _flags=0);
00059         void cls();
00060     protected:
00061         virtual int _putc (int c);
00062         virtual int _getc();
00063         virtual void newline();
00064         Display *kalle;
00065         int row;
00066         int startY;
00067         int numOfChars;
00068         int numOfRows;
00069         int charOffset;
00070         int flags;
00071         int CursPosY;
00072         int CursPosW;
00073 };
00074 
00075 #endif