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.
main.cpp
- Committer:
- ohneta
- Date:
- 2014-01-11
- Revision:
- 1:d793f113cfc0
- Parent:
- 0:aae260bdcdd9
- Child:
- 3:f56c36ea8266
File content as of revision 1:d793f113cfc0:
/*
* TinyJS for mbed.
*
* Authored by Takehisa Oneta (ohneta@gmail.com)
* 10th Jan. 2013
*/
/*
* JavaScript samples
* for (x = 0; x < 256; x++) {for (var i = 0; i <= 3; i++) {mbed.DigitalOut(led1, (1 << i) & 0x01);mbed.DigitalOut(led2, (1 << i) & 0x02);mbed.DigitalOut(led3, (1 << i) & 0x04);mbed.DigitalOut(led4, (1 << i) & 0x08);for (j = 0; j < 300; j++) dummy=0;}for (var i = 3; i >= 0; i--) {mbed.DigitalOut(led1, (1 << i) & 0x01);mbed.DigitalOut(led2, (1 << i) & 0x02);mbed.DigitalOut(led3, (1 << i) & 0x04);mbed.DigitalOut(led4, (1 << i) & 0x08);for (j = 0; j < 10; j++) dummy=0;}};
*/
#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");
}
}