Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of N5110 by
Diff: N5110.cpp
- Revision:
- 18:1af393359298
- Parent:
- 17:780a542d5f8b
- Child:
- 19:ba8addc061ea
--- a/N5110.cpp Tue Mar 17 12:56:03 2015 +0000 +++ b/N5110.cpp Wed Apr 22 12:41:45 2015 +0000 @@ -220,33 +220,46 @@ // function to print 5x7 font void N5110::printChar(char c,int x,int y) { - for (int i = 0; i < 5 ; i++ ) { - buffer[x+i][y] = font5x7[(c - 32)*5 + i]; - // array is offset by 32 relative to ASCII, each character is 5 pixels wide + if (y>=0 && y<6) { // check if printing in range of y banks + + for (int i = 0; i < 5 ; i++ ) { + int pixel_x = x+i; + if (pixel_x > 83) // ensure pixel isn't outside the buffer size (0 - 83) + break; + buffer[pixel_x][y] = font5x7[(c - 32)*5 + i]; + // array is offset by 32 relative to ASCII, each character is 5 pixels wide + } + + refresh(); // this sends the buffer to the display and sets address (cursor) back to 0,0 } - - refresh(); // this sends the buffer to the display and sets address (cursor) back to 0,0 } // function to print string at specified position void N5110::printString(const char * str,int x,int y) { - int n = 0 ; // counter for number of characters in string - // loop through string and print character - while(*str) { + if (y>=0 && y<6) { // check if printing in range of y banks + + int n = 0 ; // counter for number of characters in string + // loop through string and print character + while(*str) { - // writes the character bitmap data to the buffer, so that - // text and pixels can be displayed at the same time - for (int i = 0; i < 5 ; i++ ) { - buffer[x+i+n*6][y] = font5x7[(*str - 32)*5 + i]; + // writes the character bitmap data to the buffer, so that + // text and pixels can be displayed at the same time + for (int i = 0; i < 5 ; i++ ) { + int pixel_x = x+i+n*6; + if (pixel_x > 83) // ensure pixel isn't outside the buffer size (0 - 83) + break; + buffer[pixel_x][y] = font5x7[(*str - 32)*5 + i]; + } + + str++; // go to next character in string + + n++; // increment index + } - str++; // go to next character in string - n++; // increment index + refresh(); // this sends the buffer to the display and sets address (cursor) back to 0,0 } - - refresh(); // this sends the buffer to the display and sets address (cursor) back to 0,0 - } // function to clear the screen