Graphical demo for the LPC4088 Experiment Base Board with one of the Display Expansion Kits. This program displays how to write text in different fonts.

Dependencies:   EALib mbed

Revision:
0:5e5e9ec91fc8
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/TextDemo.cpp	Thu Jun 25 10:30:15 2015 +0000
@@ -0,0 +1,94 @@
+/******************************************************************************
+ * Includes
+ *****************************************************************************/
+
+#include "mbed.h"
+
+#include "LcdController.h"
+#include "EaLcdBoard.h"
+#include "TextDemo.h"
+#include "lpc_winfreesystem14x16.h"
+#include "lpc_rom8x8.h"
+#include "lpc_rom8x16.h"
+#include "lpc_x5x7.h"
+#include "lpc_x6x13.h"
+#include "lpc_helvr10.h"
+
+/******************************************************************************
+ * Typedefs and defines
+ *****************************************************************************/
+
+#define NUM_TO_TEST (sizeof(BKGCOLORS)/sizeof(BKGCOLORS[0]))  
+
+/******************************************************************************
+ * Local variables
+ *****************************************************************************/
+
+static const COLOR_T BKGCOLORS[] = { BLUE, RED, GREEN, YELLOW, CYAN, MAGENTA, LIGHTGRAY };
+static const COLOR_T PENCOLORS[] = { WHITE, WHITE, BLACK, BLACK, BLACK, WHITE, RED };
+
+/******************************************************************************
+ * Public functions
+ *****************************************************************************/
+TextDemo::TextDemo(uint8_t *pFrameBuf, uint16_t dispWidth, uint16_t dispHeight)
+{
+  swim_window_open(&this->_win, 
+                   dispWidth, dispHeight,        // full screen
+                   (COLOR_T*)pFrameBuf,
+                   0,0,dispWidth-1,dispHeight-1, // window position and size
+                   0,                            // border
+                   WHITE, BLUE, BLACK);          // colors: pen, backgr, forgr
+}
+
+void TextDemo::run(EaLcdBoardGPIO& lcdBoard, uint32_t loops, uint32_t delayMs)
+{
+  printf("TextDemo, %d loops, %dms delay\n", loops, delayMs);
+    
+  //update framebuffer
+  lcdBoard.setFrameBuffer((uint32_t)this->_win.fb);
+  
+  // Draw strings with the different fonts in different color combinations    
+  for (int i = 0; i < NUM_TO_TEST; i++) {
+    swim_set_bkg_color(&this->_win, BKGCOLORS[i]);
+    swim_set_pen_color(&this->_win, PENCOLORS[i]);
+    swim_clear_screen(&this->_win, this->_win.bkg);
+    
+    int incr = 30;
+    int y = incr;
+    swim_put_text_xy(&this->_win, "Default Font 0123456789 abcdefghijklmnopqrstuvwxyz", 20, y);
+    y += incr;
+      
+    wait_ms(1000);
+    swim_set_font(&this->_win, (FONT_T*)&font_winfreesys14x16);
+    swim_put_text_xy(&this->_win, "font_winfreesys14x16 0123456789 abcdefghijklmnopqrstuvwxyz", 20, y);
+    y += incr;
+      
+    wait_ms(1000);
+    swim_set_font(&this->_win, (FONT_T*)&font_rom8x8);
+    swim_put_text_xy(&this->_win, "font_rom8x8 0123456789 abcdefghijklmnopqrstuvwxyz", 20, y);
+    y += incr;
+      
+    wait_ms(1000);
+    swim_set_font(&this->_win, (FONT_T*)&font_rom8x16);
+    swim_put_text_xy(&this->_win, "font_rom8x16 0123456789 abcdefghijklmnopqrstuvwxyz", 20, y);
+    y += incr;
+      
+    wait_ms(1000);
+    swim_set_font(&this->_win, (FONT_T*)&font_x5x7);
+    swim_put_text_xy(&this->_win, "font_x5x7 0123456789 abcdefghijklmnopqrstuvwxyz", 20, y);
+    y += incr;
+      
+    wait_ms(1000);
+    swim_set_font(&this->_win, (FONT_T*)&font_x6x13);
+    swim_put_text_xy(&this->_win, "font_x6x13 0123456789 abcdefghijklmnopqrstuvwxyz", 20, y);
+    y += incr;
+      
+    wait_ms(1000);
+    swim_set_font(&this->_win, (FONT_T*)&font_helvr10);
+    swim_put_text_xy(&this->_win, "font_helvr10 0123456789 abcdefghijklmnopqrstuvwxyz", 20, y);
+    y += incr;
+      
+    wait_ms(2500);
+  }
+  memset((void*)(this->_win.fb), 0, this->_win.xpsize * this->_win.ypsize * sizeof(COLOR_T));
+}