This shows you the differences between two versions of the page.
pm:prj2023:adarmaz:utictactoe [2023/05/26 16:52] mihai_cosmin.rosu |
pm:prj2023:adarmaz:utictactoe [2023/05/27 18:17] (current) mihai_cosmin.rosu |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Ultimate Tic-Tac-Toe - Roșu Mihai Cosmin - 333CA ====== | ====== Ultimate Tic-Tac-Toe - Roșu Mihai Cosmin - 333CA ====== | ||
+ | |||
+ | ===== Demo ===== | ||
+ | |||
+ | <html> | ||
+ | <iframe | ||
+ | src="https://www.youtube.com/embed/XRYpv7-YvOo" | ||
+ | title="YouTube video player" | ||
+ | frameborder="0" | ||
+ | allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" | ||
+ | allowfullscreen | ||
+ | style="aspect-ratio: 16/9; width: 100%;" | ||
+ | ></iframe> | ||
+ | </html> | ||
===== Introducere ===== | ===== Introducere ===== | ||
Line 57: | Line 70: | ||
* Pentru dezvoltarea proiectului am folosit **Arduino IDE**, în cadrul căruia am importat următoarele biblioteci: | * Pentru dezvoltarea proiectului am folosit **Arduino IDE**, în cadrul căruia am importat următoarele biblioteci: | ||
- **Adafruit GFX**, bibliotecă ce se poate importa direct din IDE, necesară pentru a desena/scrie pe ecran | - **Adafruit GFX**, bibliotecă ce se poate importa direct din IDE, necesară pentru a desena/scrie pe ecran | ||
- | - **Arduino ST7789 Fast**, bibliotecă externă, folosită pentru a comunica cu ecranul prin **SPI**, folosește **Adafruit GFX** | + | - **Arduino ST7789 Fast**, bibliotecă externă, folosită pentru a comunica cu ecranul prin **SPI**, folosește **Adafruit GFX** și **SPI.h** |
* În cadrul implementării am folosit și operații cu registre pentru: | * În cadrul implementării am folosit și operații cu registre pentru: | ||
- **ADC**: Am ales să configurez și să folosesc ADC astfel, fiindcă am avut nevoie să controlez prescalerul folosit de acesta. Acest lucru era necesar fiindcă pentru o citire de ADC, de fapt au loc 100 de citiri, pentru a reduce noise-ul. | - **ADC**: Am ales să configurez și să folosesc ADC astfel, fiindcă am avut nevoie să controlez prescalerul folosit de acesta. Acest lucru era necesar fiindcă pentru o citire de ADC, de fapt au loc 100 de citiri, pentru a reduce noise-ul. | ||
- **PWM**: Pentru a trimite un semnal PWM buzzer-ului, am ales să folosesc registre pentru a configura **Timer1** în modul **FastPWM**. De asemenea, pentru a determina când trebuie oprit semnalul PWM, folosesc întreruperea de overflow a timer-ului. | - **PWM**: Pentru a trimite un semnal PWM buzzer-ului, am ales să folosesc registre pentru a configura **Timer1** în modul **FastPWM**. De asemenea, pentru a determina când trebuie oprit semnalul PWM, folosesc întreruperea de overflow a timer-ului. | ||
- | - **Întreruperi**: Pentru întreruperile externe **INT0**, **INT1** și **TIMER1_OVF**. | + | - **Întreruperi**: Pentru întreruperile externe **INT0**, **INT1** și întreruperea de timer **TIMER1_OVF**. |
==== Implementare generală ==== | ==== Implementare generală ==== |