ZASTOSOWANIA PROCESORÓW SYGNAŁOWYCH

Wielkość: px
Rozpocząć pokaz od strony:

Download "ZASTOSOWANIA PROCESORÓW SYGNAŁOWYCH"

Transkrypt

1 ZASTOSOWANIA PROCESORÓW SYGNAŁOWYCH Materiały pomocnicze do realizacji projektu Opracowanie: dr inż. Grzegorz Szwoch wersja 1.13, Gdańsk 2016

2 SPIS TREŚCI 1 KONFIGURACJA NOWEGO PROJEKTU W CODE COMPOSER STUDIO...2 Instalacja pomocniczych bibliotek...2 Tworzenie nowego projektu...2 Konfigurowanie projektu do kompilacji na DSP Kompilacja projektu...5 Uruchomienie projektu w trybie Debug...5 Debugowanie programu...5 Wyświetlanie zawartości bufora...5 IMPLEMENTACJA ALGORYTMÓW NA DSP...7 Typy liczbowe na procesorze DSP C Reprezentacja liczb zmiennoprzecinkowych (Q15)...7 Mnożenie liczb Q Bufor kołowy...8 Krótko o tablicach i wskaźnikach języka C...9 Korzystanie z biblioteki DSPLIB...9 Przetwarzanie blokowe...11 Instrukcje wewnętrzne DSP...11 Generowanie sygnału sinus...11 Generowanie szumu białego...12 Implementacja filtrów dwukwadratowych IIR...13 Konfiguracja projektu do obliczania FFT...14 Obliczanie częstotliwości przedziału FFT...15

3 2 KONFIGURACJA NOWEGO PROJEKTU W CODE COMPOSER STUDIO Instalacja pomocniczych bibliotek Pobrać plik ze strony Katedry: Z pobranego archiwum wypakować katalogi (wyłącznie): - common lib do katalogu Workspace (domyślnie: C:\Users\[username]\workspace_v6_1). Powinien on znajdować się w katalogu nadrzędnym w stosunku do tworzonego projektu. Tworzenie nowego projektu Podłączyć płytkę DSP (duży wtyk USB na płytce) do portu USB w komputerze. Uruchomić Code Composer Studio. Z menu File wybrać New > CCS Project. W polu Target rozwinąć listę z prawej strony i wybrać: TMS320C5535. W polu Connection rozwinąć listę i wybrać: Texas Instruments XDS 100v2 USB Debug Probe. Warto wcisnąć przycisk Verify i upewnić się że płytka odpowiada. W polu Project name wpisać nazwę projektu. W razie potrzeby, podać katalog docelowy (Location). Można pozostawić domyślny typ projektu Empty project (with main.cpp). Kliknąć na Advanced settings i rozwinąć sekcję z opcjami. W linii Linker command file kliknąć Browse i wczytać plik C5535.cmd z katalogu common5535. Kliknąć Finish.

