トランジスタ技術2011年9月号「mbed30分クッキング」のプログラムです。

Dependencies:   mbed TextLCD SDFileSystem

Committer:
shintamainjp
Date:
Mon Aug 08 10:33:50 2011 +0000
Revision:
0:42e9eb506e88
Initial version.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
shintamainjp 0:42e9eb506e88 1
shintamainjp 0:42e9eb506e88 2 #include "mbed.h"
shintamainjp 0:42e9eb506e88 3 #include "micro.h"
shintamainjp 0:42e9eb506e88 4 #include "TextLCD.h"
shintamainjp 0:42e9eb506e88 5 #include "SDFileSystem.h"
shintamainjp 0:42e9eb506e88 6
shintamainjp 0:42e9eb506e88 7 TextLCD lcd(p24, p26, p27, p28, p29, p30);
shintamainjp 0:42e9eb506e88 8 SDFileSystem fs_sd(p5, p6, p7, p8, "sd");
shintamainjp 0:42e9eb506e88 9 char *filename = "/sd/target.xsv";
shintamainjp 0:42e9eb506e88 10
shintamainjp 0:42e9eb506e88 11 /**
shintamainjp 0:42e9eb506e88 12 * Callback function.
shintamainjp 0:42e9eb506e88 13 *
shintamainjp 0:42e9eb506e88 14 * @param done Done.
shintamainjp 0:42e9eb506e88 15 * @param total Total.
shintamainjp 0:42e9eb506e88 16 */
shintamainjp 0:42e9eb506e88 17 void cbfunc_progress(int done, int total) {
shintamainjp 0:42e9eb506e88 18 if (total != 0) {
shintamainjp 0:42e9eb506e88 19 static int n = 0;
shintamainjp 0:42e9eb506e88 20 int tmp = done * 100 / total;
shintamainjp 0:42e9eb506e88 21 if (tmp != n) {
shintamainjp 0:42e9eb506e88 22 n = tmp;
shintamainjp 0:42e9eb506e88 23 lcd.locate(0, 1);
shintamainjp 0:42e9eb506e88 24 lcd.printf("Progress: %3d%%", n);
shintamainjp 0:42e9eb506e88 25 }
shintamainjp 0:42e9eb506e88 26 }
shintamainjp 0:42e9eb506e88 27 }
shintamainjp 0:42e9eb506e88 28
shintamainjp 0:42e9eb506e88 29 /**
shintamainjp 0:42e9eb506e88 30 * Callback function.
shintamainjp 0:42e9eb506e88 31 *
shintamainjp 0:42e9eb506e88 32 * @param microsec Micro seconds.
shintamainjp 0:42e9eb506e88 33 */
shintamainjp 0:42e9eb506e88 34 void cbfunc_waittime(int microsec) {
shintamainjp 0:42e9eb506e88 35 int n = microsec / 1000 / 1000;
shintamainjp 0:42e9eb506e88 36 if (n > 0) {
shintamainjp 0:42e9eb506e88 37 lcd.locate(0, 1);
shintamainjp 0:42e9eb506e88 38 lcd.printf("Wait %d sec.", n);
shintamainjp 0:42e9eb506e88 39 }
shintamainjp 0:42e9eb506e88 40 }
shintamainjp 0:42e9eb506e88 41
shintamainjp 0:42e9eb506e88 42 /**
shintamainjp 0:42e9eb506e88 43 * Entry point.
shintamainjp 0:42e9eb506e88 44 */
shintamainjp 0:42e9eb506e88 45 int main() {
shintamainjp 0:42e9eb506e88 46 lcd.cls();
shintamainjp 0:42e9eb506e88 47 lcd.locate(0, 0);
shintamainjp 0:42e9eb506e88 48 lcd.printf("mbed XSVF Player");
shintamainjp 0:42e9eb506e88 49 wait(2);
shintamainjp 0:42e9eb506e88 50
shintamainjp 0:42e9eb506e88 51 lcd.cls();
shintamainjp 0:42e9eb506e88 52 lcd.locate(0, 0);
shintamainjp 0:42e9eb506e88 53 lcd.printf("mbed XSVF Player");
shintamainjp 0:42e9eb506e88 54 int r = execute_micro(filename, &cbfunc_progress, &cbfunc_waittime);
shintamainjp 0:42e9eb506e88 55 lcd.locate(0, 1);
shintamainjp 0:42e9eb506e88 56 lcd.printf("Done with code %d", r);
shintamainjp 0:42e9eb506e88 57
shintamainjp 0:42e9eb506e88 58 return 0;
shintamainjp 0:42e9eb506e88 59 }