Wprowadzenie do programowania na procesorze sygnałowym

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

Download "Wprowadzenie do programowania na procesorze sygnałowym"

Transkrypt

1 Zastosowania Procesorów Sygnałowych dr inż. Grzegorz Szwoch p Katedra Systemów Multimedialnych Wprowadzenie do programowania na procesorze sygnałowym

2 Wstęp Czego nauczymy się na tym i na kolejnych wykładach? Jak implementować algorytmy DSP na stałoprzecinkowym procesorze sygnałowym. Jak działają podstawowe algorytmy DSP - filtry, FFT, generatory sygnałów, itp. Jakie są ich praktyczne zastosowania. W przyszłym semestrze (6) będziemy wykonywać projekt. Bez wiedzy przedstawionej na tych wykładach będzie bardzo trudno!!!

3 Układ DSP TMS320C5535 Bohater opowieści: Układ uruchomieniowy ezdsp Texas Instruments Stałoprzecinkowy procesor DSP TMS320C5535 zegar MHz 320 KB RAM Pamięć flash 8 MB kodek audio

4 Uruchamianie algorytmów Tworzenie kodu tryb Debug: podłączamy płytkę przez USB do komputera, używamy programu Code Composer Studio do pisania kodu, uruchamiania, debugowania Gotowy program tryb Release: wgrywamy do pamięci flash lub na kartę SD, program uruchamia się po włączeniu zasilania

5 Asembler Jak piszemy kod? Pierwsza możliwość Asembler. Język tworzący praktycznie kod maszynowy. Pozwala wykorzystać wszystkie możliwości DSP. Umożliwia pisanie optymalnego (najszybszego) kodu. Tradycyjny sposób implementowania na DSP. Wada: wymaga dużej wiedzy, jest dość trudny. Na szczęście, typowe algorytmy DSP w Asemblerze są już dostępne biblioteka DSPLIB. Nie będziemy pisali w Asemblerze na tym przedmiocie.

6 Język C Drugi sposób dostępny na naszym DSP język C Znacznie łatwiejsze programowanie. Kompilator tłumaczy kod C na asembler. Robi to dobrze, ale nie jest w stanie być tak dokładny, jak programista Asemblera. Kod napisany w C będzie zwykle wolniejszy. Możliwe jest łączenie C z Asemblerem. Będziemy używali języka C do tworzenia kodu.

7 Czas działania algorytmu Częstotliwość zegara DSP wyznacza liczbę cykli na sekundę. Np. 100 MHz to 100 mln cykli/s. Każda instrukcja kodu zużywa określoną liczbę cykli zegarowych. Czas działania algorytmu mierzymy liczbą cykli. Np. jeżeli alg. zużywa 600 cykli, to czas = 0,6 ms. Optymalizacja algorytmu pozwala nam wykonać więcej operacji w ciągu sekundy bardzo ważne w zastosowaniach praktycznych.

8 Czas działania algorytmu Praktyczny wniosek: Programowanie na typowe komputery uczy nas nie dbać o czas wykonywania kodu ( nie optymalizować dopóki nie jest to niezbędne ). Takie podejście nie sprawdzi się na DSP. Jeżeli nie będziemy od początku dbali o czas wykonywania kodu, to może nam zabraknąć cykli zegarowych.

