
エレキジャック Web版 mbedで初めてのマイコン開発 LCDを極める!でLCDに表示された文字列がスライドするプログラムです。http://www.eleki-jack.com/arm/mbed/cat691/lcd-1/ <5/5>にスライド文字列用のプログラム解説があります。
main.cpp@0:d4893e58d648, 2010-09-22 (annotated)
- Committer:
- sunifu
- Date:
- Wed Sep 22 12:52:23 2010 +0000
- Revision:
- 0:d4893e58d648
Who changed what in which revision?
User | Revision | Line number | New 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 | } |