4 3 Konfigurowanie projektu do kompilacji na DSP 5535 Kliknąć prawym przyciskiem myszy na nazwie projektu, wybrać Properties. Wybrać Build > C5500 Compiler > Processor Options, zmienić memory model z large na huge. Z Advanced options wybrać Runtime Model Options, zmienić Specify type size to hold results of pointer math (--ptrdiff_size) na 32. Wybrać Build > C5500 Compiler > Include Options. W górnym polu (Add dir to #include search path): wcisnąć przycisk z zielonym plusem (Add). W okienku wybrać Browse, znaleźć katalog common5535 i zatwierdzić. Wybrać Build > C5500 Linker > File Search Path. W górnym polu (Include library file or command file as input) dodać (wciskając ikonę z zielonym plusem i wpisując z klawiatury): - common5535.lib - CSLc55x5h.lib - 55xdsph.lib W polu niżej (Add <dir> to library search path) dodać (metodą jak wcześniej) katalogi (rozpakowane z pobranego archiwum): - lib - common5535/debug

5 W tym momencie projekt jest skonfigurowany do pracy w trybie Debug. Jeżeli jest potrzeba wykorzystania konfiguracji Release, należy wybrać ją z listy Configuration i powtórzyć wszystkie kroki (zamienić nazwę katalogu na common5535/release w poprzednim kroku). Zatwierdzić przyciskiem OK. 4

6 Kompilacja projektu Upewnić się że projekt jest wybrany (Active) w panelu Project Explorer. Kliknąć przycisk z młotkiem na pasku narzędziowym. Upewnić się że nie ma błędów kompilacji powinien być widoczny komunikat typu 'Finished building target: HelloDSP.out'. Każda zmiana w kodzie wymaga jego ponownego skompilowania. Uruchomienie projektu w trybie Debug Kliknąć ikonę z pluskwą na pasku narzędziowym, albo wcisnąć klawisz F11. Jeżeli projekt uruchomi się pomyślnie, program przełączy się do trybu debugowania. Wykonywanie programu zatrzyma się na punkcie startowym (zwykle nagłówek funkcji main). Jest to widoczne w postaci niebieskiej strzałki na marginesie edytora kodu. Uruchomienie programu nastąpi po wciśnięciu przycisku Resume (żółto-zielona ikona play/pause), lub po naciśnięciu klawisza F8. W tym momencie program powinien działać. Ewentualne błędy zostaną wyświetlone w programie. Wyjście z trybu debugowania przycisk Terminate (ikona z czerwonym kwadratem) lub Control+F2. Uwaga: program na DSP nadal się wykonuje! Debugowanie programu W edytorze można ustawić punkty przerwania (breakpoint) za pomocą dwukrotnego kliknięcia na marginesie z lewej strony edytora. Breakpoint jest zaznaczony niebieską kropką. Breakpointy można też ustawiać w trybie debugowania, nawet w trakcie działania programu! Skrót klawiszowy: Control+Shift+B. Program zatrzyma się po osiągnięciu breakpointa. Przesuwając kursor nad dowolną zmienną w edytorze można odczytać jej wartość. Zakładka Variables w górnej części okna programu pokazuje zdefiniowane zmienne i ich wartości, które można modyfikować. Zaznaczenie wyrażenia w edytorze i wybranie z menu kontekstowego opcji Add watch expression powoduje dodanie wyrażenia do zakładki Expressions. Przycisk Step Into (F5) powoduje przejście do kolejnej instrukcji, a jeżeli bieżącą instrukcją jest wywołanie funkcji, debugger wchodzi do wnętrza tej funkcji. Przycisk Step Over (F6) jw., ale nie wchodzi do wnętrza funkcji. Przycisk Step Return (F7) wychodzi z funkcji, do której weszliśmy przez Step Into. Przycisk Resume (F8) wznawia działanie programu. Wyświetlanie zawartości bufora Załóżmy, że mamy bufor próbek o rozmiarze 2048: int bufor[2048]; 5

7 Chcemy wykreślić jego zawartość. Zatrzymujemy wykonywanie programu za breakpoincie. W zakładce Variables klikamy prawym przyciskiem myszy na zmiennej bufor i wybieramy Graph. Okno bufora powinno pokazać się na dole okna. Następnie należy otworzyć okno Show The Graph Properties klikając na ikonę paska narzędziowego wykresu i ustawić parametry jak poniżej. Acquisition Buffer Size rozmiar bufora (tu 2400) Dsp Data Type wybrać typ, np. 16 bit signed integer Sampling Rate Hz wpisać częstotliwość próbkowania, np Start Address tu powinna być już automatycznie wpisany wskaźnik do bufora Display Data Size należy wpisać rozmiar bufora (2400) lub mniej Time Display Unit ustawić jednostkę osi czasu wg uznania. Bufor zostanie uaktualniony za każdym razem gdy program zatrzyma się na breakpoincie. 6 Można również wyświetlić FFT zawartości bufora. Należy z menu Tools wybrać Graph > FFT Magnitude. W oknie należy ustawić opcje jak powyżej (należy ręcznie wpisać bufor jako Start Address) oraz dodatkowo podać rozmiar FFT (zmieniając FFT Order) i typ okna.

8 7 IMPLEMENTACJA ALGORYTMÓW NA DSP Typy liczbowe na procesorze DSP C5535 Procesor C5535 jest stałoprzecinkowy, co oznacza że nie posiada typów zmiennoprzecinkowych (float, double) i potrafi jedynie wykonywać operacje na liczbach całkowitych. Poniżej zestawiono obsługiwane typy stałoprzecinkowe i ich rozmiar bitowy: int, short: 16 bitów (2 bajty) long: 32 bity (4 bajty) long long: 40 bitów Każdy typ występuje w dwóch wersjach: signed: ze znakiem (domyślnie) unsigned: bez znaku Zatem typ 16-bitowy bez znaku zapisujemy jako unsigned int. Typy posiadają również synonimy. Np. typ int może być czasami zapisany jako Int16. Biblioteka DSPLIB definiuje synonimy DATA dla signed int, LDATA dla signed long oraz ushort dla unsigned int. Należy dobrać odpowiedni typ do zastosowań, tak aby zapisywana liczba zmieściła się na wybranej liczbie bitów. Nie należy używać dłuższych typów (long) bez potrzeby, ponieważ wykonywanie operacji na DSP może być wolniejsze niż w przypadku liczb typu int. Rzutowanie typów polega na podaniu docelowego typu w nawiasie przed wyrażeniem, np.: long y = (long)x. Jeżeli nowy typ jest większy, konwersja jest bezstratna, ale jeżeli nowy typ jest mniejszy (np. long na int), nadmiarowe bity zostaną obcięte. Programista musi zadbać o to, aby operacja ta nie powodowała błędów. Reprezentacja liczb zmiennoprzecinkowych (Q15) Jak wspomniano wyżej, procesor C5535 nie ma typów do zapisu liczb zmiennoprzecinkowych. Istnieje jednak metoda, która umożliwia zapisywanie liczb zmiennoprzecinkowych z zakresu od 0 do 1 za pomocą liczb typu int. Jest to jednak tylko konwencja, procesor nadal będzie wykonywał operacje tak jakby były to liczby stałoprzecinkowe. Typ int pozwala zapisywać liczby z zakresu od do (2 15-1), czyli od do Dowolną liczbę z zakresu od -1 (włącznie) do +1 (wyłącznie) można więc przedstawić jako ułamek tego zakresu: q(x) = x * 2 15 = x * Zapis ten jest nazywany Q15, ponieważ 15 bitów reprezentuje część ułamkową: kolejne bity mają wartości od 2-1 do 2-15, najstarszy bit określa znak. Rozdzielczość takiego zapisu wynosi 2-15 = 0, Należy zwrócić uwagę na to, że nie ma możliwości zapisania liczby 1 (największa możliwa do zapisania liczba wynosi 0, Operacje na liczbach Q15 odbywają się w trybie stałoprzecinkowym, np. dodawanie 0,13 + 0,27: 0,13 0,13 * = 4260 (konwersja na Q15) 0,27 0,27 * = = (dodawanie na DSP zwracany wynik)

9 13107 / = 0,40 (w zaokrągleniu konwersja na liczbę zmiennoprzecinkową) 0,13 + 0,27 = 0,40 (a więc dostaliśmy prawidłowy wynik). Uwaga: przy wykonywaniu operacji może wystąpić przepełnienie zakresu (overflow), np. przy dodawaniu 0,80 + 0,21. Programista musi zadbać o to aby przepełnienie nie wystąpiło, np. zapisując cząstkowe wyniki w zmiennej typu long. Mnożenie liczb Q15 W wyniku mnożenia dwóch liczb zapisanych w Q15 dostajemy wynik w postaci Q30 (Q15+15): x * y (x * 2 15 ) * (y * 2 15 ) = x * y * 2 30 Wynik ten wymaga do zapisania więcej niż 16 bitów, a więc typu long. Należy pamiętać o tym, że przynajmniej jedna z mnożonych liczb musi być typu long aby wynik mnożenia również miał typ long. Przykładowo, jeżeli zmienne x, y są typu int, poniższe wyrażenie da błędny wynik: long z = x * y; // źle! Kompilator języka C najpierw obliczy wyrażenie po prawej stronie znaku równości. Oba operandy są typu int, więc wynik wyrażenia będzie miał również typ int. Przypisanie go do zmiennej typu long niczego nie zmieni, wynik może być nieprawidłowy. Przykładowo: 0,7 * 0, * = Jeżeli wykonamy mnożenie na liczbach typu int, wynik zostanie obcięty do 16 bitów, czyli do Dostaniemy więc nieprawidłowy wynik (-0,68). Aby prawidłowo wykonać mnożenie, należy rzutować przynajmniej jeden z argumentów do typu long przed obliczeniem wyrażenia: long z = (long)x * y; // dobrze Wynik mnożenia liczb typu long i int jest zapisywany w większym z typów, czyli long. Dostajemy więc prawidłowy wynik, zapisany w formacie Q30. Aby uzyskać wynik w formacie Q15, należy obciąć 15 młodszych bitów części ułamkowej. Zostanie wtedy jedynie 15 starszych bitów, co odpowiada zapisowi Q15. Wystarczy wykonać przesunięcie bitowe o 15 miejsc w prawo, za pomocą operatora >> (operacja >>15 odpowiada dzieleniu przez 2 15 ). W naszym przypadku: >> 15 = / = 0,56 Mamy więc prawidłowy wynik. Jeżeli chcemy zapisać wynik w zmiennej typu int, musimy go rzutować do tego typu (upewnijmy się że nie będzie przepełnienia). Zatem następujący idiom służy do mnożenia liczb typu int: int z = (int)(((long)x * y) >> 15); Kompilator dla procesora C55x definiuje zestaw instrukcji wewnętrznych (intrinsics). Do mnożenia liczb typu int można użyć instrukcji _smpy: Bufor kołowy int z = _smpy(x, y); W wielu przypadkach potrzebujemy zapisywać wartości w buforze kołowym. Musimy zadeklarować dwie rzeczy: bufor oraz wskaźnik pozycji zapisu: #define N 2048 int bufor[n]; 8

10 unsigned int indeks = 0; Dla wygody zapisujemy rozmiar N bufora jako stałą preprocesora. Warto na początku wyzerować zawartość bufora: int i; for (i = 0, i < N; i++) bufor[i] = 0; Po użyciu bufora, należy przesunąć indeks na następną pozycję. Można zrobić to tak: indeks++; if (indeks == N) indeks = 0; Jeżeli indeks przesunął się poza koniec bufora, cofamy go na początkową pozycję. To samo można zapisać krócej za pomocą instrukcji wewnętrznej _circ_incr: indeks = _circ_incr(indeks, N); Krótko o tablicach i wskaźnikach języka C Zmienne definiowane jako int czy long przechowują pojedyncze wartości. Jeżeli chcemy przechowywać wiele wartości w jednej zmiennej (np. bufor próbek), musimy zadeklarować tablicę, podając po nazwie zmiennej, rozmiar tablicy w nawiasach kwadratowych. Rozmiar musi być stałą, nie wolno stosować zmiennych lub wyrażeń. Na przykład tak tworzymy tablicę liczb typu int o rozmiarze 2048: int bufor[2048]; Dowolną wartość z bufora można odczytać podając indeks w nawiasach kwadratowych indeksy są numerowane od zera. Indeksy mogą być stałymi, zmiennymi lub wyrażeniami. Np. trzeci element uzyskamy tak: int trzeci = bufor[2]; Jeżeli deklarujemy stałą tablicę, np. współczynniki filtru, możemy podać jej wartości w nawiasach klamrowych (należy pamiętać o specyfikatorze const): const int wsp_iir[] = {810, 1621, 810, , 7824}; Niektóre funkcje, np. z biblioteki DSPLIB, wymagają podania wskaźnika do zmiennej jako argumentu. Jest to zaznaczone gwiazdką przy argumencie w sygnaturze funkcji, np.: int funkcja(int* bufor); Wskaźnik jest adresem pamięci, pod którym zapisana jest zmienna. W przypadku tablic języka C, nazwa tablicy jest wskaźnikiem do niej. Wystarczy więc podać nazwę tablicy jako argument funkcji: int bufor[2048]; funkcja(bufor); W przypadku zmiennych nie będących tablicami (skalarnych), wskaźnik można pobrać dodając znak & przed nazwą zmiennej, np.: int zmienna; funkcja(&zmienna); Uwaga: typ wskaźnika musi się zgadzać. Wskaźnik typu const int* nie jest tym samym co wskaźnik int*. W razie potrzeby należy rzutować wskaźnik, np.: const int wsp[] = {0, 1, 2, 3}; funkcja((int*)wsp); 9 Korzystanie z biblioteki DSPLIB Biblioteka DSPLIB zawiera typowe algorytmy DSP (filtracja, splot, FFT i inne) zaimplementowane w języku asembler i zoptymalizowane dla danego procesora. Należy z nich korzystać zamiast pisania

11 własnych procedur, chyba że dana procedura nie spełnia wymagań. We własnym projekcie należy dołączyć plik nagłówkowy dsplib.h oraz użyć przy linkowaniu biblioteki odpowiedniej dla danego procesora i modelu pamięci (np. 55xdsph.lib) te kroki zostały już wykonane w ramach procedury tworzenia nowego projektu opisanej na początku tego dokumentu. Opis wszystkich procedur zawartych w bibliotece można znaleźć w dokumencie TMS320C55x DSP Library Programmer s Reference SPRU422J jest on też dostępny ze strony Katedry. Rozdział 4 zawiera podstawowe informacje na temat biblioteki. Istotne są dwie rzeczy: biblioteka definiuje typy danych: DATA (== signed int, 16 bit) oraz LDATA (== signed long, 32 bit), używane są formaty zapisu liczb: Q15 (DATA) oraz Q31 (LDATA uwaga, nie Q30!) Należy zapoznać się z oznaczeniami zawartymi w tabeli 4.1, są one używane w opisach funkcji. Tabela 4.2 zawiera wykaz wszystkich procedur dostępnych w bibliotece. Jako przykład, weźmy implementację filtru IIR drugiego rzędu (biquad). Według tabeli 4.2, możemy użyć funkcji iircas5 lub iircas51. Weźmy tę drugą. Znajdujemy opis funkcji (najłatwiej użyć indeksu na końcu dokumentu). Mamy następującą deklarację funkcji: ushort oflag = iircas51 (DATA *x, DATA *h, DATA *r, DATA *dbuffer, ushort nbiq, ushort nx) Poniżej mamy opis wszystkich parametrów. W skrócie przedstawia się on następująco. DATA *x wskaźnik do bufora nx próbek sygnału do przetworzenia DATA *h wskaźnik do współczynników filtru (5 współczynników na sekcję) DATA *r wskaźnik do bufora wyjściowego, nx próbek przefiltrowanego sygnału DATA *dbuffer wskaźnik do bufora roboczego, rozmiar (4*nbiq + 1), u nas: 5 ushort nbiq liczba sekcji, u nas: 1 ushort nx liczba próbek, u nas: 1 Załóżmy, że mamy próbkę wejściową zapisaną w zmiennej wejscie, wynik chcemy zapisać w zmiennej wyjscie, współczynniki filtru są zapisane w tablicy wsp_iir. Musimy jeszcze zaalokować bufor roboczy dla filtru (dobrze jest wypełnić go zerami). int wejscie; int wyjscie; const DATA wsp_iir[] = {810, 1621, 810, , 7824}; DATA bufor[5]; Procedurę filtracji wywołujemy następująco: iircas51(&wejscie, (DATA*)wsp_iir, &wyjscie, bufor, 1, 1); Wskaźniki do zmiennych typu int zostały pobrane za pomocą operatora &, a wskaźnik do współczynników filtru został zrzutowany na typ DATA* - zostało to opisane w punkcie Krótko o tablicach i wskaźnikach języka C. Analogicznie można przetworzyć jedną instrukcją cały blok próbek: define N 1024 int wejscie[n]; int wyjscie[n]; const DATA wsp_iir[] = {810, 1621, 810, , 7824}; DATA bufor[5]; //... iircas51(wejscie, (DATA*)wsp_iir, wyjscie, bufor, 1, N); W tym przypadku zmienne wejscie i wyjscie są tablicami, nie trzeba więc używać operatora &. 10

12 Przetwarzanie blokowe Przetwarzanie próbka po próbce polega na tym, że pobieramy próbkę z wejścia, przetwarzamy ją i natychmiast wysyłamy na wyjście. W niektórych przypadkach musimy najpierw zgromadzić pewną liczbę próbek, np. aby obliczyć FFT. Musimy w tym celu utworzyć dwa bufory kołowe: wejściowy i wyjściowy. Procedura przetwarzania jest następująca. Zapisać nową próbkę w buforze wejściowym. Wysłać na wyjście odpowiednią próbkę z bufora wyjściowego. Sprawdzić czy bufor został zapełniony. Jeśli tak, przetworzyć blok próbek z bufora wejściowego i zapisać wynik w buforze wyjściowym. Procedurę tę można zilustrować poniższym (niepełnym) pseudokodem. // rozmiar buforów define N 1024 int bufor_wej[n], bufor_wyj[n]; unsigned int indeks = 0; // pętla przetwarzania próbek while (1) { // pobranie nowej próbki bufor_wej[indeks] = pobierz_probke(); // wysłanie próbki na wyjście wyslij_probke(bufor_wyj[indeks]); // sprawdzenie czy bufor został zapełniony indeks++; if (indeks == N) { indeks = 0; przetworz_probki(bufor_wej, bufor_wyj); } } Należy zwrócić uwagę, że próbka wysyłana na wyjście i próbka pobrana z wejścia nie pochodzą z tego samego momentu próbka wyjściowa pochodzi z poprzednio przetworzonego bufora. Powoduje to opóźnienie pomiędzy wejściem a wyjściem, zależne od długości bufora. Np. dla bufora o rozmiarze 2048 próbek i częstotliwości próbkowania 48 khz, opóźnienie wyniesie 2048/48000 = ok. 43 ms. Należy starać się aby opóźnienia nie przekraczały 50 ms. Instrukcje wewnętrzne DSP Procesor DSP posiada pewną liczbę tzw. instrukcji wewnętrznych (intrinscis). Są to instrukcje zoptymalizowane do wykonywania operacji specyficznych dla danego procesora. Można ich używać również pisząc kod w języku C. Nazwy instrukcji zaczynają się od podkreślenia (_). We wcześniejszych punktach dokumentu przywołano instrukcje _smpy i _circ_incr. Używanie instrukcji wewnętrznych skraca i upraszcza kod, ale należy dobrze rozumieć jak działa dana instrukcja. Opis instrukcji wewnętrznych zawarty jest w dokumencie TMS320C55x DSP Library Programmer s Reference (SPRU281) w rozdziale 6.5. Istotny fragment tego dokumentu zamieszczono na stronach Katedry. Generowanie sygnału sinus Aby wygenerować ciągły sygnał sinusoidalny na DSP, można posłużyć się metodą licznika fazowego. Faza sygnału zmienia się w sposób ciągły, w zakresie od -π/2 do π/2, z zawinięciem. Na stałoprzecinkowym procesorze DSP można reprezentować fazę za pomocą liczb Q15: oznacza -π/2, oznacza prawie π/2. Faza będzie samodzielnie zawijała się gdy wystąpi przepełnienie zakresu. 11

13 Dla kolejnych próbek generowanego sygnału należy zwiększać wartość licznika fazowego o kąt odpowiadający częstotliwości sygnału. Załóżmy, że częstotliwość f = 1 Hz, co oznacza, że w ciągu jednej sekundy nastąpi pełne przejście całego zakresu fazy. Jednej sekundzie odpowiada liczba próbek równa częstotliwości próbkowania. Przyjmijmy fs = Hz. Pełen zakres fazy to 2 16 wartości (zapisujemy je na 16 bitach). Zatem zwiększeniu czasu o jedną próbkę (1/fs sekundy) odpowiada zwiększenie fazy o: d = 2 16 / fs = / Stosunek ten można zapisać inaczej: d = 2 * / = 2 * / = (2 * 22368) >> 15 = >> 14 Łatwej jest wykonać przesunięcie o 14 bitów w prawo niż dzielenie przez Dla dowolnej częstotliwości f wyrażonej w Hz, krok fazowy będzie równy: d = (f * 22368) >> 14 Np. dla częstotliwości f = 1234 Hz, krok wyniesie (po zaokrągleniu) Zatem generowanie sinusa można zrealizować następująco. Zainicjalizować zmienną licznika fazowego (int) na 0. Obliczyć stały krok fazowy (d). Dla kolejnych próbek: obliczyć wartość sinusa dla aktualnej fazy, po czym zwiększyć stan licznika fazowego o d. Do obliczenia wartości sinusa należy użyć funkcji sine z biblioteki DSPLIB. Poniżej przykład. DATA faza = 0; const int d = 1685; DATA sinus; while (1) { sine(&faza, &sinus, 1); faza += d; // sinus zawiera obliczona probke sygnalu } Wywoływanie funkcji sine dla każdej próbki jest czasochłonne. Dobrym pomysłem jest wygenerowanie dłuższego bufora próbek jednym wywołaniem funkcji sine, a następnie pobieranie obliczonych wartości z tego bufora i ponowne napełnienie bufora po jego zużyciu. W takim przypadku należy obliczyć osobne wartości fazy dla każdego elementu i zapisać je w osobnym buforze. int faza = 0; const int d = 1685; #define N 1024 DATA bufor_faza[n]; DATA bufor_sinus[n]; for (int i = 0; i < N; i++) { bufor_faza[i] = faza; faza += d; } sine(bufor_faza, bufor_sinus, N); Generowanie szumu białego Aby wygenerować szum biały, można posłużyć się funkcją rand16 z biblioteki DSPLIB. Przed użyciem generatora liczb pseudolosowych należy zainicjalizować go (tylko raz) za pomocą funkcji rand16init. Poniższa procedura generuje w pętli jedną próbkę szumu. 12

14 DATA szum; rand16init(); while (1) { rand16(&szum, 1); // wykorzystanie probki szum... } Tak jak poprzednio, lepiej jest wygenerować dłuższy bufor próbek szumu naraz. DATA szum[1024]; rand16init(); rand16(szum, 1024); 13 Implementacja filtrów dwukwadratowych IIR Filtry IIR implementuje się na DSP w formie złożonej z sekcji dwukwadratowych. Transmitancja sekcji dwukwadratowej (SOS ang. second order section) jest opisana wzorem: H b + b z + b z ( z) = a1z + a2z Filtr jest implementowany za pomocą równania różnicowego: y ( n) = b0 x( n) + b1 x( n 1) + b2 x( n 2) a1 y( n 1) a2 y( n 2) Program fdatool z Matlaba zapisuje obliczone współczynniki w dwóch macierzach, domyślnie nazywanych SOS i Gain. Macierz SOS zawiera współczynniki sekcji. Każdy rząd to współczynniki jednej sekcji, w kolejności: b0, b1, b2, a0, a1, a2. Kolejne wiersze zawierają współczynniki kolejnych sekcji. Macierz Gain zawiera wzmocnienia sekcji. Współczynnik o indeksie i skaluje sygnał przed podaniem go na wejście i-tej sekcji. Ostatni współczynnik skaluje sygnał po wyjściu z filtru. Aby filtr działał prawidłowo, konieczne jest spełnienie następujących warunków: wzmocnienie całego filtru nie może być większe od 1, wzmocnienie żadnej z sekcji nie może być większe od 1. Przekształcenie współczynników do formy, w której te warunki zostaną spełnione, jest skomplikowane. Przykładowy opis, dla filtru w strukturze II (w języku angielskim) można znaleźć pod adresem: Tutaj zostanie opisana uproszczona procedura dla formy I, która jednak nie daje pewności że sygnał nie zostanie przesterowany. Wzmocnienie sekcji dwukwadratowej (dla składowej stałej) można łatwo obliczyć ze wzoru: b0 + b1 + b G = 1+ a + a natomiast wzmocnienie całego filtru jest iloczynem wzmocnień poszczególnych sekcji. Najłatwiej jest skorygować wzmocnienia każdej sekcji tak, aby były one jednostkowe. W tym celu, dla każdej sekcji opisanej wierszem macierzy SOS, należy obliczyć jej współczynnik G według powyższego wzoru, a następnie przeskalować sekcję, dzieląc współczynniki b w liczniku przez G. Macierz Gain można w tym przypadku zignorować. Następnie współczynniki filtru przekształca się na format Q15. Jeżeli wszystkie współczynniki są mniejsze od 1, można obliczone współczynniki zastosować w funkcji iircas51 z biblioteki DSPLIB. Funkcja wymaga podania dla każdej sekcji, współczynników w kolejności: b0, b1, b2, a1, a2. W przypadku stosowania 1 2 2

15 kilku sekcji, współczynniki podaje się kolejno, sekcjami. UWAGA: zawsze a0 = 1, tego współczynnika nie podaje się w DSPLIB. Niestety, zwykle przynajmniej jeden współczynnik, zazwyczaj a1, jest większy od 1, ale mniejszy od 2. Jedyną metodą jest w tym przypadku przekształcenie współczynników do formatu Q1.14, czyli przemnożenie ich przez Powoduje to jednak, że wartość a0 = 0,5, a nie 1. Nie jest to problemem przy własnej implementacji filtru., Przy założeniu że sygnał wejściowy jest w formacie Q15, wartość obliczona przez sekcję filtru ma format Q1.29. Jest ona więc 2 razy mniejsza niż spodziewana wartość w formacie Q30. Zatem obliczoną wartość wyjściową należy przemnożyć przez 2. Skorygowaną wartość należy zapisać w buforze filtru oraz wysłać na jego wyjście. Procedura iircas51 zakłada jednak, że współczynniki są zapisane w formacie Q15, czyli że a0 = 32767, a nie Każda obliczona wartość wyjściowa jest zatem zmniejszona dwukrotnie względem oczekiwanej. Po n-tej sekcji, wartość zostaje zmniejszona 2 n razy. W wyniku tego, wartości wyjściowe zostaną zwykle wyzerowane (będą zbyt małe) i filtr przestanie działać (dostaniemy ciszę na wyjściu). Niestety, nie da się tego skorygować inaczej, niż modyfikując kod funkcji w asemblerze i dodając instrukcję przesuwającą wynik operacji o 1 bit w lewo (instrukcja SFTS). Zmodyfikowany kod funkcji iircas51 zamieszczono w archiwum dostępnym na stronie Katedry (materiały pomocnicze, ZPS, pliki potrzebne do utworzenia projektu CCS). Plik iircas51.asm, znajdujący się w podkatalogu iircas51_q14, należy skopiować do katalogu projektu. Po skompilowaniu projektu, kod ten zastąpi oryginalną wersję zamieszczoną w bibliotece DSPLIB. Modyfikacja kodu polegała na dodaniu instrukcji STFS AC1, #1, która mnoży wynik filtracji przez 2 po jego obliczeniu, przed zapisaniem w rejestrach. UWAGA: filtr IIR w opisanej implementacji jest bardzo podatny na przesterowanie, dlatego lepiej jest nie przetwarzać sygnałów o maksymalnej amplitudzie. Sugerowane rozwiązanie na potrzeby projektu: zmniejszenie amplitudy filtrowanego sygnału o połowę. Można to wykonać przesuwając wartości sygnału wejściowego o jeden bit w prawo, np.: sinus >>= 1; Konfiguracja projektu do obliczania FFT Biblioteka DSPLIB zawiera procedury do obliczania FFT, dla danych rzeczywistych i zespolonych, 16- i 32- bitowych. Opis tych funkcji zawarty jest w dokumentacji DSPLIB. Korzystanie z tych funkcji wymaga jednak odpowiedniego skonfigurowania obszarów pamięci, w których będą zapisywane dane. Konfigurację zapisuje się w pliku.cmd linkera. Poniższy przykład dotyczy konfiguracji zapisanej w pliku C5535.cmd, dostarczanej z szablonem projektu. Do poprawnego działania FFT, należy w bloku definicji sekcji (SECTIONS) dodać następujące wpisy:.fftcode > SARAM0.data:twiddle > SARAM1, align(2048).input > DARAM0, align(4) Szczególnie istotny jest wpis dla.data.twiddle. Jeżeli go nie będzie, program skompiluje się i uruchomi, ale otrzymamy nieprawidłowe wyniki. Definicja sekcji.input dotyczy danych, które będą przetwarzane przez FFT. Tablica próbek, która będzie podana do funkcji obliczającej FFT, musi zostać przydzielona do tej sekcji. W kodzie programu, przed zadeklarowaniem bufora próbek (koniecznie w części przed funkcją main), należy podać dyrektywę DATA_SECTION. Przykładowo dla tablicy o nazwie dane: #pragma DATA_SECTION (dane, ".input") DATA dane[1024]; 14

16 Obliczanie częstotliwości przedziału FFT Mamy wynik obliczenia N-punktowej transformaty FFT zapisany w buforze. Chcemy wiedzieć jakiej częstotliwości odpowiada k-ty punkt transformaty. N punktów FFT pokrywa zakres od 0 do fs. Jeden przedział transformaty odpowiada zatem zakresowi częstotliwości: d = fs / N Przykładowo, dla N = 2048 i fs = Hz: d = 23,4375 Hz. Częstotliwość k-tego przedziału wynosi zatem k d. Aby obliczyć ją na DSP, musimy zapisać liczbę d w formacie Q15. Musimy użyć typu long (32-bitowego) aby zapisać zarówno część całkowitą, jak i ułamkową (właściwie, jest to format Q16.15). dq = (fs / N) * 2 15 (48000 / 2048) * Teraz wystarczy przemnożyć dq przez numer przedziału. Uzyskamy liczbę Q15 zapisaną na 32 bitach. Aby uzyskać wynik w postaci liczby całkowitej, należy obciąć część ułamkową: f = (dq * k) >> 15 Przykładowo, dla k = 1000: f = ( * 1000) >> 15 = Hz Uwaga: maksymalna wartość mnożnika k nie powodująca przepełnienia zakresu 32 bitów wynosi Zatem maksymalny rozmiar FFT pozwalający zastosować opisane operacje to N = Procedury FFT z biblioteki DSPLIB i tak nie pozwalają stosować okien dłuższych niż

KONFIGURACJA NOWEGO PROJEKTU W CODE COMPOSER STUDIO

KONFIGURACJA NOWEGO PROJEKTU W CODE COMPOSER STUDIO KONFIGURACJA NOWEGO PROJEKTU W CODE COMPOSER STUDIO Tworzenie nowego projektu Podłączyć płytkę DSP (duży wtyk USB na płytce) do portu USB w komputerze. Uruchomić Code Composer Studio. W oknie Workspace

Bardziej szczegółowo

Wprowadzenie do programowania na procesorze sygnałowym

Wprowadzenie do programowania na procesorze sygnałowym Zastosowania Procesorów Sygnałowych dr inż. Grzegorz Szwoch greg@multimed.org p. 732 - Katedra Systemów Multimedialnych Wprowadzenie do programowania na procesorze sygnałowym Wstęp Czego nauczymy się na

Bardziej szczegółowo

Generowanie sygnałów na DSP

Generowanie sygnałów na DSP Zastosowania Procesorów Sygnałowych dr inż. Grzegorz Szwoch greg@multimed.org p. 732 - Katedra Systemów Multimedialnych Generowanie sygnałów na DSP Wstęp Dziś w programie: generowanie sygnałów za pomocą

Bardziej szczegółowo

Zastosowania Procesorów Sygnałowych. dr inż. Grzegorz Szwoch p Katedra Systemów Multimedialnych.

Zastosowania Procesorów Sygnałowych. dr inż. Grzegorz Szwoch p Katedra Systemów Multimedialnych. Zastosowania Procesorów Sygnałowych dr inż. Grzegorz Szwoch greg@sound.eti.pg.gda.pl p. 732 - Katedra Systemów Multimedialnych Filtry FIR i IIR Plan wykładu Filtry FIR Instrukcje wewnętrzne DSP Filtry

Bardziej szczegółowo

Filtry FIR i biblioteka DSPLIB

Filtry FIR i biblioteka DSPLIB Zastosowania Procesorów Sygnałowych dr inż. Grzegorz Szwoch greg@multimed.org p. 732 - Katedra Systemów Multimedialnych Filtry FIR i biblioteka DSPLIB Wstęp Na poprzednim wykładzie napisaliśmy algorytm

Bardziej szczegółowo

Przekształcenie Fouriera i splot

Przekształcenie Fouriera i splot Zastosowania Procesorów Sygnałowych dr inż. Grzegorz Szwoch greg@multimed.org p. 732 - Katedra Systemów Multimedialnych Przekształcenie Fouriera i splot Wstęp Na tym wykładzie: przekształcenie Fouriera

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

Podstawy programowania Laboratorium. Ćwiczenie 2 Programowanie strukturalne podstawowe rodzaje instrukcji

Podstawy programowania Laboratorium. Ćwiczenie 2 Programowanie strukturalne podstawowe rodzaje instrukcji Podstawy programowania Laboratorium Ćwiczenie 2 Programowanie strukturalne podstawowe rodzaje instrukcji Instrukcja warunkowa if Format instrukcji warunkowej Przykład 1. if (warunek) instrukcja albo zestaw

Bardziej szczegółowo

Informatyka I : Tworzenie projektu

Informatyka I : Tworzenie projektu Tworzenie nowego projektu w programie Microsoft Visual Studio 2013 Instrukcja opisuje w jaki sposób stworzyć projekt wykorzystujący bibliotekę winbgi2 w programie Microsoft Visual Studio 2013. 1. Otwórz

Bardziej szczegółowo

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych. Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych. 1. Przygotowanie środowiska programistycznego. Zajęcia będą

Bardziej szczegółowo

Cwiczenie nr 1 Pierwszy program w języku C na mikrokontroler AVR

Cwiczenie nr 1 Pierwszy program w języku C na mikrokontroler AVR Cwiczenie nr 1 Pierwszy program w języku C na mikrokontroler AVR Zadanie polega na napisaniu pierwszego programu w języku C, jego poprawnej kompilacji i wgraniu na mikrokontroler. W tym celu należy zapoznać

Bardziej szczegółowo

Warsztaty AVR. Instalacja i konfiguracja środowiska Eclipse dla mikrokontrolerów AVR. Dariusz Wika

Warsztaty AVR. Instalacja i konfiguracja środowiska Eclipse dla mikrokontrolerów AVR. Dariusz Wika Warsztaty AVR Instalacja i konfiguracja środowiska Eclipse dla mikrokontrolerów AVR Dariusz Wika 1.Krótki wstęp: Eclipse to rozbudowane środowisko programistyczne, które dzięki możliwości instalowania

Bardziej szczegółowo

Adam Korzeniewski p Katedra Systemów Multimedialnych

Adam Korzeniewski p Katedra Systemów Multimedialnych Adam Korzeniewski adamkorz@sound.eti.pg.gda.pl p. 732 - Katedra Systemów Multimedialnych Sygnały dyskretne są z reguły przetwarzane w komputerach (zwykłych lub wyspecjalizowanych, takich jak procesory

Bardziej szczegółowo

etrader Pekao Podręcznik użytkownika Strumieniowanie Excel

etrader Pekao Podręcznik użytkownika Strumieniowanie Excel etrader Pekao Podręcznik użytkownika Strumieniowanie Excel Spis treści 1. Opis okna... 3 2. Otwieranie okna... 3 3. Zawartość okna... 4 3.1. Definiowanie listy instrumentów... 4 3.2. Modyfikacja lub usunięcie

Bardziej szczegółowo

Adam Korzeniewski p Katedra Systemów Multimedialnych

Adam Korzeniewski p Katedra Systemów Multimedialnych Adam Korzeniewski adamkorz@sound.eti.pg.gda.pl p. 732 - Katedra Systemów Multimedialnych Sygnały dyskretne są z reguły przetwarzane w komputerach (zwykłych lub wyspecjalizowanych, takich jak procesory

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 8. Karol Tarnowski A-1 p.

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 8. Karol Tarnowski A-1 p. Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni Wykład 8 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Biblioteka GSL Na podstawie: https://www.gnu.org/software/gsl/doc/html/index.html

Bardziej szczegółowo

Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej

Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej Politechnika Białostocka Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej Instrukcja do zajęć laboratoryjnych z przedmiotu: Przetwarzanie Sygnałów Kod: TS1C400027 Temat ćwiczenia:

Bardziej szczegółowo

I - Microsoft Visual Studio C++

I - Microsoft Visual Studio C++ I - Microsoft Visual Studio C++ 1. Nowy projekt z Menu wybieramy File -> New -> Projekt -> Win32 Console Application w okienku Name: podajemy nazwę projektu w polu Location: wybieramy miejsce zapisu i

Bardziej szczegółowo

Instrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory

Instrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory Instrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory Poniżej pozwoliłem sobie za cytować za wikipedią definicję zmiennej w informatyce.

Bardziej szczegółowo

Programowanie w języku Python. Grażyna Koba

Programowanie w języku Python. Grażyna Koba Programowanie w języku Python Grażyna Koba Kilka definicji Program komputerowy to ciąg instrukcji języka programowania, realizujący dany algorytm. Język programowania to zbiór określonych instrukcji i

Bardziej szczegółowo

LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI. Wprowadzenie do środowiska Matlab

LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI. Wprowadzenie do środowiska Matlab LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI Wprowadzenie do środowiska Matlab 1. Podstawowe informacje Przedstawione poniżej informacje maja wprowadzić i zapoznać ze środowiskiem

Bardziej szczegółowo

1.Wstęp. 2.Generowanie systemu w EDK

1.Wstęp. 2.Generowanie systemu w EDK 1.Wstęp Celem niniejszego ćwiczenia jest zapoznanie z możliwościami debuggowania kodu na platformie MicroBlaze oraz zapoznanie ze środowiskiem wspomagającym prace programisty Xilinx Platform SDK (Eclipse).

Bardziej szczegółowo

ZASTOSOWANIA PROCESORÓW SYGNAŁOWYCH - PROJEKT

ZASTOSOWANIA PROCESORÓW SYGNAŁOWYCH - PROJEKT ZASTOSOWANIA PROCESORÓW SYGNAŁOWYCH - PROJEKT Harmonogram projektu Terminy realizacji i prowadzący zajęcia: T1 piątek, 8.30 10.00, NE 239 - dr inż. Grzegorz Szwoch (pok. 732) T2 piątek, 8.30 10.00, NE

Bardziej szczegółowo

Jak napisać program obliczający pola powierzchni różnych figur płaskich?

Jak napisać program obliczający pola powierzchni różnych figur płaskich? Część IX C++ Jak napisać program obliczający pola powierzchni różnych figur płaskich? Na początku, przed stworzeniem właściwego kodu programu zaprojektujemy naszą aplikację i stworzymy schemat blokowy

Bardziej szczegółowo

Temat 1: Podstawowe pojęcia: program, kompilacja, kod

Temat 1: Podstawowe pojęcia: program, kompilacja, kod Temat 1: Podstawowe pojęcia: program, kompilacja, kod wynikowy. Przykłady najprostszych programów. Definiowanie zmiennych. Typy proste. Operatory: arytmetyczne, przypisania, inkrementacji, dekrementacji,

Bardziej szczegółowo

Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach?

Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach? Część XVIII C++ Funkcje Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach? Umiemy już podzielić nasz

Bardziej szczegółowo

Wprowadzenie do środowiska Qt Creator

Wprowadzenie do środowiska Qt Creator 1.Instalacja środowiska Qt Creator Qt Creator jest wygodnym środowiskiem programistycznym przeznaczonym do tworzenia projektów, czyli aplikacji zarówno konsolowych, jak i okienkowych z wykorzystaniem biblioteki

Bardziej szczegółowo

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie.

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie. Część XXII C++ w Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie. Ćwiczenie 1 1. Utwórz nowy projekt w Dev C++ i zapisz go na

Bardziej szczegółowo

Gromadzenie danych. Przybliżony czas ćwiczenia. Wstęp. Przegląd ćwiczenia. Poniższe ćwiczenie ukończysz w czasie 15 minut.

Gromadzenie danych. Przybliżony czas ćwiczenia. Wstęp. Przegląd ćwiczenia. Poniższe ćwiczenie ukończysz w czasie 15 minut. Gromadzenie danych Przybliżony czas ćwiczenia Poniższe ćwiczenie ukończysz w czasie 15 minut. Wstęp NI-DAQmx to interfejs służący do komunikacji z urządzeniami wspomagającymi gromadzenie danych. Narzędzie

Bardziej szczegółowo

Menu Plik w Edytorze symboli i Edytorze widoku aparatów

Menu Plik w Edytorze symboli i Edytorze widoku aparatów Menu Plik w Edytorze symboli i Edytorze widoku aparatów Informacje ogólne Symbol jest przedstawieniem graficznym aparatu na schemacie. Oto przykład przekaźnika: Widok aparatu jest przedstawieniem graficznym

Bardziej szczegółowo

LABORATORIUM PROCESORY SYGNAŁOWE W AUTOMATYCE PRZEMYSŁOWEJ. Zasady arytmetyki stałoprzecinkowej oraz operacji arytmetycznych w formatach Q

LABORATORIUM PROCESORY SYGNAŁOWE W AUTOMATYCE PRZEMYSŁOWEJ. Zasady arytmetyki stałoprzecinkowej oraz operacji arytmetycznych w formatach Q LABORAORIUM PROCESORY SYGAŁOWE W AUOMAYCE PRZEMYSŁOWEJ Zasady arytmetyki stałoprzecinkowej oraz operacji arytmetycznych w formatach Q 1. Zasady arytmetyki stałoprzecinkowej. Kody stałopozycyjne mają ustalone

Bardziej szczegółowo

1. Skopiować naswój komputer: (tymczasowy adres)

1. Skopiować naswój komputer:   (tymczasowy adres) Instrukcja instalacji Programu Ewangelie i pracy z nim 1. Skopiować naswój komputer: http://grant.rudolf.waw.pl/ (tymczasowy adres) a/ katalog ze skanami przekładu Nowego Testamentu b/pliki z edycjami

Bardziej szczegółowo

1 Moduł Modbus ASCII/RTU 3

1 Moduł Modbus ASCII/RTU 3 Spis treści 1 Moduł Modbus ASCII/RTU 3 1.1 Konfigurowanie Modułu Modbus ASCII/RTU............. 3 1.1.1 Lista elementów Modułu Modbus ASCII/RTU......... 3 1.1.2 Konfiguracja Modułu Modbus ASCII/RTU...........

Bardziej szczegółowo

TwinCAT 3 konfiguracja i uruchomienie programu w języku ST lokalnie

TwinCAT 3 konfiguracja i uruchomienie programu w języku ST lokalnie TwinCAT 3 konfiguracja i uruchomienie programu w języku ST lokalnie 1. Uruchomienie programu TwinCAT 3: a) Kliknąć w start i wpisać wpisać frazę twincat. b) Kliknąć w ikonę jak poniżej: 2. Wybrać w menu

Bardziej szczegółowo

Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 7 WSTĘP DO INFORMATYKI

Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 7 WSTĘP DO INFORMATYKI Dr inż. Grażyna KRUPIŃSKA Grazyna.Krupinska@fis.agh.edu.pl D-10 pokój 227 WYKŁAD 7 WSTĘP DO INFORMATYKI Wyrażenia 2 Wyrażenia w języku C są bardziej elastyczne niż wyrażenia w jakimkolwiek innym języku

Bardziej szczegółowo

Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione

Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf Materiały poprawione Rozwiązanie zadania w NetBeans IDE 7.4: Jarosław Ksybek, Adam Miazio Celem ćwiczenia jest przygotowanie prostej aplikacji

Bardziej szczegółowo

Rozdział ten zawiera informacje na temat zarządzania Modułem Modbus TCP oraz jego konfiguracji.

Rozdział ten zawiera informacje na temat zarządzania Modułem Modbus TCP oraz jego konfiguracji. 1 Moduł Modbus TCP Moduł Modbus TCP daje użytkownikowi Systemu Vision możliwość zapisu oraz odczytu rejestrów urządzeń, które obsługują protokół Modbus TCP. Zapewnia on odwzorowanie rejestrów urządzeń

Bardziej szczegółowo

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki Informatyka I Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2019 1 Plan wykładu

Bardziej szczegółowo

1 Moduł Modbus ASCII/RTU

1 Moduł Modbus ASCII/RTU 1 Moduł Modbus ASCII/RTU Moduł Modbus ASCII/RTU daje użytkownikowi Systemu Vision możliwość komunikacji z urządzeniami za pomocą protokołu Modbus. Moduł jest konfigurowalny w taki sposób, aby umożliwiał

Bardziej szczegółowo

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 2. Karol Tarnowski A-1 p.

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 2. Karol Tarnowski A-1 p. Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy Laboratorium 2 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Komentarze Funkcja printf() Zmienne Łańcuchy

Bardziej szczegółowo

SPRZĘTOWA REALIZACJA FILTRÓW CYFROWYCH TYPU SOI

SPRZĘTOWA REALIZACJA FILTRÓW CYFROWYCH TYPU SOI 1 ĆWICZENIE VI SPRZĘTOWA REALIZACJA FILTRÓW CYFROWYCH TYPU SOI (00) Celem pracy jest poznanie sposobu fizycznej realizacji filtrów cyfrowych na procesorze sygnałowym firmy Texas Instruments TMS320C6711

Bardziej szczegółowo

Podstawy programowania w języku C i C++

Podstawy programowania w języku C i C++ Podstawy programowania w języku C i C++ Część czwarta Operatory i wyrażenia Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu,

Bardziej szczegółowo

Programowanie w języku C++ Grażyna Koba

Programowanie w języku C++ Grażyna Koba Programowanie w języku C++ Grażyna Koba Kilka definicji: Program komputerowy to ciąg instrukcji języka programowania, realizujący dany algorytm. Język programowania to zbiór określonych instrukcji i zasad

Bardziej szczegółowo

Podstawy programowania skrót z wykładów:

Podstawy programowania skrót z wykładów: Podstawy programowania skrót z wykładów: // komentarz jednowierszowy. /* */ komentarz wielowierszowy. # include dyrektywa preprocesora, załączająca biblioteki (pliki nagłówkowe). using namespace

Bardziej szczegółowo

PRZEWODNIK PO ETRADER ROZDZIAŁ XII. ALERTY SPIS TREŚCI

PRZEWODNIK PO ETRADER ROZDZIAŁ XII. ALERTY SPIS TREŚCI PRZEWODNIK PO ETRADER ROZDZIAŁ XII. ALERTY SPIS TREŚCI 1. OPIS OKNA 3 2. OTWIERANIE OKNA 3 3. ZAWARTOŚĆ OKNA 4 3.1. WIDOK AKTYWNE ALERTY 4 3.2. WIDOK HISTORIA NOWO WYGENEROWANYCH ALERTÓW 4 3.3. DEFINIOWANIE

Bardziej szczegółowo

Programowanie strukturalne i obiektowe

Programowanie strukturalne i obiektowe Programowanie strukturalne i obiektowe Język C część I Opracował: Grzegorz Flesik Literatura: A. Majczak, Programowanie strukturalne i obiektowe, Helion, Gliwice 2010 P. Domka, M. Łokińska, Programowanie

Bardziej szczegółowo

Lab 9 Podstawy Programowania

Lab 9 Podstawy Programowania Lab 9 Podstawy Programowania (Kaja.Gutowska@cs.put.poznan.pl) Wszystkie kody/fragmenty kodów dostępne w osobnym pliku.txt. Materiały pomocnicze: Wskaźnik to specjalny rodzaj zmiennej, w której zapisany

Bardziej szczegółowo

Wydział Elektryczny. Katedra Telekomunikacji i Aparatury Elektronicznej. Konstrukcje i Technologie w Aparaturze Elektronicznej.

Wydział Elektryczny. Katedra Telekomunikacji i Aparatury Elektronicznej. Konstrukcje i Technologie w Aparaturze Elektronicznej. Politechnika Białostocka Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej Konstrukcje i Technologie w Aparaturze Elektronicznej Ćwiczenie nr 5 Temat: Przetwarzanie A/C. Implementacja

Bardziej szczegółowo

Podstawy programowania. Wykład: 5. Instrukcje sterujące c.d. Stałe, Typy zmiennych c.d. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Podstawy programowania. Wykład: 5. Instrukcje sterujące c.d. Stałe, Typy zmiennych c.d. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD programowania Wykład: 5 Instrukcje sterujące c.d. Stałe, Typy zmiennych c.d. 1 dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD programowania w C++ Instrukcje sterujące 2 dr Artur Bartoszewski

Bardziej szczegółowo

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1 Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja

Bardziej szczegółowo

Kadry Optivum, Płace Optivum

Kadry Optivum, Płace Optivum Kadry Optivum, Płace Optivum Jak seryjnie przygotować wykazy absencji pracowników? W celu przygotowania pism zawierających wykazy nieobecności pracowników skorzystamy z mechanizmu Nowe wydruki seryjne.

Bardziej szczegółowo

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka 1. Kompilacja aplikacji konsolowych w środowisku programistycznym Microsoft Visual Basic. Odszukaj w menu startowym systemu

Bardziej szczegółowo

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44 Programowanie w C++ Wykład 2 Katarzyna Grzelak 4 marca 2019 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44 Na poprzednim wykładzie podstawy C++ Każdy program w C++ musi mieć funkcję o nazwie main Wcięcia

Bardziej szczegółowo

CZĘŚĆ A PIERWSZE KROKI Z KOMPUTEREM

CZĘŚĆ A PIERWSZE KROKI Z KOMPUTEREM CZĘŚĆ A PIERWSZE KROKI Z KOMPUTEREM 1.1. PODSTAWOWE INFORMACJE PC to skrót od nazwy Komputer Osobisty (z ang. personal computer). Elementy komputera można podzielić na dwie ogólne kategorie: sprzęt - fizyczne

Bardziej szczegółowo

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02 METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się

Bardziej szczegółowo

Konfigurowanie sterownika CX1000 firmy Beckhoff wprowadzenie. 1. Konfiguracja pakietu TwinCAT do współpracy z sterownikiem CX1000

Konfigurowanie sterownika CX1000 firmy Beckhoff wprowadzenie. 1. Konfiguracja pakietu TwinCAT do współpracy z sterownikiem CX1000 Konfigurowanie sterownika CX1000 firmy Beckhoff wprowadzenie Stanowisko laboratoryjne ze sterownikiem CX1000 Sterownik CX1000 należy do grupy urządzeń określanych jako komputery wbudowane (Embedded-PC).

Bardziej szczegółowo

Rejestracja faktury VAT. Instrukcja stanowiskowa

Rejestracja faktury VAT. Instrukcja stanowiskowa Rejestracja faktury VAT Instrukcja stanowiskowa 1. Uruchomieni e formatki Faktury VAT. Po uruchomieniu aplikacji pojawi się okno startowe z prośbą o zalogowanie się. Wprowadzamy swoją nazwę użytkownika,

Bardziej szczegółowo

Tworzenie nowego projektu w asemblerze dla mikroprocesora z rodziny 8051

Tworzenie nowego projektu w asemblerze dla mikroprocesora z rodziny 8051 Tworzenie nowego projektu w asemblerze dla mikroprocesora z rodziny 8051 Katedra Automatyki, Wydział EAIiE Akademia Górniczo-Hutnicza w Krakowie Marcin Piątek Kraków 2008 1. Ważne uwagi i definicje Poniższy

Bardziej szczegółowo

Cyfrowe Przetwarzanie Obrazów i Sygnałów

Cyfrowe Przetwarzanie Obrazów i Sygnałów Cyfrowe Przetwarzanie Obrazów i Sygnałów Laboratorium EX0 Wprowadzenie Joanna Ratajczak, Wrocław, 2018 1 Cel i zakres ćwiczenia Celem ćwiczenia jest zapoznanie się ze środowiskiem Matlab/Simulink wraz

Bardziej szczegółowo

Instrukcja instalacji i obsługi modemu ED77 pod systemem operacyjnym Windows 98 SE (wydanie drugie)

Instrukcja instalacji i obsługi modemu ED77 pod systemem operacyjnym Windows 98 SE (wydanie drugie) Instrukcja instalacji i obsługi modemu ED77 pod systemem operacyjnym Windows 98 SE (wydanie drugie) UWAGA Podstawowym wymaganiem dla uruchomienia modemu ED77 jest komputer klasy PC z portem USB 1.1 Instalacja

Bardziej szczegółowo

Spis treści. 1 Moduł Modbus TCP 4

Spis treści. 1 Moduł Modbus TCP 4 Spis treści 1 Moduł Modbus TCP 4 1.1 Konfigurowanie Modułu Modbus TCP................. 4 1.1.1 Lista elementów Modułu Modbus TCP............ 4 1.1.2 Konfiguracja Modułu Modbus TCP.............. 5 1.1.3

Bardziej szczegółowo

Język C zajęcia nr 11. Funkcje

Język C zajęcia nr 11. Funkcje Język C zajęcia nr 11 Funkcje W języku C idea podprogramów realizowana jest wyłącznie poprzez definiowanie i wywołanie funkcji. Każda funkcja musi być przed wywołaniem zadeklarowana. Deklaracja funkcji

Bardziej szczegółowo

Ćwiczenia z S7-1200. Komunikacja S7-1200 z miernikiem parametrów sieci PAC 3200 za pośrednictwem protokołu Modbus/TCP.

Ćwiczenia z S7-1200. Komunikacja S7-1200 z miernikiem parametrów sieci PAC 3200 za pośrednictwem protokołu Modbus/TCP. Ćwiczenia z S7-1200 Komunikacja S7-1200 z miernikiem parametrów sieci PAC 3200 za pośrednictwem protokołu Modbus/TCP FAQ Marzec 2012 Spis treści 1 Opis zagadnienie poruszanego w ćwiczeniu. 3 1.1 Wykaz

Bardziej szczegółowo

Instalacja programu:

Instalacja programu: Instrukcja programu Konwerter Lido Aktualizacja instrukcji : 2012/03/25 INSTALACJA PROGRAMU:... 1 OKNO PROGRAMU OPIS... 3 DODANIE MODUŁÓW KONWERSJI... 3 DODANIE LICENCJI... 5 DODANIE FIRMY... 7 DODAWANIE

Bardziej szczegółowo

Aplikacja do podpisu cyfrowego npodpis

Aplikacja do podpisu cyfrowego npodpis ABS Bank Spółdzielczy Aplikacja do podpisu cyfrowego npodpis (instrukcja użytkownika) Wersja 1.0 http://www.absbank.pl 1. Aplikacja do podpisu cyfrowego - npodpis Słownik pojęć: Aplikacja do podpisu cyfrowego

Bardziej szczegółowo

Pobieranie edytora CodeLite

Pobieranie edytora CodeLite Pobieranie edytora CodeLite Wejdź na stronę http://codelite.org/ a następnie przejść do ekranu pobierania (bez wykonywania dobrowolnej wpłaty). Kliknij na zakładkę Download a następnie No thanks, just

Bardziej szczegółowo

Pętle i tablice. Spotkanie 3. Pętle: for, while, do while. Tablice. Przykłady

Pętle i tablice. Spotkanie 3. Pętle: for, while, do while. Tablice. Przykłady Pętle i tablice. Spotkanie 3 Dr inż. Dariusz JĘDRZEJCZYK Pętle: for, while, do while Tablice Przykłady 11/26/2016 AGH, Katedra Informatyki Stosowanej i Modelowania 2 Pętla w największym uproszczeniu służy

Bardziej szczegółowo

Programowanie niskopoziomowe

Programowanie niskopoziomowe W. Complak, J.Kniat, M. Antczak, K. Kwarciak, G. Palik, A. Rybarczyk, Ł. Wielebski Materiały Programowanie niskopoziomowe http://www.cs.put.poznan.pl/arybarczyk/c_w_0.pdf Spis treści 1. Instalacja środowiska

Bardziej szczegółowo

I. Program II. Opis głównych funkcji programu... 19

I. Program II. Opis głównych funkcji programu... 19 07-12-18 Spis treści I. Program... 1 1 Panel główny... 1 2 Edycja szablonu filtrów... 3 A) Zakładka Ogólne... 4 B) Zakładka Grupy filtrów... 5 C) Zakładka Kolumny... 17 D) Zakładka Sortowanie... 18 II.

