DRO DIY

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

mc2kwacz
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 7
Posty: 2920
Rejestracja: 27 maja 2013, 22:18
Lokalizacja: gdzieś

#141

Post napisał: mc2kwacz » 01 maja 2017, 01:36

I dlatego takich urządzeń nie oprogramowują specjaliści od okienek, aplikacji na smartfony albo baz danych ;)
Dla programisty jednoukładowców takie problemy jak kolizje przerwań czy kontrola spójności zmiennych wielobajtowych to chleb powszedni. I nie będziesz w stanie zakręcić tak szybko żeby procesor zgubił położenie. Do momentu gdy enkoder sam przestanie rozróżniać impulsy :lol: Szacuję, że ze 64 bajty RAM do tego wystarczą i procesor z 8 nogami fizycznymi :)

P.S.
Asembler tym się różni od kodu maszynowego, że kod maszynowy o czysty kod a asembler daje do dyspozycji makroinstrukcje, instrukcje sterujące, dyrektywy itp. Oprócz czytelnych mnemoników oczywiście.



Tagi:


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

#142

Post napisał: Avalyah » 01 maja 2017, 10:13

strikexp pisze:Jakoś nie uważam żeby ATmega328 było dobrym pomysłem do odtwarzania muzyki
Można zrobić to nawet na 8-nóżkowym attiny, który czyta dane z karty uSD i cały układ można zmieścić na płytce wielkości właśnie takiego gniazda. I to tylko z drobną pomocą assemblera. A taki potężny komputer jak atmega328 nie ma z tym już żadnego problemu, nawet przy 44kHz i próbkach 16 bitowych.

Nie wiem, czemu się tych przerwań tak boisz, ale jak chcesz mikrokontrolery programować, to będziesz musiał się do nich przekonać. Jeśli nie mylę terminów (a wolno mi, bo się nigdzie za programistę nie podaję :mrgreen:) to teraz robisz polling portów, żeby odczytywać stany na enkoderze i przez to wykorzystujesz do tego 100% zajętości mikrokontrolera. Jakbyś chciał rozszerzyć jakkolwiek działanie - np dodać przycisk zerujący, to byś musiał prawdopodobnie zmienić podejście.

Przy czym ja wcale nie mówię, że ten program jest zły (nie testowałem), tylko zwracam uwagę na kilka faktów, które rzuciły mi się w oczy.

Mógłbyś mi wskazać jeszcze linijki kodu, w których przerwanie mogłoby "zaburzyć kopiowanie typu long"? Bo nie do końca rozumiem, czego się obawiasz.


antybeton
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 6
Posty: 103
Rejestracja: 17 lis 2016, 22:59
Lokalizacja: Gżdawa

#143

Post napisał: antybeton » 01 maja 2017, 12:30

Przerwania w mikrokontrolerach to jest samo dobro. Do programisty należy żeby nad tym panować. Wystarczy w głównym programie ustawić flagę "nie modyfikuj licznika". W przerwaniu zapisywać stan licznika Do zmiennej " ukrytej" i sprawdzać czy flaga jest ustawiona. Jak nie, to przepisywać do zmiennej dostępnej w głównej pętli. Niestety taka jest specyfika programowania w mikrokontrolerach, że trzeba poznać budowę procka i jak on działa.


strikexp
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 105
Posty: 4690
Rejestracja: 31 mar 2017, 19:47
Lokalizacja: Warszawa

#144

Post napisał: strikexp » 01 maja 2017, 23:58

Samym dobrem jest to co nie powoduje żadnych problemów :wink: Ja tam z rezerwą podchodze do przerwań. Wolę stosować podejście wielowątkowości niż przerwania. Przerwań masz ograniczoną ilość :wink:
Nie warto ciągnąć dyskusji bez sensu. Stosuje sie to co jest najlepsze dla danego rozwiązania. A rozwiązań jest przeważnie kilka a nawet kilkaset. I wiele z nich jest równie dobra co inne.


Przypominam że trzeba przetestować DRO. Potem przyjdzie czas na falownik w podobnym budżecie :wink:


251mz
Moderator
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 5
Posty: 4478
Rejestracja: 27 sie 2004, 21:59
Lokalizacja: Polska

#145

Post napisał: 251mz » 02 maja 2017, 11:37

strikexp pisze:Nie warto ciągnąć dyskusji bez sensu. Stosuje sie to co jest najlepsze dla danego rozwiązania.
Mikrokonktrolery Atmega są jednowątkowe...

Po to stosuje się przerwania aby zapewnić bezkolizyjność oraz w ogóle wykonywalność pewnych procesów....


strikexp
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 105
Posty: 4690
Rejestracja: 31 mar 2017, 19:47
Lokalizacja: Warszawa

#146

Post napisał: strikexp » 02 maja 2017, 13:04

Tak. wiem. Ale chodzi o sposób działania podobny do systemów operacyjnych. Tam różne programy działają równolegle, często na tych samych danych.


antybeton
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 6
Posty: 103
Rejestracja: 17 lis 2016, 22:59
Lokalizacja: Gżdawa

#147

Post napisał: antybeton » 02 maja 2017, 14:15

Przy jednordzeniowym procku fizycznie nie jest możliwe równoległe wykonywanie wątków. Procek i tak musi się przełączać na poszczególne procesy marnując w jakimś stopniu swoje zasoby. Na AVR jest nawet system operacyjny µC. Zaletą "zwykłego" programowania mikrokontrolerów jest pełne panowanie nad czasem. Na przykład na AVR z 16MHz można zrobić miernik częstotliwości do około 5MHz.


mc2kwacz
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 7
Posty: 2920
Rejestracja: 27 maja 2013, 22:18
Lokalizacja: gdzieś

#148

Post napisał: mc2kwacz » 06 maja 2017, 19:26

AVR to badziewie oparte na zamierzchłej rodzinie MCS, tyle że popularne jak golonka w przydrożnych barach. Koncepcja starsza niż większość tutejszych forumowiczów. Z resztą firma nie wytrzymała nowoczesnej konkurencji i rok temu została wchłonięta.
Jeśli ktoś się chce spróbować pobawić w równoległe procesy na jednej kości, może użyć jakiegoś dsPIC. Albo lepiej dowolnego starszego prawdziwego procesora sygnałowego Texasa czy Motoroli. Jednak to już nie dla każdego zabawa.


antybeton
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 6
Posty: 103
Rejestracja: 17 lis 2016, 22:59
Lokalizacja: Gżdawa

#149

Post napisał: antybeton » 06 maja 2017, 21:40

AVR 8 bitowe oparte na MCS? Chyba coś ci się pomyliło. Łączy je tylko że niektóre pierwsze AVRki miały rozkład wyprowadzeń zgodnych z niektórymi MCS-51. Czy takie badziewie? Może tak, może nie. Zależy co komu potrzebne. Jak ktoś chce procka wielordzeniowego może sobie kupić Raspberry czy innego Odroida za 200 zeta.


strikexp
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 105
Posty: 4690
Rejestracja: 31 mar 2017, 19:47
Lokalizacja: Warszawa

#150

Post napisał: strikexp » 06 maja 2017, 22:34

Nawet wspomniane przeze mnie NanoPI NEO za 55zł + osprzęt.

Chyba temat testowania DRO umarł. Muszę sam przetestować na tym co mam i wrzucić tutorial na forum :wink:

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „Elektronika ogólna”