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



Teraz jest 28 mar 2024, o 21:17


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 75 ]  Przejdź na stronę Poprzednia strona  1, 2, 3
Autor Wiadomość
PostNapisane: 19 gru 2018, o 18:38 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 paź 2013
Posty: 1960
Lokalizacja: Lipsko
Pomógł: 125

Wrzuć całość, bo takie sprawdzanie programu w kawałkach do niczego dobrego nie doprowadzi

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 gru 2018, o 10:09 
Offline
Użytkownik

Dołączył(a): 02 maja 2015
Posty: 62
Pomógł: 0

SylwekK napisał(a):
Wrzuć całość, bo takie sprawdzanie programu w kawałkach do niczego dobrego nie doprowadzi

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

Spróbowałem przy inicjalizacji ustawić timer_key na wartość 10, ale nic to nie dało.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 gru 2018, o 11:51 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 paź 2013
Posty: 1960
Lokalizacja: Lipsko
Pomógł: 125

Taaaak... :)
Może najpierw trochę porządków, bo są pewne nieścisłości. Proszę wyjaśnij to i wskaż jakiś wspólny mianownik:

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


Autor postu otrzymał pochwałę

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 gru 2018, o 13:49 
Offline
Użytkownik

Dołączył(a): 02 maja 2015
Posty: 62
Pomógł: 0

SylwekK napisał(a):
Może najpierw trochę porządków, bo są pewne nieścisłości.
Taaak, nie wiem jak ten PIND się tam znalazł? Po zmianie na PINB jest OK! :) Dzięki!
Teraz należy taką sekwencję wstawić w badanie kolejnych wejść. Myślę, że byłoby bardziej przejrzyście i elegancko, gdyby to ująć w funkcję. Muszę zajrzeć do BB, bo funkcja będzie mieć kilka argumentów :o

dziobak7 napisał(a):
Cztery poziomy zagnieżdżenia.
Ja naprawdę jestem początkujący, zasugeruj coś może w celu uproszczenia kodu, tworzonego w pocie czoła - tworzę jak potrafię. Jak widać nie ma się czym chwalić ;)

Po przemyśleniach, wykrystalizowała się 8-) taka funkcja
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Wynika mi z tego, że każdy przycisk musi mieć osobny timer programowy dekrementowany w przerwaniu, bo chyba nie da się tego obsłużyć jednym timerem?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 gru 2018, o 23:33 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 paź 2013
Posty: 1960
Lokalizacja: Lipsko
Pomógł: 125

oowan napisał(a):
Wynika mi z tego, że każdy przycisk musi mieć osobny timer programowy dekrementowany w przerwaniu, bo chyba nie da się tego obsłużyć jednym timerem?

Jeśli będzie to robione sposobem, który podałem to TAK, ale zawsze można inaczej to zrobić i o ile przyciski nie są wciskane równocześnie to można by z jednego timera korzystać.

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 gru 2018, o 13:43 
Offline
Użytkownik

Dołączył(a): 02 maja 2015
Posty: 62
Pomógł: 0

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

Nie wiem, czy znowu nie przekombinowałem, ale działa, przynajmniej to, co mam fizycznie podłączone do testów.

Życzę wszystkim WESOŁYCH ŚWIĄT!!!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 gru 2018, o 13:34 
Offline
Użytkownik

Dołączył(a): 02 maja 2015
Posty: 62
Pomógł: 0

Program powoli się rozrasta - dołożyłem wyłącznik czasowy do sterowania lampą przed garażem.
Jest to kolejny timer programowy (tym razem uint16_t) odliczany co sekundę w przerwaniu.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Wszystko działa prawidłowo, tylko że odliczana sekunda ma tak na oko 1,6s. Co może być przyczyną?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 gru 2018, o 17:35 
Offline
Użytkownik
Avatar użytkownika

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

witam,
oowan napisał(a):
, tylko że odliczana sekunda ma tak na oko 1,6s. Co może być przyczyną?

jeżeli przedstawisz ciało funkcji 'timer_init();', to może coś da się wywnioskować/wyliczyć.
Przejrzałem wątek i nie zauważyłem jak jest ustawiony timer.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 gru 2018, o 20:37 
Offline
Użytkownik