Bardziej szczegółowo

Niezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu.

Niezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu. Część XIX C++ w Każda poznana do tej pory zmienna może przechowywać jedną liczbę. Jeśli zaczniemy pisać bardziej rozbudowane programy, okaże się to niewystarczające. Warto więc poznać zmienne, które mogą

Bardziej szczegółowo

Wstęp do Programowania, laboratorium 02

Wstęp do Programowania, laboratorium 02 Wstęp do Programowania, laboratorium 02 Zadanie 1. Napisać program pobierający dwie liczby całkowite i wypisujący na ekran największą z nich. Zadanie 2. Napisać program pobierający trzy liczby całkowite

Bardziej szczegółowo

INSTRUKCJE WIKAMP Dotyczy wersji systemu z dnia

INSTRUKCJE WIKAMP Dotyczy wersji systemu z dnia INSTRUKCJE WIKAMP Dotyczy wersji systemu z dnia 22.04.2016 Spis treści: Jak zmienić hasło?... 1 Jak zmodyfikować profil użytkownika?... 5 Jak zmienić hasło? 1 S t r o n a Hasło umożliwia zalogowanie się

Bardziej szczegółowo

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem.

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem. WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM NetBeans Wykonał: Jacek Ventzke informatyka sem. VI 1. Uruchamiamy program NetBeans (tu wersja 6.8 ) 2. Tworzymy

