Witam wszystkich, nurtuje mnie dziwnie napisana funkcja delay w bibliotece którą znalazłem do obsługi czujnika wilgotności i temperatury SHT10. Bibliotekę zaimplementowałem w swój projekt, i czujnik ładnie działa, ale za cholerę nie wiem jak on działa korzystając z tego dziwnego delaya...Dlaczego autor nie mógł po prostu użyć wbudowaną funkcję z biblioteki delay.h z katalogu util...Dodam, że iedy zastępuję owego delaya tym z biblioteki delay.h czujnik przestaje działać - rozumiem, że rozchodzi się wtedy ramka danych. Mógłby ktoś pomóc z interpretacją tego ? Projekt był skompilowany na ATmega8. Ja posiadam ATmega32 i dodatkowo kwarc 16MHz, nie rozumiem też dlaczego wpisując w dyrektywie define stałą XTAL w bibliotece SHT z 1000000 na 16000000 czujnik przekazuje dane na LCD w strasznie opóźnionym tempie, co kilka sekund. Stała ta zostaje przekazywana do dziwnej funkcji delay z biblioteki...tak więc rozumiem to, że jej zwiększenie powoduje większe opóźnienie, no ale wg. mnie jest syf w całym programie przez to i nawet tego nie rozumiem. Jak to wygląda aby programowo i sprzętowo mieć w projekcie inne rzeczy ? (np zapisane XTAL w dyrektywie jako 1MHz, kiedy sprzętowo mam 16MHz...) Poniżej załączam bibliotekę SHT oraz funkcję delay. Podstawiłem stałą z biblioteki SHT.h zgodnie z zapisem DELAY(SHT_DELAY)
do równania
i otrzymałem 4...czyli 4us ? W ogóle bez sensu jest zapis XTAL/1000000...przecież XTAL w bibliotece wynosi 1000000 więc wynik tego dzielenia to 1, autor chyba tego nie przemyślał...Tylko nie rozumiem co dalej jest robione z w funkcji Delay(wynik działania) ?
Kod: C / C++
do równania
Kod: C / C++
i otrzymałem 4...czyli 4us ? W ogóle bez sensu jest zapis XTAL/1000000...przecież XTAL w bibliotece wynosi 1000000 więc wynik tego dzielenia to 1, autor chyba tego nie przemyślał...Tylko nie rozumiem co dalej jest robione z w funkcji Delay(wynik działania) ?
Kod: C / C++