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 16 mar 2025, o 18:20


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 14 ] 
    Autor Wiadomość
    PostNapisane: 5 sie 2015, o 11:50 
    Offline
    Nowy
    Avatar użytkownika

    Dołączył(a): 05 sie 2015
    Posty: 10
    Lokalizacja: Warszawa
    Pomógł: 0

    Witam!
    Postanowiłem zrobić małą rewolucję na swojej płytce stykowej i dołożyć do niej przycisk.
    Na złość siedzę już nad tym 2 godziny i nadal nie wiem jak to wpoić mikrokontrolerowi ...
    Boję się, ze zaraz sobie coś spalę :D

    Kod:
    #include <avr/io.h>
    main(void){
       while(1){
          DDRB |= (1<<PB1);
          PORTB &= ~(1<<PB1);
          DDRD &= (1<<PD7);
          PORTD |= (1<<PD7);
          if (!(PIND & (1<<PD7))){
             DDRB = (1<<PB1);
          }
       }
    }

    Dziękuję za udzielenie pomocy!
    Proszę o szybką odpowiedź :)



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 5 sie 2015, o 12:01 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 17 maja 2013
    Posty: 41
    Lokalizacja: Zielona Góra
    Pomógł: 1

    Ustawienia pinów robi się poza while. Poza tym, jak naciśniesz guzik to stan pinu na DDRB się nie zmienia, zauważ że cały czas ustawiasz PB1 na 1.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 5 sie 2015, o 12:02 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 27 maja 2013
    Posty: 562
    Lokalizacja: Bydgoszcz
    Pomógł: 23

    O ja ;) ja myślę że kolega Mirek to lepiej na blogu wyjaśnił, niz ja Ci tu wytłumacze co nie tak z kodem i jak prawidłowo obsługuje sie przycisk.

    Wejdź tam na jego bloga i poczytaj o drganiach styków i ich programowaniu, proponuje też obejrzeć pare filmów dla początkujących a w zasadzie to tak naprawdę przeczytania, obejrzenia i przerobienia wszystkiego co tam jest :)

    http://mirekk36.blogspot.com/2012/10/drgania-stykow-to-bajki-wiec-jak-to.html
    http://mirekk36.blogspot.com/2012/10/obsuga-klawiszy-drgania-stykow-cd2.html



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 5 sie 2015, o 12:03 
    Offline
    Moderator
    Avatar użytkownika

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

    A tu:

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


    zabrakło ci panie tyldy ;) 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.


    ------------------------ [ Dodano po: 1 minucie ]

    PRZEDE wszystkim obejrzyj sobie pan to:
    http://mirekk36.blogspot.com/2014/05/if ... -o-co.html

    ;)

    _________________
    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: 5 sie 2015, o 12:12 
    Offline
    Nowy
    Avatar użytkownika

    Dołączył(a): 05 sie 2015
    Posty: 10
    Lokalizacja: Warszawa
    Pomógł: 0

    Przeniosłem ustawienia poza while.
    Dodałem tylde. Faktycznie Wielki zasugerował, ze wszędzie PB1 jest załączony.
    Więc postanowiłem na po if postawić 0, by po wciśnięciu dioda zgasła.
    Ale dioda po tej operacji cały czas jest wyłączona. Przedtem cały czas świeciła :/



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 5 sie 2015, o 12:33 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 17 maja 2013
    Posty: 41
    Lokalizacja: Zielona Góra
    Pomógł: 1

    Nic dziwnego że jest wyłączona skoro jej nie włączasz później, skoro raz ją wyłączyłeś to musisz włączyć.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 5 sie 2015, o 12:37 
    Offline
    Użytkownik
    Avatar użytkownika

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

    pokaż od początku kod co żeś tam dodał i gdzie...

    _________________
    IntegraMETEO
    WordCLOCK
    IntegraTOUCH



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 5 sie 2015, o 12:45 
    Offline
    Nowy
    Avatar użytkownika

    Dołączył(a): 05 sie 2015
    Posty: 10
    Lokalizacja: Warszawa
    Pomógł: 0

    Teraz to wygląda tak:

    Kod:
    #include <avr/io.h>
    main(void){
       DDRB |= (1<<PB1);
       PORTB &= ~(1<<PB1);
       DDRD &= (1<<PD7);
       PORTD |= ~(1<<PD7);
       while(1){
          if ((PIND & (1<<PD7))){
             DDRB = (0<<PB1);
          }
       }
    }


    Zauważyłem, ze jak wyjmę przycisk albo kabel od GND to dioda zmienia stan.
    Póżniej klikanie nic nie pomaga. Zostaję na tym samym stanie. :?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 5 sie 2015, o 12:52 
    Offline
    Użytkownik
    Avatar użytkownika

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

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

    _________________
    IntegraMETEO
    WordCLOCK
    IntegraTOUCH



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 5 sie 2015, o 13:04 
    Offline
    Nowy
    Avatar użytkownika

    Dołączył(a): 05 sie 2015
    Posty: 10
    Lokalizacja: Warszawa
    Pomógł: 0

    Gdy wpisałem Twój kod po zwarciu GND i PD7 dioda świeci się mocniej.
    Natomiast kiedy ustawiłem 0 na PB1 nie ma żadnych zmian.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 5 sie 2015, o 13:14 
    Offline
    Użytkownik
    Avatar użytkownika

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

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

    klawisz powinien gasić diodę.

    _________________
    IntegraMETEO
    WordCLOCK
    IntegraTOUCH



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 5 sie 2015, o 13:31 
    Offline
    Nowy
    Avatar użytkownika

    Dołączył(a): 05 sie 2015
    Posty: 10
    Lokalizacja: Warszawa
    Pomógł: 0

    Teraz działa elegancko!
    Natomiast ... dlaczego tak się działo?
    Tylko przez zapomnienie "!" i else? :/



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 5 sie 2015, o 14:17 
    Offline
    Użytkownik
    Avatar użytkownika

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

    na początek polecam
    http://mirekk36.blogspot.com/2012/01/avr-porty-wewy-dir-podstawy.html

    a potem się zastanów co robił program jeżeli po zbadaniu warunku gasiłeś diodę...

    _________________
    IntegraMETEO
    WordCLOCK
    IntegraTOUCH



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 5 sie 2015, o 14:27 
    Offline
    Nowy
    Avatar użytkownika

    Dołączył(a): 05 sie 2015
    Posty: 10
    Lokalizacja: Warszawa
    Pomógł: 0

    Dziękuję wszystkim użytkownikom pomagającym mi!
    Temat do zamknięcia! :)



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

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


    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