9 Kod w języku C Struktura kodu w języku C: dołączenie nagłówków (#include), deklaracje zmiennych, w tym buforów, (opcjonalnie) definicje funkcji, funkcja main tutaj rozpoczyna się wykonanie programu. Program może być zapisany w więcej niż jednym pliku.

10 Inicjalizacja układu Na początku main trzeba skonfigurować naszą płytkę: ustawienie częstotliwości zegara, włączenie kodeka dźwięku, ust. cz. próbkowania, uruchomienie wyświetlacza, przycisków, itp. i inne rzeczy. Te operacje wykonujemy w każdym programie, dlatego są one zwykle umieszczone w osobnej bibliotece. Trzeba jedynie je wywołać.

11 Schemat przetwarzania Przykład: chcemy przetworzyć dźwięk z wejścia i wysłać go na wyjście. Wewnątrz main implementujemy pętlę wykonującą następujące operacje: odczyt próbki z wejścia, przetwarzanie: próbka po próbce każdą próbkę z osobna, lub blokowe zapisujemy próbkę do bufora, przetwarzamy bufor gdy się zapełni, zapisanie przetworzonej próbki na wyjście.

12 Obliczanie średniej ruchomej Zabieramy się wreszcie do pisania kodu. Obliczamy wartość średnią ostatnich 5 próbek: y( n) = x( n) + x( n 1) + x( n 2) 5 + x( n 3) + x( n 4) lub inaczej: y( n) = 0,2x( n) + 0,2x( n 1) + 0,2x( n 2) + 0,2x( n 3) + 0,2x( n 4) Musimy przechować 5 ostatnich próbek w pamięci.

13 Bufor liniowy Najprostsze podejście bufor liniowy. Wyrzucamy z bufora najstarszą próbkę, przesuwamy pozostałe próbki o jedno miejsce, wpisujemy nową próbkę na wolne miejsce. Wada: tracimy czas na przesuwanie próbek. Jeśli w buforze będzie np. 100 próbek, zmarnujemy dużo cykli.

14 Bufor kołowy Lepsze rozwiązanie: bufor kołowy. Próbki nie są przesuwane. Przesuwany jest indeks wskazujący na najstarszą próbkę w to miejsce zapisujemy nową próbkę. Indeks musi się zawijać po dojściu na koniec bufora, wraca na pozycję 0.

15 Bufor kołowy i liniowy -ilustracja Bufor kołowy Bufor liniowy

16 Bufor kołowy w języku C Implementacja w naszym programie: #define N 5 int bufor[n]; int indeks = 0; // rozmiar bufora // deklaracja bufora // wskazuje najstarszą próbkę bufor[indeks] = nowa_probka; // zapis // tutaj wykonujemy obliczenia indeks += 1; if (indeks == N) indeks -= N; // przesunięcie indeksu // jesteśmy na końcu // zawijamy indeks

17 Bufor kołowy na DSP Bufory kołowe są zwykle używane na DSP. Procesor ma specjalne instrukcje do ich obsługi. W kodzie C mamy dostęp do wewnętrznych instrukcji procesora (intrinsics) za pomocą specjalnych komend. Np. zwiększenie indeksu w buforze kołowym to instrukcja _circ_incr. Instrukcje wewnętrzne skracają pisany kod.

18 Bufor kołowy na DSP Zamiast: indeks += 1; if (indeks == N) indeks -= N; możemy napisać: indeks = _circ_incr(indeks, 1, N);

19 Deklarowanie buforów Zanim pójdziemy dalej: gdzie deklarować bufory? DSP ma pamięć o ciągłym zakresie adresów. Pamięć jest logicznie dzielona na zakresy: danych, programu, stosu, itp. (definicje w pliku.cmd). Nie ma zabezpieczenia przed przekroczeniem danego zakresu! Zmienne (w tym bufory) możemy definiować: przed main w obszarze danych, wewnątrz main na stosie.

20 Stos Stos jest obszarem pamięci dla zmiennych deklarowanych wewnątrz funkcji (w tym main). Obszar stosu jest niewielki, np. 4 KB. Deklarując duże bufory wewnątrz main, możemy spowodować przepełnienie stosu. Objawy mogą być rożne, np.: zawieszenie się programu, program działa, ale generuje błędne dane.

21 Przepełnienie stosu Ilustracja problemu: Zajęty obszar stosu Deklarujemy duży bufor na stosie Wolny obszar stosu Zajęty obszar danych Przepełnienie stosu! Wolny obszar danych

22 Przepełnienie stosu Efekty przepełnienia stosu są trudne do debugowania. Obszar danych jest większy od stosu i wystarczający. Dlatego proszę zapamiętać i stosować poniższą zasadę. Wszelkie bufory danych deklarujemy globalnie, tzn. poza main i innymi funkcjami!

23 Typy danych Nasz DSP daje nam do dyspozycji następujące typy danych liczb całkowitych: int liczba 16-bitowa (także: short, DATA, Int16), long liczba 32-bitowa (także LDATA, Int32). Każdy typ jest w wersji: signed ze znakiem (domyślnie), unsigned bez znaku (np. unsignedint). NIE MA typów zmiennoprzecinkowych float, double!

24 Deklarowanie zmiennych w C Zmienna skalarna : typ, nazwa int probka; unsigned int indeks; Tablice (np. bufory): typ, nazwa[rozmiar] int bufor[1024]; Tablice stałych, np. współczynników: const int wsp[] = {1000, 2000, 3000}; Stałe liczbowe, np. rozmiar tablicy: const int N = 5; #define N 5

25 Mnożenie na DSP Wracamy do naszego kodu. Mamy policzyć średnią ruchomą. Musimy przemnożyć próbki przez 0,2. Pamiętajmy: tylko typy całkowitoliczbowe. Stosujemy zapis Q15 (wykład nr 5): 0,2 * Próbki sygnału są zapisane jako int (16 bit). Mnożenie dwóch liczb 16-bitowych daje wynik 32-bitowy (typ long).

26 Mnożenie na DSP W języku C, mnożenie dwóch liczb 16-bitowych daje zawsze wynik 16-bitowy, starsze bity zostają usunięte! Musimy rzutować mnożoną liczbę na typ long. Prawidłowo: long wynik = (long)probka * 6535; // OK Nieprawidłowo: int wynik = probka * 6535; // obcięcie wyniku long wynik = probka * 6535; // również obcięcie wyniku!

27 Obliczenie średniej Mnożymy przez 0,2 próbki zapisane w buforze kołowym, zaczynając od pozycji indeks, i sumujemy. const int WSP = 6535; // współczynnik 0,2 int i = 0; // licznik pętli int poz = indeks; // pozycja odczytu próbki long wynik = 0; // nasza średnia for (i = 0; i < n; i++) { // pętla po próbkach wynik += (long)bufor[poz] * WSP; poz = _circ_incr(poz, -1, N); }

28 MAC Jedna z typowych operacji na DSP: przemnożenie dwóch liczb i dodanie wyniku do akumulatora: y y + a * x Taka operacja nazywa się MAC multiplyand accumulate. DSP ma specjalne instrukcje do szybkiego MAC Nasz DSP potrafi wykonywać dwie operacje MAC w tym samym cyklu (Dual MAC). Wymaga to zwykle użycia Asemblera.

29 Przepełnienie zakresu Arytmetyka stałoprzecinkowa jest wrażliwa na przepełnienie zakresu liczby. Np. x = Obliczamy (x + 10). Liczba nie mieści się na 15 bitach (>32767). Następuje przepełnienie (overflow) jedynka przeskakuje na bit znaku. Wynik 8002h jest interpretowany jako ! Dostajemy całkowicie błędny wynik!

30 Przepełnienie zakresu Jak bronić się przed przepełnieniem? Najlepiej zapewnić, aby żadna cząstkowa suma nie przekraczała zakresu. Np. w naszym algorytmie mamy współczynniki 5 0,2 = 1. Jeżeli nie możemy tego zapewnić, możemy użyć 40-bitowego rejestru (typ longlong), ale spowalnia to obliczenia. Możemy też użyć arytmetyki nasycenia.

31 Arytmetyka nasycenia Saturationarithmetic obcina wartości przekraczające zakres do wartości maksymalnej. Np. dla liczb Q15 wynik jest równy: 32767, gdy wynik > 32767, , gdy wynik < Wyniki nadal są błędne, ale przynajmniej nie ma przeskoku na wartości z przeciwnym znakiem. Procesor DSP ma możliwość włączenia trybu nasycenia. Kosztuje to jeden cykl na operację.

32 Arytmetyka nasycenia Wybrane instrukcje wewnętrzne dla trybu nasycenia: _sadd / _lsadd dodawanie (wynik: int / long) _ssub / _lssub - odejmowanie _smpy / _lsmpy mnożenie _smac / _llsmac MAC (wynik: long / long long) UWAGA: instrukcje te włączają tzw. tryb ułamkowy (fractionalmode). Wynik typu long jest zapisywany w formacie Q31 (wynik Q30 jest mnożony razy 2)! Ułatwia to późniejszą konwersję do typu int.

33 Obliczenie średniej (c.d.) Stara wersja naszego algorytmu: for (i = 0; i < n; i++) { // pętla po próbkach wynik += (long)bufor[poz] * WSP; poz = _circ_incr(poz, -1, N); } Wersja z wykorzystaniem MAC i nasycenia: for (i = 0; i < n; i++) { // pętla po próbkach wynik = _smac(wynik, bufor[poz], WSP); poz = _circ_incr(poz, -1, N); }

34 Konwersja wyniku do typu int Po wykonaniu obliczeń, wynik (typu long) musi być skonwertowany do typu int. Są dwie metody. Obcięcie usunięcie najmłodszych 15 bitów (Q30) lub 16 bitów (Q31) poprzez przesunięcie bitowe. Należy pamiętać o rzutowaniu typu. // wynik: zmienna typu long (Q30) int wyjscie = (int)(wynik >> 15);

35 Konwersja wyniku do typu int Drugi sposób zaokrąglenie. Bardziej kosztowne, ale zmniejsza błędy zaokrągleń o połowę. Przed przesunięciem o n bitów, dodajemy 2 n-1. // wynik: zmienna typu long (Q30) int wyjscie = (int)((wynik ) >> 15); Dla liczb Q31 w trybie ułamkowym mamy instrukcję: int wyjscie = (int)(_sround(wynik) >> 16);

36 Obliczanie średniej (finał) Mamy już cały kod obliczający średnią z ostatnich pięciu próbek sygnału: y( n) = 0,2x( n) + 0,2x( n 1) + 0,2x( n 2) + 0,2x( n 3) + 0,2x( n Algorytm wygładza sygnał: 4)

37 Obliczanie średniej Jak wygląda charakterystyka częstotliwościowa naszego algorytmu?

38 Obliczanie średniej Możemy łatwo zmodyfikować nasz algorytm tak, aby liczył średnią z N próbek, ze współczynnikiem 1 / N

39 Obliczanie średniej To, co napisaliśmy, jest przykładem filtru cyfrowego typu FIR: o skończonej odpowiedzi impulsowej. Jedyna różnica to taka, że w filtrze FIR, współczynniki zwykle nie są stałe (u nas: stałe 0,2). Ale implementacja jest taka sama. Czyli wiemy już jak zaimplementować filtr FIR na DSP! Więcej o praktycznych implementacjach FIR - na kolejnym wykładzie.

40 Ważne rzeczy do zapamiętania Struktura kodu DSP w języku C Bufory deklarujemy poza main Typy int i long, rzutowanie i konwersje Arytmetyka Q mnożenie, dodawanie, MAC Problem przepełnienia zakresu, nasycenie Instrukcje wewnętrzne DSP

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

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

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

Przykładowe pytania DSP 1

Przykładowe pytania DSP 1 Przykładowe pytania SP Przykładowe pytania Systemy liczbowe. Przedstawić liczby; -, - w kodzie binarnym i hexadecymalnym uzupełnionym do dwóch (liczba 6 bitowa).. odać dwie liczby binarne w kodzie U +..

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

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

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

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

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

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

Poradnik programowania procesorów AVR na przykładzie ATMEGA8

Poradnik programowania procesorów AVR na przykładzie ATMEGA8 Poradnik programowania procesorów AVR na przykładzie ATMEGA8 Wersja 1.0 Tomasz Pachołek 2017-13-03 Opracowanie zawiera opis podstawowych procedur, funkcji, operatorów w języku C dla mikrokontrolerów AVR

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

PROCESORY SYGNAŁOWE - LABORATORIUM. Ćwiczenie nr 04

PROCESORY SYGNAŁOWE - LABORATORIUM. Ćwiczenie nr 04 PROCESORY SYGNAŁOWE - LABORATORIUM Ćwiczenie nr 04 Obsługa buforów kołowych i implementacja filtrów o skończonej i nieskończonej odpowiedzi impulsowej 1. Bufor kołowy w przetwarzaniu sygnałów Struktura

Bardziej szczegółowo

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++ Programowanie Wstęp p do programowania Klasa 3 Lekcja 9 PASCAL & C++ Język programowania Do przedstawiania algorytmów w postaci programów służą języki programowania. Tylko algorytm zapisany w postaci programu

Bardziej szczegółowo

Wprowadzenie do architektury komputerów systemy liczbowe, operacje arytmetyczne i logiczne

Wprowadzenie do architektury komputerów systemy liczbowe, operacje arytmetyczne i logiczne Wprowadzenie do architektury komputerów systemy liczbowe, operacje arytmetyczne i logiczne 1. Bit Pozycja rejestru lub komórki pamięci służąca do przedstawiania (pamiętania) cyfry w systemie (liczbowym)

Bardziej szczegółowo

Kompilator języka C na procesor 8051 RC51 implementacja

Kompilator języka C na procesor 8051 RC51 implementacja Kompilator języka C na procesor 8051 RC51 implementacja Implementowane typy danych bit 1 bit char lub char signed 8 bitów char unsigned 8 bitów int lub signed int 16 bitów unsigned int 16 bitów long lub

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

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

2. Arytmetyka procesorów 16-bitowych stałoprzecinkowych

2. Arytmetyka procesorów 16-bitowych stałoprzecinkowych 4. Arytmetyka procesorów 16-bitowych stałoprzecinkowych Liczby stałoprzecinkowe Podstawowym zastosowaniem procesora sygnałowego jest przetwarzanie, w czasie rzeczywistym, ciągu próbek wejściowych w ciąg

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

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH reprezentacja danych ASK.RD.01 c Dr inż. Ignacy Pardyka UNIWERSYTET JANA KOCHANOWSKIEGO w Kielcach Rok akad. 2011/2012 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok

Bardziej szczegółowo

Wielkości liczbowe. Wykład z Podstaw Informatyki dla I roku BO. Piotr Mika

Wielkości liczbowe. Wykład z Podstaw Informatyki dla I roku BO. Piotr Mika Wielkości liczbowe Wykład z Podstaw Informatyki dla I roku BO Piotr Mika Wprowadzenie, liczby naturalne Komputer to podstawowe narzędzie do wykonywania obliczeń Jeden bajt reprezentuje 0 oraz liczby naturalne

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

Podstawy programowania w języku C

Podstawy programowania w języku C Podstawy programowania w języku C WYKŁAD 1 Proces tworzenia i uruchamiania programów Algorytm, program Algorytm przepis postępowania prowadzący do rozwiązania określonego zadania. Program zapis algorytmu

Bardziej szczegółowo

Wielkości liczbowe. Wykład z Podstaw Informatyki. Piotr Mika

Wielkości liczbowe. Wykład z Podstaw Informatyki. Piotr Mika Wielkości liczbowe Wykład z Podstaw Informatyki Piotr Mika Wprowadzenie, liczby naturalne Komputer to podstawowe narzędzie do wykonywania obliczeń Jeden bajt reprezentuje oraz liczby naturalne od do 255

Bardziej szczegółowo

Adam Korzeniewski - p. 732 dr inż. Grzegorz Szwoch - p. 732 dr inż.

Adam Korzeniewski - p. 732 dr inż. Grzegorz Szwoch - p. 732 dr inż. Adam Korzeniewski - adamkorz@sound.eti.pg.gda.pl, p. 732 dr inż. Grzegorz Szwoch - greg@sound.eti.pg.gda.pl, p. 732 dr inż. Piotr Odya - piotrod@sound.eti.pg.gda.pl, p. 730 Plan przedmiotu ZPS Cele nauczania

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

Typ użyty w deklaracji zmiennej decyduje o rodzaju informacji, a nazwa zmiennej symbolicznie opisuje wartość.

Typ użyty w deklaracji zmiennej decyduje o rodzaju informacji, a nazwa zmiennej symbolicznie opisuje wartość. Typy danych Aby zapisać w komputerze jakąś daną, trzeba zapamiętać trzy jej podstawowe cechy: miejsce przechowywania informacji, przechowywaną wartość, rodzaj przechowywanej wartości. Typ użyty w deklaracji

Bardziej szczegółowo

Zestaw 3. - Zapis liczb binarnych ze znakiem 1

Zestaw 3. - Zapis liczb binarnych ze znakiem 1 Zestaw 3. - Zapis liczb binarnych ze znakiem 1 Zapis znak - moduł (ZM) Zapis liczb w systemie Znak - moduł Znak liczby o n bitach zależy od najstarszego bitu b n 1 (tzn. cyfry o najwyższej pozycji): b

Bardziej szczegółowo

Technologie Informacyjne

Technologie Informacyjne System binarny Szkoła Główna Służby Pożarniczej Zakład Informatyki i Łączności October 7, 26 Pojęcie bitu 2 Systemy liczbowe 3 Potęgi dwójki 4 System szesnastkowy 5 Kodowanie informacji 6 Liczby ujemne

Bardziej szczegółowo

PROCESORY SYGNAŁOWE - LABORATORIUM. Ćwiczenie nr 03

PROCESORY SYGNAŁOWE - LABORATORIUM. Ćwiczenie nr 03 PROCESORY SYGNAŁOWE - LABORATORIUM Ćwiczenie nr 03 Obsługa portu szeregowego, układu kodeka audio i pierwsze przetwarzanie sygnałów (cyfrowa regulacja głośności) 1. Konfiguracja układu szeregowego portu

Bardziej szczegółowo

ZASADY PROGRAMOWANIA KOMPUTERÓW

ZASADY PROGRAMOWANIA KOMPUTERÓW POLITECHNIKA WARSZAWSKA Instytut Automatyki i i Robotyki ZASADY PROGRAMOWANIA KOMPUTERÓW Język Język programowania: C/C++ Środowisko programistyczne: C++Builder 6 Wykład 9.. Wskaźniki i i zmienne dynamiczne.

Bardziej szczegółowo

Wykład 4. Przegląd mikrokontrolerów 16-bit: - PIC24 - dspic - MSP430

Wykład 4. Przegląd mikrokontrolerów 16-bit: - PIC24 - dspic - MSP430 Wykład 4 Przegląd mikrokontrolerów 16-bit: - PIC24 - dspic - MSP430 Mikrokontrolery PIC Mikrokontrolery PIC24 Mikrokontrolery PIC24 Rodzina 16-bitowych kontrolerów RISC Podział na dwie podrodziny: PIC24F

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

Filtry cyfrowe i procesory sygnałowe

Filtry cyfrowe i procesory sygnałowe Filtry cyfrowe i procesory sygnałowe Prezentacja nowego sprzętu do cyfrowego przetwarzania sygnałów w czasie rzeczywistym platformy TMX320C5515 ezdsp USB STICK Porównanie przydatności nowego sprzętu ze

Bardziej szczegółowo

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main. Część XVI C++ Funkcje Jeśli nasz program rozrósł się już do kilkudziesięciu linijek, warto pomyśleć o jego podziale na mniejsze części. Poznajmy więc funkcje. Szybko się przekonamy, że funkcja to bardzo

Bardziej szczegółowo

Techniki multimedialne

Techniki multimedialne Techniki multimedialne Digitalizacja podstawą rozwoju systemów multimedialnych. Digitalizacja czyli obróbka cyfrowa oznacza przetwarzanie wszystkich typów informacji - słów, dźwięków, ilustracji, wideo

Bardziej szczegółowo

Podstawy Programowania. Wykład 1

Podstawy Programowania. Wykład 1 Podstawy Programowania Wykład 1 Jak się uczyć programowania? Wykład i laboratorium Literatura Jerzy Grębosz Symfonia C++ Bjarne Stroustrup Język C++ Bruce Eckel Thinking in C++ Tony L. Hansen C++ zadania

Bardziej szczegółowo

Wiadomości wstępne Środowisko programistyczne Najważniejsze różnice C/C++ vs Java

Wiadomości wstępne Środowisko programistyczne Najważniejsze różnice C/C++ vs Java Wiadomości wstępne Środowisko programistyczne Najważniejsze różnice C/C++ vs Java Cechy C++ Język ogólnego przeznaczenia Można programować obiektowo i strukturalnie Bardzo wysoka wydajność kodu wynikowego

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

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne Spis treści 5 Spis treœci Co to jest mikrokontroler? Wprowadzenie... 11 Budowa systemu komputerowego... 12 Wejścia systemu komputerowego... 12 Wyjścia systemu komputerowego... 13 Jednostka centralna (CPU)...

Bardziej szczegółowo

Zmienne, stałe i operatory

Zmienne, stałe i operatory Zmienne, stałe i operatory Przemysław Gawroński D-10, p. 234 Wykład 2 4 marca 2019 (Wykład 2) Zmienne, stałe i operatory 4 marca 2019 1 / 21 Outline 1 Zmienne 2 Stałe 3 Operatory (Wykład 2) Zmienne, stałe

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

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

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 5 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41 Programowanie w C++ Wykład 2 Katarzyna Grzelak 5 marca 2018 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41 Reprezentacje liczb w komputerze K.Grzelak (Wykład 1) Programowanie w C++ 2 / 41 Reprezentacje

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

Typy złożone. Struktury, pola bitowe i unie. Programowanie Proceduralne 1

Typy złożone. Struktury, pola bitowe i unie. Programowanie Proceduralne 1 Typy złożone Struktury, pola bitowe i unie. Programowanie Proceduralne 1 Typy podstawowe Typy całkowite: char short int long Typy zmiennopozycyjne float double Modyfikatory : unsigned, signed Typ wskaźnikowy

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

Szkolenia specjalistyczne

Szkolenia specjalistyczne Szkolenia specjalistyczne AGENDA Programowanie mikrokontrolerów w języku C na przykładzie STM32F103ZE z rdzeniem Cortex-M3 GRYFTEC Embedded Systems ul. Niedziałkowskiego 24 71-410 Szczecin info@gryftec.com

Bardziej szczegółowo

1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami

1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami 1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami Celem tych zajęć jest zrozumienie i oswojenie z technikami programowania przy pomocy wskaźników w języku C++. Proszę przeczytać rozdział 8.

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

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

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

Programowanie mikrokontrolerów AVR

Programowanie mikrokontrolerów AVR Programowanie mikrokontrolerów AVR Czym jest mikrokontroler? Mikrokontroler jest małym komputerem podłączanym do układów elektronicznych. Pamięć RAM/ROM CPU wykonuje program Układy I/O Komunikacje ze światem

Bardziej szczegółowo

Język ludzki kod maszynowy

Język ludzki kod maszynowy Język ludzki kod maszynowy poziom wysoki Język ludzki (mowa) Język programowania wysokiego poziomu Jeśli liczba punktów jest większa niż 50, test zostaje zaliczony; w przeciwnym razie testu nie zalicza

Bardziej szczegółowo

ZASTOSOWANIA PROCESORÓW SYGNAŁOWYCH

ZASTOSOWANIA PROCESORÓW SYGNAŁOWYCH ZASTOSOWANIA PROCESORÓW SYGNAŁOWYCH Materiały pomocnicze do realizacji projektu Opracowanie: dr inż. Grzegorz Szwoch wersja 1.13, 07.05.2016 Gdańsk 2016 SPIS TREŚCI 1 KONFIGURACJA NOWEGO PROJEKTU W CODE

Bardziej szczegółowo

Wprowadzenie. Organizacja pracy i środowisko programistyczne. Mirosław Ochodek

Wprowadzenie. Organizacja pracy i środowisko programistyczne. Mirosław Ochodek Wprowadzenie Organizacja pracy i środowisko programistyczne Mirosław Ochodek Miroslaw.Ochodek@pwsz.pila.pl Miroslaw.Ochodek@cs.put.poznan.pl Dane kontaktowe Mirosław Ochodek E-mail: Miroslaw.Ochodek@pwsz.pila.pl

Bardziej szczegółowo

2 Przygotował: mgr inż. Maciej Lasota

2 Przygotował: mgr inż. Maciej Lasota Laboratorium nr 2 1/7 Język C Instrukcja laboratoryjna Temat: Wprowadzenie do języka C 2 Przygotował: mgr inż. Maciej Lasota 1) Wprowadzenie do języka C. Język C jest językiem programowania ogólnego zastosowania

Bardziej szczegółowo

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych.

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych. Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych. 1. Rodzaje pamięci używanej w programach Pamięć komputera, dostępna dla programu,

Bardziej szczegółowo

Języki C i C++ Wykład: 2. Wstęp Instrukcje sterujące. dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD

Języki C i C++ Wykład: 2. Wstęp Instrukcje sterujące. dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD Języki C i C++ Wykład: 2 Wstęp Instrukcje sterujące 1 dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD programowania w C++ Instrukcje sterujące 2 Pętla for for ( instrukcja_ini ; wyrazenie_warunkowe

Bardziej szczegółowo

Pytania sprawdzające wiedzę z programowania C++

Pytania sprawdzające wiedzę z programowania C++ Pytania sprawdzające wiedzę z programowania C++ Wstęp 1. Zaprezentuj mechanikę tworzenia programu napisanego w języku C++. 2. Co to jest kompilacja? 3. Co to jest konsolidacja? 4. Co to jest kod wykonywalny?

Bardziej szczegółowo

Informacje wstępne #include <nazwa> - derektywa procesora umożliwiająca włączenie do programu pliku o podanej nazwie. Typy danych: char, signed char

Informacje wstępne #include <nazwa> - derektywa procesora umożliwiająca włączenie do programu pliku o podanej nazwie. Typy danych: char, signed char Programowanie C++ Informacje wstępne #include - derektywa procesora umożliwiająca włączenie do programu pliku o podanej nazwie. Typy danych: char, signed char = -128 do 127, unsigned char = od

Bardziej szczegółowo

Podstawy programowania. Wykład Co jeszcze... Przypomnienia, uzupełnienia. Krzysztof Banaś Podstawy programowania 1

Podstawy programowania. Wykład Co jeszcze... Przypomnienia, uzupełnienia. Krzysztof Banaś Podstawy programowania 1 Podstawy programowania. Wykład Co jeszcze... Przypomnienia, uzupełnienia Krzysztof Banaś Podstawy programowania 1 Typy danych Podstawowe wbudowane typy danych języka C: _Bool 0 i 1 (C99) znaki (char) 7

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

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015 Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015 1 Metody numeryczne Dział matematyki Metody rozwiązywania problemów matematycznych za pomocą operacji na liczbach. Otrzymywane

Bardziej szczegółowo

Mikrokontroler ATmega32. Język symboliczny

Mikrokontroler ATmega32. Język symboliczny Mikrokontroler ATmega32 Język symboliczny 1 Język symboliczny (asembler) jest językiem niskiego poziomu - pozwala pisać programy złożone z instrukcji procesora. Kody instrukcji są reprezentowane nazwami

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

Laboratorium 1: Wprowadzenie do środowiska programowego. oraz podstawowe operacje na rejestrach i komórkach pamięci

Laboratorium 1: Wprowadzenie do środowiska programowego. oraz podstawowe operacje na rejestrach i komórkach pamięci Laboratorium 1: Wprowadzenie do środowiska programowego oraz podstawowe operacje na rejestrach i komórkach pamięci Zapoznanie się ze środowiskiem programowym: poznanie funkcji asemblera, poznanie funkcji

Bardziej szczegółowo

Temat 7. Programowanie mikrokontrolerów z rodziny PIC16 w języku C przy użyciu HI-TECH C for PIC10/12/16

Temat 7. Programowanie mikrokontrolerów z rodziny PIC16 w języku C przy użyciu HI-TECH C for PIC10/12/16 Temat 7. Programowanie mikrokontrolerów z rodziny PIC16 w języku C przy użyciu HI-TECH C for PIC10/12/16 Spis treści do tematu 7 7.1. Używanie kompilatora 7.2. Rozszerzenia języka ANSI C 7.3. Optymalizacja

Bardziej szczegółowo

start Program mikroprocesorowego miernika mocy generowanej $crystal = deklaracja

start Program mikroprocesorowego miernika mocy generowanej $crystal = deklaracja ----------------------------start---------------------------- Program mikroprocesorowego miernika mocy generowanej $crystal = 8000000 deklaracja częstotliwości kwarcu taktującego uc $regfile "m8def.dat"

Bardziej szczegółowo

Operacje arytmetyczne

Operacje arytmetyczne PODSTAWY TEORII UKŁADÓW CYFROWYCH Operacje arytmetyczne Bibliografia: Urządzenia techniki komputerowej, K. Wojtuszkiewicz http://pl.wikipedia.org/ Dodawanie dwójkowe Opracował: Andrzej Nowak Ostatni wynik

Bardziej szczegółowo

Laboratorium 5: Tablice. Wyszukiwanie binarne

Laboratorium 5: Tablice. Wyszukiwanie binarne Wojciech Myszka Laboratorium 5: Tablice. Wyszukiwanie binarne 2016-05-07 09:02:17 +0200 1. Tablice Do tej pory nie było potrzeby odwoływać się do zmiennych złożonych. Programy były bardzo proste i korzystały

Bardziej szczegółowo

1 P roste e t ypy p d a d n a ych c - c ąg ą g d a d l a szy 2 T y T py p z ł z o ł żo ż ne e d a d n a ych c : T BLICE

1 P roste e t ypy p d a d n a ych c - c ąg ą g d a d l a szy 2 T y T py p z ł z o ł żo ż ne e d a d n a ych c : T BLICE 1. Proste typy danych- ciąg dalszy 2. Typy złożone danych : TABLICE Wykład 3 ZMIENNE PROSTE: TYPY WBUDOWANE Typy zmiennoprzecinkowe: float double long double Różne rozmiary bajtowe. W konsekwencji różne

Bardziej szczegółowo

Teoretyczne Podstawy Informatyki

Teoretyczne Podstawy Informatyki Teoretyczne Podstawy Informatyki cel zajęć Celem kształcenia jest uzyskanie umiejętności i kompetencji w zakresie budowy schematów blokowych algor ytmów oraz ocenę ich złożoności obliczeniowej w celu optymizacji

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

Metody optymalizacji soft-procesorów NIOS

Metody optymalizacji soft-procesorów NIOS POLITECHNIKA WARSZAWSKA Wydział Elektroniki i Technik Informacyjnych Instytut Telekomunikacji Zakład Podstaw Telekomunikacji Kamil Krawczyk Metody optymalizacji soft-procesorów NIOS Warszawa, 27.01.2011

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

Podstawy Programowania C++

Podstawy Programowania C++ Wykład 3 - podstawowe konstrukcje Instytut Automatyki i Robotyki Warszawa, 2014 Wstęp Plan wykładu Struktura programu, instrukcja przypisania, podstawowe typy danych, zapis i odczyt danych, wyrażenia:

Bardziej szczegółowo

Kodowanie informacji. Kody liczbowe

Kodowanie informacji. Kody liczbowe Wykład 2 2-1 Kodowanie informacji PoniewaŜ komputer jest urządzeniem zbudowanym z układów cyfrowych, informacja przetwarzana przez niego musi być reprezentowana przy pomocy dwóch stanów - wysokiego i niskiego,

Bardziej szczegółowo

Arytmetyka komputera. Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka. Opracował: Kamil Kowalski klasa III TI

Arytmetyka komputera. Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka. Opracował: Kamil Kowalski klasa III TI Arytmetyka komputera Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka Opracował: Kamil Kowalski klasa III TI Spis treści 1. Jednostki informacyjne 2. Systemy liczbowe 2.1. System

Bardziej szczegółowo

> C++ wskaźniki. Dane: Iwona Polak. Uniwersytet Śląski Instytut Informatyki 26 kwietnia 2017

> C++ wskaźniki. Dane: Iwona Polak. Uniwersytet Śląski Instytut Informatyki 26 kwietnia 2017 > C++ wskaźniki Dane: Iwona Polak iwona.polak@us.edu.pl Uniwersytet Śląski Instytut Informatyki 26 kwietnia 2017 >??? Co to jest WSKAŹNIK? ++ wskaźniki 2 / 20 >??? Co to jest WSKAŹNIK? To po prostu ADRES

Bardziej szczegółowo

Dla człowieka naturalnym sposobem liczenia jest korzystanie z systemu dziesiętnego, dla komputera natomiast korzystanie z zapisu dwójkowego

Dla człowieka naturalnym sposobem liczenia jest korzystanie z systemu dziesiętnego, dla komputera natomiast korzystanie z zapisu dwójkowego Arytmetyka cyfrowa Dla człowieka naturalnym sposobem liczenia jest korzystanie z systemu dziesiętnego, dla komputera natomiast korzystanie z zapisu dwójkowego (binarnego). Zapis binarny - to system liczenia

Bardziej szczegółowo

ARCHITEKTURA KOMPUTERÓW Liczby zmiennoprzecinkowe

ARCHITEKTURA KOMPUTERÓW Liczby zmiennoprzecinkowe ARCHITEKTURA KOMPUTERÓW 17.11.2010 Liczby zmiennoprzecinkowe Sprawa bardzo podobna jak w systemie dziesiętnym po przecinku mamy kolejno 10-tki do ujemnych potęg, a w systemie binarnym mamy 2-ki w ujemnych

Bardziej szczegółowo

Sterowniki Programowalne (SP) Wykład 13

Sterowniki Programowalne (SP) Wykład 13 Sterowniki Programowalne (SP) Wykład 13 Język C dla sterowników programowalnych GeFanuc Na podstawie C Programmer's Toolkit for PACSystems WYDZIAŁ ELEKTROTECHNIKI I AUTOMATYKI KATEDRA INŻYNIERII SYSTEMÓW

Bardziej szczegółowo

Języki programowania obiektowego Nieobiektowe elementy języka C++

Języki programowania obiektowego Nieobiektowe elementy języka C++ Języki programowania obiektowego Nieobiektowe elementy języka C++ Roman Simiński roman.siminski@us.edu.pl www.programowanie.siminskionline.pl Przetwarzanie tablic znaków Łańcuchy znakowe jako tablice znaków

Bardziej szczegółowo

Programowanie - wykład 4

Programowanie - wykład 4 Programowanie - wykład 4 Filip Sośnicki Wydział Fizyki Uniwersytet Warszawski 20.03.2019 Przypomnienie Prosty program liczący i wyświeltający wartość silni dla wprowadzonej z klawiatury liczby: 1 # include

Bardziej szczegółowo

Zaawansowane algorytmy DSP

Zaawansowane algorytmy DSP Zastosowania Procesorów Sygnałowych dr inż. Grzegorz Szwoch greg@multimed.org p. 732 - Katedra Systemów Multimedialnych Zaawansowane algorytmy DSP Wstęp Cztery algorytmy wybrane spośród bardziej zaawansowanych

Bardziej szczegółowo

I. KARTA PRZEDMIOTU CEL PRZEDMIOTU WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI EFEKTY KSZTAŁCENIA

I. KARTA PRZEDMIOTU CEL PRZEDMIOTU WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI EFEKTY KSZTAŁCENIA I. KARTA PRZEDMIOTU 1. Nazwa przedmiotu: PODSTAWY PROGRAMOWANIA. Kod przedmiotu: Ovi1 3. Jednostka prowadząca: Wydział Mechaniczno-Elektryczny 4. Kierunek: Mechatronika 5. Specjalność: Eksploatacja Systemów

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: TS1A400027 Temat ćwiczenia:

Bardziej szczegółowo

PROE wykład 2 operacje na wskaźnikach. dr inż. Jacek Naruniec

PROE wykład 2 operacje na wskaźnikach. dr inż. Jacek Naruniec PROE wykład 2 operacje na wskaźnikach dr inż. Jacek Naruniec Zmienne automatyczne i dynamiczne Zmienne automatyczne: dotyczą kontekstu, po jego opuszczeniu są usuwane, łatwiejsze w zarządzaniu od zmiennych

Bardziej szczegółowo

Wstęp do informatyki- wykład 1 Systemy liczbowe

Wstęp do informatyki- wykład 1 Systemy liczbowe 1 Wstęp do informatyki- wykład 1 Systemy liczbowe Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion, 2012 www.cplusplus.com Jerzy Grębosz,

Bardziej szczegółowo

Konwersje napis <-> liczba Struktury, unie Scanf / printf Wskaźniki

Konwersje napis <-> liczba Struktury, unie Scanf / printf Wskaźniki Konwersje napis liczba Struktury, unie Scanf / printf Wskaźniki Konwersje liczba napis Ćwiczenia 1. Napisz aplikację, która na wejściu dostaje napis postaci W Roku Pańskim 1345, władca Henryk 12,

Bardziej szczegółowo

Rejestry procesora. Nazwa ilość bitów. AX 16 (accumulator) rejestr akumulatora. BX 16 (base) rejestr bazowy. CX 16 (count) rejestr licznika

Rejestry procesora. Nazwa ilość bitów. AX 16 (accumulator) rejestr akumulatora. BX 16 (base) rejestr bazowy. CX 16 (count) rejestr licznika Rejestry procesora Procesor podczas wykonywania instrukcji posługuje się w dużej części pamięcią RAM. Pobiera z niej kolejne instrukcje do wykonania i dane, jeżeli instrukcja operuje na jakiś zmiennych.

Bardziej szczegółowo

Programowanie mikrokontrolerów. 8 listopada 2007

Programowanie mikrokontrolerów. 8 listopada 2007 Programowanie mikrokontrolerów Marcin Engel Marcin Peczarski 8 listopada 2007 Alfanumeryczny wyświetlacz LCD umożliwia wyświetlanie znaków ze zbioru będącego rozszerzeniem ASCII posiada zintegrowany sterownik

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 Podstawowa składnia języka C++

Podstawy Programowania Podstawowa składnia języka C++ Podstawy Programowania Podstawowa składnia języka C++ Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 3 października 2013 r. Szablon programu w C++ Najprostszy program w C++ ma postać: #include #include

Bardziej szczegółowo

Magistrala systemowa (System Bus)

Magistrala systemowa (System Bus) Cezary Bolek cbolek@ki.uni.lodz.pl Uniwersytet Łódzki Wydział Zarządzania Katedra Informatyki systemowa (System Bus) Pamięć operacyjna ROM, RAM Jednostka centralna Układy we/wy In/Out Wstęp do Informatyki

Bardziej szczegółowo

Arytmetyka liczb binarnych

Arytmetyka liczb binarnych Wartość dwójkowej liczby stałoprzecinkowej Wartość dziesiętna stałoprzecinkowej liczby binarnej Arytmetyka liczb binarnych b n-1...b 1 b 0,b -1 b -2...b -m = b n-1 2 n-1 +... + b 1 2 1 + b 0 2 0 + b -1

Bardziej szczegółowo

Wprowadzenie do języka Java

Wprowadzenie do języka Java WSNHiD, Programowanie 2 Lab. 1 [ część 1 ] Wprowadzenie do języka Java Wprowadzenie Język programowania Java jest obiektowym językiem programowania. Powstał w 1995 i od tej pory był intensywnie rozwijany.

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

Zadanie 1. Potęgi (14 pkt)

Zadanie 1. Potęgi (14 pkt) 2 Egzamin maturalny z informatyki Zadanie 1. otęgi (14 pkt) W poniższej tabelce podane są wartości kolejnych potęg liczby 2: k 0 1 2 3 4 5 6 7 8 9 10 2 k 1 2 4 8 16 32 64 128 256 512 1024 Ciąg a=(a 0,

Bardziej szczegółowo