Differences

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

Link to this comparison view

pm:prj2024:azamfir:ana_maria.toader02 [2024/05/27 02:54]
ana_maria.toader02 [Introducere]
pm:prj2024:azamfir:ana_maria.toader02 [2024/05/27 03:27] (current)
ana_maria.toader02 [Rezultate Obţinute]
Line 69: Line 69:
     * emiterea unor sunete distinctive acționând buzzer-ul     * emiterea unor sunete distinctive acționând buzzer-ul
     * la finalul jocului singura acțiune care mai este responsive este apăsarea switch-ului de pe joystick care duce la începerea unui joc nou     * la finalul jocului singura acțiune care mai este responsive este apăsarea switch-ului de pe joystick care duce la începerea unui joc nou
 +\\
 **Grafică**\\ **Grafică**\\
 Pentru a crea imaginile distinctive jocului pentru fiecare celulă posibilă am desenat imagini de 20x20px pe care le-am convertit folosind un [[https://​javl.github.io/​image2cpp/​|tool]] online în bitmap-uri grayscale de 8biți per pixel. Le-am afișat la poziții corespunzătoare pe ecran folosind funcția ''​**void Adafruit_GFX::​drawBitmap(int16_t x, int16_t y, const uint8_t bitmap[], int16_t w, int16_t h, uint16_t color)**''​ din biblioteca **Adafruit_GFX**. Am adăugat culori prin setarea //​foreground color//. \\ Pentru a crea imaginile distinctive jocului pentru fiecare celulă posibilă am desenat imagini de 20x20px pe care le-am convertit folosind un [[https://​javl.github.io/​image2cpp/​|tool]] online în bitmap-uri grayscale de 8biți per pixel. Le-am afișat la poziții corespunzătoare pe ecran folosind funcția ''​**void Adafruit_GFX::​drawBitmap(int16_t x, int16_t y, const uint8_t bitmap[], int16_t w, int16_t h, uint16_t color)**''​ din biblioteca **Adafruit_GFX**. Am adăugat culori prin setarea //​foreground color//. \\
Line 81: Line 81:
 }; };
 </​code>​ </​code>​
 +\\ 
 +**Buzzer**\\ 
 +La sfârșitul jocului, buzzer-ul emite sunete distinctive. Am ales două melodii din [[https://​github.com/​robsoncouto/​arduino-songs|arduino-songs]] pentru cazurile de victorie / înfrângere.\\ 
 +\\
 **Timer**\\ **Timer**\\
 Microcontroller-ul **//​ATmega328p//​** conține 3 unități de timer, două pe 8 biți (//Timer0// și //Timer2//) și unul pe 16 biți (//​Timer1//​). \\ Microcontroller-ul **//​ATmega328p//​** conține 3 unități de timer, două pe 8 biți (//Timer0// și //Timer2//) și unul pe 16 biți (//​Timer1//​). \\
Line 160: Line 163:
 digitalWrite(JOYSTICK_INTERRUPT,​ HIGH); digitalWrite(JOYSTICK_INTERRUPT,​ HIGH);
 attachInterrupt(digitalPinToInterrupt(JOYSTICK_INTERRUPT),​ ISR_joystick,​ RISING); attachInterrupt(digitalPinToInterrupt(JOYSTICK_INTERRUPT),​ ISR_joystick,​ RISING);
 +</​code>​
 +
 +Toate variabilele care vor fi modificate într-o rutină de tratare a întreruperilor trebuie marcate ca **''​volatile''​** pentru a indica compilatorului să nu treacă variabila prin cache. Orice acces la o variabilă **''​volatile''​** se va face prin RAM.
 +<code c>
 +/* Initialize volatile variables used with button interrupts */
 +volatile bool blueButtonFlag = false;
 +volatile bool redButtonFlag = false;
 +
 +volatile unsigned long lastPressRed = 0;
 +volatile unsigned long lastPressBlue = 0;
 +
 +volatile bool joystickButtonFlag = false;
 </​code>​ </​code>​
  
Line 199: Line 214:
   * eliberarea unui grup de celule   * eliberarea unui grup de celule
 {{:​pm:​prj2024:​azamfir:​ana_maria.toader02:​clear_multiple_cells.gif?​700|}} {{:​pm:​prj2024:​azamfir:​ana_maria.toader02:​clear_multiple_cells.gif?​700|}}
- 
-  * resetarea jocului la apăsarea switch-ului de pe joystick, cu resetarea timer-ului la 5 minute 
-{{:​pm:​prj2024:​azamfir:​ana_maria.toader02:​reset.gif?​700|}} 
  
   * sfârșitul jocului   * sfârșitul jocului
 {{:​pm:​prj2024:​azamfir:​ana_maria.toader02:​game_won.gif?​700|}} {{:​pm:​prj2024:​azamfir:​ana_maria.toader02:​game_won.gif?​700|}}
 {{:​pm:​prj2024:​azamfir:​ana_maria.toader02:​game_over.gif?​700|}} {{:​pm:​prj2024:​azamfir:​ana_maria.toader02:​game_over.gif?​700|}}
 +
 +  * resetarea jocului la apăsarea switch-ului de pe joystick, cu resetarea timer-ului la 5 minute
 +{{:​pm:​prj2024:​azamfir:​ana_maria.toader02:​reset.gif?​700|}}
 +
 ===== Concluzii ===== ===== Concluzii =====
 Un proiect interesant, mă bucur că am obținut ceva funcțional. Un proiect interesant, mă bucur că am obținut ceva funcțional.
pm/prj2024/azamfir/ana_maria.toader02.1716767691.txt.gz · Last modified: 2024/05/27 02:54 by ana_maria.toader02
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