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 18 lip 2025, o 19:17


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 9 ] 
    Autor Wiadomość
    PostNapisane: 12 wrz 2013, o 15:24 
    Offline
    Użytkownik

    Dołączył(a): 05 wrz 2013
    Posty: 26
    Zbananowany użytkownik

    Pomógł: 0

    Witam,

    Chciałbym porównać zmienną którą inkrementuję.
    Czy ten zapis jest poprawny:
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Pozdrawiam.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 12 wrz 2013, o 16:33 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 03 lut 2013
    Posty: 84
    Pomógł: 8

    O ile masz świadomość że inkrementacja nastąpi dopiero po porównaniu to ten zapis jest poprawny.


    Autor postu otrzymał pochwałę


    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 12 wrz 2013, o 17:39 
    Offline
    Użytkownik

    Dołączył(a): 05 wrz 2013
    Posty: 26
    Zbananowany użytkownik

    Pomógł: 0

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

    Inkrementacja, do wyzerowania zmiennej, potem od nowa, itd.
    IF będzie spełnione tylko dla zera. Oczywiście dla zmiennej unsigned.

    PS:
    Jak zrozumiałem, to cały zapis dla IF razem z "!" musi się znaleźć w nawiasie ?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 12 wrz 2013, o 17:51 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 03 lut 2013
    Posty: 84
    Pomógł: 8

    Dokładnie tak.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 12 wrz 2013, o 18:31 
    Offline
    Użytkownik

    Dołączył(a): 05 wrz 2013
    Posty: 26
    Zbananowany użytkownik

    Pomógł: 0

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

    Czy to oznaczałoby wykonanie IF-a ciągłe oprócz 15 ?
    Czy nawiasologia jest poprawna ?

    PS:
    Przepraszam a te pytania, ale próbuje zrozumieć zapis w tym języku.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 12 wrz 2013, o 20:18 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 03 lut 2013
    Posty: 84
    Pomógł: 8

    Tak oczywiście :)
    Napisz sobie prosty programik typu:

    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.


    podłącz jakiś wyświetlacz i testuj na nim różne kombinacje :)



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 13 wrz 2013, o 11:12 
    Offline
    Użytkownik

    Dołączył(a): 05 wrz 2013
    Posty: 26
    Zbananowany użytkownik

    Pomógł: 0

    Po długich bojach z VMLAB-em, zacząłem naukę na symulatorze.

    Pojawił się dziwny objaw. Jeśli uruchomiam VMLAB z poniższym programem to bit przeskakuje w lewo, ale po dojściu do 0b00000100 przeskakuje na 0b00010000, pomijając 0b00001000.

    O co chodzi ?

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



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

    Dołączył(a): 19 lut 2013
    Posty: 223
    Zbananowany użytkownik

    Pomógł: 21

    0b100 to jest 4. Operacja x<<y przesuwa x o y pozycji w stronę MSB, a opuszczone bity ze strony LSB wypełnia zerami. Tak więc 1<<4 będzie polegało na dopisaniu z prawej strony "1" czterech "0", czyli uzyskasz 0b10000.

    Jeżeli chcesz przesuwać bity w rejestrze (albo mnożyć rejestr przez 2) to zapisuje się to w ten sposób:
    PORTB<<=1;
    PORTB*=2;


    Autor postu otrzymał pochwałę

    _________________
    Nie pisz komentarzy - dobry kod komentuje się sam.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 13 wrz 2013, o 12:57 
    Offline
    Użytkownik

    Dołączył(a): 05 wrz 2013
    Posty: 26
    Zbananowany użytkownik

    Pomógł: 0

    No tak, rzeczywiście :)

    Przy okazji zapytam, dlaczego w VMLAB-ie podczas symulacji mam czerwone wykrzykniki w liniach:
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    czyżby to chodziło o niekompatybilność ?



    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 25 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