X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=int%2Fnucleo-f767-blinky%2Fsrc%2Finterpret.c;h=ad9cdadb88886209bfc9e581fa00ed3f8e26ed88;hb=0efbd98973520d55ec4e80e443911f43b3c28a0d;hp=4238f4465c862fd03ba659ee1cba6951a3cf3ef7;hpb=c0713ad3a24ba71c79dd55ed208fcb72ad6bee08;p=mTask.git diff --git a/int/nucleo-f767-blinky/src/interpret.c b/int/nucleo-f767-blinky/src/interpret.c index 4238f44..ad9cdad 100644 --- a/int/nucleo-f767-blinky/src/interpret.c +++ b/int/nucleo-f767-blinky/src/interpret.c @@ -3,14 +3,15 @@ #include "mTaskSymbols.h" #include "interpret.h" -#include "misc.h" +#include "interface.h" #include "task.h" #include "sds.h" -#ifdef ARDUINO +#ifdef STM32F767xx #define trace(op, ...) ; #else -#define trace(op, ...) printf("pc: %d, sp: %d, op: " op, pc, sp, ##__VA_ARGS__); +#define trace(op, ...) ; +//printf("pc: %d, sp: %d, op: " op, pc, sp, ##__VA_ARGS__); #endif void run_task(struct task *t) @@ -20,10 +21,10 @@ 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", + 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]); @@ -120,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");