Bogdan_aug 0 Napisano 17 czerwca Udostępnij Napisano 17 czerwca Arduino Leonardo. Jak wygenerować pojedyńczy impuls np. 50us (mikrosekund) bez funkcji delay delay. Przerwanie od timera też jest chyba problematyczne, gdyż przy 16 MHz w czasie 50us to 800 taktów. Obsługa przerwania to zrzut na stos rejestrów, obsługa przerwania... W sumie chyba za dużo czasu to przerwanie by zajmowało w stosunku do działania programu. Czy można inaczej? Cytuj Link to post Share on other sites
farmaceuta 366 17 czerwca Udostępnij 17 czerwca To jak nie chcesz blokowac delay'em to raczej tylko timery Ci zostaja...obsluga ISR to ~4us, plus obsluga kodu w przerwaniu...powiedz co konkretnie chcesz zrobic Cytuj Link to post Share on other sites
H1M4W4R1 561 17 czerwca Udostępnij 17 czerwca (edytowany) 3 godziny temu, farmaceuta napisał: To jak nie chcesz blokowac delay'em to raczej tylko timery Ci zostaja... Kolega zapomniał o możliwościach elektroniki analogowej i multiwibratorze monostabilnym Może nie jest to rozwiązanie stricte na mikrokontrolerze, ale jak skuteczne... Edytowano 17 czerwca przez H1M4W4R1 1 Cytuj Link to post Share on other sites
farmaceuta 366 17 czerwca Udostępnij 17 czerwca 20 minut temu, H1M4W4R1 napisał: Kolega zapomniał o możliwościach elektroniki analogowej i multiwibratorze monostabilnym A no tak, wiem ze cos takiego istnieje (choc z pamieci bym schematu nie narysowal) i nie wiem na jakiej zasadzie takie cos dziala (nie znam sie), ale chyba w tym przypadku trzeba by bardziej rozbudowac uklad bo autor chce pojedyncze impulsy... Cytuj Link to post Share on other sites
Polecacz 101 Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Produkcja i montaż PCB - wybierz sprawdzone PCBWay! • Darmowe płytki dla studentów i projektów non-profit • Tylko 5$ za 10 prototypów PCB w 24 godziny • Usługa projektowania PCB na zlecenie • Montaż PCB od 30$ + bezpłatna dostawa i szablony • Darmowe narzędzie do podglądu plików Gerber Zobacz również » Film z fabryki PCBWay
H1M4W4R1 561 17 czerwca Udostępnij 17 czerwca 33 minuty temu, farmaceuta napisał: A no tak, wiem ze cos takiego istnieje (choc z pamieci bym schematu nie narysowal) i nie wiem na jakiej zasadzie takie cos dziala (nie znam sie), ale chyba w tym przypadku trzeba by bardziej rozbudowac uklad bo autor chce pojedyncze impulsy... Mylisz multiwibrator astabilny (lub bistabilny) z monostabilnym. Schemat monostabilnego masz tutaj: Czas impulsu kontrolujesz za pomocą R2 i C1 https://www.electronics-tutorials.ws/waveforms/monostable.html#:~:text=Monostable Multivibrators have only ONE,of the RC coupled circuit. 1 Cytuj Link to post Share on other sites
ethanak 2 933 17 czerwca Udostępnij 17 czerwca Pytanie kontrolne: dlaczego nie można zastosować delayMicroseconds w połączeniu z digitalWriteFast? Co takiego robi ten mikrokontroler, że 50 usec przerwy w działaniu jest niedopuszczalne? Cytuj Link to post Share on other sites
szymonw 74 18 czerwca Udostępnij 18 czerwca Chyba najprościej będzie na NE555 .NE555 gwarantuje generowanie najkrótszego czasu 5µs.Natomiast jeśli idzie o mikrokontrolery to najlepiej na stm32 a oprogramowanie narzędziowe to STM32Cubeide. Cytuj Link to post Share on other sites
Bogdan_aug 0 22 czerwca Autor tematu Udostępnij 22 czerwca Dziękuję za odpowiedzi. Impulsy potrzebne do sterowania dwoma silnikami krokowymi, typowymi sterownikami (pulse, dir) współbieżnie. Prosto, przerwanie timera w trybie CTC w obsłudze przerwania timery programowe co 10ms do pracy z podziałem czasu. Kontroluję położenie silnika, dlatego wysyłam określoną ilość impulsów, paczkami kontrolowanymi przez timer programowy , wyliczam o ile powinien obrócić się drugi silnik, aktualizuję dane wyświetlane dane i muszę zareagować na klawiaturę albo obrócić silnik na zadaną przez encoder pozycję. Impulsy generuję za pomocą delayMicroseconds. i zmianę stanu na wyjściu. To mi działa, ale może być lepiej bo nie jest to optymalne. Przepraszam może powinienem opisać wcześniej, że robię sterownik, wspomniałem co prawda, że chodzi mi o generowanie impulsu z arduino. Cytuj Link to post Share on other sites
ethanak 2 933 22 czerwca Udostępnij 22 czerwca (edytowany) Najlepiej zajrzyj do żródełek Marlina czy grbl - wątpię abyśmy tu wymyślili coś lepszego Edytowano 22 czerwca przez ethanak Cytuj Link to post Share on other sites
Pomocna odpowiedź
Dołącz do dyskusji, napisz odpowiedź!
Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!