トランジスタ技術2011年9月号「mbed30分クッキング」のプログラムです。
Dependencies: mbed TextLCD SDFileSystem
main.cpp@0:42e9eb506e88, 2011-08-08 (annotated)
- Committer:
- shintamainjp
- Date:
- Mon Aug 08 10:33:50 2011 +0000
- Revision:
- 0:42e9eb506e88
Initial version.
Who changed what in which revision?
User | Revision | Line number | New 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 | } |