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? 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 31 maja 2025, o 16:25


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 3 ] 
    Autor Wiadomość
    PostNapisane: 23 wrz 2019, o 21:54 
    Offline
    Nowy

    Dołączył(a): 23 wrz 2019
    Posty: 5
    Pomógł: 0

    Dzień dobry
    Mam problem w temacie podmienienia wierszy w małym programie w C++.
    Otóż tyczy on czegoś w rodzaju stroboskopu, ale to mało istotne.
    Dotychczas wybór odstępów pomiędzy mignięciami wybierało się na przełącznikach typu dip switch 'klawiatura'. Pewnie znane każdemu. Jednak wybór innego czasu wymagał powrotu switcha na pozycję 'off', i przesunięcie innego na pozycję 'on'. Chciałem to rozwiązać na enkoderze 0-9 pozycyjnym. Regulowany śrubokrętem, obrotowy. Mój przypadek tyczy egzemplarza, gdzie jeden pin łączy się/nie łączy, z czterema innymi. Działa to jak wiecie binarnie.
    0001
    0010
    0011 itd. Daje to wiele kombinacji.
    Przechodząc do pytania. Poniższe wiersze wyraźnie mówią o 'załączaniu' kolejnych pinout'ów, co wywołuję reakcję uC który daje tyle i tyle ms:

    if (!(PINC & 0x08))// PC3 jezeli przycisk jest wcisniety
    czas = 7;
    if (!(PINC & 0x04))// PC2 jezeli przycisk jest wcisniety
    czas = 14;
    if (!(PINC & 0x02))// PC1 jezeli przycisk jest wcisniety
    czas = 21;
    if (!(PINC & 0x20))// PC5 jezeli przycisk jest wcisniety
    czas = 28;
    if (!(PINC & 0x10))// PC4 jezeli przycisk jest wcisniety
    czas = 35;
    if (!(PINC & 0x01))// PC0 jezeli przycisk jest wcisniety
    czas = 42;
    if (!(PINB & 0x20))// PB5 jezeli przycisk jest wcisniety
    czas = 49;

    Moje pytanie tyczy tego, jak zmienić te wiersze, by jednoczesne wciśnięcie np PC3 i PC2 sprawiło by wywołać przykładowe 10ms.
    Oczywistym jest też, że samodzielne załączenie PC3(7ms) i samodzielne PC2(14ms), powinno dalej funkcjonować.
    Dziękuję za ewentualną pomoc.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 3 paź 2019, o 14:44 
    Offline
    Nowy

    Dołączył(a): 23 wrz 2019
    Posty: 5
    Pomógł: 0

    Dziękuję, problem rozwiązano



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 3 paź 2019, o 18:22 
    Offline
    Użytkownik

    Dołączył(a): 25 lip 2013
    Posty: 2596
    Pomógł: 128

    Super, to się podziel jak to zrobiłeś - inni skorzystają.



    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: 3 ] 

    Strefa czasowa: UTC + 1


    Kto przegląda forum

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