Mały, prosty sterownik krokowca pod AVR

Rozmowy na temat układów elektronicznych sterowania obrabiarek CNC

tomcat65
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 20
Posty: 1236
Rejestracja: 15 lis 2009, 02:46
Lokalizacja: Olsztyn
Kontakt:

Re: Mały, prosty sterownik krokowca pod AVR

#91

Post napisał: tomcat65 » 18 sty 2020, 16:55

Nie dziwo, że nie działa. Inne rejestry.
To jeszcze opisz z grubsza swój program, jak wcześniej sugerowałem.



Awatar użytkownika

TOP67
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 27
Posty: 2224
Rejestracja: 17 wrz 2018, 10:47
Lokalizacja: Wrocław
Kontakt:

Re: Mały, prosty sterownik krokowca pod AVR

#92

Post napisał: TOP67 » 18 sty 2020, 16:59

oprawcafotografii pisze:
18 sty 2020, 16:49
2560..
I tu jest pies pogrzebany. ATmega2560 ma inne piny.
Rejestry powinny mieć taką samą nazwę, ale licznik jest tu (OC1B/PCINT6) PB6

Dodane 2 minuty 31 sekundy:
TOP67 pisze:
18 sty 2020, 16:56
oprawcafotografii pisze:
18 sty 2020, 16:49
2560..
I tu jest pies pogrzebany. ATmega2560 ma inne piny.
Rejestry powinny mieć taką samą nazwę, ale licznik jest tu (OC1B/PCINT6) PB6 lub tu (OC1A/PCINT5) PB5


Avalyah
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 22
Posty: 2364
Rejestracja: 29 lis 2015, 00:38
Lokalizacja: Bielsko-Biała

Re: Mały, prosty sterownik krokowca pod AVR

#93

Post napisał: Avalyah » 18 sty 2020, 17:10

tomcat65 pisze:-pozbyłbym się wszystkich zmiennych typu float. AVRy nie mają koprocesora matematycznego. Co prawda kompilator sobie z tym poradzi, ale generuje bardzo długi kod.

Tu sie nie zgodzę. Ta funkcja wykonywana jest bardzo rzadko, w większości przypadków tylko raz. Mikrooptymalizacje mają sens tylko w przypadku funkcji wywoływanych często, tutaj bym akurat zostawił jak jest ze względu na wygodę użytkowania.


tomcat65
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 20
Posty: 1236
Rejestracja: 15 lis 2009, 02:46
Lokalizacja: Olsztyn
Kontakt:

Re: Mały, prosty sterownik krokowca pod AVR

#94

Post napisał: tomcat65 » 18 sty 2020, 18:19

Akurat w tym przypadku będzie wywoływana często. Jeśli czujniki są odczytywane co 0,8s i wpływają, a wpływają, na regulację obrotów, to w ciągu godziny funkcja będzie użyta jakieś 4 tyś razy.
Wszystko zależy od algorytmu przetwarzającego odczyty na prędkość.
Zasadne byłoby wprowadzenie porównywania poprzedniego odczytu z nowym.


Autor tematu
oprawcafotografii
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 21
Posty: 6105
Rejestracja: 29 kwie 2009, 10:11
Lokalizacja: Kraków / Jaworzno / Kopanka

Re: Mały, prosty sterownik krokowca pod AVR

#95

Post napisał: oprawcafotografii » 19 sty 2020, 08:31

Termometry pracują non-stop, ale już nie wpływają co 1s na krokowca.
Proces ma kilka etapów - pompka pracuje ze stałą prędkością, zmienianą
nie częściej niż pół godziny, nawet nie.

q

