a white square appears on SPI LCD which controlled by WII nunchuck on the other hand it outputs log mwessage on USBTX/RX incompatible with latest mbed library

Dependencies:   WiiChuck mbed

Committer:
k4zuki
Date:
Tue Aug 27 14:31:22 2013 +0000
Revision:
0:0c777a879891
p9 and p10 forI2C, p11,12,13,14,23 are for SPI, R/S select and reset

Who changed what in which revision?

UserRevisionLine numberNew contents of line
k4zuki 0:0c777a879891 1 /* mbed TextDisplay Display Library Base Class
k4zuki 0:0c777a879891 2 * Copyright (c) 2007-2009 sford
k4zuki 0:0c777a879891 3 * Released under the MIT License: http://mbed.org/license/mit
k4zuki 0:0c777a879891 4 */
k4zuki 0:0c777a879891 5
k4zuki 0:0c777a879891 6 #include "TextDisplay.h"
k4zuki 0:0c777a879891 7
k4zuki 0:0c777a879891 8 TextDisplay::TextDisplay(const char *name) : Stream(name){
k4zuki 0:0c777a879891 9 _row = 0;
k4zuki 0:0c777a879891 10 _column = 0;
k4zuki 0:0c777a879891 11 if (name == NULL) {
k4zuki 0:0c777a879891 12 _path = NULL;
k4zuki 0:0c777a879891 13 } else {
k4zuki 0:0c777a879891 14 _path = new char[strlen(name) + 2];
k4zuki 0:0c777a879891 15 sprintf(_path, "/%s", name);
k4zuki 0:0c777a879891 16 }
k4zuki 0:0c777a879891 17 }
k4zuki 0:0c777a879891 18
k4zuki 0:0c777a879891 19 int TextDisplay::_putc(int value) {
k4zuki 0:0c777a879891 20 if(value == '\n') {
k4zuki 0:0c777a879891 21 _column = 0;
k4zuki 0:0c777a879891 22 _row++;
k4zuki 0:0c777a879891 23 if(_row >= rows()) {
k4zuki 0:0c777a879891 24 _row = 0;
k4zuki 0:0c777a879891 25 }
k4zuki 0:0c777a879891 26 } else {
k4zuki 0:0c777a879891 27 character(_column, _row, value);
k4zuki 0:0c777a879891 28 _column++;
k4zuki 0:0c777a879891 29 if(_column >= columns()) {
k4zuki 0:0c777a879891 30 _column = 0;
k4zuki 0:0c777a879891 31 _row++;
k4zuki 0:0c777a879891 32 if(_row >= rows()) {
k4zuki 0:0c777a879891 33 _row = 0;
k4zuki 0:0c777a879891 34 }
k4zuki 0:0c777a879891 35 }
k4zuki 0:0c777a879891 36 }
k4zuki 0:0c777a879891 37 return value;
k4zuki 0:0c777a879891 38 }
k4zuki 0:0c777a879891 39
k4zuki 0:0c777a879891 40 // crude cls implementation, should generally be overwritten in derived class
k4zuki 0:0c777a879891 41 void TextDisplay::cls() {
k4zuki 0:0c777a879891 42 locate(0, 0);
k4zuki 0:0c777a879891 43 for(int i=0; i<columns()*rows(); i++) {
k4zuki 0:0c777a879891 44 putc(' ');
k4zuki 0:0c777a879891 45 }
k4zuki 0:0c777a879891 46 }
k4zuki 0:0c777a879891 47
k4zuki 0:0c777a879891 48 void TextDisplay::locate(int column, int row) {
k4zuki 0:0c777a879891 49 _column = column;
k4zuki 0:0c777a879891 50 _row = row;
k4zuki 0:0c777a879891 51 }
k4zuki 0:0c777a879891 52
k4zuki 0:0c777a879891 53 int TextDisplay::_getc() {
k4zuki 0:0c777a879891 54 return -1;
k4zuki 0:0c777a879891 55 }
k4zuki 0:0c777a879891 56
k4zuki 0:0c777a879891 57 void TextDisplay::foreground(uint16_t colour) {
k4zuki 0:0c777a879891 58 _foreground = colour;
k4zuki 0:0c777a879891 59 }
k4zuki 0:0c777a879891 60
k4zuki 0:0c777a879891 61 void TextDisplay::background(uint16_t colour) {
k4zuki 0:0c777a879891 62 _background = colour;
k4zuki 0:0c777a879891 63 }
k4zuki 0:0c777a879891 64
k4zuki 0:0c777a879891 65 bool TextDisplay::claim (FILE *stream) {
k4zuki 0:0c777a879891 66 if ( _path == NULL) {
k4zuki 0:0c777a879891 67 fprintf(stderr, "claim requires a name to be given in the instantioator of the TextDisplay instance!\r\n");
k4zuki 0:0c777a879891 68 return false;
k4zuki 0:0c777a879891 69 }
k4zuki 0:0c777a879891 70 if (freopen(_path, "w", stream) == NULL) {
k4zuki 0:0c777a879891 71 // Failed, should not happen
k4zuki 0:0c777a879891 72 return false;
k4zuki 0:0c777a879891 73 }
k4zuki 0:0c777a879891 74 // make sure we use line buffering
k4zuki 0:0c777a879891 75 setvbuf(stdout, NULL, _IOLBF, columns());
k4zuki 0:0c777a879891 76 return true;
k4zuki 0:0c777a879891 77 }