- zliczanieFast.c – zawiera zadanie szybkiego liczenia jedynek w słowie 64 i 256 bitowym. Wykorzystuje w nim look-up table oraz algorytm dzielenia słowa wejściowego na podsłowa na wzór drzewa binarnego. Plik zawiera też bardzo ciekawe funkcje pomocnicze np. do wypełniania look up table, losowania słów,
- zliczanieMinMem.c – zawartość podobna do powyższej, jednak z algorytmem optymalizującym nie szybkość, a zużycie pamięci,
- procek.v – projekt procesora 16 bitowego z 16 rejestrami realizującego instrukcję skoku, operacje arytmetyczno-logiczne i odczyt do/z pamięci. Projekt realizowany na FPGA Spartan-3A XC3S700A. Oprócz tego że cały projekt jest ciekawy to wykorzystuje w nim również wymyślony przeze mnie sposób odejmowania wykorzystujący cechę systemu U2. Projekt w verilogu,
- lightFollower.ino – projekt obrotowej wieżyczki, na ESP32. Bardzo prosty ale wymyśliłem w nim sposób komunikacji części ruchomej z kontrolerem poprzez IR oraz sprzętowe rozpoznawani kierunku światła przód / tył. Kod również bardzo prosty ale ciekawie realizuje sposób przełączania fototranzystorów,
- mean_shift_fast.c – zastosowanie algorytmu średniej ruchomej do odszumiania obrazów. Wymyśliłem w nim ogromnie ciekawą aproksymację funkcji Gaussa. Aproksymacja jest zaimplementowana w sposób traktujący liczbę float jako ciąg bitów, interpretowany jako liczba int, co umożliwia znaczne przyspieszenie w stosunku do wykorzystywania funkcji exp (ok. 25 %)
- quick_shift.c – implementacja szybkiej średniej ruchomej, w której wymyśliłem ciekawą implementacją klasteryzacji pikseli w superpiksele.
- funkcje.c – kod funkcji będących częścią modułu jądra Linuxa obsługującego komunikację z Arduino. Moduł pisałem w ramach zajęć bazując na szablonie od prowadzącego więc mimo że jest bardzo ciekawy to zamieszczam jedynie te funkcje. Zmieniają one wybraną połowę bajta na znak oraz 4 znaki będące zapisem liczby 2 bajtowej w systemie hex na liczbę w bajtową.
- TEST.c – program systemu RTOS – uCOS, robiony w ramach zajęć na studiach. Jego działanie polega na zadawaniu obciążenia (liczby iteracji inkrementacji) do 15 zadań za pośrednictwem kolejki, mailboxa, oraz semafora. W programie zastosowałem bardzo ciekawy bufor cykliczny i system śledzenia zadawanych obciążeń w trakcie ich przepływu w ramach komunikacji między zadaniami.
- py_quick.py - quick_shift w pythonie - patrz pkt 6.
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|