• 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
Niedokładność pomiarowa - problem z odczytywaniem impulsow
#40
(19-08-2018, 00:57)Robson Kerman napisał(a): Tak sobie myślę, ale tylko myślę (alkohol, łikend, itp.), że może by użyć RTOS'a.
(...)
Mam sterowanie odkurzacza zrealizowane na Arduino_FreeRTOS (detekcja przejścia przez zero, sterowanie fazą, wyświetlacz OLED, przyciski) i muszę powiedzieć, że jest moc.

RTOS nie rozwiąże problemu pomiarów krótkich czasów. To trzeba zrobić sprzętowo ewentualnie na przerwaniach od timera. Pomocny będzie natomiast w "równoległym" wykonywaniu długotrwałych obliczeń i wyświetlania wyników.

Na wyświetlacz jest jednak prosta rada, wybrać odpowiedni tym (SPI, I2C) i komunikację zrobić przez DMA (Xmega, ARM, Z-80 - tak, tak, Z-80 mógł działać z DMA) lub na przerwaniach. Tyle, że do tego trzeba RAM aby cały bufor wyświetlacza zmieścił się uC. Więc należy zapomieć o Mega328, min to 4kB RAM.


PS
Co do odkurzacza, przejście przez zero co 20ms gdzie dokładność 1ms wystarcza to można spokojnie na Z-80 1MHz zrobić.
Robiłem sterowniki fazowe zarówno na AVR jak i ARM http://avt.4ra.pl/viewtopic.php?id=31. Pętla główna niewiele robi (wyświetlanie wyników, przeliczanie, oscyloskop). Wszystkie obliczenia i obsługa LCD wykonywane sa co 100ms, trwają kilka ms, resztę czasu procek śpi.
Samo sterowanie fazowe i wykrywanie zera załatwia w 90% sprzęt (generowanie impulsu dla triaka przez timer).
 
Odpowiedź
  


Wiadomości w tym wątku
RE: Niedokładność pomiarowa - problem z odczytywaniem impulsow - przez es2 - 19-08-2018, 01:32

Skocz do:


Przeglądający: 2 gości