Dodane 7 minuty 19 sekundy:
TOP67 pisze:
18 sty 2020, 16:59
...
I tu jest pies pogrzebany. ATmega2560 ma inne piny.
Rejestry powinny mieć taką samą nazwę, ale licznik jest tu (OC1B/PCINT6) PB6 lub tu (OC1A/PCINT5) PB5
Czy dobrze rozumiem, ze sygnał STEP będzie nadal na pinie 10 (np)
a zmieniam tylko "OCR1A = licznik;" na "OC1B = licznik"?
Przyznaje, że takich zapisów nie rozumiem ;(

q
„Największym wrogiem wolności jest najedzony niewolnik.”


Avalyah
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 22
Posty: 2364
Rejestracja: 29 lis 2015, 00:38
Lokalizacja: Bielsko-Biała

Re: Mały, prosty sterownik krokowca pod AVR

#96

Post napisał: Avalyah » 19 sty 2020, 10:27

Obrazek

Jak widzisz piny PB5 i PB6 to na medze odpowiednio piny odpowiednio 11 i 12. Jeśli chcesz mieć wyjście na pin 11 to wpisujesz OC1A i PCINT5, a jeśli na 12 to OC1B i PCINT6 - masz to nawet ładnie opisane na obrazku.

Awatar użytkownika

TOP67
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 27
Posty: 2224
Rejestracja: 17 wrz 2018, 10:47
Lokalizacja: Wrocław
Kontakt:

Re: Mały, prosty sterownik krokowca pod AVR

#97

Post napisał: TOP67 » 19 sty 2020, 11:15

oprawcafotografii pisze:
19 sty 2020, 08:31
Czy dobrze rozumiem, ze sygnał STEP będzie nadal na pinie 10 (np)
a zmieniam tylko "OCR1A = licznik;" na "OC1B = licznik"?
Przyznaje, że takich zapisów nie rozumiem ;(

q
OCR1A i OCR1B to nazwy rejestrów, które są podpięte pod różne piny na różnych procesorach. Masz je w kodzie programu. Odkomentuj jeden z nich i ustaw przypisany do niego port na OUTPUT.

Mapa przypisania jest na rysunku. Numery wyjść cyfrowych są na różowo. Numery liczników na biało.
A PB5 to numer bitu w rejestrze B, który bezpośrednio kontroluje ten pin. Tu z tego nie korzystamy, podobnie jak z PCINT (przerwania).

pinMode (11, OUTPUT); //wyjście licznika OC1A
//pinMode (12, OUTPUT); //wyjście licznika OC1B

TCCR1A |= (1 << COM1A0); // tryb portu A (toggle). Pin 11
//TCCR1A |= (1 << COM1B0); // tryb portu B (toggle). Pin 12

Dodane 27 minuty 33 sekundy:
Jeszcze jedno. W trybie CTC obydwa porty korzystają z jednego licznika OC1A. Tej linijki nie zmieniamy.


Autor tematu
oprawcafotografii
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 21
Posty: 6105
Rejestracja: 29 kwie 2009, 10:11
Lokalizacja: Kraków / Jaworzno / Kopanka

Re: Mały, prosty sterownik krokowca pod AVR

#98

Post napisał: oprawcafotografii » 19 sty 2020, 11:15

Działa! Wielkie dzięki :)

1Hz:
https://photos.app.goo.gl/AyUeE2FGMWPrRbY59

800Hz:
https://photos.app.goo.gl/qA3XjuoawWEZYpu96

296Hz: (najczęściej u mnie):
https://photos.app.goo.gl/dMHvnVwy3mURdDAz5

Później wgram to w urządzenie i sprawdzę czy "gra i koliduje" ;)

q
„Największym wrogiem wolności jest najedzony niewolnik.”


tomcat65
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 20
Posty: 1236
Rejestracja: 15 lis 2009, 02:46
Lokalizacja: Olsztyn
Kontakt:

Re: Mały, prosty sterownik krokowca pod AVR

#99

Post napisał: tomcat65 » 19 sty 2020, 16:12

Działało by już dawno.


Autor tematu
oprawcafotografii
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 21
Posty: 6105
Rejestracja: 29 kwie 2009, 10:11
Lokalizacja: Kraków / Jaworzno / Kopanka

Re: Mały, prosty sterownik krokowca pod AVR

#100

Post napisał: oprawcafotografii » 19 sty 2020, 18:28

Śmiga :) Cokolwiek układ w głównej pętli robi, silnik kręci się idealnie :)
Wielkie dzięki za pomoc!

Nadal nie rozumiem, kodu ale nie szkodzi :)

q
„Największym wrogiem wolności jest najedzony niewolnik.”

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „Elektronika CNC”