エレキジャック Web版 mbedで初めてのマイコン開発 LCDを極める!でLCDに表示された文字列がスライドするプログラムです。http://www.eleki-jack.com/arm/mbed/cat691/lcd-1/ <5/5>にスライド文字列用のプログラム解説があります。

Dependencies:   mbed

Committer:
sunifu
Date:
Wed Sep 22 12:52:23 2010 +0000
Revision:
0:d4893e58d648

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sunifu 0:d4893e58d648 1 #include "mbed.h"
sunifu 0:d4893e58d648 2 #include "TextLCD.h"
sunifu 0:d4893e58d648 3
sunifu 0:d4893e58d648 4 void slideMessage(char* ,double ,int );
sunifu 0:d4893e58d648 5 //slideMessage(message, slidetime, row )
sunifu 0:d4893e58d648 6
sunifu 0:d4893e58d648 7 TextLCD lcd(p24,p26,p27,p28,p29,p30);
sunifu 0:d4893e58d648 8 #define SIZE 16
sunifu 0:d4893e58d648 9 // I don't test TextLCD 20x ... 16x2B
sunifu 0:d4893e58d648 10
sunifu 0:d4893e58d648 11 int main() {
sunifu 0:d4893e58d648 12 char msg[] = "1234567890123456" ;
sunifu 0:d4893e58d648 13 char msg1[] = "Welcome to mbed! mbed is a tool for Rapid Prototyping with Microcontrollers." ;
sunifu 0:d4893e58d648 14 slideMessage(msg1, 0.5,0);
sunifu 0:d4893e58d648 15 return 0 ;
sunifu 0:d4893e58d648 16 }
sunifu 0:d4893e58d648 17
sunifu 0:d4893e58d648 18 void slideMessage(char msg[], double time,int row)
sunifu 0:d4893e58d648 19 {
sunifu 0:d4893e58d648 20 int j, k ;
sunifu 0:d4893e58d648 21 int len = ( strlen(msg) ) ;
sunifu 0:d4893e58d648 22
sunifu 0:d4893e58d648 23 lcd.cls();
sunifu 0:d4893e58d648 24
sunifu 0:d4893e58d648 25 while(1){
sunifu 0:d4893e58d648 26 for (j = SIZE -1 ; j>=0 ; j-- ){
sunifu 0:d4893e58d648 27 for ( k = j ; k < SIZE ; k++ ){
sunifu 0:d4893e58d648 28 lcd.locate(k,row);
sunifu 0:d4893e58d648 29 if ( len > (k - j) )
sunifu 0:d4893e58d648 30 lcd.printf("%c",msg[k-j]) ;
sunifu 0:d4893e58d648 31 else
sunifu 0:d4893e58d648 32 lcd.printf(" ") ;
sunifu 0:d4893e58d648 33 }
sunifu 0:d4893e58d648 34 wait(time) ;
sunifu 0:d4893e58d648 35 }
sunifu 0:d4893e58d648 36
sunifu 0:d4893e58d648 37 for ( j = 1 ; j <= len ; j++ ){
sunifu 0:d4893e58d648 38 for ( k = 0; k < SIZE ; k++ ){
sunifu 0:d4893e58d648 39 lcd.locate(k,row) ;
sunifu 0:d4893e58d648 40 if( ( k + j ) < len )
sunifu 0:d4893e58d648 41 lcd.printf("%c",msg[k+j]) ;
sunifu 0:d4893e58d648 42 else
sunifu 0:d4893e58d648 43 lcd.printf(" ") ;
sunifu 0:d4893e58d648 44 }
sunifu 0:d4893e58d648 45 wait(time) ;
sunifu 0:d4893e58d648 46 }
sunifu 0:d4893e58d648 47 }
sunifu 0:d4893e58d648 48 }