Per poter studiare meglio la gestione della concorrenza per il progetto, ho pensato di studiare i tempi di lettura dei vari dispositivi, ho quindi isolato il primo dispositivo (lps22hb) dal codice di esempio "test-sensori" e ho scritto la struttura per il calcolo della differenza di tempo. Ho provato a usare la connessione USART3 per poter leggere il risultato, tuttavia anche con vari terminatori di linea e console seriali non riesco a ottenere risultati comprensibili nè consistenti (10 �{:L ��B��10 �{:L ��B��) questo è un output che ottengo dal codice.
Ho quindi deciso di stampare su display il valore di delta tempo, usando la libreria fornita nel codice di esempio. Per facilitare il debug ho inserito due gpio toggle, uno all'inizio del loop e uno alla fine, per indicare quando in teoria il display dovrebbe aggiornarsi.
Il problema riguarda il fatto che solo rimuovendo le righe di comunicazione con il sensore lps22hb_pressure_raw_get e lps22hb_temperature_raw_get il display viene aggiornato, altrimenti rimane statico al primo valore catturato. Ho pensato che le chiamate potessero essere bloccanti, ma nonostante lo schermo non si aggiorni, i led lampeggiano correttamente (e continuo a ottenere qui caratteri sulla seriale). Aggiungo che utilizzando il debugger, il problema non viene riscontrato. Allego unicamente il contenuto del while, l'unica configurazione differente rispetto al progetto di test, riguarda i pin 7 e 0 configurati come output.
Da cosa può essere dovuto il problema?
Grazie per l'aiuto