Bardziej szczegółowo

WOJEWÓDZTWO PODKARPACKIE

WOJEWÓDZTWO PODKARPACKIE WOJEWÓDZTWO PODKARPACKIE UNIA EUROPEJSKA EUROPEJSKI FUNDUSZ ROZWOJU REGIONALNEGO Instrukcja instalacji generatora wniosku o dofinansowanie projektu ze środków EFRR w ramach I osi priorytetowej Regionalnego

Bardziej szczegółowo

Ćwiczenia nr 4. Arkusz kalkulacyjny i programy do obliczeń statystycznych

Ćwiczenia nr 4. Arkusz kalkulacyjny i programy do obliczeń statystycznych Ćwiczenia nr 4 Arkusz kalkulacyjny i programy do obliczeń statystycznych Arkusz kalkulacyjny składa się z komórek powstałych z przecięcia wierszy, oznaczających zwykle przypadki, z kolumnami, oznaczającymi

Bardziej szczegółowo

14. TWORZENIE MAKROPOLECEŃ

14. TWORZENIE MAKROPOLECEŃ 14. TWORZENIE MAKROPOLECEŃ Makro (inaczej makropolecenie) jest ciągiem poleceń i instrukcji programu MS Word, działającym i uruchamianym podobnie jak pojedyncze polecenie, służące do automatycznego wykonania

