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 27 lip 2025, o 09:51


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 
    Autor Wiadomość
    PostNapisane: 26 sty 2019, o 11:03 
    Offline
    Nowy
    Avatar użytkownika

    Dołączył(a): 22 paź 2016
    Posty: 13
    Lokalizacja: Poznań
    Pomógł: 0

    Witam,

    Mam takie szybkie pytanie ponieważ potrzebuję rozwiać wątpliwość, chodzi o ustawianie stanu na porcie a konkretnie o zapis
    Założenie jest takie, żeby na PB0, PB1 i PB2 była 1 a na reszcie 0
    Jeżeli zrobię zapis typu:

    PORTB = (1<<PB0);
    PORTB = (1<<PB1);
    PORTB = (1<<PB2);

    Jeżeli program będzie się realizował to ustawi 1 na porcie PB0 ale na reszcie portów ustawi zero, później ustawi 1 na PB1 i na reszcie zero, następnie ustawi 1 na PB2 a na reszcie zero, żeby nie stworzył się nam wachlarz stanów to stosujemy zapis:

    PORTB |= (1<<PB0);
    PORTB |= (1<<PB1);
    PORTB |= (1<<PB2);

    Przy takim zapisie na każdym bicie odwrócimy wartość z 0 na 1 i jest wszystko ok
    a teraz pytanie co w przypadku takiego zapisu?

    PORTB = 0b00000111;
    w takim wypadku chyba nie muszę stosować | bo odrazu za jednym razem ustawiam cału port prawda? czy się mylę? i również mógłbym zapisać to w takiej postaci?:

    PORTB = (1<<PB0) | (1<<PB1) | (1<<PB2);

    rozumiem, że jeżeli chodzi o ustawienie 0 to &=~ ustawia 0 nie ruszając innych pinów a sama ~ zmieni stan naszego i reszty?

    Pozdrawiam



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

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

    Jest DOKŁADNIE tak jak piszesz - wszystko się zgadza

    _________________
    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: 26 sty 2019, o 11:26 
    Offline
    Użytkownik

    Dołączył(a): 25 lip 2013
    Posty: 2596
    Pomógł: 129

    Sprawdź w pliku .lss po kompilacji czy przypadkiem jak dasz po sobie ustawianie portów w obrebie tego samego rejestru optimalizacja nie skróci tego do pojedynczego zapisu.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 26 sty 2019, o 11:29 
    Offline
    Nowy
    Avatar użytkownika

    Dołączył(a): 22 paź 2016
    Posty: 13
    Lokalizacja: Poznań
    Pomógł: 0

    Dzięki chłopaki za potwierdzenie :)



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 29 sty 2019, o 20:20 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 22 cze 2013
    Posty: 988
    Lokalizacja: Byram, MS 39272
    Pomógł: 55

    Swego czasu popularnym było i w pewnych kręgach nadal jest używanie kodu szesnastkowego do zapisu liczb w programach. W tym zwłaszcza tego co ma być wysłane do portów. Zobacz na zapis binarny 11000011. Możemy to podzielić na dwie czwórki bitów. 1100 oraz 0011. W zapisie szesnastkowym 1100 to C (Dec 12), a 0011 to 3. Zatem całą liczbę możesz zapisać jako C3. Znam takich ludzi, którzy widząc liczbę w zapisie HEX automatycznie widzą ją bit po bicie :).
    Także Twój przykład możesz zapisać na czter y(jakby się uprzeć to i pięć) różne sposoby w zależności o stopnia zboczenia programistycznego.

    _________________
    Pomysły na podpis - wyślij SMSa +1 769 243 0011



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

    Strefa czasowa: UTC + 1


    Kto przegląda forum

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