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



Teraz jest 20 kwi 2024, o 05:52


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 75 ]  Przejdź na stronę Poprzednia strona  1, 2, 3  Następna strona
Autor Wiadomość
PostNapisane: 4 gru 2018, o 10:34 
Offline
Moderator
Avatar użytkownika

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

oowan napisał(a):
Dlaczego zmienna statyczna cnt nie jest ustawiana na zero przy każdym wejściu w procedurę, tylko jej wartość zostaje zapamiętana zgodnie z "naturą" zmiennej static?

Masz Bluebooka ... zajrzyj ... masz tam napisane jak działają i jak zachowują się zmienne static. To ważne ... krótko mówiąc - zachowują się tak jak zmienne globalne, a więc nie mogą się zerować ....

W ogóle zapis

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


nie jest do końca prawidłowy - powinno być:

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


chyba, żebyś chciał inicjalizować inną wartością niż zero. Jak mówię - zmienną static obowiązują zasady zmiennych globalnych a więc nie inicjalizuje się ich zerem.

_________________
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: 4 gru 2018, o 12:11 
Offline
Użytkownik
Avatar użytkownika

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

oowan napisał(a):
Działa Wielkie dzięki Teraz mogę tworzyć dalej, do następnej zagwozdki


Cieszę się. Mam nadzieje, że pochwalisz się efektem końcowym w praktyce ;-)
Aaa, te fotki to wrzucisz, o które prosiłem wcześniej? Chodzi o krawędź bramy dla fotokomórki.

_________________
http://www.sylwekkuna.com



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

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

mirekk36 napisał(a):
zmienną static obowiązują zasady zmiennych globalnych a więc nie inicjalizuje się ich zerem.
Czyli wszystkie operacje operacje wykonywane są na ich kopiach - dobrze rozumuję?

SylwekK napisał(a):
Cieszę się. Mam nadzieje, że pochwalisz się efektem końcowym w praktyce
Aaa, te fotki to wrzucisz, o które prosiłem wcześniej? Chodzi o krawędź bramy dla fotokomórki.
Oczywiście, że się pochwalę, ale jeszcze daleko do końca. Na razie kilka fotek ze stanu aktualnego. Niestety nie widać dobrze miejsca ewentualnego zamocowania fotokomórki.
ObrazekObrazekObrazekObrazekObrazekObrazekObrazek



Ostatnio edytowano 5 gru 2018, o 12:02 przez oowan, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 gru 2018, o 13:52 
Offline
Moderator
Avatar użytkownika

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

oowan napisał(a):
Czyli wszystkie operacje operacje wykonywane są na ich kopiach - dobrze rozumuję?

źle rozumujesz ... na jakich kopiach - zrozum, słówko static przy zmiennej lokalnej oznacza, że zachowuje się ona jak globalna - obowiązują ją te same zasady z tą różnicą, że jest widoczna zawsze tylko wewnątrz funkcji do której została powołana.

Mówię ci zajrzyj do Bluebooka i zobacz jak opisałem działanie zmiennych lokalnych tworzonych "w locie" na stosie i jak one się mają do zmiennych statycznych. Warto to porządnie zrozumieć.

_________________
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: 7 gru 2018, o 19:22 
Offline
Użytkownik

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

mirekk36 napisał(a):
Masz Bluebooka ... zajrzyj ... masz tam napisane jak działają i jak zachowują się zmienne static. To ważne ... krótko mówiąc - zachowują się tak jak zmienne globalne, a więc nie mogą się zerować ....

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

nie jest do końca prawidłowy

Przewertowałem BB w związku ze zmiennymi static i trafiłem miejsce, skąd wziął się ten babol: strona 326 u dołu - opis magistrali 1wire.
Przy moim poziomie wiedzy, nawet nie byłem świadomy, że to jest błąd.
W erracie tego nie znalazłem.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 gru 2018, o 19:37 
Offline
Użytkownik
Avatar użytkownika

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

Teraz dopiero fotki zobaczyłem. Faktycznie miejsca instalacji fotokomórki nie widać, bo nie pokazałeś tego o co prosiłem czyli krawędzi ościeżnicy bramy w stanie kiedy brama jest zamknięta, częściowo otwarta i otwarta :)
A to co pokazałeś dało mi inspiracje, bo też planuje zrobić u siebie napęd :-D

