|
17 | 17 | * export PATH=/opt/wasp/build/src/tools:$PATH
|
18 | 18 | * wasp wat2wasm --enable-numeric-values -o dino.wasm dino.wat
|
19 | 19 | * xxd -iC dino.wasm > dino.wasm.h
|
| 20 | + * |
| 21 | + * Note: In Arduino IDE, select Tools->Optimize->Faster (-O3) |
20 | 22 | */
|
21 | 23 | #include "dino.wasm.h"
|
22 | 24 |
|
@@ -183,12 +185,15 @@ void setup()
|
183 | 185 | // Output to display
|
184 | 186 | arcada.display->drawRGBBitmap(0, 40, (uint16_t*)(mem+0x5000), 160, 75);
|
185 | 187 |
|
186 |
| - //Serial.print("FPS: "); Serial.println(1000/(millis() - framestart)); |
| 188 | + const uint32_t frametime = millis() - framestart; |
| 189 | + Serial.print("FPS: "); Serial.println(1000/frametime); |
187 | 190 |
|
188 |
| - // Limit to 40..70 fps, depending on CPU/overclock setting (120..200MHz) |
189 |
| - //const int target_fps = map(F_CPU/1000000, 120, 200, 40, 70); |
190 |
| - const int target_fps = 40; |
191 |
| - while (millis() - framestart < (1000/target_fps)) { delay(1); } |
| 191 | + // Limit to 50..70 fps, depending on CPU/overclock setting (120..200MHz) |
| 192 | + //const int target_frametime = 1000/map(F_CPU/1000000, 120, 200, 50, 70); |
| 193 | + const uint32_t target_frametime = 1000/50; |
| 194 | + if (target_frametime > frametime) { |
| 195 | + delay(target_frametime - frametime); |
| 196 | + } |
192 | 197 | }
|
193 | 198 |
|
194 | 199 | if (result != m3Err_none) {
|
|
0 commit comments