Increased SPI frequency from 5Mhz to 10MHz

Fork of RA8875 by David Smart

Committer:
ItsJustZi
Date:
Mon Aug 21 22:00:31 2017 +0000
Revision:
150:13745364dba0
Parent:
141:2ec78a50dc98
Turned SPI frequency back down to 5MHz for lower susceptibility to noise

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dreschpe 0:de9d1462a835 1 /* mbed TextDisplay Display Library Base Class
dreschpe 0:de9d1462a835 2 * Copyright (c) 2007-2009 sford
dreschpe 0:de9d1462a835 3 * Released under the MIT License: http://mbed.org/license/mit
dreschpe 0:de9d1462a835 4 */
WiredHome 19:3f82c1161fd2 5
dreschpe 0:de9d1462a835 6 #include "TextDisplay.h"
dreschpe 0:de9d1462a835 7
WiredHome 75:ca78388cfd77 8 //#define DEBUG "Text"
WiredHome 29:422616aa04bd 9 // ...
WiredHome 29:422616aa04bd 10 // INFO("Stuff to show %d", var); // new-line is automatically appended
WiredHome 29:422616aa04bd 11 //
WiredHome 29:422616aa04bd 12 #if (defined(DEBUG) && !defined(TARGET_LPC11U24))
WiredHome 29:422616aa04bd 13 #define INFO(x, ...) std::printf("[INF %s %3d] "x"\r\n", DEBUG, __LINE__, ##__VA_ARGS__);
WiredHome 29:422616aa04bd 14 #define WARN(x, ...) std::printf("[WRN %s %3d] "x"\r\n", DEBUG, __LINE__, ##__VA_ARGS__);
WiredHome 29:422616aa04bd 15 #define ERR(x, ...) std::printf("[ERR %s %3d] "x"\r\n", DEBUG, __LINE__, ##__VA_ARGS__);
WiredHome 29:422616aa04bd 16 #else
WiredHome 29:422616aa04bd 17 #define INFO(x, ...)
WiredHome 29:422616aa04bd 18 #define WARN(x, ...)
WiredHome 29:422616aa04bd 19 #define ERR(x, ...)
WiredHome 29:422616aa04bd 20 #endif
WiredHome 29:422616aa04bd 21
WiredHome 19:3f82c1161fd2 22 TextDisplay::TextDisplay(const char *name) : Stream(name)
WiredHome 19:3f82c1161fd2 23 {
dreschpe 0:de9d1462a835 24 _row = 0;
dreschpe 0:de9d1462a835 25 _column = 0;
dreschpe 0:de9d1462a835 26 if (name == NULL) {
dreschpe 0:de9d1462a835 27 _path = NULL;
dreschpe 0:de9d1462a835 28 } else {
WiredHome 141:2ec78a50dc98 29 int len = strlen(name) + 2;
WiredHome 141:2ec78a50dc98 30 _path = new char[len];
WiredHome 141:2ec78a50dc98 31 snprintf(_path, len, "/%s", name);
dreschpe 0:de9d1462a835 32 }
dreschpe 0:de9d1462a835 33 }
WiredHome 19:3f82c1161fd2 34
WiredHome 104:8d1d3832a215 35 //TextDisplay::~TextDisplay()
WiredHome 104:8d1d3832a215 36 //{
WiredHome 104:8d1d3832a215 37 // delete [] _path;
WiredHome 104:8d1d3832a215 38 //}
WiredHome 103:7e0464ca6c5c 39
WiredHome 19:3f82c1161fd2 40 int TextDisplay::_putc(int value)
WiredHome 19:3f82c1161fd2 41 {
WiredHome 29:422616aa04bd 42 INFO("_putc(%d)", value);
dreschpe 0:de9d1462a835 43 if(value == '\n') {
dreschpe 0:de9d1462a835 44 _column = 0;
dreschpe 0:de9d1462a835 45 _row++;
WiredHome 47:d96a09269f91 46 if(_row >= rows()) {
dreschpe 0:de9d1462a835 47 _row = 0;
dreschpe 0:de9d1462a835 48 }
dreschpe 0:de9d1462a835 49 } else {
dreschpe 0:de9d1462a835 50 character(_column, _row, value);
dreschpe 0:de9d1462a835 51 _column++;
dreschpe 0:de9d1462a835 52 if(_column >= columns()) {
dreschpe 0:de9d1462a835 53 _column = 0;
dreschpe 0:de9d1462a835 54 _row++;
WiredHome 47:d96a09269f91 55 if(_row >= rows()) {
dreschpe 0:de9d1462a835 56 _row = 0;
dreschpe 0:de9d1462a835 57 }
dreschpe 0:de9d1462a835 58 }
dreschpe 0:de9d1462a835 59 }
dreschpe 0:de9d1462a835 60 return value;
dreschpe 0:de9d1462a835 61 }
dreschpe 0:de9d1462a835 62
dreschpe 0:de9d1462a835 63 // crude cls implementation, should generally be overwritten in derived class
WiredHome 61:8f3153bf0baa 64 RetCode_t TextDisplay::cls(uint16_t layers)
WiredHome 19:3f82c1161fd2 65 {
WiredHome 29:422616aa04bd 66 INFO("cls()");
dreschpe 0:de9d1462a835 67 locate(0, 0);
dreschpe 0:de9d1462a835 68 for(int i=0; i<columns()*rows(); i++) {
dreschpe 0:de9d1462a835 69 putc(' ');
dreschpe 0:de9d1462a835 70 }
WiredHome 19:3f82c1161fd2 71 return noerror;
dreschpe 0:de9d1462a835 72 }
dreschpe 0:de9d1462a835 73
WiredHome 37:f19b7e7449dc 74 RetCode_t TextDisplay::locate(textloc_t column, textloc_t row)
WiredHome 19:3f82c1161fd2 75 {
WiredHome 29:422616aa04bd 76 INFO("locate(%d,%d)", column, row);
dreschpe 0:de9d1462a835 77 _column = column;
dreschpe 0:de9d1462a835 78 _row = row;
WiredHome 19:3f82c1161fd2 79 return noerror;
dreschpe 0:de9d1462a835 80 }
dreschpe 0:de9d1462a835 81
WiredHome 19:3f82c1161fd2 82 int TextDisplay::_getc()
WiredHome 19:3f82c1161fd2 83 {
dreschpe 0:de9d1462a835 84 return -1;
dreschpe 0:de9d1462a835 85 }
WiredHome 19:3f82c1161fd2 86
WiredHome 33:b6b710758ab3 87 RetCode_t TextDisplay::foreground(uint16_t color)
WiredHome 19:3f82c1161fd2 88 {
WiredHome 37:f19b7e7449dc 89 //INFO("foreground(%4X)", color);
WiredHome 33:b6b710758ab3 90 _foreground = color;
WiredHome 19:3f82c1161fd2 91 return noerror;
dreschpe 0:de9d1462a835 92 }
dreschpe 0:de9d1462a835 93
WiredHome 33:b6b710758ab3 94 RetCode_t TextDisplay::background(uint16_t color)
WiredHome 19:3f82c1161fd2 95 {
WiredHome 37:f19b7e7449dc 96 //INFO("background(%4X)", color);
WiredHome 33:b6b710758ab3 97 _background = color;
WiredHome 19:3f82c1161fd2 98 return noerror;
dreschpe 0:de9d1462a835 99 }
dreschpe 0:de9d1462a835 100
WiredHome 29:422616aa04bd 101 bool TextDisplay::claim(FILE *stream)
WiredHome 19:3f82c1161fd2 102 {
dreschpe 0:de9d1462a835 103 if ( _path == NULL) {
WiredHome 19:3f82c1161fd2 104 fprintf(stderr, "claim requires a name to be given in the instantiator of the TextDisplay instance!\r\n");
dreschpe 0:de9d1462a835 105 return false;
dreschpe 0:de9d1462a835 106 }
dreschpe 0:de9d1462a835 107 if (freopen(_path, "w", stream) == NULL) {
WiredHome 29:422616aa04bd 108 return false; // Failed, should not happen
dreschpe 0:de9d1462a835 109 }
dreschpe 0:de9d1462a835 110 // make sure we use line buffering
dreschpe 0:de9d1462a835 111 setvbuf(stdout, NULL, _IOLBF, columns());
dreschpe 0:de9d1462a835 112 return true;
WiredHome 19:3f82c1161fd2 113 }
WiredHome 33:b6b710758ab3 114