_________________
http://www.sylwekkuna.com



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

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

Oto kolejne zdjęcia - sprężyny bardziej się nie wysuwają.
Obrazek Obrazek Obrazek
Jedyne miejsce jakie widzę do zabudowy fotokomórki, to zaraz nad krańcówkami. Być może, da się wykorzystać też wsporniki od krańcówek, żeby nie wiercić kolejnych dziur w ścianie.
Obawiam się tylko, żeby w nie przypadkowo nie kopnąć, bo będą trochę odstawać.

Należy się słowo wyjaśnienia, dlaczego łańcuch połączony jest z linką. Otóż na początku połączyłem (znitowałem) prawie dwa i pół łańcucha od roweru i na zwrotni też była zębatka. Ale łańcuch ciągle spadał, albo z tyło, albo z przodu. Nie pomogły żadne regulacje.
Połaczenie łańcucha z linką rozwiązało problem, chociaż łańcuch w miejscu połączenia skręca się, tym bardziej, im bardziej oddala się od zębatki napędowej. Ale to w niczym nie przeszkadza.



Ostatnio edytowano 7 gru 2018, o 20:39 przez oowan, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 gru 2018, o 20:27 
Offline
Moderator
Avatar użytkownika

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

Panie, panie - no ja protestuję - wrzuć pan to do DIY ;) opisz jakoś fajnie i pokaż co zrobiłeś ;) będzie to inspiracją dla większej liczby osób

_________________
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: 7 gru 2018, o 20:50 
Offline
Użytkownik

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

mirekk36 napisał(a):
Panie, panie - no ja protestuję - wrzuć pan to do DIY ;) opisz jakoś fajnie i pokaż co zrobiłeś ;) będzie to inspiracją dla większej liczby osób

Może z tym poczekam, bo projekt jeszcze nie jest gotowy (czego dowodem jest niniejszy wątek)?
Nie da się jednak ukryć, że napęd działa od pół roku. Najbardziej się cieszę, że nie naniosę już tak dużo śniegu do auta przy wyjeżdżaniu z garażu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 gru 2018, o 21:06 
Offline
Moderator
Avatar użytkownika

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

No i tym sposobem - projekty nigdy nie wychodzą na światło dzienne ;) szkoda

_________________
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: 7 gru 2018, o 21:14 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 26 mar 2014
Posty: 356
Lokalizacja: Pruszków
Pomógł: 15

Witam wszystkich

Może nie do końca na temat coś napiszę ale od dziecka interesuję się elektroniką a pracuję od ponad 20lat jako elektromechanik automatyk i tak zajżałem tu o czym piszecie i fajne żeczy czytam.
Przez te całe lata pracy w mojej byłej firmie były zamontowne automatyczne drzwi takze takie jak te garazowe co tu kolego własnie modyfikuje.
A w wiekszosci takie kurtyny elestyczne.
I w tych kurtynach np. nie było fotokomórek na oscieżnicy a były tylko czujniki ruchu które inicjowały otwieranie.
Ale któregoś razu przechodząc kurtyna zaczęła się zamykać a robiła to dość szybko no więc pochyliłem się i kurtyna schodząc w dół lekko uderzyła mnie w plecy i od razu poszła do góry.
Na poczatku pomyslałem no fajnie nic specjalnego ale puźniej nie dawało mi to spokoju bo niby z kąd ta kurtyna wiedziała, że zablokowałem jej drogę nie było tam żadnych krańcówek ani fotokomórek.

No więc podczas konserwacji zapytałem serwisanta jak to jest zrobione, że mnie lekko jakby uderzyła i się zwinęła spowrotem?
A on mówi że na dolnej krawędzi jest uszczelka wewnątrz której jest jakby wąż gumowy zamknięty szczelnie i do niego podłaczony czujnik ciśnienia powietrza w momenice opuszczania kiedy trafi na jakąś przeszkodę w którym kolwiek miejscu na rancie (a sprawdzałem dłonią) wykrywa zmiene cisnienia i albo kończy cykl zamykania bo wie że jest na dole albo wraca kiedy wie żę jest gdzieinndziej.
Pewnie ma wyliczony czas w programie ile czasu zamyka i wie mniej więcej gdzie jest czy juz blisko podłogi czy być może trafiło na przeszkodę.

