X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=int%2Fnucleo-f767-blinky%2Fsrc%2Finterpret.c;h=ad9cdadb88886209bfc9e581fa00ed3f8e26ed88;hb=0efbd98973520d55ec4e80e443911f43b3c28a0d;hp=bbfa351560029c162fc87634c291c66e1dcb7c3f;hpb=ddfd196fa4999b117701121a2f4cb1fe378f902d;p=mTask.git diff --git a/int/nucleo-f767-blinky/src/interpret.c b/int/nucleo-f767-blinky/src/interpret.c index bbfa351..ad9cdad 100644 --- a/int/nucleo-f767-blinky/src/interpret.c +++ b/int/nucleo-f767-blinky/src/interpret.c @@ -3,7 +3,7 @@ #include "mTaskSymbols.h" #include "interpret.h" -#include "misc.h" +#include "interface.h" #include "task.h" #include "sds.h" @@ -21,12 +21,12 @@ void run_task(struct task *t) int pc = 0; int sp = 0; char stack[STACKSIZE] = {0}; - printf("Running task with length: %d\n", plen); + debug("Running task with length: %d\n", plen); while(pc != plen){ - //printf("program: %d\n", program[pc]); - //printf("stack: %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x\n", - // stack[0], stack[1], stack[2], stack[3], stack[4], - // stack[5], stack[6], stack[7], stack[8], stack[9]); + debug("program: %d\n", program[pc]); + debug("stack: %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x\n", + stack[0], stack[1], stack[2], stack[3], stack[4], + stack[5], stack[6], stack[7], stack[8], stack[9]); switch(program[pc++]){ case BCNOP: trace("nop\n"); @@ -121,16 +121,18 @@ void run_task(struct task *t) case BCSERIALPARSEINT: trace("SerialParseInt()\n"); break; case BCANALOGREAD: trace("AnalogRead(%d)\n", program[pc]); - pc++; + stack[sp++] = read_apin(program[pc++]); break; case BCANALOGWRITE: trace("AnalogWrite(%d)\n", program[pc]); - pc++; + write_apin(program[pc++], stack[sp-1]); + sp--; break; case BCDIGITALREAD: trace("DigitalRead(%d)\n", program[pc]); - pc++; + stack[sp++] = read_dpin(program[pc++]); break; case BCDIGITALWRITE: trace("DigitalWrite(%d)\n", program[pc]); - pc++; + write_dpin(program[pc++], stack[sp-1]); + sp--; break; default: trace("unrecognized\n");