Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of TinyJS by
Diff: main.cpp
- Revision:
- 0:aae260bdcdd9
- Child:
- 1:d793f113cfc0
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Sat Jan 11 20:19:11 2014 +0000 @@ -0,0 +1,125 @@ +/* + * TinyJS for mbed. + * + * Authored by Takehisa Oneta (ohneta@gmail.com) + * 10th Jan. 2013 + */ + +#include "mbed.h" +#include "TinyJS.h" + +Serial pc(USBTX, USBRX); +DigitalOut led1(LED1); +DigitalOut led2(LED2); +DigitalOut led3(LED3); +DigitalOut led4(LED4); + +//unsigned char usbArea[1024] __attribute__((section("AHBSRAM0"))); +//unsigned char ethArea[1024] __attribute__((section("AHBSRAM1"))); + + +extern int tinyjs_main(int argc, char **argv); + +//--------------------------------------------- + +void mbedDigitalOut(CScriptVar *c, void *) +{ + int pinName = c->getParameter("pinName")->getInt(); + int val = c->getParameter("val")->getInt(); + + switch (pinName) { + case LED1: + led1 = val; + break; + case LED2: + led2 = val; + break; + case LED3: + led3 = val; + break; + case LED4: + led4 = val; + break; + } +} + +char ledVarStr[32]; +char *mbedLedsVarString(int ledNo) +{ + switch (ledNo) { + case 1: + sprintf(ledVarStr, "var led1 = %d;", LED1); + break; + case 2: + sprintf(ledVarStr, "var led2 = %d;", LED2); + break; + case 3: + sprintf(ledVarStr, "var led3 = %d;", LED3); + break; + case 4: + sprintf(ledVarStr, "var led4 = %d;", LED4); + break; + default: + sprintf(ledVarStr, ""); + break; + } + return ledVarStr; +} + +//--------------------------------------------- +void mbedMemfree(CScriptVar *c, void *) +{ + int i = 0; + while(1) { + void *p = malloc(i); + if (p == NULL) break; + free(p); + i++; + } + c->getReturnVar()->setInt(i); +} + +//--------------------------------------------- + +int readOneLine(char *buffer, const int bufferSize) +{ + int len = 0; + + buffer[0] = '\0'; + while (true) { + char c = pc.getc(); + pc.putc(c); + + if ('\r' == c) { + return len; + } else if( '\n' == c ) { + } else { + buffer[len] = c; + buffer[len + 1] = '\0'; + len++; + if (len > bufferSize) { + return len; + } + } + } + + return len; +} + +//--------------------------------------------- +//--------------------------------------------- + +int main() { + pc.baud(57600); + + while(1) { + printf("\n"); + printf("--------------------------\n"); + printf("TinyJS on mbed LPC1768 ported by ohneta.\n"); + + tinyjs_main(NULL, NULL); + + printf("--------------------------\n"); + printf("bye bye\n"); + } +}