test program for my vt100 library. tested on FRDM-KL25Z. this may work with other mbed platform with stdout.

Dependencies:   mbed vt100

A simple test program to test my vt100 library.

I have tested this with my FRDM-KL25Z. But hopefully it will work other platforms with "printf" function.

先にパブリッシュした vt100 ライブラリのテストプログラムです。 FRDM-KL25Z でテストしましたが、printf をサポートしている 他のmbed プラットフォームでも動くのではないかと思います。 (動くといいな~)

/media/uploads/Rhyme/line_pict.jpg

/media/uploads/Rhyme/circle_pict.jpg

Committer:
Rhyme
Date:
Mon Dec 01 12:59:29 2014 +0000
Revision:
0:53ff82c87c14
Child:
1:21fe79ead178
commit before publishing

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Rhyme 0:53ff82c87c14 1 #include "mbed.h"
Rhyme 0:53ff82c87c14 2 #include "vt100.h"
Rhyme 0:53ff82c87c14 3
Rhyme 0:53ff82c87c14 4 vt100 tty ;
Rhyme 0:53ff82c87c14 5
Rhyme 0:53ff82c87c14 6 int left = 2 ;
Rhyme 0:53ff82c87c14 7 int top = 2 ;
Rhyme 0:53ff82c87c14 8 int right = 78 ;
Rhyme 0:53ff82c87c14 9 int bottom = 23 ;
Rhyme 0:53ff82c87c14 10 int h_center = 40 ;
Rhyme 0:53ff82c87c14 11 int v_center = 12 ;
Rhyme 0:53ff82c87c14 12
Rhyme 0:53ff82c87c14 13 void drawFrame(void)
Rhyme 0:53ff82c87c14 14 {
Rhyme 0:53ff82c87c14 15 tty.frame(left, top, right, bottom) ;
Rhyme 0:53ff82c87c14 16 tty.line(left+1, v_center, right-1, v_center, '-') ;
Rhyme 0:53ff82c87c14 17 tty.line(h_center, top+1, h_center, bottom-1, '|') ;
Rhyme 0:53ff82c87c14 18 tty.putChar(h_center, v_center, '+') ;
Rhyme 0:53ff82c87c14 19 }
Rhyme 0:53ff82c87c14 20
Rhyme 0:53ff82c87c14 21 int clip(int y)
Rhyme 0:53ff82c87c14 22 {
Rhyme 0:53ff82c87c14 23 if (y > bottom) {
Rhyme 0:53ff82c87c14 24 y = bottom ;
Rhyme 0:53ff82c87c14 25 } else if (y < top) {
Rhyme 0:53ff82c87c14 26 y = top ;
Rhyme 0:53ff82c87c14 27 }
Rhyme 0:53ff82c87c14 28 return( y ) ;
Rhyme 0:53ff82c87c14 29 }
Rhyme 0:53ff82c87c14 30
Rhyme 0:53ff82c87c14 31 void drawYeqX(void)
Rhyme 0:53ff82c87c14 32 {
Rhyme 0:53ff82c87c14 33 int x, y ;
Rhyme 0:53ff82c87c14 34 drawFrame() ;
Rhyme 0:53ff82c87c14 35 for (x = left+1 ; x < right ; x++ ) {
Rhyme 0:53ff82c87c14 36 y = v_center - (x - h_center) / 4 ;
Rhyme 0:53ff82c87c14 37 tty.putChar(x, y, '*') ;
Rhyme 0:53ff82c87c14 38 }
Rhyme 0:53ff82c87c14 39 tty.locate(left + 2, top + 2) ;
Rhyme 0:53ff82c87c14 40 printf("Y = X\n\r") ;
Rhyme 0:53ff82c87c14 41 }
Rhyme 0:53ff82c87c14 42
Rhyme 0:53ff82c87c14 43 void drawYeqXX(void)
Rhyme 0:53ff82c87c14 44 {
Rhyme 0:53ff82c87c14 45 int x, y ;
Rhyme 0:53ff82c87c14 46 drawFrame() ;
Rhyme 0:53ff82c87c14 47 for (x = left+1 ; x < right ; x++ ) {
Rhyme 0:53ff82c87c14 48 y = clip( bottom - 1 - ((x - h_center)*(x - h_center) / 80)) ;
Rhyme 0:53ff82c87c14 49 tty.putChar(x, y, '*') ;
Rhyme 0:53ff82c87c14 50 }
Rhyme 0:53ff82c87c14 51 tty.locate(left + 2, top + 2) ;
Rhyme 0:53ff82c87c14 52 printf("Y = X^2 - 1\n\r") ;
Rhyme 0:53ff82c87c14 53 }
Rhyme 0:53ff82c87c14 54
Rhyme 0:53ff82c87c14 55 void drawYeqXXX(void)
Rhyme 0:53ff82c87c14 56 {
Rhyme 0:53ff82c87c14 57 int x, y ;
Rhyme 0:53ff82c87c14 58 drawFrame() ;
Rhyme 0:53ff82c87c14 59 for (x = left+1 ; x < right ; x++ ) {
Rhyme 0:53ff82c87c14 60 y = clip(v_center - ((x - h_center)*(x - h_center)*(x - h_center) / 3200)) ;
Rhyme 0:53ff82c87c14 61 tty.putChar(x, y, '*') ;
Rhyme 0:53ff82c87c14 62 }
Rhyme 0:53ff82c87c14 63 tty.locate(left + 2, top + 2) ;
Rhyme 0:53ff82c87c14 64 printf("Y = X^3\n\r") ;
Rhyme 0:53ff82c87c14 65 }
Rhyme 0:53ff82c87c14 66
Rhyme 0:53ff82c87c14 67 void drawCircle(void)
Rhyme 0:53ff82c87c14 68 {
Rhyme 0:53ff82c87c14 69 drawFrame() ;
Rhyme 0:53ff82c87c14 70 tty.circle(h_center, v_center, 8) ;
Rhyme 0:53ff82c87c14 71 tty.locate(left + 2, top + 2) ;
Rhyme 0:53ff82c87c14 72 printf("Y^2 + X^2 = 1\n\r") ;
Rhyme 0:53ff82c87c14 73 }
Rhyme 0:53ff82c87c14 74
Rhyme 0:53ff82c87c14 75 int main() {
Rhyme 0:53ff82c87c14 76 int count = 0 ;
Rhyme 0:53ff82c87c14 77 while(1) {
Rhyme 0:53ff82c87c14 78 tty.cls() ;
Rhyme 0:53ff82c87c14 79 drawFrame() ;
Rhyme 0:53ff82c87c14 80 switch(count++) {
Rhyme 0:53ff82c87c14 81 case 0: drawYeqX() ; break ;
Rhyme 0:53ff82c87c14 82 case 1: drawYeqXX() ; break ;
Rhyme 0:53ff82c87c14 83 case 2: drawYeqXXX() ; break ;
Rhyme 0:53ff82c87c14 84 case 3: drawCircle() ; break ;
Rhyme 0:53ff82c87c14 85 default: count = 0 ; continue ;
Rhyme 0:53ff82c87c14 86 }
Rhyme 0:53ff82c87c14 87 wait(4.0) ;
Rhyme 0:53ff82c87c14 88 }
Rhyme 0:53ff82c87c14 89 }