Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 21 lis 2017, o 05:25


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 13 ] 
Autor Wiadomość
PostNapisane: 15 sie 2017, o 14:28 
Offline
Użytkownik

Dołączył(a): 17 lip 2017
Posty: 26
Pomógł: 0

Witam forumowiczów,
Napisałem prosty program w języku c.
Na ośmiu diodach w rejestrze B wykonuję się 4 razy pętla, następnie na dwóch innych diodach
w rejestrze D wykonuje się program według PWM.
Te dwa programy nie wykonują się niezależnie, bo są zależne od siebie.
Pętla się kończy, a następnie wykonuje się PWM.
Chciałbym natomiast, aby pętla wykonywała się cały czas i w tym samym czasie wykonywał się PWM.
I tak w kółko.
Jakieś sugestie?
Pozdrawiam i dzięki za pomoc.
Oto kod:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 sie 2017, o 14:45 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 21929
Lokalizacja: Szczecin
Pomógł: 802

zbysiu100 napisał(a):
Chciałbym natomiast, aby pętla wykonywała się cały czas i w tym samym czasie wykonywał się PWM.
I tak w kółko.
Jakieś sugestie?


Masz Bluebooka ?

http://atnel.pl/mikrokontrolery-avr-jezyk-c.html

Jeśli nie to warto sięgnąć tam właśnie pokazuję jak się robi w prosty sposób wiele różnych operacji w "jednym czasie"

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 sie 2017, o 14:59 
Offline
Użytkownik

Dołączył(a): 17 lip 2017
Posty: 26
Pomógł: 0

Panie Mirku, jeśli można po imieniu,
Drogie te Pana książki.
Inne tego rodzaju książki na rynku są tańsze.
Od czego to zależy?
Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 sie 2017, o 17:56 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 21929
Lokalizacja: Szczecin
Pomógł: 802

zbysiu100 napisał(a):
Inne tego rodzaju książki na rynku są tańsze.

No tak więc nie ma co - proszę kupić sobie tę inną tańszą książkę.

------------------------ [ Dodano po: 1 minucie ]

zbysiu100 napisał(a):
Od czego to zależy?

Napisz sobie sam książkę (dowolną) wydają ją również sam za własne pieniądze - może wtedy zrozumiesz, a już na pewno nie będziesz zadawał takich dziwnych pytań, gwarantuję ci.

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 sie 2017, o 18:37 
Offline
Użytkownik

Dołączył(a): 17 lip 2017
Posty: 26
Pomógł: 0

Na pewno można to zrobić programowo, w j. c za pomocą ifów, tak myślę.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 sie 2017, o 18:42 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 21929
Lokalizacja: Szczecin
Pomógł: 802

zbysiu100 napisał(a):
Na pewno można to zrobić programowo, w j. c za pomocą ifów, tak myślę.


A ty myślisz że ja opisałem to w jakiś magiczny sposób bez if'ów ? nie programowo ? ;) no nie żartuj

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 sie 2017, o 19:23 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 mar 2015
Posty: 189
Pomógł: 13

Kolego zbysiu100 może na temat książek Mirka ja Ci odpowiem ponieważ autora takie pytania zapewne irytują (w każdym bądź razie mnie by irytowały :) ) Po pierwsze znajdź 2 taką pozycję na rynku która opisuje meandry języka c dla avr w tak przyjazny sposób .. nie znajdziesz. Po drugie. Zobacz ile Mirek wkłada dodatkowej pracy w poradniki by wbić nam wiedzę w nasze główki nie biorąc za to ani złotówki. Jeśli dodasz sobie te dwa punkty to powinno wyjść Tobie, że pytanie które zadajesz jest delikatnie mówiąc nie na miejscu bo już za same oglądanie poradników i korzystaniu z wiedzy zawartym na tym forum które jest suportem do Mirkowych produktów, powinieneś nawet w ramach czystej życzliwości kupić tą książkę a po jej przeczytaniu b.szybko zrozumiesz, że książka jest warta swoich pieniędzy.
Pozdrawiam i życzę w najbliższym czasie przyjemnej lektury.