Dołączył(a): 02 maja 2015
Posty: 62
Pomógł: 0

oowan napisał(a):
jeżeli przedstawisz ciało funkcji 'timer_init();', to może coś da się wywnioskować/wyliczyć.

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

Spróbowałem ten fragment
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
przenieść z obsługi przerwania do pętli głównej. Oczywiście zmienną cnt zmieniłem z lokalnej na globalną volatile.
Dioda migała, ale bardzo nieregularnie. Czasem kilka krótkich błysków, czasem dłuższe przerwy lub dłoższe świecenie.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 gru 2018, o 20:55 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 paź 2013
Posty: 1960
Lokalizacja: Lipsko
Pomógł: 125

Jeśli w pętli głównej używasz do timera 16-bitowej zmiennej, która jest odliczania w przerwaniach to ZAWSZE będzie problem z regularnym odliczaniem chyba, że... podczas tego odświeżania zostaną wyłączone przerwania (poczytaj atomic blok).

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 sty 2019, o 08:10 
Offline
Użytkownik

Dołączył(a): 02 maja 2015
Posty: 62
Pomógł: 0

SylwekK napisał(a):
Jeśli w pętli głównej używasz do timera 16-bitowej zmiennej, która jest odliczania w przerwaniach to ZAWSZE będzie problem z regularnym odliczaniem chyba, że... podczas tego odświeżania zostaną wyłączone przerwania (poczytaj atomic blok).
Poszedłem w innym kierunku - uruchomiłem drugi timer sprzętowy na 10Hz, do obsługi migania i odmierzania czasu świecenia lampy. To chyba prostsze rowiązanie? Chyba, że do odmierzania minut dla lampy dam osobny timer, 16-bitowy ;) Jakby nie było, tiny2313 ma dwa dwukanałowe timery :mrgreen:



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 sty 2019, o 12:12 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 paź 2013
Posty: 1960
Lokalizacja: Lipsko
Pomógł: 125

Można i tak, ale wystarczy dodatkowy timer programowy z dzielnikiem przez, np. 100 dodać.

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 sty 2019, o 14:19 
Offline
Użytkownik

Dołączył(a): 02 maja 2015
Posty: 62
Pomógł: 0

Praktycznie ukończyłem program. Jest wszystko co chciałem osiągnąć. Pewnie potrzebne będą jakieś korekty przy uruchamianiu sterownika - z tym poczekam do wiosny, nie chcę marznąć teraz w garażu :?
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Wielkie dzięki za pomoc :!:



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 sty 2019, o 16:09 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 paź 2013
Posty: 1960
Lokalizacja: Lipsko
Pomógł: 125

Najważniejsze żeby wszystko już na stole działało w 100% zgodnie z założeniami wtedy po zainstalowaniu na bramie będzie łatwiej uruchamiać :)

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 sty 2019, o 21:17 
Offline
Użytkownik

Dołączył(a): 02 maja 2015
Posty: 62
Pomógł: 0

SylwekK napisał(a):
Najważniejsze żeby wszystko już na stole działało w 100% zgodnie z założeniami wtedy po zainstalowaniu na bramie będzie łatwiej uruchamiać :)

Sam ATtiny działa w 100%, ale sterownik będzie zawierał jeszcze dwa komparatory na LM393 - jeden do czujnika zmierzchowego, drugi do zabezp. przeciążeniowego, współpracujący z modułem pomiaru prądu na ukłdzie ACS712. I tu mogą zdarzyć się niespodzianki, a niespodzianki mnie lubią, bez wzajemności :twisted:
Może też się okazać konieczne zamienić miejscami jakieś piny, żeby uprościć ścieżki na płytce.
Na razie dopracowuję schemat na papierze. Muszę to przespać, kilka razy przemyśleć, może nasunie się jakiś nowy pomysł. Został mi jeden wolny pin w mikrokontrolerze, więc kto wie? ;)
Gdy to dopracuję, na pewno umieszczę całą konstrukcję w dziale DIY.



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: 75 ]  Przejdź na stronę Poprzednia strona  1, 2, 3

Strefa czasowa: UTC + 1


Kto przegląda forum

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


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