This shows you the differences between two versions of the page.
pm:prj2025:iivasciuc:marina.oprea2302 [2025/05/20 23:10] marina.oprea2302 [Implementation details] |
pm:prj2025:iivasciuc:marina.oprea2302 [2025/05/21 09:09] (current) marina.oprea2302 [Results] |
||
---|---|---|---|
Line 147: | Line 147: | ||
* one that is set the whole time the menu is displayed | * one that is set the whole time the menu is displayed | ||
* This implements __debouncing__ and also optimizes screen rendering operations. | * This implements __debouncing__ and also optimizes screen rendering operations. | ||
+ | |||
+ | |||
+ | |||
------------------------------------------- | ------------------------------------------- | ||
-> Information is not displayed ,on every frame'. Thus, throughout the code I used to display different screens once and maintain them unchanged as much as possible. | -> Information is not displayed ,on every frame'. Thus, throughout the code I used to display different screens once and maintain them unchanged as much as possible. | ||
Line 154: | Line 157: | ||
==== Optimizations ==== | ==== Optimizations ==== | ||
-> As mentioned above, rerendering is avoided as much as possible. Thus, when screen changes, tile are rendered only if they have different value than before. \\ | -> As mentioned above, rerendering is avoided as much as possible. Thus, when screen changes, tile are rendered only if they have different value than before. \\ | ||
- | -> When rendering tiles, color is chosen based on their value. In order to perform this efficiently, ILI9341 provided colors are stored in an array and bitwise dividing is used in order to find __idx = log2(val)__. | + | -> When rendering tiles, color is chosen based on their value. In order to perform this efficiently, ILI9341 provided colors are stored in an array and bitwise dividing is used in order to find __idx = log2(val)__. \\ |
+ | -> ''EEPROM.update'' was used instead of ''EEPROM.write'' in order to preserve non-volatile memory lifetime. | ||
==== Used labs ==== | ==== Used labs ==== | ||
* Lab0: GPIO | * Lab0: GPIO | ||
Line 168: | Line 171: | ||
===== Results ===== | ===== Results ===== | ||
[[https://github.com/marinaoprea/2048_Arduino_minigame|GitHub repository]] | [[https://github.com/marinaoprea/2048_Arduino_minigame|GitHub repository]] | ||
+ | |||
+ | [[https://drive.google.com/file/d/1MYe3Vqu2S6hLiaHRXt_nY94sQPNRhBG9/view?usp=sharing | Demo video]] | ||
{{https://drive.google.com/file/d/1Xz-yoFstKYTesYOhvp8GsY_ydz1bZbdR/view?usp=sharing|Start screen image}} \\ | {{https://drive.google.com/file/d/1Xz-yoFstKYTesYOhvp8GsY_ydz1bZbdR/view?usp=sharing|Start screen image}} \\ |