This demo uses the mbed RTOS to run eight threads (including main). The threads are using different I/O devices on the application board. Several of the threads output to the LCD and an OS mutex lock is used to control access to the LCD and make the LCD thread safe.

Dependencies:   C12832_lcd LCD_fonts mbed-rtos mbed

Fork of lab1 by Peter Drescher

Revision:
1:1c6a9eaf55b5
Parent:
0:f6a57b843f79
Child:
2:a69c8c5f5b03
--- a/C12832_lcd/TextDisplay.h	Mon Oct 15 21:48:28 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,80 +0,0 @@
-/* mbed TextDisplay Library Base Class
- * Copyright (c) 2007-2009 sford
- * Released under the MIT License: http://mbed.org/license/mit
- *
- * A common base class for Text displays
- * To port a new display, derive from this class and implement
- * the constructor (setup the display), character (put a character
- * at a location), rows and columns (number of rows/cols) functions.
- * Everything else (locate, printf, putc, cls) will come for free
- *
- * The model is the display will wrap at the right and bottom, so you can
- * keep writing and will always get valid characters. The location is 
- * maintained internally to the class to make this easy
- */
-
-#ifndef MBED_TEXTDISPLAY_H
-#define MBED_TEXTDISPLAY_H
-
-#include "mbed.h"
-
-class TextDisplay : public Stream {
-public:
-
-  // functions needing implementation in derived implementation class
-  /** Create a TextDisplay interface
-     *
-     * @param name The name used in the path to access the strean through the filesystem
-     */
-    TextDisplay(const char *name = NULL);
-
-    /** output a character at the given position
-     *
-     * @param column column where charater must be written
-     * @param  row where character must be written
-     * @param c the character to be written to the TextDisplay
-     */
-    virtual void character(int column, int row, int c) = 0;
-
-    /** return number if rows on TextDisplay
-     * @result number of rows
-     */
-    virtual int rows() = 0;
-
-    /** return number if columns on TextDisplay
-    * @result number of rows
-    */
-    virtual int columns() = 0;
-    
-    // functions that come for free, but can be overwritten
-
-    /** redirect output from a stream (stoud, sterr) to  display
-    * @param stream stream that shall be redirected to the TextDisplay
-    */
-    virtual bool claim (FILE *stream);
-
-    /** clear screen
-    */
-    virtual void cls();
-    virtual void locate(int column, int row);
-    virtual void foreground(uint16_t colour);
-    virtual void background(uint16_t colour);
-    // putc (from Stream)
-    // printf (from Stream)
-    
-protected:
-
-    virtual int _putc(int value);
-    virtual int _getc();
-
-    // character location
-    uint16_t _column;
-    uint16_t _row;
-
-    // colours
-    uint16_t _foreground;
-    uint16_t _background;
-    char *_path;
-};
-
-#endif