
エレキジャック Web版 mbedで初めてのマイコン開発 LCDを極める!でLCDに表示された文字列がスライドするプログラムです。http://www.eleki-jack.com/arm/mbed/cat691/lcd-1/ <5/5>にスライド文字列用のプログラム解説があります。
Diff: main.cpp
- Revision:
- 0:d4893e58d648
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Wed Sep 22 12:52:23 2010 +0000 @@ -0,0 +1,48 @@ +#include "mbed.h" +#include "TextLCD.h" + +void slideMessage(char* ,double ,int ); +//slideMessage(message, slidetime, row ) + +TextLCD lcd(p24,p26,p27,p28,p29,p30); +#define SIZE 16 +// I don't test TextLCD 20x ... 16x2B + +int main() { + char msg[] = "1234567890123456" ; + char msg1[] = "Welcome to mbed! mbed is a tool for Rapid Prototyping with Microcontrollers." ; + slideMessage(msg1, 0.5,0); + return 0 ; +} + +void slideMessage(char msg[], double time,int row) +{ + int j, k ; + int len = ( strlen(msg) ) ; + + lcd.cls(); + + while(1){ + for (j = SIZE -1 ; j>=0 ; j-- ){ + for ( k = j ; k < SIZE ; k++ ){ + lcd.locate(k,row); + if ( len > (k - j) ) + lcd.printf("%c",msg[k-j]) ; + else + lcd.printf(" ") ; + } + wait(time) ; + } + + for ( j = 1 ; j <= len ; j++ ){ + for ( k = 0; k < SIZE ; k++ ){ + lcd.locate(k,row) ; + if( ( k + j ) < len ) + lcd.printf("%c",msg[k+j]) ; + else + lcd.printf(" ") ; + } + wait(time) ; + } + } +}