Bardziej szczegółowo

Podstawy programowania. Ćwiczenie. Pojęcia bazowe. Języki programowania. Środowisko programowania Visual Studio

Podstawy programowania. Ćwiczenie. Pojęcia bazowe. Języki programowania. Środowisko programowania Visual Studio Podstawy programowania Ćwiczenie Pojęcia bazowe. Języki programowania. Środowisko programowania Visual Studio Tematy ćwiczenia algorytm, opis języka programowania praca ze środowiskiem, formularz, obiekty

Bardziej szczegółowo

Tworzenie prezentacji w MS PowerPoint

Tworzenie prezentacji w MS PowerPoint Tworzenie prezentacji w MS PowerPoint Program PowerPoint dostarczany jest w pakiecie Office i daje nam możliwość stworzenia prezentacji oraz uatrakcyjnienia materiału, który chcemy przedstawić. Prezentacje

Bardziej szczegółowo

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH ĆWICZENIE NR 1 WPROWADZENIE DO PROGRAMU KOMPUTEROWEGO MATLAB Dr inż. Sergiusz Sienkowski ĆWICZENIE NR 1 Wprowadzenie do programu komputerowego Matlab 1.1.

Bardziej szczegółowo

Konfiguracja pakietu CrossStudio for MSP430 2.0.

