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 17 maja 2025, o 09:53


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 
    Autor Wiadomość
    PostNapisane: 11 sty 2012, o 14:44 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 14 paź 2011
    Posty: 307
    Lokalizacja: Lbt
    Pomógł: 8

    Witam
    Chciałbym sterować 6 diodami w ten sposób
    http://upload.wikimedia.org/wikipedia/c ... lexing.png

    Napisałem program, ale nie działa on prawidłowo.
    W jaki sposób na pinie wymusić stan wysokiej impedancji?
    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.

    _________________
    Ujemna delta to dopiero początek zabawy...



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 11 sty 2012, o 15:31 
    Offline
    Moderator
    Avatar użytkownika

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

    miszczo napisał(a):
    W jaki sposób na pinie wymusić stan wysokiej impedancji?


    To proste, wystarczy wymusić na nim stan dokładnie taki jaki jest po resecie mikrokontrolera, gdy wszystkie piny I/O są w stanie wysokiej impedancji. A zatem, ustawiasz kierunek pinu/portu za pomocą rejestru DDRx na wejście (czyli 0) i jednocześnie wystawiasz ZERO na dany pin ale w rejestrze PORTx - przez co likwidujesz programowe podciąganie do VCC - no i proszę - masz stan wysokiej impedancji.

    _________________
    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: 11 sty 2012, o 16:05 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 14 paź 2011
    Posty: 307
    Lokalizacja: Lbt
    Pomógł: 8

    W takim razie w czym tkwi błąd w tym kodzie? Diodę podłączam między pb1, a pb0.

    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.


    Btw czym róźni się taki zapis
    PORTB |= _BV(0)
    od takiego
    PORTB = _BV(0)
    Czy w obu przypadkach w rejestrze PORTB pojawi się wartość 0x01?

    _________________
    Ujemna delta to dopiero początek zabawy...



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 11 sty 2012, o 16:20 
    Offline
    Moderator
    Avatar użytkownika

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

    miszczo napisał(a):

    Btw czym róźni się taki zapis
    PORTB |= _BV(0)
    od takiego
    PORTB = _BV(0)
    Czy w obu przypadkach w rejestrze PORTB pojawi się wartość 0x01?


    Ja teraz bardzo przepraszam, ale muszę koledze (tak oczywiście pół żartem pół serio) udzielić oficjalnej nagany na naszym forum. Sądzę, że kolega posiada książkę "Mikrokontrolery AVR Język C Podstawy programowania" ? Toż poświęciłem w niej TYYYYYYYYYYYLE czasu aby wyjaśnić w SUPER szczegółach zasady stosowania tzw przesunięć bitowych, i polecałem aby to je właśnie stosować a nie posługiwać się tymi kocimi makrami _BV()

    Więc mam nadzieję, że kolega się nie obrazi na mnie, że odeślę go do wspomnianej książki i poproszę o przeczytanie stosownego rozdziału, gdzie kurczę specjalnie fikuśne rysunki własnymi łapkami tworzyłem aby wyjaśnić jak działają przesunięcia typu np:

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


    albo

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


    to jest milion razy bardziej czytelne niż po stokroć kocie makra _BV() i tylko dlatego nie udzielę na to pytanie odpowiedzi. Chyba, że kolega poczyta wspomniany rozdział i zechce dopytać o coś na temat przesunięć, aby ew uzupełnić wiedzę przekazaną w książce, jeśli coś jeszcze będzie niezrozumiałe. Wtedy nadlecę jak jastrząb i postaram się wyjaśnić wszystko.

    _________________
    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: 11 sty 2012, o 18:17 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 14 paź 2011
    Posty: 307
    Lokalizacja: Lbt
    Pomógł: 8

    Wiem jak działają przesunięcia, lecz jakoś nie lubię ich używać. Już domyśliłem się czym będzie różnić się taki zapis
    PORTB |= _BV(0);
    lub
    PORTB |= (1<<PB0);
    lub
    PORTB |= 0x01;
    od
    PORTB = _BV(0);
    lub
    PORTB = (1<<PB0);
    lub
    PORTB = 0x01

    W pierwszym przypadku zostanie zmieniony tylko najmłodszy bit rejestru PORTB, a reszta zostanie nienaruszona, natomiast drugi ustawi najmłodszy bit a resztę wyzeruję.

    Napisałem też program, który steruje 12 diodami
    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.


    Teraz przemyślę jak zrobić efekt taki jak na filmiku.
    http://www.youtube.com/watch?v=MzOgxkCL ... er&list=UL

    _________________
    Ujemna delta to dopiero początek zabawy...



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 11 sty 2012, o 19:41 
    Offline
    Użytkownik

    Dołączył(a): 04 paź 2011
    Posty: 8615
    Pomógł: 338

    przemyśleć można too http://www.seekway.com.cn/e/ledsys9.htm
    bo to co pokazałeś to się po prostu pisze :)

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



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

    Strefa czasowa: UTC + 1


    Kto przegląda forum

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