( bucko | 2017. 01. 24., k – 10:43 )

Az időalappal csak az időt méred. Bármilyen <10ms jitter senkit nem érdekel.
Az USB IT általában várhat, mert úgy írták meg. Ráadásul roppant ritkán fut, mert a lényegi kommunikációt a hardver végzi.
Az i2c stop condition vége meg pont az az állapot, amikor pontosan tudod, hogy nem fog következő i2c interrupt befutni. Ekkor kényelmesen konvertálhatsz.
Binárisból BCD-be és BCD-ből ASCII? Gondolom legalább háromszorosan bufferelsz. ;)
Arra nem gondoltál, hogy az adat alsó 4 bitje a tört része a hőmérsékletnek? Ez meg legfeljebb 16 féle ASCII értéket vehet fel: "0000","0625",..."9735". Ezen kívül marad egy bájtod, ami
- ha >100 - van egy egyesed és levonsz 100-at
- /10 és hozzáadsz 30-at
- a maradékhoz hozzáadsz 30-at
Szerintem ennek a sok marhaságnak a futásideje <50us, persze a bufferbe írással együtt. Akkor meg miről beszélünk? Talán arról, hogy akár <250us időalapot sem zavarná ez a megoldás.