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 4 maja 2025, o 19:58


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 9 ] 
    Autor Wiadomość
    PostNapisane: 27 sie 2013, o 09:18 
    Offline
    Użytkownik

    Dołączył(a): 31 mar 2012
    Posty: 102
    Lokalizacja: Ząbkowice Śl.
    Pomógł: 2

    Witam

    Potrzebował bym jakąś podpowiedz bądź kawałek kodu programu
    procek attiny13a

    nie wiem czy dobrze i zrozumiale to opiszę a mianowicie:

    Jest krańcówka która w zależności od sytuacji jest w stanie przewodzenia chwile lub dłużej np godzinę lub jeszcze dłużej w zależności od potrzeb operatora,
    i teraz potrzebował bym aby procek wykonał jedna operację i na tym poprzestał do puki znów krańcówka nie zostanie rozwarta i zwarta ponownie, przy zwarciu ma się wykonać tylko raz i czekać na ponowne zwarcie.Pisałem taki programik ale wychodziły mi jakieś potworki i tak nie działały jak chciałem, przy krótszych czasach mi to działało ale przy dłuższych była lipa. Zaznaczam że jestem na etapie migacza diodowego także proszę o wyrozumiałość.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 27 sie 2013, o 10:06 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 01 sie 2012
    Posty: 245
    Lokalizacja: Kielce
    Pomógł: 6

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

    _________________
    1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796



    Ostatnio edytowano 27 sie 2013, o 12:47 przez Wojtek001, łącznie edytowano 1 raz

    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 27 sie 2013, o 12:16 
    Offline
    Użytkownik

    Dołączył(a): 31 mar 2012
    Posty: 102
    Lokalizacja: Ząbkowice Śl.
    Pomógł: 2

    dopisałem coś takiego


    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.


    nie wiem czy dobrze, jakoś dziwnie działa jakby led na pół gwizdka świeciła



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 27 sie 2013, o 12:50 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 01 sie 2012
    Posty: 245
    Lokalizacja: Kielce
    Pomógł: 6

    Te definicje są dla mnie kompletnie nieczytelne ale co kto lubi.
    Z tego co widzę to ty masz te definicje kompletnie źle.


    Ja gdy pisałem warunek if założyłem że masz tą krańcówkę na porcie b więc zrobiłem maskę z 1 (& 1) czyli binarnie 0b00000001. Ponieważ ty w w tych nieszczęsnych definicjach piszesz (1<<PB3) to jest równoznaczne z (0b00000001 << 3) = 0b00001000 = 1*2^3 = 8. Czyli nie pisz tej maski dodatkowej w warunku if (& 1) i nie pisz negacji (!) bo ją też masz w definicji.

    Ponieważ zakładam że lubisz się użerać z tymi definicjami to zamień
    if(!(KEY_DOWN & 1)) //jesli zwarte
    na
    if(KEY_DOWN) //jesli zwarte
    dlatego że tą maskę i ta negacje masz już w definicjach!



    Musisz jeszcze odp. na jedną rzecz. Czy gdy uruchamiasz urządzenie (krańcówka rozwarta) to ma się wykonać jeden raz działanie tak jak po rozwarciu krańcówki? (jeśli tak to przy inicjalizacji zmiennej flaga wpisz do niej 1).

    chlopek_p napisał(a):
    nie wiem czy dobrze, jakoś dziwnie działa jakby led na pół gwizdka świeciła
    Opisz dokładnie problem. Dziwnie to może działać, ale dlatego że nie ma eliminacji drgań styków.

    _________________
    1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 27 sie 2013, o 13:31 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 11 lut 2013
    Posty: 376
    Lokalizacja: Kłopoty-Stanisławy
    Pomógł: 33

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

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

    _________________
    50 znaków Atnela ....



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 27 sie 2013, o 13:40 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 01 sie 2012
    Posty: 245
    Lokalizacja: Kielce
    Pomógł: 6

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

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

    Tak się składa że w AVR'ach domyślnie wszystkie porty są wejsciami także jest to zbędne zaśmiecanie flash'a (mam nadzieję że optymalizator to wycina).

    Co do drugiej linijki, napisałem w poprzednim poście że to czy z początku dioda ma świecić regulujemy wartością zmiennej flaga więc też jest zbędna.

    _________________
    1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 27 sie 2013, o 14:33 
    Offline
    Użytkownik

    Dołączył(a): 31 mar 2012
    Posty: 102
    Lokalizacja: Ząbkowice Śl.
    Pomógł: 2

    wyjaśnię jak najlepiej potrafię jak to ma działać

    załóżmy że na PB0 jest krańcówka (pin jako wejście)
    na PB1, PB2, PB3, PB4 (piny jak wyjścia)
    gdy zajdzie zdarzenie zadziałanie krańcówki
    ma się wykonać program na pinach wyjściowych ale tylko raz ,np: ma się wykonać sekwencja włączenia przekaźników i i je wyłączyć.
    nawet kiedy krańcówka będzie zwarta, sekwencja włączania przekaźników ma się powtórzyć kiedy styki krańcówki zostaną rozwarte i ponownie zwarte,

    jeszcze będą o męczył jak będę miał problemy to będę pytał



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 27 sie 2013, o 14:50 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 01 sie 2012
    Posty: 245
    Lokalizacja: Kielce
    Pomógł: 6

    Czyli tylko przy zwieraniu ma być wykonane jednorazowe działanie. W takim razie niedokładnie się zrozumieliśmy ,ale to nic nie szkodzi ; po prostu nie wpisuj nic w tym miejcu "działanie przy rozwarciu" a optymalizator wytnie co zbędne.

    I tak jak mówię, przydała by się jeszcze eliminacja drgań.

    _________________
    1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 27 sie 2013, o 14:56 
    Offline
    Użytkownik

    Dołączył(a): 31 mar 2012
    Posty: 102
    Lokalizacja: Ząbkowice Śl.
    Pomógł: 2

    zrobię tak jak piszesz i zobaczymy co z moich wypocin wyjdzie :)



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

    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