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 25 lip 2025, o 04:06


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 10 ] 
    Autor Wiadomość
    PostNapisane: 28 cze 2017, o 22:14 
    Offline
    Nowy

    Dołączył(a): 04 lis 2016
    Posty: 2
    Pomógł: 0

    Witam,
    siedzę już nad tym 2 dzień i nie mogę dopatrzeć się co robię źle, dodatkowo nie wiem już czy to problem z programem czy sprzętem na stykówce :/
    Założenie mam takie żeby procek po kilku sekundach bezczynności przeszedł w stan uśpienia, a po wciśnięciu przycisku się wybudził.
    A działa tak, że dopóki wciskam przycisk to key_press reaguje wydłużając czas do uśpienia, ale jak już się uśpi to się nie budzi, chyba że trzymam przycisk wciśnięty, procek uśnie i dopiero po uśpieniu go puszczę, wtedy się budzi O_o

    Funkcja key_press jest tylko testowa, żebym widział co się wykonuje.

    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.


    Do portu PB0 i 3 są podłączone LEDy anodami.

    Obrazek

    ps. mam problem z dodaniem pliku .sch z eagla że rozszerzenie niedozwolone, a obrazka nie mogę dodać bo nie mam wtyczki flash :/ (linuxowy firefox).
    Da się to jakoś obejść? :p



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 29 cze 2017, o 08:02 
    Offline
    Użytkownik

    Dołączył(a): 22 sty 2014
    Posty: 1806
    Zbananowany użytkownik

    Pomógł: 168

    Czegoś tu nie rozumiem. Ustawiasz pull-up na pinie procka, spoko. Ale na schemacie który załączyłeś Twój PIN PB4 jest cały czas na niskim potencjale bo go tam ściąga rezystor 220 Om... W dodatku zamiast przyciskiem ściągać PIN do masy przyciskiem, ty dajesz go do plusa... Nakombinowałeś kolego ;)

    Zrób tak, C2 zmień na maks 100nF, R5 daj 1k-4.7k i podłącz go bezpośrednio do do plus 5V a R1 daj kilkadziesiąt omów maks 50, i przez przycisk go podaj na masę... żeby zobrazować wrzucam schemat:

    Obrazek

    Teraz Twój kod mógłby pewnie zadziałać (chociaż nie wiem bo za bardzo go nie analizowałem) ALE masz w nim coś takiego:

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


    I wtym momencie Twó debouncing leci na łeb na szyje bo pętla zapiernicza jak dzika i jak nawet wciśniesz przycisk i sprzętowe próbujesz eliminowac drgania styków to i tak szpilki mogą się pojawić. dlatego zmień to na:
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    wtedy Ci się flaga wyzeruje po pewnym czasie w momencie przepełnienia i to zagra.

    ------------------------ [ Dodano po: 9 minutach ]

    Jeszcze jedna sprawa, pewny jesteś że PCINTem wybudzisz procka ;) ?

    Obrazek


    Autor postu otrzymał pochwałę


    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 29 cze 2017, o 10:24 
    Offline
    Użytkownik
    Avatar użytkownika

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

    Z tego co mi się przypomina to wybudzanie może odbywać się tylko stanem niskim, a zgodnie ze schematem stanu takiego raczej nie będzie czyli wszystko działa tak jak powinno - nieprawidłowo...

    _________________
    http://www.sylwekkuna.com



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 29 cze 2017, o 10:37 
    Offline
    Użytkownik

    Dołączył(a): 22 sty 2014
    Posty: 1806
    Zbananowany użytkownik

    Pomógł: 168

    SylwekK napisał(a):
    Z tego co mi się przypomina to wybudzanie może odbywać się tylko stanem niskim, a zgodnie ze schematem stanu takiego raczej nie będzie czyli wszystko działa tak jak powinno - nieprawidłowo...


    Z trybu Power Down da się wybudzić procka przerwaniem od zmiany stanu PINu czyli PCIntem.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 29 cze 2017, o 11:06 
    Offline
    Użytkownik
    Avatar użytkownika

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

    Być może. Mnie nigdy się nie udało czymś innym niż minus na pin :)

    _________________
    http://www.sylwekkuna.com



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 29 cze 2017, o 11:31 
    Offline
    Użytkownik

    Dołączył(a): 22 sty 2014
    Posty: 1806
    Zbananowany użytkownik

    Pomógł: 168

    http://www.avrfreaks.net/forum/waking-d ... only-pcint



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 29 cze 2017, o 14:13 
    Offline
    Nowy

    Dołączył(a): 04 lis 2016
    Posty: 2
    Pomógł: 0

    Dzięki za pomoc jak wrócę do domu to siadam do tego i będę próbował, bo w końcu musi zadziałać ;)

    EDIT:
    Okej, po przełożeniu przycisku na stronę masy, na stykówce wszystko działa elegancko ;)
    Okazuje się że pcint`ami można obudzić attiny13a, też nie byłem pewny ale w nocie stoi INT0 "AND" pin change, to mi zasugerowało że i jednym i drugim można ;)
    Mój projekt dalej nie działa tak jak chciałem, bo miałem złe założenia, ale to już kwestia na inny wątek :)
    Dzięki za pomoc :)



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 29 cze 2017, o 19:11 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 23 paź 2014
    Posty: 1040
    Lokalizacja: Trójmiasto
    Pomógł: 190

    Można jednym i drugim tylko INT0 może wybudzić TYLKO stanem masy (choć nota mówi "For INT0, only level interrupt." czyli można by przypuszczać że dodatnim poziomem też ale niestety poziomu dodatniego nie da się ustawić, a można tylko ustawić "Any logical change on INT0 generates an interrupt request." ale na tym ustawieniu attiny się nie wybudza), natomiast PCINT wybudza dowolną zmianą logiczną.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 29 cze 2017, o 19:22 
    Offline
    Użytkownik
    Avatar użytkownika

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

    Ano właśnie, bo ja zawsze na INT0 budziłem procki dlatego tylko masa działała :)

    _________________
    http://www.sylwekkuna.com



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 29 cze 2017, o 19:23 
    Offline
    Moderator
    Avatar użytkownika

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

    Dlatego wszystkie nowsze procki posiadające PCINT są już chociażby z tego względu dużo lepsze ;) zatem nie warto inwestować w ATmega8 tylko w ATmega88 ;) i podobne - byle posiadały PCINT ;)

    _________________
    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  
    Wyświetl posty nie starsze niż:  Sortuj wg  
    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 10 ] 

    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:  
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO