diff --git a/bsp/stm32g030c8/MDK-ARM/stm32g030c8.uvprojx b/bsp/stm32g030c8/MDK-ARM/stm32g030c8.uvprojx index afc068121..baab5f4fd 100644 --- a/bsp/stm32g030c8/MDK-ARM/stm32g030c8.uvprojx +++ b/bsp/stm32g030c8/MDK-ARM/stm32g030c8.uvprojx @@ -740,6 +740,11 @@ 1 ..\pikascript\pikascript-api\PikaPiZero_OLED-api.c + + PikaPiZero_Point-api.c + 1 + ..\pikascript\pikascript-api\PikaPiZero_Point-api.c + diff --git a/bsp/stm32g030c8/pikascript/main.py b/bsp/stm32g030c8/pikascript/main.py index 21e57700c..4af0a90ed 100644 --- a/bsp/stm32g030c8/pikascript/main.py +++ b/bsp/stm32g030c8/pikascript/main.py @@ -2,27 +2,31 @@ import PikaStdLib import STM32 import PikaPiZero -x = 0 -y = 0 +p0 = PikaPiZero.Point() +p0.x = 0 +p0.y = 0 +print(p0.x) mem = PikaStdLib.MemChecker() print('mem used max:') mem.max() -oled.drawPoint(x, y) +oled.drawPoint(p0.x, p0.y) while True: if right.read() == 1: - if x < 15: - x = x + 1 - oled.drawPoint(x, y) + print('right') + if p0.x < 15: + p0.x = p0.x + 1 + print(p0.x) + oled.drawPoint(p0.x, p0.y) if left.read() == 0: - if x > 0: - x = x - 1 - oled.drawPoint(x, y) + if p0.x > 0: + p0.x = p0.x - 1 + oled.drawPoint(p0.x, p0.y) if up.read() == 0: - if y > 0: - y = y - 1 - oled.drawPoint(x, y) + if p0.y > 0: + p0.y = p0.y - 1 + oled.drawPoint(p0.x, p0.y) if down.read() == 0: - if y < 7: - y = y + 1 - oled.drawPoint(x, y) + if p0.y < 7: + p0.y = p0.y + 1 + oled.drawPoint(p0.x, p0.y) diff --git a/src/PikaVM.c b/src/PikaVM.c index b7a1ed6cb..f79d1f11a 100644 --- a/src/PikaVM.c +++ b/src/PikaVM.c @@ -517,7 +517,7 @@ nextLine: return nextAddr; } -static char* useFlashAsBuff(char* pikaAsm, Args* buffs) { +char* useFlashAsBuff(char* pikaAsm, Args* buffs) { /* not write flash when asm is old */ if (strEqu(pikaAsm, __platformLoadPikaAsm())) { args_deinit(buffs); @@ -561,7 +561,10 @@ Args* pikaVM_runAsm(PikaObj* self, char* pikaAsm) { __platformPrintf("%s\r\n", sysOut); } if (0 != errcode) { - __platformPrintf("[info] input commond: %s\r\n", thisLine); + Args *buffs = New_strBuff(); + char *onlyThisLine = strsGetFirstToken(buffs, thisLine, '\n'); + __platformPrintf("[info] input commond: %s\r\n", onlyThisLine); + args_deinit(buffs); } } __clearInvokeQueues(self); diff --git a/src/PikaVM.h b/src/PikaVM.h index df6865551..38b6f86af 100644 --- a/src/PikaVM.h +++ b/src/PikaVM.h @@ -9,5 +9,6 @@ int32_t pikaVM_runAsmLine(PikaObj* self, int32_t lineAddr, Args* sysRes); int32_t __clearInvokeQueues(PikaObj* self); - +char* useFlashAsBuff(char* pikaAsm, Args* buffs); + #endif \ No newline at end of file