Konfiguracja pakietu CrossStudio for MSP430 2.0. Konfiguracja pakietu CrossStudio for MSP430 2.0. 1. Przed rozpoczęciem pracy przeczytaj całego manuala. 2. Gratulujemy wyboru modułu MMmsp430x1xxx. W celu rozpoczęcia pracy należy pobrać 30-dniową wersję

Bardziej szczegółowo

Obliczenia iteracyjne

Obliczenia iteracyjne Lekcja Strona z Obliczenia iteracyjne Zmienne iteracyjne (wyliczeniowe) Obliczenia iteracyjne wymagają zdefiniowania specjalnej zmiennej nazywanej iteracyjną lub wyliczeniową. Zmienną iteracyjną od zwykłej

Bardziej szczegółowo

Dodatki. Dodatek A Octave. Język maszyn

Dodatki. Dodatek A Octave. Język maszyn Dodatki Dodatek A Octave Przykłady programów zostały opracowane w środowisku programistycznym Octave 3.6.2 z interfejsem graficznym GNU Octave 1.5.4. Octave jest darmowym środowiskiem programistycznym

Bardziej szczegółowo

Nr: 15. Tytuł: Kancelaris w systemie Windows 8 i Windows 8.1. Data modyfikacji:

Nr: 15. Tytuł: Kancelaris w systemie Windows 8 i Windows 8.1. Data modyfikacji: Nr: 15 Tytuł: Kancelaris w systemie Windows 8 i Windows 8.1 Data modyfikacji: 2013-10-25 Co zawiera ten dokument: Ten dokument opisuje elementy systemu Windows 8 i Windows 8.1 powiązane z programem Kancelaris.