Wysłane z mojego HTC One_M8 przy użyciu Tapatalka



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 sie 2017, o 19:36 
Offline
Użytkownik

Dołączył(a): 04 cze 2013
Posty: 493
Pomógł: 26

Można oczywiście uczyć się również z neta (siedząc miesiącami i szukając odpowiedzi na swoje pytania ) lub zakupić BB i rozwiązać problemy w tydzień. Ale żeby nie był że jedziemy tu po kimś i nie podpowiadamy. Kolego musisz ogarnąć temat timerów ,przerwań i flag którymi możesz następnie sterować kiedy jaka część kodu ma się wykonywać

_________________
Przewodnik|Sterownik akwariowy



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 sie 2017, o 20:40 
Offline
Tech-support
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1187
Lokalizacja: okolice Warszawa
Pomógł: 109

Witam,
Na temat wspomnianej książki BB:
Podczas zakupu "BB" nie zastanawiałem się czy jest to droga pozycja czy tania,
wystarczyło że była w zasięgu mojego budżetu.
(nie jest to jakaś astronomiczna kwota ) tym bardziej że widziałem co się dzieje na TYM forum.
Teraz uważam że była warta znacznie więcej niż zapłaciłem. ;)
Po pewnym czasie, bez wahania nabyłem kolejne dwie pozycje. +zabawki. :D

Co do kodu..

Trzeba się zastanowić nad sposobem działania programu,
ponieważ widzę że w PWM'ie jest _delay w mikrosekundach 359.(liczba pierwsza) :?
a potem _delay w ms 5. nie podzielne przez tę liczbę 359. :?
jedno przerwanie do obu wartości musiało by występować co 1us. :? :?
Trochę kiszka - bo przy nawet 8MHz pozostanie osiem taktów na obsługę i przerwania i programu.
:idea:
można by uruchomić następny timer a w nim co 359 us ...
hmmm... nawet co 718 (ponieważ jest wpisane dwa razy _delay po 359 us )
zbysiu100 napisał(a):
 
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Uruchamiać przerwanie.
Oczywiście trochę inaczej ułożony kod:
uzależnione od flagi -
jeżeli OCR.. uzyska max to musi pamiętać że teraz będzie dekrementacja aż do uzyskania wartości 0 ,
teraz znowu zmiana tej flagi żeby program wiedział że należy tym razem inkrementować.
Oczywiście w odstępach czasowych np. w przerwaniu co przykładowe 359 us.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Teraz nawet ten blokujący _delay_ms(5); w pętli while,
nie będzie blokował PWM'a, i wice wersa . :)
Oczywiście tego _delay'a też można się pozbyć wykorzystując przerwanie.
To taki pomysł. ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 sie 2017, o 18:07 
Offline
Użytkownik

Dołączył(a): 17 lip 2017
Posty: 26
Pomógł: 0

Witam ponownie,
Dziękuję za pomoc i za wszelkie uwagi.
Postanowiłem rozwiązać to w ten sposób:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 sie 2017, o 20:22 
Offline
Tech-support
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1187
Lokalizacja: okolice Warszawa
Pomógł: 109

zbysiu100 napisał(a):
Chciałbym natomiast, aby pętla wykonywała się cały czas i w tym samym czasie wykonywał się PWM.

To powyższe rozwiązanie raczej tak nie zadziała. :?
Nadal będzie wykonywane kolejno - najpierw rozjaśniania i ściemniania a potem mryganie diodami wg tablicy. :P
Chyba że zmieniłeś założenia. ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 sie 2017, o 20:48 
Offline
Użytkownik

Dołączył(a): 17 lip 2017
Posty: 26
Pomógł: 0

Hej,
działa niezależnie, ale trzeba dodać "delay".



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 sie 2017, o 21:09 
Offline
Tech-support
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1187
Lokalizacja: okolice Warszawa
Pomógł: 109

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

O takie cóścik. :roll:
Dobrze gdybyś poświęcił troszkę czasu na przejrzenie tego : ROBAL
Wiele ciekawych rozwiązań związanych z wielozadaniowością bez użycia timerów. :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 13 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Google [Bot] i 2 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO