This shows you the differences between two versions of the page.
pm:lab:lab6-2023-2024 [2025/04/09 02:40] mihnea.dinica Update skel |
pm:lab:lab6-2023-2024 [2025/04/09 02:43] (current) mihnea.dinica Add points |
||
---|---|---|---|
Line 144: | Line 144: | ||
Descărcați {{:pm:lab:lab6:lab6-skel-2025.zip|arhiva cu scheletul de cod}}. Urmăriți indicațiile din ''TODO''-uri. | Descărcați {{:pm:lab:lab6:lab6-skel-2025.zip|arhiva cu scheletul de cod}}. Urmăriți indicațiile din ''TODO''-uri. | ||
- | **Task 0.** Completați corpul funcțiilor ''twi_init'', ''twi_start'' și ''twi_stop'' din fișierul ''twi.c''. | + | **Task 0 [2p].** Completați corpul funcțiilor ''twi_init'', ''twi_start'' și ''twi_stop'' din fișierul ''twi.c''. |
<note> | <note> | ||
Line 150: | Line 150: | ||
</note> | </note> | ||
- | **Task 1.** Completați corpul funcțiilor ''twi_read_ack'', ''twi_read_nack'' și ''twi_write'' din fișierul ''twi.c''. | + | **Task 1 [2p].** Completați corpul funcțiilor ''twi_read_ack'', ''twi_read_nack'' și ''twi_write'' din fișierul ''twi.c''. |
<note> | <note> | ||
Line 157: | Line 157: | ||
</note> | </note> | ||
- | **Task 2.** Completați corpul funcției ''twi_discover'' din fișierul ''twi.c''. Funcția trebuie să trimită un SLA_R (slave read) | + | **Task 2 [2p].** Completați corpul funcției ''twi_discover'' din fișierul ''twi.c''. Funcția trebuie să trimită un SLA_R (slave read) |
către toate adresele posibile pentru I2C slaves (0-127), pentru a determina ce dispozitive sunt conectate pe magistrala de I2C. | către toate adresele posibile pentru I2C slaves (0-127), pentru a determina ce dispozitive sunt conectate pe magistrala de I2C. | ||
Afișați pe serial adresele dispozitivelor conectate și nu uitați să apelați funcția în ''main''. | Afișați pe serial adresele dispozitivelor conectate și nu uitați să apelați funcția în ''main''. | ||
Line 177: | Line 177: | ||
</note> | </note> | ||
- | **Task 3.** În următoarele task-uri, vom folosi senzorul **MPL3115A2**, prezentat anterior. Pentru a putea configura și citi valorile | + | **Task 3 [4p].** În următoarele task-uri, vom folosi senzorul **MPL3115A2**, prezentat anterior. Pentru a putea configura și citi valorile |
registrelor senzorului, vom urmări pașii din diagrama de stări de mai jos, preluată din [[https://www.nxp.com/docs/en/data-sheet/MPL3115A2.pdf|Datasheet MPL3115A2]]. | registrelor senzorului, vom urmări pașii din diagrama de stări de mai jos, preluată din [[https://www.nxp.com/docs/en/data-sheet/MPL3115A2.pdf|Datasheet MPL3115A2]]. | ||
Line 187: | Line 187: | ||
</note> | </note> | ||
- | **Task 3.1.** Pentru început, vrem să inițializăm senzorul. Completați corpul funcției ''mpl3115a2_init'' din fișierul ''mpl3115a2.c''. Aceasta va trebui apelată în cadrul | + | **Task 3.1 [1p].** Pentru început, vrem să inițializăm senzorul. Completați corpul funcției ''mpl3115a2_init'' din fișierul ''mpl3115a2.c''. Aceasta va trebui apelată în cadrul |
funcției ''main'', înainte de loop. | funcției ''main'', înainte de loop. | ||
- | **Task 3.2.** Completați corpul funcțiilor ''mpl3115a2_read_pressure'' și ''mpl3115a2_read_temperature'' din fișierul ''mpl3115a2.c''. Acestea vor trebui apelate în cadrul | + | **Task 3.2 [3p].** Completați corpul funcțiilor ''mpl3115a2_read_pressure'' și ''mpl3115a2_read_temperature'' din fișierul ''mpl3115a2.c''. Acestea vor trebui apelate în cadrul |
funcției ''main'', în interiorul loop-ului. Afișați valorile citite pe serial. | funcției ''main'', în interiorul loop-ului. Afișați valorile citite pe serial. | ||