Sorki, że piszę ale jakoś tak mi przyszło do głowy to opisać dla mnie to był ciekawy temat jak jest zrealizowane takie coś bez fotokomórek.

Pozdrawiam Paweł.



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

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

Pomysł świetny z tym czujnikiem ciśnienia! Mnie też przeszło przez myśl coś na krawędzi jak zobaczyłem fotki, ale nie takie coś :) Warto pokombinować. O... Właśnie mi przyszło do głowy, że najprościej wypełnić miękkiego węża wodą (glikolem) gdzie jeden koniec zatkany na sztywno, a drugi to miękka membrana gumowa naciskająca na delikatny mikroprzycisk.

_________________
http://www.sylwekkuna.com



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

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

Zaskoczyło mnie to rozwiązanie z czujnikiem w uszczelce - pomysłowe.
A jakby wykorzystać do tego czujnik ssania z silnika z auta? Takie czujniki z demontażu można kupić za kilkanaście zł.
Albo też czujnik z ciśnieniomierza automatycznego na rękę. One mają obudowę z rurką na wężyk.

------------------------ [ Dodano po: 14 minutach ]

mirekk36 napisał(a):
No i tym sposobem - projekty nigdy nie wychodzą na światło dzienne ;) szkoda
Oj, Mirku, więcej wiary w ludzi...



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

Dołączył(a): 22 kwi 2017
Posty: 99
Lokalizacja: Piła
Pomógł: 4

Można też wykorzystać czujnik poziomu wody ze starej pralki, tylko ustawić czułość.



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

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

Witam kolegów! Porobiłem kilka zmian, i to, co mam zachowuje się tak jak założyłem. SylwekK wykorzystałem pomysł z timerem, który przeczekuje pierwszy czyjnik zwalniający (trochę się nagłówkowałem, ale się udało). Przy okazji wpadłem na to, że może mógłby to być np. jeden kontaktron uruchamiany dwoma magnesami - jeszcze nie sprawdzałem, czy mechanicznie uda się to zrobić.

Kolejny mój problem, to eliminacja zakłóceń na wejściach. Generalnie układ ma taki charakter, że nie potrzeba gasić drgań styków, ale niestety wejścia łąpią zakłócenia, bo przewody do krańcówek mają po kilka metrów.
W starym sterowniku zrobionym na TTL-ach (młodzież wie co to takiego? ;) ) sprawę załatwiły kondensatory 220nF dolutowane między każde wejście a masę.
Tu może by też się sprawdziły, ale czy nie lepiej zastosować rozwiązania podobnego do gaszenia drgań styków? (znowu wyzwanie dla mnie, bo jeszcze tego nie próbowałem).
Co o tym sądzicie?



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

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

Ciekaw jestem jak rozwiązałeś to opóźnienie, bo z twoich słów wynika, że to wyszło dość skomplikowane :), Na szybko zrobił bym to tak:
Na początek nieco zmodyfikować tą linię dodając badanie kolejnego timera:

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


i w przerwaniach dodać jego odliczanie z tym, że ze względu na wywoływanie co 1ms trzeba go ciut rozbudować aby mieć szerszy zakres sekundowy na zmiennej 8-bitowej (z 16-bitową były by tu problemy, ale to na inny temat ;) ), np. tak:

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


Dzięki temu teraz dla wartości 255 maksymalnie można uzyskać opóźnienie nieco ponad 25s (255*100ms)
A na koniec w momencie wciśnięcia klawisza kierunku trzeba jeszcze tylko aktywować wspomniany "timer2":

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


