czmiel24 Napisano Kwiecień 27, 2012 Udostępnij Napisano Kwiecień 27, 2012 Witam Mam problem z wygenerowaniem przebiegów prostokatnych o tej samej f jednak przesunięte w czasie. Mikrokontroler to attiny2313, a generuje przebieg timerem. Powinno to wyglądać jak na rys. 40a http://www.elportal.pl/pdf/k01/81_24.pdf . Proszę o pomoc Link do komentarza Share on other sites More sharing options...
marek1707 Kwiecień 27, 2012 Udostępnij Kwiecień 27, 2012 Jeżeli tak nie wygląda, na 99% masz jakiś błąd w programie. Popraw go a powinno zadziałać i Twój problem zniknie 😖 Pomogłem? Link do komentarza Share on other sites More sharing options...
czmiel24 Kwiecień 28, 2012 Autor tematu Udostępnij Kwiecień 28, 2012 Ale ja niewiem Co napisać żeby uzyskać takie przebiegi Link do komentarza Share on other sites More sharing options...
slawko_k Kwiecień 28, 2012 Udostępnij Kwiecień 28, 2012 skoro ty nie mas żadnej koncepcji to może najprościej tak: dim czas as word czas=100 'dla przykładu do set wy1 waitms czas reset wy1 set wy2 waitms czas reset wy2 set wy3 waitms czas reset wy3 set wy4 waitms czas reset wy4 loop Link do komentarza Share on other sites More sharing options...
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
BlackJack Kwiecień 28, 2012 Udostępnij Kwiecień 28, 2012 Np. tak: Dim Wsk As Byte 'wskaźnik kontrolny Dim Ster As Byte On Timer0 Obrot Obrot: Read Ster 'odczytaj z tablicy krok element. Portb = Ster 'wystaw go na port B Incr Wsk 'zwiększ o 1, wskaźnik pomocniczy If Wsk > 4 Then 'jeżeli wsk większy od 4, to: Wsk = 1 ' - wsk = 1 Restore Krok ' - restartuj wskaźnik systemy do tablicy krok na pierwszy jej element End If Return ' powrót z procedury obsługi przerwania. Restore Krok Wsk = 1 Start Timer 0 Do Loop Krok: Data &H01 '_-___- Data &H04 '___-__ Data &H02 '__-___ Data &H08 '____-_ W tablicy krok masz zapisane poszczególne kombinacje sterujące cewkami. procedura Obrot wywoływana przerwaniem od Timera0 odczytuje w zadanych odcinkach czasu, poszczególne elementy tablicy krok i w ten sposób wysterowuje odpowiednio cewki silnika. PS. to tylko fragment poglądowy, nie gotowy kod, całego programu. Zaletą tego rozwiązania w porównaniu do kolegi wyżej, jest to że nie zajmuje ono całego czasu procesora, i z uwagi na użycie Timera jest bardziej precyzyjne. Dodatkowo dosyć łatwo to przerobić, aby uzyskać sterowanie pół krokowe, oraz kierunek obrotów lewo/prawo. Aczkolwiek wtedy trzeba inaczej zorganizować tablicę, i same ciało pobierające dane z niej. Link do komentarza Share on other sites More sharing options...
Pomocna odpowiedź
Bądź aktywny - zaloguj się lub utwórz konto!
Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony
Utwórz konto w ~20 sekund!
Zarejestruj nowe konto, to proste!
Zarejestruj się »Zaloguj się
Posiadasz własne konto? Użyj go!
Zaloguj się »