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 18 lip 2025, o 01:47


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 8 ] 
    Autor Wiadomość
    PostNapisane: 24 wrz 2016, o 13:26 
    Offline
    Użytkownik

    Dołączył(a): 09 cze 2015
    Posty: 39
    Pomógł: 0

    Witam.
    Chcę, żeby po wciśnięciu i przytrzymaniu przez 10 sekund klawisza na klawiaturze w terminalu wyświetlił się dany napis.


    Ale wyrzuca mi błąd.
    error: 'PressActive' undeclared (first use in this function)

    Jest ktoś w stanie podpowiedzieć jak to rozwiązać?


    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.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 24 wrz 2016, o 14:00 
    Offline
    Użytkownik

    Dołączył(a): 08 mar 2015
    Posty: 60
    Pomógł: 5

    Przecież ten błąd wyraźnie mówi, że nie masz zdeklarowanej zmiennej "PressActive". Zdeklaruj ją na początku jako zmienna typu bool i chyba powinno być "PressActive == true" zamiast "PressActive = true"



    Ostatnio edytowano 24 wrz 2016, o 14:01 przez anonimg3, łącznie edytowano 1 raz

    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 24 wrz 2016, o 14:01 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 19 cze 2014
    Posty: 820
    Lokalizacja: Tam gdzie PYRY są
    Pomógł: 64

    kompilator nie wie co to press active. i słusznie bo ja też nie wiem. To zmienna?? funkcja, której nie pokazałeś??

    _________________
    IntegraMETEO
    WordCLOCK
    IntegraTOUCH



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 24 wrz 2016, o 14:03 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 19 kwi 2014
    Posty: 438
    Lokalizacja: Zambrów
    Pomógł: 22

    Jitkino napisał(a):
    Ale wyrzuca mi błąd.
    error: 'PressActive' undeclared (first use in this function)


    Jak sam kompilator Ci podpowiada nie masz zadeklarowanej zmiennej PressActive.

    Musisz przed użyciem jej w "if (PressActive = true);" zadeklarować ją, czyli podać jej typ i wartość początkową jeżeli nie jest to zmienna globalna.

    Dodatkowo dziwny jest ten warunek PressActive = true bo chce przypisać on wartość true do zmiennej zamiast sprawdzić czy ona się równa true czyli powinien być operator porównania == według mnie.

    W część merytoryczną nie zagłębiałem się :)

    heh koledzy mnie ubiegli - prędkość światła :P

    _________________
    .



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 24 wrz 2016, o 14:19 
    Offline
    Użytkownik

    Dołączył(a): 09 cze 2015
    Posty: 39
    Pomógł: 0

    Dzięki za pomoc.

    case 'a':
    delay(10);
    if (PressActive == true);

    Chcę, żeby po wciśnięciu a przez 10 sekund, w terminalu wyświetlił się napis.

    case 'a': // po wciśnięciu a
    delay(10); //przez 10 sekund
    if (PressActive == true); // tutaj chcę sprawdzić czy po 10 sekundach klawisza 'a' jest nadal wciśnięty.
    i wtedy wysyłać ten napis do terminala
    send_string("Wcisnieto klawisz A\r\n");

    Dobrze kombinuję?

    Czyli bym musiał wpisać coś takiego?
    bool PressActive = true;
    if(PressActive == true)
    {
    send_string("Wcisnieto klawisz A\r\n");
    }



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 24 wrz 2016, o 14:32 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 19 cze 2014
    Posty: 820
    Lokalizacja: Tam gdzie PYRY są
    Pomógł: 64

    Troszeczkę w dobrym kierunku ale nie do końca...

    co to jest delay(10)?
    Pomijając to, że blokujesz procka na 10 czegoś - sekund?? za każdym obiegiem pętli to niemożliwe jest trafić na takt zegara w którym akurat jest sprawdzany warunek press active - nie pokazujesz nawet jak go sprawdzasz i gdzie...

    Zastanów się co będzie jak nadusisz klawisz, po sekundzie go puścisz i za np siedem sekund znów przytrzymasz... Będzie nic. Tak jakbyś go cały czas trzymał.

    Ale najpierw pokaż więcej kody bo te strzępy to trochę mało... Albo daj jakieś założenia - co ustawia to pressActive, gdzie, kiedy

    I pamiętaj -DELAJE TO ZŁOOOOO

    _________________
    IntegraMETEO
    WordCLOCK
    IntegraTOUCH



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 24 wrz 2016, o 14:41 
    Offline
    Użytkownik

    Dołączył(a): 09 cze 2015
    Posty: 39
    Pomógł: 0

    Chcę, aby po wciśnięciu klawisza i przytrzymaniu przez 10 sekund wysyłany był napis do terminala.

    if(klawisz wcisniety) { delay(10s)} if(klawisz nadal wcisniety ) {wyslij napis();}

    Chcę, sprawdzić czy klawisz jest wciśnięty i po 10 sekundach sprawdzić znowu czy klawisza jest nadal wciśnięty, następnie wysłać wtedy napis do terminala.

    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.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 24 wrz 2016, o 14:51 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 19 cze 2014
    Posty: 820
    Lokalizacja: Tam gdzie PYRY są
    Pomógł: 64

    Nie możesz podejść tak, że sprawdzasz czy klawisz wciśnięty i czekasz 10 sek i sprawdzasz drugi raz. A co jak po sprawdzeniu puścisz klawisz i przed upłynięciem 10 sekund ponownie nadusisz?? program sprawdzi dwa razy że klawisz wduszony i wykona warunek.

    sprawdzaj częściej kalwisz, najlepiej cały czas a co na 1sek zwiększasz zmienną pomocniczą. Po dojściu zmiennej do 10 wykonuje się warunek a po każdym puszczeniu klawisza zmienna zostaje wyzerowana i liczy od nowa...

    _________________
    IntegraMETEO
    WordCLOCK
    IntegraTOUCH



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

    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