これは、モールス信号でのHelloWorldである。

Dependencies:   mbed

Files at this revision

API Documentation at this revision

Comitter:
gin_liquor
Date:
Wed Jan 08 04:11:49 2014 +0000
Commit message:
????????????HelloWorld????

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
morse.cpp Show annotated file Show diff for this revision Revisions of this file
morse.h Show annotated file Show diff for this revision Revisions of this file
diff -r 000000000000 -r ee17615ede36 main.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Wed Jan 08 04:11:49 2014 +0000
@@ -0,0 +1,25 @@
+#include "mbed.h"
+#include "morse.h"
+#include <string>
+
+Serial pc(USBTX, USBRX); // tx, rx
+
+DigitalOut myled(LED1);
+
+void morsebeep(int freq, int length) {
+    myled = 1;
+    wait(0.01 * length);
+    myled = 0;
+}
+
+void morsewait(int length) {
+    wait(0.01 * length);
+}
+
+int main() {
+    printf("hello world.\r\n");
+    string str = "hello world . ";
+    while(1) {
+        putbeep(str.c_str(), 700, 15);
+    }
+}
diff -r 000000000000 -r ee17615ede36 mbed.bld
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Wed Jan 08 04:11:49 2014 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/b3110cd2dd17
\ No newline at end of file
diff -r 000000000000 -r ee17615ede36 morse.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/morse.cpp	Wed Jan 08 04:11:49 2014 +0000
@@ -0,0 +1,155 @@
+#include "mbed.h"
+#include "morse.h"
+
+char* mcode[] =
+{
+    "a", "sl",
+    "b", "lsss",
+    "c", "lsls",
+    "d", "lss",
+    "e", "s",
+    "f", "ssls",
+    "g", "lls",
+    "h", "ssss",
+    "i", "ss",
+    "j", "slll",
+    "k", "lsl",
+    "l", "slss",
+    "m", "ll",
+    "n", "ls",
+    "o", "lll",
+    "p", "slls",
+    "q", "llsl",
+    "r", "sls",
+    "s", "sss",
+    "t", "l",
+    "u", "ssl",
+    "v", "sssl",
+    "w", "sll",
+    "x", "lssl",
+    "y", "lsll",
+    "z", "llss",
+    "1", "sllll",
+    "2", "sslll",
+    "3", "sssll",
+    "4", "ssssl",
+    "5", "sssss",
+    "6", "lssss",
+    "7", "llsss",
+    "8", "lllss",
+    "9", "lllls",
+    "0", "lllll",
+    ".", "slslsl",
+    ",", "llssll",
+    ":", "lllsss",
+    "?", "ssllss",
+    "\'", "slllls",
+    "/", "lssls",
+    "(", "lslls",
+    ")", "lsllsl",
+    "\"", "slssls",
+    "-", "lssssl",
+    "+", "slsls",
+    "=", "lsssl",
+    " ", "n",
+    "*", "slsls",//end
+
+    "≤","sl",
+    "€","slsl",
+    " ","lsss",
+    "∆","lsls",
+    "Œ","lss",
+    "Õ","s",
+    "ƒ","sslss",
+    "¡","ssls",
+    "ÿ","lls",
+    "«","ssss",
+    "Ÿ","lslls",
+    "¶","slll",
+    "‹","lsl",
+    "∂","slss",
+    "÷","ll",
+    "¿","ls",
+    "⁄","lll",
+    "ø","llls",
+    "¬","slls",
+    "»","llsl",
+    "≈","sls",
+    "◊","sss",
+    "—","l",
+    "≥","ssl",
+    "$","slssl",//Éê
+    "…","ssll",
+    "µ","slsss",
+    "∏","sssl",
+    "‘","sll",
+    "œ","lssl",
+    "π","lsll",
+    "Ã","llss",
+    "∫","llll",
+    "¥","lslll",
+    "√","slsll",
+    "±","llsll",
+    "ª","lslsl",
+    "∑","lslss",
+    "’","lssll",
+    "“","lsssl",
+    "–","sslsl",
+    "º","llsls",
+    "|","sllss",//Éë
+    "À","llssl",
+    "”","lssls",
+    "æ","sllls",
+    "Ω","lllsl",
+    "›","slsls",
+    "fi","ss",
+    "fl","sslls",
+    "∞","sllsl",//cho-on
+    "•","slslsl",//kugiri-ten
+    "#","slslss",//danraku
+    "¢","lsllsl",//kakko
+    "£","slssls",//kakko-toji
+    "^","sssls",//shushin
+
+    "\0", ""
+};
+
+int getcode(int c)
+{
+    for (int i = 0; mcode[i][0] != 0; i += 2) {
+        if (mcode[i][0] == c) return i;
+    }
+    return -1;
+}
+
+void putbeep(const char* str, int freq, int step)
+{
+    //printf("%d:%s:%s\n", c, mcode[code], mcode[code + 1]);
+    for (int i = 0; str[i] != '\0' && i < 1024; i++) {
+        int c = getcode(str[i]);
+        //printf("%c", mcode[c][0]);
+        //put alphabet
+        for (int k = 0; k < 10; ++k) {
+            switch (mcode[c + 1][k]) {
+            case 's':
+                morsebeep(freq, step);
+                morsewait(step);
+                break;
+            case 'l':
+                morsebeep(freq, step * 3);
+                morsewait(step);
+                break;
+            case 'n':
+                morsewait(step * 6);
+                break;
+            case '_':
+                morsewait(step * 2);
+                break;
+            case '\0':
+                morsewait(step * 2);
+                k = 10;
+                break;
+            }
+        }
+    }
+}
diff -r 000000000000 -r ee17615ede36 morse.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/morse.h	Wed Jan 08 04:11:49 2014 +0000
@@ -0,0 +1,4 @@
+
+void putbeep(const char* str, int freq, int step);
+void morsebeep(int freq, int length);
+void morsewait(int length);