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

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA w 2025? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 25 kwi 2025, o 02:01


    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: 27375
    Lokalizacja: Szczecin
    Pomógł: 1043

    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: 1968
    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: 27375
    Lokalizacja: Szczecin
    Pomógł: 1043

    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: 1968
    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: 27375
    Lokalizacja: Szczecin
    Pomógł: 1043

    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: 27375
    Lokalizacja: Szczecin
    Pomógł: 1043

    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: 1968
    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: 1968
    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 ] [ Zaznacz wszystko ]
    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: 1968
    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: 1968
    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: 1968
    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: 1968
    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: 1968
    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ł: Google [Bot] i 6 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:  
    cron
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO