Differences

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

Link to this comparison view

pm:lab:lab5-2023-2024 [2025/04/07 10:39]
andrei.batasev [5. Responsabili laborator]
pm:lab:lab5-2023-2024 [2025/04/08 18:06] (current)
andrei.batasev [6. Exerciții]
Line 90: Line 90:
 FRESULT pf_readdir (DIR*, FILINFO*);​ //​ Citește un director FRESULT pf_readdir (DIR*, FILINFO*);​ //​ Citește un director
 </​file>​ </​file>​
 +
 +<note tip> Atunci când folosești pf_write pentru a scrie date, este necesar să apelezi și <file c>​pf_write(NULL,​ 0, &​w)</​file>​ ca să finalizezi scrierea (flush).
 +
 +Dacă nu faci acest pas, citirile ulterioare pot eșua cu o eroare de tip disk error. </​note>​
  
 ===== 6. Exerciții ===== ===== 6. Exerciții =====
-{{ pm:​lab:​lab5_skel_2025.zip | Lab5_Skel }} +<hidden> 
-<note tipÎnainte de începe laboratorulverificați dacă aveți SD cardul ​formatat cu FAT32. Dacă nu, formatați-lAdăugați ​fișiere ​cu nume aleatoriiLa finalul laboratorului, ​ștergeți fișierele. </​note>​+Inițializare SD-Card 
 + 
 +Pentru ​putea inițializa cardul SDtrebuie urmați următorii pași: 
 + 
 +  - Formatați cardul ​SD folosind sistemul de fișiere **FAT32** 
 +  - Creați un fișier numit **log.csv** în rădăcina (root) sistemului de fișiere ​  
 +    ({{ pm:lab:log.txt | exemplu de fișier }} – redenumiți-l în **log.csv**!) 
 + 
 +<note tip> 
 +Fișierul trebuie să aibă deja o dimensiune suficient de mare, deoarece din PFF (Petit FAT FileSystem) **nu se poate face append** direct într-un ​fișier gol sau de dimensiune mică. 
 +</​note>​ 
 + 
 +</​hidden>​ 
 +{{ pm:​lab:​lab5_skel_2025-4.zip | Lab5_Skel }} 
 1. SPI Control (2p total) 1. SPI Control (2p total)
  
Line 117: Line 135:
 Configurați ADC-ul și citiți temperatura de la un senzor analog. Implementați adc_init() și adc_read(). Configurați ADC-ul și citiți temperatura de la un senzor analog. Implementați adc_init() și adc_read().
   * Referință AVcc, prescaler 8.   * Referință AVcc, prescaler 8.
-  * Convertiți valoarea ADC în tensiune, apoi în °C (ex: LM35).+  * Convertiți valoarea ADC în tensiune, apoi în °C (ex: LM35D).
   * Afișați temperatura pe LCD.   * Afișați temperatura pe LCD.
   * Verificați citirea temperaturii și prin USART.   * Verificați citirea temperaturii și prin USART.
  
 4. Logarea temperaturii pe cardul SD (2p) 4. Logarea temperaturii pe cardul SD (2p)
- +<note tip> Tineti cont ca nu puteti crea sau mari size-ul unui fisier folosind PFF, asa ca va trebui sa va incadrati in marimea fisierului deja existent pe sdcard </​note>​ 
-Implementați log_temperature() în lab5.c astfel încât să logați valorile citite de la senzor într-un fișier CSV.+Implementați init_log_display() și log_temperature() în lab5.c astfel încât să logați valorile citite de la senzor într-un fișier CSV.
   * Folosiți SD_log_data() pentru scrierea valorilor.   * Folosiți SD_log_data() pentru scrierea valorilor.
   * Afișați temperatura pe LCD și trimiteți-o prin USART.   * Afișați temperatura pe LCD și trimiteți-o prin USART.
Line 130: Line 148:
 5. Navigarea prin loguri (2p total) 5. Navigarea prin loguri (2p total)
  
-Implementați init_log_display() și next_log_entry() pentru a citi fișierul log.csv linie cu linie.+Implementați next_log_entry() pentru a citi fișierul log.csv linie cu linie.
   * Afișați fiecare linie pe LCD.   * Afișați fiecare linie pe LCD.
   * La apăsarea butonului PB2, treceți la următoarea linie.   * La apăsarea butonului PB2, treceți la următoarea linie.
pm/lab/lab5-2023-2024.1744011571.txt.gz · Last modified: 2025/04/07 10:39 by andrei.batasev
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