Bardziej szczegółowo

Podstawy Programowania

Podstawy Programowania Podstawy Programowania Monika Wrzosek Instytut Matematyki Uniwersytet Gdański Matematyka 2017/18 Monika Wrzosek (IM UG) Podstawy Programowania 1 / 119 Sprawy organizacyjne E-mail: mwrzosek@mat.ug.edu.pl

Bardziej szczegółowo

Site Installer v2.4.xx

Site Installer v2.4.xx Instrukcja programowania Site Installer v2.4.xx Strona 1 z 12 IP v1.00 Spis Treści 1. INSTALACJA... 3 1.1 Usunięcie poprzedniej wersji programu... 3 1.2 Instalowanie oprogramowania... 3 2. UŻYTKOWANIE

Bardziej szczegółowo

Ćwiczenia laboratoryjne. Oprogramowanie i badanie prostych metod sortowania w tablicach

Ćwiczenia laboratoryjne. Oprogramowanie i badanie prostych metod sortowania w tablicach Ćwiczenia laboratoryjne Oprogramowanie i badanie prostych metod sortowania w tablicach Sprawozdanie Na każdym zajęciu laboratoryjnym sporządza się za pomocą edytora Word sprawozdanie. Bazowa zawartość

Bardziej szczegółowo

Samodzielnie wykonaj następujące operacje: 13 / 2 = 30 / 5 = 73 / 15 = 15 / 23 = 13 % 2 = 30 % 5 = 73 % 15 = 15 % 23 =

