ME11B Sample Code in Maxim Integrated Team

Dependencies:   BMI160 max32630hsp3 MemoryLCD USBDevice

Fork of Host_Software_MAX32664GWEB_HR_EXTENDED by Seyhmus Cacina

Committer:
seyhmus.cacina
Date:
Mon Mar 18 10:21:53 2019 +0300
Revision:
0:ac4dea3e2894
ME11B Sample Code First Commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
seyhmus.cacina 0:ac4dea3e2894 1 /* mbed TextDisplay Display Library Base Class
seyhmus.cacina 0:ac4dea3e2894 2 * Copyright (c) 2007-2009 sford
seyhmus.cacina 0:ac4dea3e2894 3 * Released under the MIT License: http://mbed.org/license/mit
seyhmus.cacina 0:ac4dea3e2894 4 */
seyhmus.cacina 0:ac4dea3e2894 5
seyhmus.cacina 0:ac4dea3e2894 6 #include "../screen/TextDisplay.h"
seyhmus.cacina 0:ac4dea3e2894 7
seyhmus.cacina 0:ac4dea3e2894 8 #include <cstdarg>
seyhmus.cacina 0:ac4dea3e2894 9
seyhmus.cacina 0:ac4dea3e2894 10 TextDisplay::TextDisplay(const char *name){
seyhmus.cacina 0:ac4dea3e2894 11 _row = 0;
seyhmus.cacina 0:ac4dea3e2894 12 _column = 0;
seyhmus.cacina 0:ac4dea3e2894 13
seyhmus.cacina 0:ac4dea3e2894 14 if (name == NULL) {
seyhmus.cacina 0:ac4dea3e2894 15 _path = NULL;
seyhmus.cacina 0:ac4dea3e2894 16 } else {
seyhmus.cacina 0:ac4dea3e2894 17 _path = new char[strlen(name) + 2];
seyhmus.cacina 0:ac4dea3e2894 18 sprintf(_path, "/%s", name);
seyhmus.cacina 0:ac4dea3e2894 19 }
seyhmus.cacina 0:ac4dea3e2894 20 }
seyhmus.cacina 0:ac4dea3e2894 21
seyhmus.cacina 0:ac4dea3e2894 22 int TextDisplay::_putc(int value) {
seyhmus.cacina 0:ac4dea3e2894 23 if(value == '\n') {
seyhmus.cacina 0:ac4dea3e2894 24 _column = 0;
seyhmus.cacina 0:ac4dea3e2894 25 _row++;
seyhmus.cacina 0:ac4dea3e2894 26 if(_row >= rows()) {
seyhmus.cacina 0:ac4dea3e2894 27 _row = 0;
seyhmus.cacina 0:ac4dea3e2894 28 }
seyhmus.cacina 0:ac4dea3e2894 29 } else {
seyhmus.cacina 0:ac4dea3e2894 30 character(_column, _row, value);
seyhmus.cacina 0:ac4dea3e2894 31 _column++;
seyhmus.cacina 0:ac4dea3e2894 32 if(_column >= columns()) {
seyhmus.cacina 0:ac4dea3e2894 33 _column = 0;
seyhmus.cacina 0:ac4dea3e2894 34 _row++;
seyhmus.cacina 0:ac4dea3e2894 35 if(_row >= rows()) {
seyhmus.cacina 0:ac4dea3e2894 36 _row = 0;
seyhmus.cacina 0:ac4dea3e2894 37 }
seyhmus.cacina 0:ac4dea3e2894 38 }
seyhmus.cacina 0:ac4dea3e2894 39 }
seyhmus.cacina 0:ac4dea3e2894 40 return value;
seyhmus.cacina 0:ac4dea3e2894 41 }
seyhmus.cacina 0:ac4dea3e2894 42
seyhmus.cacina 0:ac4dea3e2894 43 // crude cls implementation, should generally be overwritten in derived class
seyhmus.cacina 0:ac4dea3e2894 44 void TextDisplay::cls() {
seyhmus.cacina 0:ac4dea3e2894 45 locate(0, 0);
seyhmus.cacina 0:ac4dea3e2894 46 for(int i=0; i<columns()*rows(); i++) {
seyhmus.cacina 0:ac4dea3e2894 47 _putc(' ');
seyhmus.cacina 0:ac4dea3e2894 48 }
seyhmus.cacina 0:ac4dea3e2894 49 }
seyhmus.cacina 0:ac4dea3e2894 50
seyhmus.cacina 0:ac4dea3e2894 51 void TextDisplay::set_font(const unsigned char * f) {
seyhmus.cacina 0:ac4dea3e2894 52 font = f;
seyhmus.cacina 0:ac4dea3e2894 53 if(font==NULL) {
seyhmus.cacina 0:ac4dea3e2894 54 externalfont = 0; // set display.font
seyhmus.cacina 0:ac4dea3e2894 55 locate(0, 0);
seyhmus.cacina 0:ac4dea3e2894 56 }
seyhmus.cacina 0:ac4dea3e2894 57 else{
seyhmus.cacina 0:ac4dea3e2894 58 externalfont = 1;
seyhmus.cacina 0:ac4dea3e2894 59 locate(0, 0);
seyhmus.cacina 0:ac4dea3e2894 60 }
seyhmus.cacina 0:ac4dea3e2894 61 }
seyhmus.cacina 0:ac4dea3e2894 62
seyhmus.cacina 0:ac4dea3e2894 63 void TextDisplay::locate(int column, int row) {
seyhmus.cacina 0:ac4dea3e2894 64 _column = column;
seyhmus.cacina 0:ac4dea3e2894 65 _row = row;
seyhmus.cacina 0:ac4dea3e2894 66 char_x = column;
seyhmus.cacina 0:ac4dea3e2894 67 char_y = row;
seyhmus.cacina 0:ac4dea3e2894 68 }
seyhmus.cacina 0:ac4dea3e2894 69
seyhmus.cacina 0:ac4dea3e2894 70 int TextDisplay::_getc() {
seyhmus.cacina 0:ac4dea3e2894 71 return -1;
seyhmus.cacina 0:ac4dea3e2894 72 }
seyhmus.cacina 0:ac4dea3e2894 73
seyhmus.cacina 0:ac4dea3e2894 74 void TextDisplay::foreground(uint16_t colour) {
seyhmus.cacina 0:ac4dea3e2894 75 _foreground = colour;
seyhmus.cacina 0:ac4dea3e2894 76 }
seyhmus.cacina 0:ac4dea3e2894 77
seyhmus.cacina 0:ac4dea3e2894 78 void TextDisplay::background(uint16_t colour) {
seyhmus.cacina 0:ac4dea3e2894 79 _background = colour;
seyhmus.cacina 0:ac4dea3e2894 80 }
seyhmus.cacina 0:ac4dea3e2894 81
seyhmus.cacina 0:ac4dea3e2894 82 void TextDisplay::printf(const char* format, ...) {
seyhmus.cacina 0:ac4dea3e2894 83 char buffer[MAX_PRINTF_CHARS + 1] = { 0 };
seyhmus.cacina 0:ac4dea3e2894 84 uint32_t iterator = 0;
seyhmus.cacina 0:ac4dea3e2894 85 va_list args;
seyhmus.cacina 0:ac4dea3e2894 86 va_start(args, format);
seyhmus.cacina 0:ac4dea3e2894 87 vsprintf(buffer, format, args);
seyhmus.cacina 0:ac4dea3e2894 88 va_end(args);
seyhmus.cacina 0:ac4dea3e2894 89
seyhmus.cacina 0:ac4dea3e2894 90 while((buffer[iterator] != 0) && (iterator < MAX_PRINTF_CHARS)) {
seyhmus.cacina 0:ac4dea3e2894 91 _putc(buffer[iterator++]);
seyhmus.cacina 0:ac4dea3e2894 92 }
seyhmus.cacina 0:ac4dea3e2894 93 }
seyhmus.cacina 0:ac4dea3e2894 94