Problém s DS18B20, simuláciou v Proteus 8.6 a ATMEGA88PA-PU

Nedalo mi to a zkoumal jsem, proč ta knihovna nechodí při vyšších kmitočtech, když na čekání využívá delay.h. Nakonec jsem přišel na to, proč to tak je. Po resetu 1-wire sběrnice a po přečtení bitu nečeká na “dokončení přenosu”, ale pokračuje normálně dál. Při 1 MHz ten čas vypršel ještě před další komunikací, ale pokud byla rychlost vyšší, došlo k další komunikaci ještě před dokončením té předchozí. Knihovnu jsem opravil a odzkoušel až do 16MHz a čidlo to četlo OK. Neopravoval jsem ten převod záporných hodnot. Vyšší kmitočet už zase nešel přeložit kvůli nesmyslně počítaném delayi v knihovně LCD. Přikládám upravený projekt v Atmel Studiu 7. Pokud Ti to v AS6 nepůjde otevřít, tak si do svého projektu nakopíruj *.c a *.h soubory. To by mělo být v pohodě.

Do souboru Teploty.c jsem po startu přidal zobrazení F_CPU na displej. Přikládám i kopii obrazovky z testování, abys viděl, že to šlape. Na fotkách je i vidět, že to vrací nemysly :

  1. Nesedí teplota - má být -1,2, na displeji je jenom -1,1
  2. zobrazení teploty (-1,-1) - já vím - to už nedělá knihovna…

Také jsem upravil projekt, jak psal AB. V souborech je includováno pouze *.h a knihovny jsou v seznamu zdrojových souborů. Kde jsou a jak je připojíš máš na obrázcích. Je to jednodušší, než to složitě vysvětlovat.
PripojeniSouboruDoProjektu.zip (135 KB)
Teploty.zip (98.6 KB)
TeplotyFoto.zip (58.3 KB)