volevo chiedere come è correlato il valore della Linea 2 con quello della Linea 1.
Inoltre il valore della Linea 1 che corrisponde al tick period della scheda viene impostato settando i registri del uC ?
Grazie
Linea 1: portUSE_WDTO = 0 (che corrisponde a WDTO_15MS) Linea 2: configTICK_RATE_HZ = 62 Linea 3: portTICK_PERIOD_MS = 16
Stai "giocando" con freeRTOS™? ... e che versione di FreeRTOS stai usando ?
In vari files della libreria, vengono definiti:
/* Timing for the scheduler.
* Watchdog Timer is 128kHz nominal,
* but 120 kHz at 5V DC and 25 degrees is actually more accurate,
* from data sheet.
*/
#define portTICK_PERIOD_MS ( (TickType_t) _BV( portUSE_WDTO + 4 ) )
...
...
// xxx Watchdog Timer is 128kHz nominal, but 120 kHz at 5V DC and 25 degrees is actually more accurate, from data sheet.
#define configTICK_RATE_HZ ( (TickType_t)( (uint32_t)128000 >> (portUSE_WDTO + 11) ) )
... quindi, partendo dalla prima definizione:
#define portUSE_WDTO WDTO_15MS
... e sapendo che WDTO_15MS è uguale a 0, dovresti poter calcolare i valori delle altre due #define.
Ah, rammenta che, nominalmente, il WDT viaggia a 128KHz, e quando si seleziona WDTO_15MS (0) si seleziona il primo dei prescaler che vale 2K, i successivi valori sono 4K, 8K, 16K, 32K, 128K 256K, 512K, 1024K.
Se applichi tutti i valori, vedi che vengono quei risultati.
Dovresti chiedere a chi ha fatto il porting su Arduino non ti pare?
Vai su GitHub, apri una "issue" e chiediglielo ...
O magari basta aggiungerla a mano ... di costanti ne esistono un'infinità e, sia per seplicità, che per dimensioni del codice, tante vengono omesse perché si usano solo in casi specifici.