Podane rozwiązanie timera to tylko luźny przykład. W bardziej restrykcyjnych czasowo projektach (np. przerwania 20-50kHz) kiedy zależy mi aby przerwania przemknęły z jak najmniejszymi stratami czasowymi stosuję nieco inne rozwiązania - liczniki przerzucam do pętli głównej (w przerwaniach zostawiam tylko niezbędne jakieś pojedyncze liczniki). Warunkiem jest też odpowiednia konstrukcja pętli głównej - na maksa nieblokująco... i to pod każdym względem gdzie np. na obsługę LCD wydzielone jest max kilkadziesiąt mikrosekund. Wszystko zależy od urządzenia.
W tym przypadku gdyby jeszcze zależało na zmniejszeniu programu o kilka bajtów to timery w przerwaniu można wzbogacić o dodatkową zmienną co Mirek ładnie w BB pokazał i niejednokrotnie na forum tłumaczył.

_________________
http://www.sylwekkuna.com



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

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

Żeby się niepotrzebnie nie rozpisywać, wstawię kod:
//określenia "maszyny stanów"
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Jednobitowe flagi (6 sztuk ;) ) wstawiłem do pola bitowego, deklaracje zmiennych w przerwaniu przenisłem do pliku timer.h.



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

Dołączył(a): 07 cze 2016
Posty: 563
Pomógł: 143

oowan napisał(a):
Zaskoczyło mnie to rozwiązanie z czujnikiem w uszczelce - pomysłowe.
A jakby wykorzystać do tego czujnik ssania z silnika z auta? Takie czujniki z demontażu można kupić za kilkanaście zł.

Taki czujnik musi być dość czuły. Nie wiem jakie parametry ma ten samochodowy, ale oryginalnie montowane są np. takie:
http://www.transportdoorsolutions.co.uk/wp-content/uploads/2014/07/ELE051GDW40-ADJ-PRESSURE-SWITCH-DATA-SHEET.pdf
Nie jest to zbyt tanie rozwiązanie (link), ale być może na podstawie noty katalogowej uda się mniej więcej ocenić, czy taki od samochodu lub pralki się nada.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 gru 2018, o 10:26 
Offline
Użytkownik
Avatar użytkownika

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

Rozwiązanie podobne do mojego z tym, że ja nie chciałem właśnie z dodatkowych flag korzystać stąd pod przyciskiem aktywacja timera. Jest ok :)

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 gru 2018, o 11:14 
Offline
Użytkownik

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

andrews napisał(a):
Nie jest to zbyt tanie rozwiązanie (link)
Oczywiście, oryginalne rozwiązania zawsze są drogie. Niestety :evil:
Ja myślałem o takich czujnikach https://allegro.pl/uzytkownik/japonia-czesci/silniki-i-osprzet-czujniki-cisnienia-w-kolektorze-map-256158?order=m (to są chyba czujniki ciśnienia bezwzględnego, więc trzeba by "przesunąć się" w zakresie pomiarowym) lub takich:
https://allegro.pl/mpxv5100dp-czujnik-cisnienia-nxp-i7681949433.html
https://allegro.pl/czujnik-cisnienia-mps20n0040d-d-0-40kpa-a7752-i6387745594.html
https://allegro.pl/oferta/ics1210a-030g-3s-czujnik-cisnienia-30psi-206-84kpa-7175917805
https://allegro.pl/mpxv5100gp-nxp-czujnik-cisnienia-0-kpa-100-kpa-i7600905018.html



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

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

oowan napisał(a):
Kolejny mój . Generalnie układ ma taki charakter, że nie potrzeba gasić drgań styków, ale niestety wejścia łapią zakłócenia, bo przewody do krańcówek mają po kilka metrów.
Przeanalizowałem problem zakłóceń na wejściach i doszedłem do wniosku, że szpilki zakłócające są raczej pojedyncze i trzeba je przeczekać. 10ms chyba wystarczy, może mniej. Wszyscy wiedzą, che, che, najprościej dać delaya :twisted:
Ale na poważnie, zrobiłem kolejny timer programowy, tylko nie wychodzi mi teraz procedura obsługi przycisku. coś jest ewidentnie źle, nie ma reakcji na przycisk.
Było tak:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

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

i 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.

I tak sobie myślę, że ze względu na te zakłócenia, w finalnym układzie lepiej będzie podciągać wejścia rezystorami 5k do 10k. Powinno być bardziej stabilnie.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 gru 2018, o 12:01 
Offline
Użytkownik
Avatar użytkownika

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

Dużo prościej i efektywniej będzie jak zamiast flagi zrobisz licznik jaki stosuje w swojej obsłudze klawisza krótki/długi. Na forum o tym pisałem w moim temacie. I tak bajt jest zużyty więc nie ma problemu :-) Zapewniam, że sposób niezawodny.

------------------------ [ Dodano po: 2 minutach ]

To twoje rozwiązanie też by dało radę, ale potrzeba przeróbki i "else" przy głównym badaniu klawisza

_________________
http://www.sylwekkuna.com



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

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

Znowu zupełnie inne spojrzenie na program kiedy przechodzę ze smartfona na kompa :)
Zamiast tego co tak rozbudowałeś po prostu tak:

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


Nawet flaga nie potrzebna :) Z analizą nie powinieneś mieć problemu.


Autor postu otrzymał pochwałę

_________________
http://www.sylwekkuna.com



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

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

SylwekK napisał(a):
Z analizą nie powinieneś mieć problemu.
No, to mam nad czym myśleć w weekend :cry:
Dzięki za sugestie.



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

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

SylwekK napisał(a):
Zamiast tego co tak rozbudowałeś po prostu tak:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Znowu musisz mnie chyba oświecić, bo wg mnie po naciśnięciu przycisku lub przy impulsie zakłócającym, zmienna stan od razu przyjmie wartość otwieranie gdyż warunek jest spełniony (timer_key == 0). Dopiero po puszczeniu przycisku, ewentualnie zaniku impulsu, timer_key zacznie odliczanie, króre nie ma już praktycznie znaczenia. Tak to widzę.
Ja chcę pojenczy, przypadkowy impuls przeczekać i wywołać reakcję po ponownym sprawdzeniu stanu wejścia KEY_PINO. Taki przykład był w BB, ale z użyciem delayów.
Ogólnie sposoby na drgające styki bez delayów, jakie znalazłem, reagują na pierwszy impuls i ignorują następne i to jest skuteczne, ale wg mnie nie nadaje się do programowego filtrowania zakłóceń.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 gru 2018, o 12:32 
Offline
Użytkownik
Avatar użytkownika

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

A co jest po "else" ? ;-) Permanentnie ustawienie licznika jeśli klawisz nie jest wyciśnięty, a po jego wciśnięciu jest normalnie w przerwaniach odliczany aż dojdzie do zera :)

_________________
http://www.sylwekkuna.com



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

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

SylwekK napisał(a):
A co jest po "else" ? Permanentnie ustawienie licznika jeśli klawisz nie jest wyciśnięty, a po jego wciśnięciu jest normalnie w przerwaniach odliczany aż dojdzie do zera
Aaa... :idea: no jakie to proste :o
Pomroczność jasna mnie ostatnio nachodzi :shock:



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

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

Można to oczywiście zrobić na kilka innych sposobów, ale ten jest o tyle fajny, że ZAWSZE musi się sygnał utrzymać przez zadany czas zanim zostanie zatwierdzony. Jakakolwiek przerwa czy zakłócenie powoduje, że licznik od nowa mierzy ten czas.

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 gru 2018, o 11:29 
Offline
Użytkownik

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

No, dobra SylwkK. W teorii jest ok, ale w praktyce niepowodzenie. Program po włączeniu zasilania ustawia zmienną stan = otwieranie z pominięciem softstartu (PWM = 255). Po czasie nieczułości działa spowolnienie, jednak krańcówką KEY_KRO nie można wyłączyć silnika. Kontrolka ciągle miga, czyli zmienna stan ciągle jest różna od zera.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 gru 2018, o 11:29 
Offline
Użytkownik

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

No, dobra SylwkK. W teorii jest ok, ale w praktyce niepowodzenie. Program po włączeniu zasilania ustawia zmienną stan = otwieranie z pominięciem softstartu (PWM = 255). Po czasie nieczułości działa spowolnienie, jednak krańcówką KEY_KRO nie można wyłączyć silnika. Kontrolka ciągle miga, czyli zmienna stan ciągle jest różna od zera.



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  Następna strona

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 3 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