This shows you the differences between two versions of the page.
|
pm:prj2024:azamfir:ana_maria.toader02 [2024/05/27 03:08] ana_maria.toader02 [Implementare] |
pm:prj2024:azamfir:ana_maria.toader02 [2024/05/27 03:27] (current) ana_maria.toader02 [Rezultate Obţinute] |
||
|---|---|---|---|
| Line 83: | Line 83: | ||
| \\ | \\ | ||
| **Buzzer**\\ | **Buzzer**\\ | ||
| - | La sfârșitul jocului, buzzerul emite sunete distinctive. Am ales două melodii din [[https://github.com/robsoncouto/arduino-songs|arduino-songs]] pentru cazurile de victorie / înfrângere.\\ | + | 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**\\ | ||
| Line 163: | 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 202: | 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. | ||