logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[ATmega32][C] - Dziwna funkcja opóźniająca delay w bibliotece czujnika SHT10

30 Lip 2012 11:59 1893 8
REKLAMA
  • #1 11157373
    Konto nie istnieje
    Poziom 1  
  • REKLAMA
  • Pomocny post
    #2 11157630
    tmf
    VIP Zasłużony dla elektroda
    Ta funkcja wcale nie jest dziwna. Ot po prostu 32-bitowe odejmowanie. Śmiał możesz to zastąpić inną funkcją delay. Weź też pod uwagę, że transmisja z SGT jest transmisją synchroniczną, taktowaną generowanym przebiegiem CLK, w związku z tym opóźnienia są tylko po to, aby zwolnić transmisję do wartości akceptowanych przez czujnik.
  • REKLAMA
  • REKLAMA
  • #6 11157875
    Konto nie istnieje
    Poziom 1  
  • Pomocny post
    #7 11158084
    tmf
    VIP Zasłużony dla elektroda
    Opóźnienia nie są krytyczne - masz przecież zegar sterujący transmisją. Więc zamiast 4us (o ile to opóźnienie istotnie tyle miało) możesz dać większe - chodzi tylko o to, aby CLK nie miało częstotliwości wyższej niż akceptowana przez SHT dla danego rezystora podciągającego. Co do samego delay - działa ono w ten sposób, że wartość opóźnienia jest przeliczana na liczbę obiegów pętli opóźniającej, po czym jest ta pętla realizowana - w postaci odejmowania jedynki od 32-bitowego licznika i czekaniu aż dojdzie do -1. Przynajmniej taki był pierwotny zamysł autora, niestety go zepsuł, bo zamiast SBCI X5,0 dał SBCI x%,-1, dzięki czemu pętla wykonuje dosyć magiczną zależność pomiędzy wartością opóźnienia, a faktycznie realizowanym opóźnieniem
  • REKLAMA
  • #8 11158113
    Jakub
    Poziom 14  
    Witam.

    Ten sam grek napisł jeszcze inne funkcje opóźnień (https://www.google.pl/search?q=Quick+and+dirty+Delay+%28Chris+Efstathiou%29) - 3 wynik.
    Wyglądają bardzo podobnie do Twoich. Tylko w nich parametrem funkcji jest liczba pętli a nie mikrosekund. Może w tym tkwi problem (nie 4us ale 25*6+16 cylki maszynowych).
  • #9 11158165
    Konto nie istnieje
    Poziom 1  
REKLAMA