ATNEL tech-forum https://forum.atnel.pl/ |
|
Czas obrotu https://forum.atnel.pl/topic23463.html |
Strona 1 z 1 |
Autor: | SK97 [ 30 lis 2020, o 15:44 ] |
Tytuł: | Czas obrotu |
Cześć. Robię sobie taki mały projekcik, w którym muszę obliczyć prędkość obrotową. Pomiar musi być wykonany za pomocą liczenia czasu pomiędzy przerwaniami. Coś tam napisałem ale cały czas wyświetla mi "0 rps". Do wejścia INT1 w Atmedze32 podłączyłem sobie inny uC, który mi zmienia sygnał co 200ms. Dzięki za pomoc |
Autor: | JarekB [ 30 lis 2020, o 16:19 ] |
Tytuł: | Re: Czas obrotu |
Zobacz na BB. W części poświęconej IR DEKODE masz pomiar czasu zrealizowany za pomocą ICP. A dokładny czas to prędkość. |
Autor: | SK97 [ 30 lis 2020, o 19:52 ] |
Tytuł: | Re: Czas obrotu |
Tak, tak. Tylko niestety jestem zmuszony korzystać z mierzenia czasu pomiędzy występowaniem przerwań na INT1 a nie na ICP |
Autor: | JarekB [ 30 lis 2020, o 20:42 ] |
Tytuł: | Re: Czas obrotu |
No dobrze Tak na pierwszy rzut oka na kod to w zmiennych które używasz w przerwaniu i w kodzie programu powinieneś używać volatile. Zobacz do BB Czyli na przykład jak się będzie zachowywała zmienna volatile uint16_t pomiar_A; a jak uint16_t pomiar_A; |
Autor: | karlowic [ 2 gru 2020, o 13:10 ] |
Tytuł: | Re: Czas obrotu |
Próbowałem rozgryźć ten kod ale dla mnie jest zbyt zakręcony. SK97 napisał(a): muszę obliczyć prędkość obrotową. Pomiar musi być wykonany za pomocą liczenia czasu pomiędzy przerwaniami. Zastanawiam się czy te wymagania są konieczne, bo i tak na końcu program wyświetla częstotliwość obrotów (zmienna "obroty_sek"). Wydaje mi się, że nie trzeba robić skomplikowanego liczenia czasu pomiędzy przerwaniami. Prościej byłoby zliczyć ilość przerwań zewnętrznych (INT1) w określonym czasie ustalonym przez TIMER1. Zamiast dziewięciu wystarczą dwie, trzy zmienne (np.Licznik_przerwań, Liczba_ms, Wynik, ewentualnie Liczba_szczelin).
|
Autor: | SylwekK [ 2 gru 2020, o 14:30 ] |
Tytuł: | Re: Czas obrotu |
Właściwie to o co dokładnie chodzi? O algorytm pomiaru mając czas między impulsami czy może sam pomiar tego czasu impulsu? Jakiego rzędu czasu (lub prędkości obrotowej) orientacyjnie się spodziewasz przy pomiarze? Pytam, bo zrobiłem parę miesięcy temu prędkościomierz dla chomika i tam właśnie mierze czas między impulsami przy każdym obrocie. Wszystko znakomicie działa tyle, że pomiar jest do około 10-12km/h (odczyt z jakiegoś dowolnego pinu) |
Strona 1 z 1 | Strefa czasowa: UTC + 1 |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |