Skip to content

Instantly share code, notes, and snippets.

@joaoneto
Created April 22, 2012 19:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save joaoneto/2466328 to your computer and use it in GitHub Desktop.
Save joaoneto/2466328 to your computer and use it in GitHub Desktop.
Sketch aJson library
/**
* aJson
* http://interactive-matter.eu/how-to/ajson-arduino-json-library/
*/
#include <aJSON.h>
#include <Time.h>
#include <TimeAlarms.h>
void setup() {
Serial.begin(9600);
freeMem("start");
}
void loop() {
teste("{\"teste\":\"name\"}");
delay(1000);
freeMem("loop");
}
void teste(char* json) {
aJsonObject* root;
root = aJson.parse(json);
aJsonObject* teste = aJson.getObjectItem(root, "teste");
char* name = aJson.print(teste);
// aJson.deleteItem(teste);
// aJson.deleteItem(root);
Serial.println(name);
}
//Code to print out the free memory
struct __freelist {
size_t sz;
struct __freelist *nx;
};
extern char * const __brkval;
extern struct __freelist *__flp;
uint16_t freeMem(uint16_t *biggest)
{
char *brkval;
char *cp;
unsigned freeSpace;
struct __freelist *fp1, *fp2;
brkval = __brkval;
if (brkval == 0) {
brkval = __malloc_heap_start;
}
cp = __malloc_heap_end;
if (cp == 0) {
cp = ((char *)AVR_STACK_POINTER_REG) - __malloc_margin;
}
if (cp <= brkval) return 0;
freeSpace = cp - brkval;
for (*biggest = 0, fp1 = __flp, fp2 = 0;
fp1;
fp2 = fp1, fp1 = fp1->nx) {
if (fp1->sz > *biggest) *biggest = fp1->sz;
freeSpace += fp1->sz;
}
return freeSpace;
}
uint16_t biggest;
void freeMem(char* message) {
Serial.print(message);
Serial.print(":\t");
Serial.println(freeMem(&biggest));
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment