PWM Generator

Na tym forum rozmawiamy o elektronice nie związanej bezpośrednio z tematem CNC

ali
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 7
Posty: 146
Rejestracja: 28 wrz 2005, 14:30
Lokalizacja: Poznań

#21

Post napisał: ali » 21 kwie 2008, 22:02

jarekk pisze: W machu aby podłączyć inne urządzenie należy napisać plugin ( jest do tego SDK, przykłady i nieco dokumentacji). Jestem w trakcie budowy takiego urządzenie ( projekt komercyjny dla Step2Cnc ).
Z tego co pamietam, jest w machu cos takiego jak modbus i z tego co przeczytalem wynikalo iz jest to jakis konkretny protokol komunikacji umozliwiajacy podpiecie dodatkowych wejsc/wyjsc za posrednictwem portu szeregowego, ale glowy sobie za to uciac nie dam.
EDIT: myslalem o zbudowaniu czegos takiego :
http://www.homanndesigns.com/ModIO.html

oczywiscie przy obecnym kursie dolara mialoby to aspekt raczej hobbystyczny ;)

Leoo pisze: Nieźle Koledze idzie. Proszę kontynuować. Może zamiast gnębić matematykę, lepiej ściągnąć kompilator wyższego rzędu np. Basic albo C? Kiedy możemy spodziewać się działającego projektu? Faktycznie to bułka z masłem!!!


Ehhh Leoo, widze, ze latwiej Ci coraz smieszniejsze ataki przypuszczac niz odpowiedziec na konkretnie pytanie, az dziwne bo jestes tu osoba ogolnie szanowana i zawsze mialem wrazenie, ze wiesz o czym piszesz.

Oczywiscie kod mozna napisac w C, ale pewnie i tak bedzie musialabyc jakas biblioteka z procedurami wielobajtowego dzielenia bo tego nie ma sprzetowo zrealizowanego w procku. Wiec w czym bys nie pisal i tak jakis kod bedzie to musial zrealizowac, wiec czy go wrzuce w postaci procedury w assemblerze czy dodam w postaci biblioteki w naglowku to jest w zasadzie bez znaczenia. Tak czy owak trzeba zapakowac odpowiednie komorki dzielna i dzielnikiem i wywolac odpowiednia procedure. Komentowac smiesznosci stwierdzenia "gnebic matematyke" w odniesieniu do prostego mnozenia i dzielenia nie bede, dla Twojego dobra.

Ja osobiscie na AVRy pisze w assemblerze jakos bardziej go czuje jest dla mnie czytelniejszy (glownie chodzi o kwestie zasobow, ktore sa dosc ograniczone w uC), ale jesli ktos woli pisac w innym jezyku to jego sprawa, mozliwe, iz bedzie lepiej.

Co do bulki z maslem, to faktycznie jest bulka z maslem i pisania kodu na jeden wieczor, to co wyzej wkleilem powstalo w 10 min. Jezeli dla Ciebie taki prosty program jest wyzwaniem, to faktycznie dobrze, ze przestales pakowac wszedzie procki, bo trzeba sobie ograniczac stres w zyciu. Program jest bardzo prosty, wiekszosc roboty jest odwalona sprzetowo... cala nasza praca polega zapakowaniu rejestrow odpowiednimi wartosciami, na ktorych wyliczenie mamy mase czasu. Jezeli Leoo masz cos konstruktywnego do powiedzenia prosze bardzo, mozemy podyskutowac, natomiast na Twoje 'zaczepki' odpowiadac juz nie bede.

Jesli by, ktorys z kolegow zdecydowal sie jednak na pisanie tego i mial jakies problemy smialo mozna do mnie pisac w miare mozliwosci pomoge.


pozdrawiam
Jakub Jędrzejczak

Tagi:


Leoo
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 6
Posty: 4017
Rejestracja: 15 lis 2006, 22:01
Lokalizacja: Tarnobrzeg

#22

Post napisał: Leoo » 22 kwie 2008, 10:24

ali pisze:Ehhh Leoo, widze, ze latwiej Ci coraz smieszniejsze ataki przypuszczac niz odpowiedziec na konkretnie pytanie, az dziwne bo jestes tu osoba ogolnie szanowana i zawsze mialem wrazenie, ze wiesz o czym piszesz.
Znowu mamy sytuację, kiedy przychodzi nowy człowiek na forum, birze udział w dyskusji a kiedy zabraknie argumentów ubliża mi twierdząc, że nie wiem o czym piszę!!!!!
ali pisze:Co do bulki z maslem, to faktycznie jest bulka z maslem i pisania kodu na jeden wieczor, to co wyzej wkleilem powstalo w 10 min. Jezeli dla Ciebie taki prosty program jest wyzwaniem, to faktycznie dobrze, ze przestales pakowac wszedzie procki, bo trzeba sobie ograniczac stres w zyciu. Program jest bardzo prosty, wiekszosc roboty jest odwalona sprzetowo... cala nasza praca polega zapakowaniu rejestrow odpowiednimi wartosciami, na ktorych wyliczenie mamy mase czasu. Jezeli Leoo masz cos konstruktywnego do powiedzenia prosze bardzo, mozemy podyskutowac, natomiast na Twoje 'zaczepki' odpowiadac juz nie bede.
Pierwsza sprawa, projekt Kolegi nie spełnia założeń. Nie mamy regulacji częstotliwości, zamiast tego mętne wskazówki jak niby prosto i szybko tego dokonać. Niemniej z pouczającego tonu wypowiedzi wynika, że Kolega "zjadł zęby" na programowaniu procesorów.
Proszę usiąść do komputera i napisać działający soft. Nie musi Kolega publikować jeśli obawia się o prawa autorskie. Proszę jedynie przesłać autorowi wątku skompilowany kod, a On rozstrzygnie czy układ działa. Później zajmiemy się szacowaniem kosztów przedsięwzięcia.
Jeszcze raz przypominam, że to kolega ali zaproponował procesor, twierdząc że to proste zadanie (jeśli ktoś z czytających pogubił się).


jarekk
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 6
Posty: 1701
Rejestracja: 17 mar 2006, 08:57
Lokalizacja: Gdańsk

#23

Post napisał: jarekk » 22 kwie 2008, 10:48

ali pisze:Z tego co pamietam, jest w machu cos takiego jak modbus i z tego co przeczytalem wynikalo iz jest to jakis konkretny protokol komunikacji umozliwiajacy podpiecie dodatkowych wejsc/wyjsc za posrednictwem portu szeregowego, ale glowy sobie za to uciac nie dam.
EDIT: myslalem o zbudowaniu czegos takiego :
http://www.homanndesigns.com/ModIO.html

Ma bardzo poważną wadę - czas reakcji jest powolny ( szaczuję że gdzie na poziomie 10..100 ms). Ale jak komus to nie przeszkadza to może być.

[ Dodano: 2008-04-22, 10:51 ]
ali pisze:Oczywiscie kod mozna napisac w C, ale pewnie i tak bedzie musialabyc jakas biblioteka z procedurami wielobajtowego dzielenia bo tego nie ma sprzetowo zrealizowanego w procku. Wiec w czym bys nie pisal i tak jakis kod bedzie to musial zrealizowac, wiec czy go wrzuce w postaci procedury w assemblerze czy dodam w postaci biblioteki w naglowku to jest w zasadzie bez znaczenia. Tak czy owak trzeba zapakowac odpowiednie komorki dzielna i dzielnikiem i wywolac odpowiednia procedure. Komentowac smiesznosci stwierdzenia "gnebic matematyke" w odniesieniu do prostego mnozenia i dzielenia nie bede, dla Twojego dobra.
Kolega nigdy chyba nie programował w C ?!?
Propounuje obejrzeć pakiety typu WinAvr - standardowa biblioteka załatwi wszystko ( zarówno stały jak i zmienny przecinek). Można używać nawet zmiennych 64 bitowych.
Ostatni mój projekt ( na Mega128, zegar 16Mhz) był w stanie przy 25kHz przetworzyć 2 cyfrowe filtry doloprzepustowe na zmiennym przecinku ( życzenie klienta).

Każde zastosowanie ma inne potrzeby. Dla sterownika krokowca napisałaem cały kod w assemblerze (Mega88)- tam szybkosc była krytyczna. Ale do zastosowania typu "potencjometr -PWM" - pisanie tego w assemblerze to *STRATA CZASU*


ali
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 7
Posty: 146
Rejestracja: 28 wrz 2005, 14:30
Lokalizacja: Poznań

#24

Post napisał: ali » 26 kwie 2008, 21:56

jarekk pisze:
ali pisze:[...]
EDIT: myslalem o zbudowaniu czegos takiego :
http://www.homanndesigns.com/ModIO.html
Ma bardzo poważną wadę - czas reakcji jest powolny ( szaczuję że gdzie na poziomie 10..100 ms). Ale jak komus to nie przeszkadza to może być.
Konkretnie chodzilo mi o kwadraturowe wejscia zeby zrobic pilota z osobnymi pokretlami dla kazdej osi, gdzie opoznienie nawet na poziomie 0,1sek mysle ze nie ma znaczenia, tak samo mozna to zastosowac do wlaczania wentylatora, odkurzacza etc, wiem, ze jak sobie pierwsza "full wypasiona" wersje obczujnikowania maszyny rozpisalem to zabraklo mi pinow w dwoch portach LPT.

Kolega nigdy chyba nie programował w C ?!?
Propounuje obejrzeć pakiety typu WinAvr - standardowa biblioteka załatwi wszystko ( zarówno stały jak i zmienny przecinek). Można używać nawet zmiennych 64 bitowych.
[...]
Każde zastosowanie ma inne potrzeby. Dla sterownika krokowca napisałaem cały kod w assemblerze (Mega88)- tam szybkosc była krytyczna. Ale do zastosowania typu "potencjometr -PWM" - pisanie tego w assemblerze to *STRATA CZASU*
To prawda na procki w C nie pisalem, ale nigdzie sie nie upieralem, ze trzeba pisac w assemblerze, ja zaczynalem od projektow krytycznych czasowo(i to jeszcze na 8051) jakos tak wyszlo, ze sie przyzwyczailem do assemblera, wiec co kto lubi, poki co piszac rozne projekty to o wiele wiecej czasu zajmuje zrobienie interfejsu (uzywam Visual Studio 2008 i pisze w C#) i zrobienie dokumentacji niz pisanie kodu na procka (a projekty sa rozne).
W przypadku gen PWM to do zaimplementowania jest raptem jedno proste rownanie, wiec roznica w czasie bedzie niewielka, dysponujac bibliotekami z obsluga tych funkcji sprowadzi sie jedynie do przepisania wartosci do odpowiednich rejestrow i wywolania tej funkcji.
Ostatnio z takich prostych to pisalem emulator sygnalu walu korbowego do opla (jest tam kolo zebate 60-2) zmiana obrotow jest liniowa, caly kod razem z dzieleniem komentarzami zajmuje 250 lini, a tu jest jeszcze mniej roboty przeciez.

Edit:
Dalem sie podpuscic ale niech strace, generatorek PWM z przestrajana czestotliwoscia w zakresie od Fosc / 257 do Fosc / 65536 potki pod ADC0 i ADC1 wyjscie OC1B, czas wykonania <1h .
Załączniki
pwm.zip
gen pwm
(1.07 KiB) Pobrany 316 razy
pozdrawiam
Jakub Jędrzejczak

Awatar użytkownika

kwarc
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 1
Posty: 1058
Rejestracja: 06 sty 2007, 18:13
Lokalizacja: Mgławica Andromedy

#25

Post napisał: kwarc » 16 maja 2008, 20:36

troche dziwna ta dyskusja.a moze zastosowac jakis tani gotowy scalak do PWM,jest tego mnustwo imaja dedykowane funkcje trudne do zrealizowania na 555 i na mikroprocesorach.
ps. chyba kazdy chcialby umiec pisac w asemblerze.moze to zazdrosc?

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „Elektronika ogólna”