|
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