TinyJS on mbed. TinyJS is very simple JavaScript engine.
TinyJS on mbed
what's this ?
TinyJS is an extremely simple (under than 2000 lines) JavaScript interpreter engine.
I ported on mbed. but it restrict any features.
TinyJS project is https://github.com/gfwilliams/tiny-js
TinyJSは2000行以下で書かれた非常に小さいJavaScriptインタプリタエンジンです。
これをmbedに移植してみました。(ただし、いろいろ制限があります)
本家はこちら。 https://github.com/gfwilliams/tiny-js
how to use
You must use on serial terminal application by mbed serial USB.
baud is 57600bps
USBシリアルとして、ターミナルソフトを接続するとコンソールが表示されます。
ボーレートは57600bpsになってます。
functions
functions for mbed.
mbed用関数
- mbed.DigitalIn(pinName, mode)
- mbed.DigitalOut(pinName, val)
- mbed.AnalogIn(pinName)
- mbed.AnalogOut(pinName, val)
- mbed.InterruptIn(pinName, edge, mode, callback)
- mbed.TimerStart()
- mbed.TimerStop()
- mbed.TimerReset()
- mbed.TimerRead()
- mbed.Timeout(callback, t)
- mbed.wait(s)
- mbed.memfree()
sample JavaScript codes
DigitalOut
mbed.DigitalOut('LED1', 1); mbed.DigitalOut('LED2', 0); mbed.DigitalOut('LED3', 1); mbed.DigitalOut('LED4', 0);
LED1 = On, LED2=Off, LED3=On, ED4=Off
LED1 = 点灯、LED2=消灯、LED3=点灯、LED4=消灯
DigitalIn
print(mbed.DigitalIn('p5', 'PullUp'));
p5 is pull up, read, and print on console.
p5をPullUpして読みプリントする。
AnalogOut
mbed.AnalogOut('p18', 0.8);
p18 is analog output, value is 0.8.
p18を 値0.8でアナログ出力する。
AnalogIn
print(mbed.AnalogIn('p20'));
p20 is read analog voltage, and print on console.
p20をアナログ入力しプリントする。
InterruptIn
var led1 = 0; mbed.InterruptIn('p5', 'fall', 'PullUp', function() {led1 = !led1; mbed.DigitalOut('LED1', led1);});
Interrupt on p5, and ON/OFF does LED1.
p5で割り込んでLED1をON/OFFする。
Timeout and wait sample code
mbed.Timeout(function() {mbed.DigitalOut('LED1', 1);mbed.wait(3);mbed.DigitalOut('LED1', 0);}, 4);
LED1=on when wait for 4 seconds. and LED1=off for 3 seconds later.
LED1を4秒待って点灯して3秒後に消灯する。
memfree
print(mbed.memfree());
This prints the number of bytes of the remainder memory on mbed where TinyJS is usable.
これはTinyJSが使えるmbed上での残りメモリのバイト数をプリントアウトする。
LED Blinker by Timeout
blinker = function() {var led = 0; mbed.Timeout(function() {led = !led; mbed.DigitalOut('LED1', led);blinker();}, 0.5);}; blinker();
LED Blinker by Timeout.
Timeoutを使ったLチカ。
restrictions
- There is very little available memory. (Less than 9kbytes on LPC1768)
- Registration of InterruptIn is 4 limit.
- The loop to 8,192 times.
- The built-in functions (general JavaScript functions) that TinyJS prepares for for securing of memory is not included.
more, more, more ....
制限事項
- 利用できるメモリは非常に少ない。(LPC1768で9kbytes以下)
- InterruptInで登録できる割り込みは4つまで。4つを超えると1つめから順番に削除される。
- ループは8192回まで。
- メモリ確保のためTinyJSが用意している組み込み関数(一般的なJavaScript関数)は含まれない。
他、多数....
sample movies
http://www.youtube.com/watch?v=ARp0DK70JGM
http://www.youtube.com/watch?v=UOZQ4eEC4xA
Mbed_Functions.cpp@3:f56c36ea8266, 2014-01-18 (annotated)
- Committer:
- ohneta
- Date:
- Sat Jan 18 15:23:00 2014 +0000
- Revision:
- 3:f56c36ea8266
- Child:
- 4:729cab0e95c6
mbed?f????????????; DigitalOut/DigitalIn/AnalogOut/AnalogIn/InterruptIn ???; pin_name???????
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ohneta | 3:f56c36ea8266 | 1 | /* |
ohneta | 3:f56c36ea8266 | 2 | * TinyJS for mbed. |
ohneta | 3:f56c36ea8266 | 3 | * Mbed_Functions.cpp |
ohneta | 3:f56c36ea8266 | 4 | * |
ohneta | 3:f56c36ea8266 | 5 | * Authored by Takehisa Oneta (ohneta@gmail.com) |
ohneta | 3:f56c36ea8266 | 6 | * 17th Jan. 2013 |
ohneta | 3:f56c36ea8266 | 7 | */ |
ohneta | 3:f56c36ea8266 | 8 | |
ohneta | 3:f56c36ea8266 | 9 | #include "mbed.h" |
ohneta | 3:f56c36ea8266 | 10 | #include "TinyJS.h" |
ohneta | 3:f56c36ea8266 | 11 | #include "Mbed_Functions.h" |
ohneta | 3:f56c36ea8266 | 12 | |
ohneta | 3:f56c36ea8266 | 13 | //--------------------------------------------- |
ohneta | 3:f56c36ea8266 | 14 | |
ohneta | 3:f56c36ea8266 | 15 | void mbedDigitalIn(CScriptVar *c, void *) |
ohneta | 3:f56c36ea8266 | 16 | { |
ohneta | 3:f56c36ea8266 | 17 | string pinNameString = c->getParameter("pinName")->getString(); |
ohneta | 3:f56c36ea8266 | 18 | PinName pinName = _mbedPinNameExchange(pinNameString); |
ohneta | 3:f56c36ea8266 | 19 | string modeString = c->getParameter("mode")->getString(); |
ohneta | 3:f56c36ea8266 | 20 | |
ohneta | 3:f56c36ea8266 | 21 | int mode = PullDown; |
ohneta | 3:f56c36ea8266 | 22 | if (modeString == "PullUp") { |
ohneta | 3:f56c36ea8266 | 23 | mode = PullUp; |
ohneta | 3:f56c36ea8266 | 24 | } else if (modeString == "PullNone"){ |
ohneta | 3:f56c36ea8266 | 25 | mode = PullNone; |
ohneta | 3:f56c36ea8266 | 26 | } else if (modeString == "PullDown") { |
ohneta | 3:f56c36ea8266 | 27 | mode = PullDown; |
ohneta | 3:f56c36ea8266 | 28 | } |
ohneta | 3:f56c36ea8266 | 29 | |
ohneta | 3:f56c36ea8266 | 30 | DigitalIn din = DigitalIn((PinName)pinName); |
ohneta | 3:f56c36ea8266 | 31 | din.mode((PinMode)mode); |
ohneta | 3:f56c36ea8266 | 32 | int val = din.read(); |
ohneta | 3:f56c36ea8266 | 33 | c->getReturnVar()->setInt(val); |
ohneta | 3:f56c36ea8266 | 34 | } |
ohneta | 3:f56c36ea8266 | 35 | |
ohneta | 3:f56c36ea8266 | 36 | void mbedDigitalOut(CScriptVar *c, void *) |
ohneta | 3:f56c36ea8266 | 37 | { |
ohneta | 3:f56c36ea8266 | 38 | string pinNameString = c->getParameter("pinName")->getString(); |
ohneta | 3:f56c36ea8266 | 39 | PinName pinName = _mbedPinNameExchange(pinNameString); |
ohneta | 3:f56c36ea8266 | 40 | |
ohneta | 3:f56c36ea8266 | 41 | int val = c->getParameter("val")->getInt(); |
ohneta | 3:f56c36ea8266 | 42 | |
ohneta | 3:f56c36ea8266 | 43 | DigitalOut dout = DigitalOut((PinName)pinName); |
ohneta | 3:f56c36ea8266 | 44 | dout.write(val); |
ohneta | 3:f56c36ea8266 | 45 | } |
ohneta | 3:f56c36ea8266 | 46 | |
ohneta | 3:f56c36ea8266 | 47 | //--------------------------------------------- |
ohneta | 3:f56c36ea8266 | 48 | |
ohneta | 3:f56c36ea8266 | 49 | void mbedAnalogIn(CScriptVar *c, void *) |
ohneta | 3:f56c36ea8266 | 50 | { |
ohneta | 3:f56c36ea8266 | 51 | string pinNameString = c->getParameter("pinName")->getString(); |
ohneta | 3:f56c36ea8266 | 52 | PinName pinName = _mbedPinNameExchange(pinNameString); |
ohneta | 3:f56c36ea8266 | 53 | |
ohneta | 3:f56c36ea8266 | 54 | AnalogIn ain = AnalogIn((PinName)pinName); |
ohneta | 3:f56c36ea8266 | 55 | float val = ain.read(); |
ohneta | 3:f56c36ea8266 | 56 | |
ohneta | 3:f56c36ea8266 | 57 | c->getReturnVar()->setDouble(val); |
ohneta | 3:f56c36ea8266 | 58 | } |
ohneta | 3:f56c36ea8266 | 59 | |
ohneta | 3:f56c36ea8266 | 60 | void mbedAnalogOut(CScriptVar *c, void *) |
ohneta | 3:f56c36ea8266 | 61 | { |
ohneta | 3:f56c36ea8266 | 62 | string pinNameString = c->getParameter("pinName")->getString(); |
ohneta | 3:f56c36ea8266 | 63 | PinName pinName = _mbedPinNameExchange(pinNameString); |
ohneta | 3:f56c36ea8266 | 64 | int val = c->getParameter("val")->getInt(); |
ohneta | 3:f56c36ea8266 | 65 | |
ohneta | 3:f56c36ea8266 | 66 | AnalogOut aout = AnalogOut((PinName)pinName); |
ohneta | 3:f56c36ea8266 | 67 | aout.write(val); |
ohneta | 3:f56c36ea8266 | 68 | } |
ohneta | 3:f56c36ea8266 | 69 | |
ohneta | 3:f56c36ea8266 | 70 | //--------------------------------------------- |
ohneta | 3:f56c36ea8266 | 71 | #define INTERRUPT_NUM 4 |
ohneta | 3:f56c36ea8266 | 72 | CTinyJS *interrupt_tinyJS; |
ohneta | 3:f56c36ea8266 | 73 | int interruptCount = 0; |
ohneta | 3:f56c36ea8266 | 74 | string callbackStrings[INTERRUPT_NUM]; |
ohneta | 3:f56c36ea8266 | 75 | InterruptIn* intrInArray[INTERRUPT_NUM] = {NULL, NULL, NULL, NULL}; |
ohneta | 3:f56c36ea8266 | 76 | |
ohneta | 3:f56c36ea8266 | 77 | void _interruptVector_0(){ |
ohneta | 3:f56c36ea8266 | 78 | interrupt_tinyJS->execute(callbackStrings[0]); |
ohneta | 3:f56c36ea8266 | 79 | } |
ohneta | 3:f56c36ea8266 | 80 | void _interruptVector_1(){ |
ohneta | 3:f56c36ea8266 | 81 | interrupt_tinyJS->execute(callbackStrings[1]); |
ohneta | 3:f56c36ea8266 | 82 | } |
ohneta | 3:f56c36ea8266 | 83 | void _interruptVector_2(){ |
ohneta | 3:f56c36ea8266 | 84 | interrupt_tinyJS->execute(callbackStrings[2]); |
ohneta | 3:f56c36ea8266 | 85 | } |
ohneta | 3:f56c36ea8266 | 86 | void _interruptVector_3(){ |
ohneta | 3:f56c36ea8266 | 87 | interrupt_tinyJS->execute(callbackStrings[3]); |
ohneta | 3:f56c36ea8266 | 88 | } |
ohneta | 3:f56c36ea8266 | 89 | |
ohneta | 3:f56c36ea8266 | 90 | void mbedSetInterrupt(CScriptVar *c, void *data) |
ohneta | 3:f56c36ea8266 | 91 | { |
ohneta | 3:f56c36ea8266 | 92 | string pinNameString = c->getParameter("pinName")->getString(); |
ohneta | 3:f56c36ea8266 | 93 | PinName pinName = _mbedPinNameExchange(pinNameString); |
ohneta | 3:f56c36ea8266 | 94 | |
ohneta | 3:f56c36ea8266 | 95 | string edgeString = c->getParameter("edge")->getString(); |
ohneta | 3:f56c36ea8266 | 96 | string modeString = c->getParameter("mode")->getString(); |
ohneta | 3:f56c36ea8266 | 97 | PinMode mode = PullDown; |
ohneta | 3:f56c36ea8266 | 98 | if (modeString == "PullUp") { |
ohneta | 3:f56c36ea8266 | 99 | mode = PullUp; |
ohneta | 3:f56c36ea8266 | 100 | } else if (modeString == "PullNone"){ |
ohneta | 3:f56c36ea8266 | 101 | mode = PullNone; |
ohneta | 3:f56c36ea8266 | 102 | } else if (modeString == "PullDown") { |
ohneta | 3:f56c36ea8266 | 103 | mode = PullDown; |
ohneta | 3:f56c36ea8266 | 104 | } |
ohneta | 3:f56c36ea8266 | 105 | |
ohneta | 3:f56c36ea8266 | 106 | interrupt_tinyJS = (CTinyJS *)data; |
ohneta | 3:f56c36ea8266 | 107 | callbackStrings[interruptCount] = c->getParameter("callback")->getString(); |
ohneta | 3:f56c36ea8266 | 108 | |
ohneta | 3:f56c36ea8266 | 109 | |
ohneta | 3:f56c36ea8266 | 110 | if (intrInArray[interruptCount] != NULL) { |
ohneta | 3:f56c36ea8266 | 111 | delete intrInArray[interruptCount]; |
ohneta | 3:f56c36ea8266 | 112 | } |
ohneta | 3:f56c36ea8266 | 113 | |
ohneta | 3:f56c36ea8266 | 114 | intrInArray[interruptCount] = new InterruptIn(pinName); |
ohneta | 3:f56c36ea8266 | 115 | intrInArray[interruptCount]->mode(mode); |
ohneta | 3:f56c36ea8266 | 116 | |
ohneta | 3:f56c36ea8266 | 117 | if (interruptCount == 0) { |
ohneta | 3:f56c36ea8266 | 118 | if (edgeString == "fall") intrInArray[interruptCount]->fall(_interruptVector_0); else if (edgeString == "rise") intrInArray[interruptCount]->rise(_interruptVector_0); |
ohneta | 3:f56c36ea8266 | 119 | } else if (interruptCount == 1) { |
ohneta | 3:f56c36ea8266 | 120 | if (edgeString == "fall") intrInArray[interruptCount]->fall(_interruptVector_1); else if (edgeString == "rise") intrInArray[interruptCount]->rise(_interruptVector_1); |
ohneta | 3:f56c36ea8266 | 121 | } else if (interruptCount == 2) { |
ohneta | 3:f56c36ea8266 | 122 | if (edgeString == "fall") intrInArray[interruptCount]->fall(_interruptVector_2); else if (edgeString == "rise") intrInArray[interruptCount]->rise(_interruptVector_2); |
ohneta | 3:f56c36ea8266 | 123 | } else if (interruptCount == 3) { |
ohneta | 3:f56c36ea8266 | 124 | if (edgeString == "fall") intrInArray[interruptCount]->fall(_interruptVector_3); else if (edgeString == "rise") intrInArray[interruptCount]->rise(_interruptVector_3); |
ohneta | 3:f56c36ea8266 | 125 | } |
ohneta | 3:f56c36ea8266 | 126 | |
ohneta | 3:f56c36ea8266 | 127 | |
ohneta | 3:f56c36ea8266 | 128 | interruptCount++; |
ohneta | 3:f56c36ea8266 | 129 | if (interruptCount >= INTERRUPT_NUM) { |
ohneta | 3:f56c36ea8266 | 130 | interruptCount = 0; |
ohneta | 3:f56c36ea8266 | 131 | } |
ohneta | 3:f56c36ea8266 | 132 | } |
ohneta | 3:f56c36ea8266 | 133 | |
ohneta | 3:f56c36ea8266 | 134 | |
ohneta | 3:f56c36ea8266 | 135 | void mbedRemoveInterrupt(CScriptVar *c, void *) |
ohneta | 3:f56c36ea8266 | 136 | { |
ohneta | 3:f56c36ea8266 | 137 | } |
ohneta | 3:f56c36ea8266 | 138 | |
ohneta | 3:f56c36ea8266 | 139 | //--------------------------------------------- |
ohneta | 3:f56c36ea8266 | 140 | /** |
ohneta | 3:f56c36ea8266 | 141 | * |
ohneta | 3:f56c36ea8266 | 142 | */ |
ohneta | 3:f56c36ea8266 | 143 | void mbedMemfree(CScriptVar *c, void *) |
ohneta | 3:f56c36ea8266 | 144 | { |
ohneta | 3:f56c36ea8266 | 145 | int i = 0; |
ohneta | 3:f56c36ea8266 | 146 | while(1) { |
ohneta | 3:f56c36ea8266 | 147 | void *p = malloc(i); |
ohneta | 3:f56c36ea8266 | 148 | if (p == NULL) break; |
ohneta | 3:f56c36ea8266 | 149 | free(p); |
ohneta | 3:f56c36ea8266 | 150 | i++; |
ohneta | 3:f56c36ea8266 | 151 | } |
ohneta | 3:f56c36ea8266 | 152 | c->getReturnVar()->setInt(i); |
ohneta | 3:f56c36ea8266 | 153 | } |
ohneta | 3:f56c36ea8266 | 154 | |
ohneta | 3:f56c36ea8266 | 155 | |
ohneta | 3:f56c36ea8266 | 156 | //--------------------------------------------- |
ohneta | 3:f56c36ea8266 | 157 | PinName _mbedPinNameExchange(string pinNameString) |
ohneta | 3:f56c36ea8266 | 158 | { |
ohneta | 3:f56c36ea8266 | 159 | if (pinNameString == "p5") return p5; |
ohneta | 3:f56c36ea8266 | 160 | if (pinNameString == "p6") return p6; |
ohneta | 3:f56c36ea8266 | 161 | if (pinNameString == "p7") return p7; |
ohneta | 3:f56c36ea8266 | 162 | if (pinNameString == "p8") return p8; |
ohneta | 3:f56c36ea8266 | 163 | if (pinNameString == "p9") return p9; |
ohneta | 3:f56c36ea8266 | 164 | if (pinNameString == "p10") return p10; |
ohneta | 3:f56c36ea8266 | 165 | if (pinNameString == "p11") return p11; |
ohneta | 3:f56c36ea8266 | 166 | if (pinNameString == "p12") return p12; |
ohneta | 3:f56c36ea8266 | 167 | if (pinNameString == "p13") return p13; |
ohneta | 3:f56c36ea8266 | 168 | if (pinNameString == "p14") return p14; |
ohneta | 3:f56c36ea8266 | 169 | if (pinNameString == "p15") return p15; |
ohneta | 3:f56c36ea8266 | 170 | if (pinNameString == "p16") return p16; |
ohneta | 3:f56c36ea8266 | 171 | if (pinNameString == "p17") return p17; |
ohneta | 3:f56c36ea8266 | 172 | if (pinNameString == "p18") return p18; |
ohneta | 3:f56c36ea8266 | 173 | if (pinNameString == "p19") return p19; |
ohneta | 3:f56c36ea8266 | 174 | if (pinNameString == "p20") return p20; |
ohneta | 3:f56c36ea8266 | 175 | |
ohneta | 3:f56c36ea8266 | 176 | if (pinNameString == "p21") return p21; |
ohneta | 3:f56c36ea8266 | 177 | if (pinNameString == "p22") return p22; |
ohneta | 3:f56c36ea8266 | 178 | if (pinNameString == "p23") return p23; |
ohneta | 3:f56c36ea8266 | 179 | if (pinNameString == "p24") return p24; |
ohneta | 3:f56c36ea8266 | 180 | if (pinNameString == "p25") return p25; |
ohneta | 3:f56c36ea8266 | 181 | if (pinNameString == "p26") return p26; |
ohneta | 3:f56c36ea8266 | 182 | if (pinNameString == "p27") return p27; |
ohneta | 3:f56c36ea8266 | 183 | if (pinNameString == "p28") return p28; |
ohneta | 3:f56c36ea8266 | 184 | if (pinNameString == "p29") return p29; |
ohneta | 3:f56c36ea8266 | 185 | if (pinNameString == "p30") return p30; |
ohneta | 3:f56c36ea8266 | 186 | |
ohneta | 3:f56c36ea8266 | 187 | |
ohneta | 3:f56c36ea8266 | 188 | if (pinNameString == "LED1") return LED1; |
ohneta | 3:f56c36ea8266 | 189 | if (pinNameString == "LED2") return LED2; |
ohneta | 3:f56c36ea8266 | 190 | if (pinNameString == "LED3") return LED3; |
ohneta | 3:f56c36ea8266 | 191 | if (pinNameString == "LED4") return LED4; |
ohneta | 3:f56c36ea8266 | 192 | |
ohneta | 3:f56c36ea8266 | 193 | if (pinNameString == "USBTX") return USBTX; |
ohneta | 3:f56c36ea8266 | 194 | if (pinNameString == "USBRX") return USBRX; |
ohneta | 3:f56c36ea8266 | 195 | |
ohneta | 3:f56c36ea8266 | 196 | return NC; |
ohneta | 3:f56c36ea8266 | 197 | } |
ohneta | 3:f56c36ea8266 | 198 | |
ohneta | 3:f56c36ea8266 | 199 | /** |
ohneta | 3:f56c36ea8266 | 200 | * |
ohneta | 3:f56c36ea8266 | 201 | */ |
ohneta | 3:f56c36ea8266 | 202 | void mbedPinNames(CScriptVar *c, void *) |
ohneta | 3:f56c36ea8266 | 203 | { |
ohneta | 3:f56c36ea8266 | 204 | printf("mbed DIP Pin Names\n"); |
ohneta | 3:f56c36ea8266 | 205 | printf("p5 : %d\n", p5); |
ohneta | 3:f56c36ea8266 | 206 | printf("p6 : %d\n", p6); |
ohneta | 3:f56c36ea8266 | 207 | printf("p7 : %d\n", p7); |
ohneta | 3:f56c36ea8266 | 208 | printf("p8 : %d\n", p8); |
ohneta | 3:f56c36ea8266 | 209 | printf("p9 : %d\n", p9); |
ohneta | 3:f56c36ea8266 | 210 | printf("p10 : %d\n", p10); |
ohneta | 3:f56c36ea8266 | 211 | printf("p11 : %d\n", p11); |
ohneta | 3:f56c36ea8266 | 212 | printf("p12 : %d\n", p12); |
ohneta | 3:f56c36ea8266 | 213 | printf("p13 : %d\n", p13); |
ohneta | 3:f56c36ea8266 | 214 | printf("p14 : %d\n", p14); |
ohneta | 3:f56c36ea8266 | 215 | printf("p15 : %d\n", p15); |
ohneta | 3:f56c36ea8266 | 216 | printf("p16 : %d\n", p16); |
ohneta | 3:f56c36ea8266 | 217 | printf("p17 : %d\n", p17); |
ohneta | 3:f56c36ea8266 | 218 | printf("p18 : %d\n", p18); |
ohneta | 3:f56c36ea8266 | 219 | printf("p19 : %d\n", p19); |
ohneta | 3:f56c36ea8266 | 220 | printf("p20 : %d\n", p20); |
ohneta | 3:f56c36ea8266 | 221 | printf("p21 : %d\n", p21); |
ohneta | 3:f56c36ea8266 | 222 | printf("p22 : %d\n", p22); |
ohneta | 3:f56c36ea8266 | 223 | printf("p23 : %d\n", p23); |
ohneta | 3:f56c36ea8266 | 224 | printf("p24 : %d\n", p24); |
ohneta | 3:f56c36ea8266 | 225 | printf("p25 : %d\n", p25); |
ohneta | 3:f56c36ea8266 | 226 | printf("p26 : %d\n", p26); |
ohneta | 3:f56c36ea8266 | 227 | printf("p27 : %d\n", p27); |
ohneta | 3:f56c36ea8266 | 228 | printf("p28 : %d\n", p28); |
ohneta | 3:f56c36ea8266 | 229 | printf("p29 : %d\n", p29); |
ohneta | 3:f56c36ea8266 | 230 | printf("p30 : %d\n", p30); |
ohneta | 3:f56c36ea8266 | 231 | |
ohneta | 3:f56c36ea8266 | 232 | printf("\n"); |
ohneta | 3:f56c36ea8266 | 233 | printf("LED mbed Pin Names\n"); |
ohneta | 3:f56c36ea8266 | 234 | printf("LED1 : %d\n", LED1); |
ohneta | 3:f56c36ea8266 | 235 | printf("LED2 : %d\n", LED2); |
ohneta | 3:f56c36ea8266 | 236 | printf("LED3 : %d\n", LED3); |
ohneta | 3:f56c36ea8266 | 237 | printf("LED4 : %d\n", LED4); |
ohneta | 3:f56c36ea8266 | 238 | |
ohneta | 3:f56c36ea8266 | 239 | printf("Other mbed Pin Names\n"); |
ohneta | 3:f56c36ea8266 | 240 | printf("USBTX : %d\n", USBTX); |
ohneta | 3:f56c36ea8266 | 241 | printf("USBRX : %d\n", USBRX); |
ohneta | 3:f56c36ea8266 | 242 | } |
ohneta | 3:f56c36ea8266 | 243 | |
ohneta | 3:f56c36ea8266 | 244 | |
ohneta | 3:f56c36ea8266 | 245 | //--------------------------------------------- |
ohneta | 3:f56c36ea8266 | 246 | // ----------------------------------------------- Register Functions |
ohneta | 3:f56c36ea8266 | 247 | void registerMbedFunctions(CTinyJS *tinyJS) { |
ohneta | 3:f56c36ea8266 | 248 | tinyJS->addNative("function mbed.DigitalIn(pinName, mode)", mbedDigitalIn, 0); |
ohneta | 3:f56c36ea8266 | 249 | tinyJS->addNative("function mbed.DigitalOut(pinName, val)", mbedDigitalOut, 0); |
ohneta | 3:f56c36ea8266 | 250 | |
ohneta | 3:f56c36ea8266 | 251 | tinyJS->addNative("function mbed.AnalogIn(pinName)", mbedAnalogIn, 0); |
ohneta | 3:f56c36ea8266 | 252 | tinyJS->addNative("function mbed.AnalogOut(pinName, val)", mbedAnalogOut, 0); |
ohneta | 3:f56c36ea8266 | 253 | |
ohneta | 3:f56c36ea8266 | 254 | tinyJS->addNative("function mbed.SetInterrupt(pinName, edge, mode, callback)", mbedSetInterrupt, tinyJS); |
ohneta | 3:f56c36ea8266 | 255 | tinyJS->addNative("function mbed.RemoveInterrupt(pinName)", mbedRemoveInterrupt, tinyJS); |
ohneta | 3:f56c36ea8266 | 256 | |
ohneta | 3:f56c36ea8266 | 257 | tinyJS->addNative("function mbed.PinNames()", mbedPinNames, 0); |
ohneta | 3:f56c36ea8266 | 258 | |
ohneta | 3:f56c36ea8266 | 259 | tinyJS->addNative("function mbed.memfree()", mbedMemfree, 0); |
ohneta | 3:f56c36ea8266 | 260 | } |
ohneta | 3:f56c36ea8266 | 261 | |
ohneta | 3:f56c36ea8266 | 262 |