• 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
#48
(05-09-2018, 20:40)qbic napisał(a): Udało mi się osiągnąć dokładność 1us (mógłbym więcej ale nie wiem czy jest sens). Użyłem inputCaptureMode Timera3, długo walczyłem z rejestrami i wszystkim co z nimi związane ale udało się (mam nadzieje!) Smile

Nie dokładność 1us ale rozdzielczość. Max na Arduino z AVR to 62,5ns, zmieniając taktowanie na 20MHz to 50ns.

Przewiduję, że niedługo przestaniesz bawić się Arduino, bo jak widzisz, aby zrbić cokolwiek sensownego, trzeba poznać architekturę uC i działać na rejestrach bo nie ma możliwości korzystania z "dobrodziejstw" Arduino. To samo jest w Bascom, który "umiera", Arduino, też kiedyś umrze i dobrze, bo założenia Arduino były inne a wszystko poszło w innym kierunku. Nie Arduino, daje możliwość debugowania kodu, a to przyspiesza prace kilka a nawet kilkanaście razy. W małym projekcie, czy robisz tydzień czy miesiąc nie ma znaczenia, w większym, różnica miesiąc a rok już jest zauważalna. Jak to jest praca zarobkowa, to bez debugera na chleb nie zarobisz.

W kodzie masz:
Kod:
(startOverflowCounter * 65536)
Zastąp to przez mniej pamięciożerne i dziesiątki jak nie setki razy szybsze:
Kod:
(startOverflowCounter << 16)
Sprawdź jednak czy działa. W AVR GCC (G++) przesuwanie w lewo działało poprawnie tylko w granicy 16 bitów, nie było przeniesienia z bitu 15 na 16, w konsekwencji, starsze słowo było obcinane. Jeśli nadal tak jest, mogę dać Ci kod omijający ten problem. GCC dla AVR ma jeszcze bardzo dużo takich "kwiatków". To było głównym powodem, dla którego przeszedłem na ARM i Tobie też to radzę. Trzeba być dobrym ekspertem, aby na AVR pisać bardziej skomplikowane programy, na ARM jest dużo łatwiej.
 
Odpowiedź
  


Wiadomości w tym wątku
RE: Niedokładność pomiarowa - problem z odczytywaniem impulsow - przez es2 - 05-09-2018, 21:07

Skocz do:


Przeglądający: 1 gości