Samodzielnie wykonaj następujące operacje: 13 / 2 = 30 / 5 = 73 / 15 = 15 / 23 = 13 % 2 = 30 % 5 = 73 % 15 = 15 % 23 = Systemy liczbowe Dla każdej liczby naturalnej x Î N oraz liczby naturalnej p >= 2 istnieją jednoznacznie wyznaczone: liczba n Î N oraz ciąg cyfr c 0, c 1,..., c n-1 (gdzie ck Î {0, 1,..., p - 1}) taki,

Bardziej szczegółowo

Moduł Handlowo-Magazynowy Przeprowadzanie inwentaryzacji z użyciem kolektorów danych

Moduł Handlowo-Magazynowy Przeprowadzanie inwentaryzacji z użyciem kolektorów danych Moduł Handlowo-Magazynowy Przeprowadzanie inwentaryzacji z użyciem kolektorów danych Wersja 3.77.320 29.10.2014 r. Poniższa instrukcja ma zastosowanie, w przypadku gdy w menu System Konfiguracja Ustawienia

Bardziej szczegółowo

Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane

Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane Stałe Oprócz zmiennych w programie mamy też stałe, które jak sama nazwa mówi, zachowują swoją wartość przez cały czas działania programu. Można

Bardziej szczegółowo

1. Aplikacja LOGO! App do LOGO! 8 i LOGO! 7

1. Aplikacja LOGO! App do LOGO! 8 i LOGO! 7 1. Aplikacja do LOGO! 8 i LOGO! 7 1.1. Przegląd funkcji Darmowa aplikacja umożliwia podgląd wartości parametrów procesowych modułu podstawowego LOGO! 8 i LOGO! 7 za pomocą smartfona lub tabletu przez sieć

Bardziej szczegółowo

Baltie 3. Podręcznik do nauki programowania dla klas I III gimnazjum. Tadeusz Sołtys, Bohumír Soukup

Baltie 3. Podręcznik do nauki programowania dla klas I III gimnazjum. Tadeusz Sołtys, Bohumír Soukup Baltie 3 Podręcznik do nauki programowania dla klas I III gimnazjum Tadeusz Sołtys, Bohumír Soukup Czytanie klawisza lub przycisku myszy Czytaj klawisz lub przycisk myszy - czekaj na naciśnięcie Polecenie

Bardziej szczegółowo

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu. Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu. Dr inż. Zofia Kruczkiewicz Dwa sposoby tworzenia apletów Dwa sposoby

Bardziej szczegółowo

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH ĆWICZENIE NR 1 WPROWADZENIE DO PROGRAMU KOMPUTEROWEGO MATLAB Dr inż. Sergiusz Sienkowski ĆWICZENIE NR 1 Wprowadzenie do programu komputerowego Matlab 1.1.

Bardziej szczegółowo

Konfigurowanie sterownika CX9000 firmy Beckhoff wprowadzenie

Konfigurowanie sterownika CX9000 firmy Beckhoff wprowadzenie Konfigurowanie sterownika CX9000 firmy Beckhoff wprowadzenie Stanowisko laboratoryjne ze sterownikiem CX9000 Sterownik CX9000 należy do grupy urządzeń określanych jako komputery wbudowane (Embedded-PC).

Bardziej szczegółowo

Widok programatora PonyProgUSB wersja 1.0 oraz jego elementy przedstawiono na poniższym rysunku.

Widok programatora PonyProgUSB wersja 1.0 oraz jego elementy przedstawiono na poniższym rysunku. Telwis PonyProg USB INSTRUKCJA OBSŁUGI Widok programatora PonyProgUSB wersja 1.0 oraz jego elementy przedstawiono na poniższym rysunku. Program PonyProgUSB nie jest wersją instalacyjną. Uruchamiamy go

Bardziej szczegółowo