• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
MAX31865 - prędkość pomiaru PT100/1000
#4
Nie wiem jaki masz kod, jakiej biblioteki używasz. Zajrzałem do pierwszej w google https://github.com/adafruit/Adafruit_MAX...X31865.cpp i jest tam tak:
Kod:
uint16_t Adafruit_MAX31865::readRTD (void) {
 clearFault();
 enableBias(true);
 delay(10);
 uint8_t t = readRegister8(MAX31856_CONFIG_REG);
 t |= MAX31856_CONFIG_1SHOT;      
 writeRegister8(MAX31856_CONFIG_REG, t);
 delay(65);

 uint16_t rtd = readRegister16(MAX31856_RTDMSB_REG);

 // remove fault
 rtd >>= 1;

 return rtd;
}
w sumie 75 ms delay, to nie spodziewaj się, że pykniesz to w 20.
Delay oznacza, że biblioteka nie czeka na żaden sygnał "skończyłem, łap pomiar" tylko stoi tępo w tym miejscu. 
Ja bym to próbował rozbić to na 3 funkcje/etapy w switch case, tak by wrócić do rozmowy po kolejnych 10ms i potem po kolejnych 65ms.  Lub szukać innej biblioteki.  
Nie pomoże to w wyciąganiu średniej 50x/s, ale przynajmniej nie będzie blokować loop. 
Natomiast ta linijka t |= MAX31856_CONFIG_1SHOT;  sugeruje, ze możesz od razu zlecić więcej pomiarów i przyjść po X wyników, może uśrednionych, może kolejnych zapisanych w pamięci, a najprawdopodobniej zlecenie wykonywania ciągłych pomiarów, potem tylko co jakiś czas czytasz ostatni - nie wiem, bo jej jeszcze nie używałem. Może ten delay jest  zrobiony na zapas?
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
  


Wiadomości w tym wątku
RE: MAX31865 - prędkość pomiaru PT100/1000 - przez kaczakat - 23-05-2019, 23:46

Skocz do:


Przeglądający: 1 gości