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 30 kwi 2025, o 04:13


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 
    Autor Wiadomość
    PostNapisane: 27 wrz 2017, o 22:47 
    Offline
    Użytkownik
    Avatar użytkownika

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

    Poszukiwałem właśnie czegoś i dosłownie przez przypadek wpadła mi kątem oka tabelka z prezentacją przesunięć bitowych. Coś mi się nie zgadzało i aż musiałem do BB zajrzeć, bo nie dowierzałem :)

    Obrazek

    Czy aż takie różnice programowe są w C między AVR, a PC czy to po prostu wpadka... ???

    _________________
    http://www.sylwekkuna.com



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 27 wrz 2017, o 23:13 
    Offline
    Moderator
    Avatar użytkownika

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

    Nie może to działać inaczej w C na PC - tu raczej się komuś na wikipedii rypnęło coś ... ;)

    tzn być może ktoś kto to opisywał robił własne doświadczenie i wyszło mu że przy przesunięciu w prawo wciągane są jedynki ;) no ale musiał to robić na liczbie ze znakiem (ujemnej) wtedy zawsze w C - z prawej będzie wciągany bit znaku czyli właśnie jedynka.

    Tymczasem opisał to wszystko że tak powiem "krzywo" ;)

    _________________
    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: 27 wrz 2017, o 23:46 
    Offline
    Użytkownik
    Avatar użytkownika

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

    No z moją praktyką też się to gryzło niemniej dało do myślenia, bo jeszcze za czasów commodore i jego asemblera podczas przesunięcia (zarówno w lewo jak i w prawo) był na ostatnią pozycję wciągany bit przepełnienia C lub V już nie pamiętam, ale chyba C, bo go się zazwyczaj zerowało przed rozpoczęciem obliczeń :)

    _________________
    http://www.sylwekkuna.com



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 28 wrz 2017, o 05:42 
    Offline
    Użytkownik

    Dołączył(a): 07 cze 2016
    Posty: 563
    Pomógł: 143

    Proponuję zajrzeć na anglojęzyczną wersję tej strony i zapewne wszystko się wyjaśni. Mam na myśli różnicę pomiędzy unsigned (logical) shift right oraz signed (arithmetic) shift right (to, o czym pisał wcześniej kolega Mirek). Niedopatrzeniem ze strony autora polskiego artykułu na Wikibooks jest to, że nie uwzględnił tych dwóch rodzajów przesunięć.

    W języku C przesunięcie jest zapisywane zawsze tak samo, a rodzaj przesunięcia jest dobrany przez kompilator i zależny od typu danych, na których wykonywana jest operacja. Natomiast w ASM są to różne instrukcje (w AVR assembler to LSR i ASR) i to programista musi dobrać odpowiednią, w zależności od tego, co chce osiągnąć.

    _________________
    AVR-GCC - dane w pamięci FLASH



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 28 wrz 2017, o 10:39 
    Offline
    Użytkownik
    Avatar użytkownika

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

    W sumie podobnie (w sensie różne rodzaje rolowania) było w ASM na commodorki -ASL i LSR - to przesunięcia z uzupełnieniem zwolnionego bitu przez zawartość znacznika, a ROR i ROL to po prostu karuzela na bajcie :)

    _________________
    http://www.sylwekkuna.com



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 28 wrz 2017, o 16:00 
    Offline
    Użytkownik

    Dołączył(a): 25 lip 2013
    Posty: 2595
    Pomógł: 128

    Chyba każdy asembler ma tego typu instrukcje. Na Zx Spectrum (z80) używało się tego nagminnie do przesuwania napisów itp.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 28 wrz 2017, o 16:14 
    Offline
    Użytkownik

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

    bo przecież wszystkie procki mają się tak samo i są rządzone tymi samymi prawami panowie ,
    a róznice w assemblerze - nazwy , rejestry narzuca producent :)

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

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 11 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:  
    cron
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO