This shows you the differences between two versions of the page.
|
pm:prj2026:victor.stoica0203:degeratu_razvan [2026/05/23 23:19] razvan.degeratu |
pm:prj2026:victor.stoica0203:degeratu_razvan [2026/05/24 22:55] (current) razvan.degeratu [Download] |
||
|---|---|---|---|
| Line 11: | Line 11: | ||
| ===== Ipoteza ===== | ===== Ipoteza ===== | ||
| - | **Ipoteză:** Cred că scrierea codului exclusiv la nivel de regiștri, fără utilizarea bibliotecilor de nivel înalt, va îmbunătăți semnificativ performanța, va reduce dramatic amprenta de memorie SRAM și va asigura fluiditatea afișării pe ecranul OLED (refresh rate stabil), deoarece elimină overhead-ul funcțiilor din biblioteci și permite actualizarea asincronă a ecranului și citirea senzorilor direct în bucla principală, cu temporizare hardware. | + | Cred că scrierea codului exclusiv la nivel de regiștri, fără utilizarea bibliotecilor de nivel înalt, va îmbunătăți semnificativ performanța, va reduce dramatic amprenta de memorie SRAM și va asigura fluiditatea afișării pe ecranul OLED (refresh rate stabil), deoarece elimină overhead-ul funcțiilor din biblioteci și permite actualizarea asincronă a ecranului și citirea senzorilor direct în bucla principală, cu temporizare hardware. |
| ===== Descriere generala ===== | ===== Descriere generala ===== | ||
| Line 36: | Line 36: | ||
| //Schema electrica | //Schema electrica | ||
| + | {{ :pm:prj2026:victor.stoica0203:degeraturazvanproiectpm.png | }} | ||
| - | + | // Videoclip demonstrativ | |
| - | //Poze montaj | + | https://www.youtube.com/watch?v=PE-LNIbtaL8 |
| ===== Software Design ===== | ===== Software Design ===== | ||
| Line 55: | Line 56: | ||
| * **Resetare Hardware din Software (EEPROM Wipe):** Am implementat o functie ascunsa de curatare a istoricului vechi. Daca utilizatorul tine potentiometrul rotit complet la dreapta (valoare ADC > 1010) continuu timp de 10 secunde, se declanseaza automat o rutina ce suprascrie zona de memorie EEPROM alocata cu valoarea `0xFF` si reseteaza statisticile, cu un mesaj de feedback vizual ("RECORDS RESET!"). | * **Resetare Hardware din Software (EEPROM Wipe):** Am implementat o functie ascunsa de curatare a istoricului vechi. Daca utilizatorul tine potentiometrul rotit complet la dreapta (valoare ADC > 1010) continuu timp de 10 secunde, se declanseaza automat o rutina ce suprascrie zona de memorie EEPROM alocata cu valoarea `0xFF` si reseteaza statisticile, cu un mesaj de feedback vizual ("RECORDS RESET!"). | ||
| - | ===== Metrici, Profilare si Evaluare ===== | + | ===== Metrici si Evaluare ===== |
| **Metrici de performanță stabilite și îndeplinite:** | **Metrici de performanță stabilite și îndeplinite:** | ||
| 1. **Amprenta de memorie:** Obiectiv: sub 20% ocupare RAM. Prin scrierea la nivel de registre și renunțarea la framebuffer, utilizarea SRAM a scăzut drastic, lăsând spațiu liber pentru array-urile istorice. | 1. **Amprenta de memorie:** Obiectiv: sub 20% ocupare RAM. Prin scrierea la nivel de registre și renunțarea la framebuffer, utilizarea SRAM a scăzut drastic, lăsând spațiu liber pentru array-urile istorice. | ||
| Line 62: | Line 63: | ||
| **Profilarea Codului:** | **Profilarea Codului:** | ||
| - | Evaluarea codului s-a realizat prin testare unitară. Inițial, am validat transmisia I2C izolată către OLED trimițând octeți individuali din datasheet-ul SSD1306. Apoi am integrat rutinele complexe (formulele de calibrare Bosch pentru BME280 pe int32_t). Corectitudinea memoriei a fost validată prin întreruperea repetată a alimentării și verificarea citirii corecte din registrele EEPROM la repornire. Siguranța execuției (fără memory leaks) a fost testată rulând stația non-stop timp de >12h. | + | Evaluarea codului s-a realizat prin testare unitară. Inițial, am validat transmisia I2C izolată către OLED trimițând octeți individuali din datasheet-ul SSD1306. Apoi am integrat rutinele complexe (formulele de calibrare Bosch pentru BME280 pe int32_t). Corectitudinea memoriei a fost validată prin întreruperea repetată a alimentării și verificarea citirii corecte din registrele EEPROM la repornire. Siguranța execuției a fost testată rulând stația non-stop timp de >12h. |
| ===== Planificare si Jurnal ===== | ===== Planificare si Jurnal ===== | ||
| Line 80: | Line 81: | ||
| ===== Download ===== | ===== Download ===== | ||
| - | * Codul sursă complet al proiectului: [[https://github.com/razvandegeratu/StatieMeteo|Repository GitHub - Statie Meteo (Bare-Metal AVR C)]] | + | * Codul sursă complet al proiectului: [[https://github.com/razvandegeratu/StatieMeteo|Repository GitHub]] |
| ===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||