Module also offered within study programmes:
General information:
Annual:
2017/2018
Code:
EME-1-201-s
Name:
Programming methods and techniques
Faculty of:
Faculty of Electrical Engineering, Automatics, Computer Science and Biomedical Engineering
Study level:
First-cycle studies
Specialty:
-
Field of study:
Microelectronics in industry and medicine
Semester:
2
Profile of education:
Academic (A)
Lecture language:
Polish
Form and type of study:
Full-time studies
Course homepage:
 
Responsible teacher:
Żołądź Mirosław (zoladz@agh.edu.pl)
Academic teachers:
dr inż. Otfinowski Piotr (potfin@agh.edu.pl)
Żołądź Mirosław (zoladz@agh.edu.pl)
Module summary

.

Description of learning outcomes for module
MLO code Student after module completion has the knowledge/ knows how to/is able to Connections with FLO Method of learning outcomes verification (form of completion)
Skills
M_U001 Potrafi w podstawowym zakresie pracować z wybranym środowiskiem programistycznym dla mikrokontrolerów Execution of laboratory classes
M_U002 Potrafi w podstawowym zakresie tworzyć i debugować programy kontrolno-pomiarowe z użyciem automatu Execution of laboratory classes
M_U003 Potrafi w podstawowym zakresie tworzyć kod zgodny z konwencjami odpowiednimi dla kodu do współpracy z peryferiami mikrokontrolerów Execution of laboratory classes
M_U004 Potrafi w podstawowym zakresie wykorzystywać podstawowe peryferia wybranego mikrokontrolera (GPIO, Timery, Przerwania, UART) Execution of laboratory classes
Knowledge
M_W001 Ma podstawową wiedze o podstawowych peryferiach mikrokontrolerów (GPIO, Timery, Przerwania, UART) Execution of laboratory classes
M_W002 Ma rozszerzoną wiedze o architekturze wybranego mikrokontrolera Execution of laboratory classes
M_W003 Ma podstawową wiedze o tworzeniu i debugowaniu programów kontrolno-pomiarowych z użyciem automatu Execution of laboratory classes
M_W004 Ma podstawową wiedze o konwencji tworzenia kodu do współpracy z peryferiami mikrokontrolerów Execution of laboratory classes
M_W005 Ma podstawową wiedze o programowaniu układów peryferyjnych w języku C Execution of laboratory classes
M_W006 Ma podstawową wiedze o wybranym środowisku programistycznym dla mikrokontrolerów Execution of laboratory classes
FLO matrix in relation to forms of classes
MLO code Student after module completion has the knowledge/ knows how to/is able to Form of classes
Lecture
Audit. classes
Lab. classes
Project classes
Conv. seminar
Seminar classes
Pract. classes
Zaj. terenowe
Zaj. warsztatowe
Others
E-learning
Skills
M_U001 Potrafi w podstawowym zakresie pracować z wybranym środowiskiem programistycznym dla mikrokontrolerów - - + - - - - - - - -
M_U002 Potrafi w podstawowym zakresie tworzyć i debugować programy kontrolno-pomiarowe z użyciem automatu - - + - - - - - - - -
M_U003 Potrafi w podstawowym zakresie tworzyć kod zgodny z konwencjami odpowiednimi dla kodu do współpracy z peryferiami mikrokontrolerów - - + - - - - - - - -
M_U004 Potrafi w podstawowym zakresie wykorzystywać podstawowe peryferia wybranego mikrokontrolera (GPIO, Timery, Przerwania, UART) - - + - - - - - - - -
Knowledge
M_W001 Ma podstawową wiedze o podstawowych peryferiach mikrokontrolerów (GPIO, Timery, Przerwania, UART) + - - - - - - - - - -
M_W002 Ma rozszerzoną wiedze o architekturze wybranego mikrokontrolera + - - - - - - - - - -
M_W003 Ma podstawową wiedze o tworzeniu i debugowaniu programów kontrolno-pomiarowych z użyciem automatu + - - - - - - - - - -
M_W004 Ma podstawową wiedze o konwencji tworzenia kodu do współpracy z peryferiami mikrokontrolerów + - - - - - - - - - -
M_W005 Ma podstawową wiedze o programowaniu układów peryferyjnych w języku C + - - - - - - - - - -
M_W006 Ma podstawową wiedze o wybranym środowisku programistycznym dla mikrokontrolerów + - - - - - - - - - -
Module content
Lectures:

UWAGA: Kolejność treści w poniższym opisie nie reprezentuje kolejności ich prezentacji na wykładach

Wykład oragnizacyjny
- Regulamin w tym zasady oceniania
- Omowienie laboratorum:
—Środowisko programistyczne
—Zestaw uruhomieniowy
—Zakres potrzebnej znajomości C

Konwencje kodowania
-Znaczenie
-Lista z przykładami

System binarny
-Opis systemu
-Reprezenatacja liczb:
—Rodzaje
—Stosowanie

Rejestry
-funkcja
-nazwa/adress (definicje nazw)
-praca z rejestrami:
—zapis/odczyt całych rejestrów
—zapis/odczyt pojedyńczych bitów do/z rejestrów
—rejestry normalne
—rejestry typu set/clr

Systemy wbudowane ogólna charaktrystyka
-Zastosowania (system wbudowany vs. PC) //dużo przykładów, najlepiej skrajnych
-Mikrokontroler vs. PC:
—Architektura
—Rozmiary fizyczne
—Częstotliwość
—Moc obliczeniowa
—Szerokość magistrali
—Specjalne jednostki dla arytmetyki w tym zmiennoprzecinkowej
—Pobór mocy
—Rozmiar pamięci

Programowanie
-język maszynow vs. assembler vs. język wysokiego poziomu
-kompilacja:
—idea
—projekt
—translacja vs. kompilacja
-debugowanie
—nazwa
—błedy i ostrzeżenia
—usuwanie wszystkich oprócz “missing newline”
—lokalizacja:
—zastosowanie translacji
-testy
—program testujący vs. funkcja testowna
—testy z uzyciem sprzętu

Struktura programu
funkcja main
-petla główna
-moduły programowe:
- wodrębnianie funkcji (jak ?, przyklad)
- wyodrębnianie modułów (przykład z plikiem main.c i modułami led i keyboard)
- zawartość .h (tylko minimum) i .c
- interfejs(.h)/implementacja(.c),
- dołacznie modułów (typowy błąd literówka w nazwie funkcji)
- dostęp do zmiennych innych modułów
- zalety modułowości

Automaty jako wprowadzenie do wzorców projektowych
- przykłady
- struktura
- zapis
-implemetacja
-zalety/wady

Mikrokontroler – podstawowe peryferia (na przykładzie mikrokontrolera ARM)
-GPIO
-Timer
—Układ porównujący
—PWM
—Układ przechwytujacy
-Przerwania
—Idea
—kontroler
-Układ asynchronicznej transmisji szeregowej
—Warstwa fizyczna
—Ramka transmisyjna
—Implementacja
—Funkcja do odbioru i wysyłania łańcuchów (te z laborki)

Mikrokontroler – inne wybrane funkcjonalności

Serwomechanizm
-Konstrukcja
-Sterowanie
—Sekwencja sterująca
—Częstotliwość pracy

Laboratory classes:

Obsługa wybranego środowiska programistycznego dla mikrokontrolerów
Struktura i archiwizacja programów
Praca z rejestrami
Układ GPIO
Podział na moduły
Automaty
Układ czasowo-licznikowy
Przerwania
Sterownik serwomechanizmu
Układ Asynchronicznej Transmisji Szeregowej
Odbiór i dekodowanie łańcuchów znakowych
Wysyłanie łańcuchów znakowych

Student workload (ECTS credits balance)
Student activity form Student workload
Summary student workload 112 h
Module ECTS credits 4 ECTS
Participation in lectures 14 h
Participation in laboratory classes 28 h
Realization of independently performed tasks 30 h
Preparation for classes 40 h
Additional information
Method of calculating the final grade:

Ocena końcowa równa się ocenie z laboratorium

Prerequisites and additional requirements:

Podstawowe wiadomości z zakresu programowania

Recommended literature and teaching resources:

"Symfonia C++" Jerzy Grębosz.

Scientific publications of module course instructors related to the topic of the module:

Additional scientific publications not specified

Additional information:

None