Page 23 of 23

Jak działa CRC (Cyclic Redundancy Check)

Jakiś czas temu w pracy dostałem zadanie uruchomienia modułu sprzętowego CRC na procesorze PIC32. W trakcie pracy wyszły pewne problemy, do rozwiązania których niezbędne było opanowanie teorii związanej z obliczaniem sum kontrolnych CRC. Zadanie to skłoniło mnie do dokładniejszej analizy problemu i podzielania się rezultatami w tym artykule.

CRC (Cyclic Redundancy Check) to kod o określonej z góry długości wygenerowany z ciągu danych wejściowych dodawany do oryginalnej wiadomości w celu zapewnienia integralności danych. CRC jest wykorzystywane między innymi do wykrywania przekłamań wiadomości przesyłanych przez łącza komunikacyjne, czy do sprawdzania poprawności danych zapisywanych na dysku. Zasada działania jest prosta. Nadawca (lub np. proces zapisujący dane na dysk) oblicza CRC dla wiadomości, którą chce wysłać i dodaje je do wysyłanych danych. Odbiorca (lub np. proces odczytujący dane z dysku) również oblicza sumę kontrolną danych, które otrzymał i porównuje ją z wartością CRC wysłaną przez nadawcę. Jeśli wyniki się różnią, doszło do przekłamania informacji.

Continue reading

Pomodoro Technique

Zarówno w pracy, jak i w życiu codziennym zarządzanie czasem jest bardzo ważne. Szczególnie siedząc przed komputerem jesteśmy wystawieni na działanie wielu rozpraszaczy. Z drugiej strony człowiek może utrzymać maksymalną koncentrację tylko przez krótki czas. W ciągu dnia pracy możemy się zmusić do utrzymania koncentracji nawet przez kilka godzin, ale umysł nie pracuje wtedy tak efektywnie jak w krótkich interwałach i szybciej się męczy. Wtedy po kilku godzinach pracy jesteśmy w stanie jedynie zająć się mniej wymagającymi czynnościami i patrzeć na zegarek czekając na moment, kiedy możemy już iść do domu. Poza tym pracując nad jakimś zagadnieniem mamy naturalną tendencję do skakania z tematu na temat czy rozpraszania się mailami, rozmowami itp. Opisana przeze mnie dzisiaj technika pomodoro jest dobrym sposobem na opisane wyżej problemy.

Continue reading

Hello world!

Nazwa ucgosu składa się z dwóch członów – uC oraz gosu. UC to skrót oznaczający mikrokontroler. Z układami tego typu mam już kilka lat doświadczenia zarówno zawodowego, jak i hobbystycznego i to głównie zagadnienia z tego obszaru będę opisywał. Gosu to określenie wzięte z koreańskiego, w żargonie graczy (szczególnie w Starcrafta) oznaczające osobę o wysokich umiejętnościach. Użyłem go w nazwie strony, bo chciałbym publikować tutaj materiały, które będą przydatne dla osób posiadających już pewne doświadczenie w programowaniu mikrokontrolerów. W internecie jest sporo materiałów dla początkujących np. na forbot.pl, natomiast brakuje treści dla zaawansowanych, szczególnie w języku polskim.

Tematy na wpisy będę pewnie czerpał głównie z pracy. Aktualnie biorę udział w projekcie spełniającym SIL4 na procesorach PIC32 Microchipa. Poza tym mam doświadczenie z protokołami komunikacyjnymi i sieciami. Innym źródłem inspiracji będą prywatne projekty takie jak np. robot micromouse, którego próbuję zrobić już od bardzo dawna, ale do tej pory udało mi się w nim odkryć jedynie talent muzyczny:

Interesuję się również takimi tematami jak:

  • Teoria sterowania – czyli regulatory, filtry Kalmana, identyfikacja układów itp.
  • Agile – zastosowanie metod agile takich jak np. unit testy w projektach na mikrokontrolery.
  • Produktywność – triki przyspieszające wykonywanie codziennych czynności w pracy i w domu.
    Poza tym pewnie znajdzie się miejsce na luźniejsze wpisy.