Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2026:alexandru.jipa2803:andrei.preda0308 [2026/05/23 21:54]
andrei.preda0308
pm:prj2026:alexandru.jipa2803:andrei.preda0308 [2026/05/24 01:22] (current)
andrei.preda0308
Line 55: Line 55:
  
 **Interacțiunea cu componentele hardware:** **Interacțiunea cu componentele hardware:**
-  * **Joystick:​** Se inițializează ADC-ul pentru cei doi pini analogici, folosind VCC ca referință și prescaler de 128. La citirea valorii ADC, pentru a preveni zgomotul electric și pentru ca nava spațială să nu se miște de una singură, s-a impus o toleranță de 50 astfel încât pentru orice valoare care se află în acea toleranță față de valoarea de mijloc (512) îi va corespunde viteza 0 pentru axa respectivă. De asemenea, pentru butonul joystick-ului,​ se inițializează și se activează întreruperea lui INT0 pe front descrescător. La fiecare apăsare, se va trata rutina lui INT0, care va seta o variabilă cu true, aceasta reprezentând că o cerere de apăsare a fost efectuată. Există o funcție care actualizează statusul apăsării joystick-ului,​ verificând dacă o cerere a existat. De asemenea, există funcții pentru a verifica dacă butonul a fost apăsat și pentru a dezactiva sau activa funcționalitatea butonului.+  * **Joystick:​** Se inițializează ADC-ul pentru cei doi pini analogici, folosind VCC ca referință și prescaler de 128. La citirea valorii ADC, pentru a preveni zgomotul electric și pentru ca nava spațială să nu se miște de una singură, s-a impus o toleranță de 50 astfel încât pentru orice valoare care se află în acea toleranță față de valoarea de mijloc (512) îi va corespunde viteza 0 pentru axa respectivă. De asemenea, pentru butonul joystick-ului,​ se inițializează ​pinul respectiv ca input și se activează întreruperea lui INT0 pe front descrescător. La fiecare apăsare, se va trata rutina lui INT0, care va seta o variabilă cu true, aceasta reprezentând că o cerere de apăsare a fost efectuată. Există o funcție care actualizează statusul apăsării joystick-ului,​ verificând dacă o cerere a existat. De asemenea, există funcții pentru a verifica dacă butonul a fost apăsat și pentru a dezactiva sau activa funcționalitatea butonului.
  
   * **Systime:​** Se folosește timer-ul 0 astfel încât la fiecare milisecundă,​ să se activeze o întrerupere de comparație care numără câte milisecunde au trecut de la pornirea plăcii. Numărul de milisecunde este folosit pentru calcularea valorii de delta time pentru mișcarea jucătorului și a asteroizilor independent de framerate și pentru timere software.   * **Systime:​** Se folosește timer-ul 0 astfel încât la fiecare milisecundă,​ să se activeze o întrerupere de comparație care numără câte milisecunde au trecut de la pornirea plăcii. Numărul de milisecunde este folosit pentru calcularea valorii de delta time pentru mișcarea jucătorului și a asteroizilor independent de framerate și pentru timere software.
Line 88: Line 88:
  
 ===== Concluzii ===== ===== Concluzii =====
 +
 +Realizarea acestui proiect a fost o experiență foarte interesantă,​ dar și destul de provocatoare,​ mai ales când a venit vorba de partea grafică. Cea mai mare problemă a fost să implementez logica prin care să se șteargă și să se redeseneze strict porțiunile de pe ecran unde s-au mișcat obiectele de la un frame la altul, dar după ce am reușit să fac jocul să ruleze fluid, rezultatul a meritat tot efortul.
  
 ===== Download ===== ===== Download =====
pm/prj2026/alexandru.jipa2803/andrei.preda0308.1779562459.txt.gz · Last modified: 2026/05/23 21:54 by andrei.preda0308
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0