Differences

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

Link to this comparison view

pm:prj2025:ajipa:mihai.lemnaru [2025/05/23 11:47]
mihai.lemnaru [Hardware Design]
pm:prj2025:ajipa:mihai.lemnaru [2025/05/29 22:20] (current)
mihai.lemnaru [Software Design]
Line 60: Line 60:
 | **D4** ​       | Digital ​    | Buton 1                      | Buton la +5 V, rezistor extern de pull-down (~10 kΩ) la GND                                       | | **D4** ​       | Digital ​    | Buton 1                      | Buton la +5 V, rezistor extern de pull-down (~10 kΩ) la GND                                       |
 | **D6** ​       | Digital ​    | Buton 2                       | Buton la +5 V, rezistor extern de pull-down (~10 kΩ) la GND                                       | | **D6** ​       | Digital ​    | Buton 2                       | Buton la +5 V, rezistor extern de pull-down (~10 kΩ) la GND                                       |
-| **D5**        | Digital / PWM | Buzzer ​               | Buzzer pasiv 5 V, minus la GND; poate fi modulat cu PWM |+| **D3**        | Digital / PWM | Buzzer ​               | Buzzer pasiv 5 V, minus la GND; poate fi modulat cu PWM |
  
  
Line 106: Line 106:
  
 Funcții implementate:​ Funcții implementate:​
-  * **`isButtonPressedActiveLow()`** – verifică dacă butonul conectat la pin (cu semnal activ LOW) a fost apăsat și eliberat, cu debounce intern de ~50 ms. +  * **`isButtonPressedActiveLow_PD2()`** – verifică dacă butonul conectat la pinul 2 (cu semnal activ LOW) a fost apăsat și eliberat, cu debounce intern de ~50 ms. 
-  * **`isButtonPressedActiveHigh()`** – verifică dacă butonul conectat la pin (cu semnal activ HIGH) a fost apăsat și eliberat, cu debounce intern de ~50 ms.+  * **`isButtonPressedActiveHigh_PD4/​PD6()`** – verifică dacă butonul conectat la pinul 4/6 (cu semnal activ HIGH) a fost apăsat și eliberat, cu debounce intern de ~50 ms
 +  * **`fastAnalogReadA0/​A1()`** - verifică și citește rapid valoarea tensiunii analogice de pe pinul A0 (ADC0) / A1 (ADC1), utilizând registrele interne ale convertorului analog-digital (ADC) al microcontrollerului. 
 +  * **`startTone()`** - activează semnalul PWM pe pinul PD3 (OC2B) cu frecvența specificată în Hz, folosind Timer2 configurat în mod CTC. 
 +  * **`stopTone()`** - oprește semnalul PWM generat de Timer2 pe pinul PD3 și setează pinul LOW.
   * **`playBombSequence()`** – redă pe buzzer o succesiune de tonuri care indică „explozia” unei bombe (pierdere de joc).   * **`playBombSequence()`** – redă pe buzzer o succesiune de tonuri care indică „explozia” unei bombe (pierdere de joc).
   * **`playWinSequence()`** – redă pe buzzer o succesiune de tonuri care indică victoria în joc.   * **`playWinSequence()`** – redă pe buzzer o succesiune de tonuri care indică victoria în joc.
Line 194: Line 197:
  
 ^    Laboratoare folosite ​      ​^ ​   Funcționalitate ​          ​^ ​    ​Cod ​         ^ ^    Laboratoare folosite ​      ​^ ​   Funcționalitate ​          ​^ ​    ​Cod ​         ^
-|    **GPIO** ​     |   ​citire / scriere de pini digitali ​   |   **pinMode(JOY_SW_PIN, INPUT_PULLUP)**, **pinMode(BTN_FLAG,​ INPUT)**, **pinMode(BTN_RST,​ INPUT)**, **pinMode(BUZZER,​ OUTPUT)**, **digitalRead(pin)** ​  |+|    **GPIO** ​     |   ​citire / scriere de pini digitali ​   |   **configurePinsWithRegisters()** folosind regiștrii  ​|
 |    **UART** ​     |  comunicație serială ​   |   Nu este explicit în cod, dar am folosit pentru afișajul în consola pentru debug    | |    **UART** ​     |  comunicație serială ​   |   Nu este explicit în cod, dar am folosit pentru afișajul în consola pentru debug    |
-|    **Timere & PWM**      |  generare ton și temporizări ​   |   **tone(BUZZER, ​freq, durată)** folosește timer hardware pentru PWM, iar **delay(...)** folosește temporizări interne ​   ​+|    **Timere & PWM**      |  generare ton și temporizări ​   |   **startTone(uint16_t ​freq)** ​si **stopTone()**  ​folosind Timer0 pe 8 biti pentru PWM  ​
-|    **ADC** ​   |  conversie analog‐digitală ​   |      **analogRead(JOY_X)** și **analogRead(JOY_Y)** pentru citirea poziției joystick-ului ​   |+|    **ADC** ​   |  conversie analog‐digitală ​   |      **fastAnalogReadA0()** și **fastAnalogReadA1()** pentru citirea poziției joystick-ului ​folosind regiștrii ​  |
 |    **SPI** ​   |  interfațare display TFT    |      **tft.initR(INITR_BLACKTAB)** + toate comenzile **tft.xxx** folosesc **SPI** pentru comunicare cu ecranul ST7735 ​   | |    **SPI** ​   |  interfațare display TFT    |      **tft.initR(INITR_BLACKTAB)** + toate comenzile **tft.xxx** folosesc **SPI** pentru comunicare cu ecranul ST7735 ​   |
  
pm/prj2025/ajipa/mihai.lemnaru.1747990032.txt.gz · Last modified: 2025/05/23 11:47 by mihai.lemnaru
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