Opis predmeta
Predmet obravnava dve glavni področji: programiranje v jeziku C skladno s standardoma C89 in C99 ter razvoj aplikacij za preproste mikrokrmilniške sisteme. Podrobno spoznamo sintakso jezika C, skupaj s tehnikami, ki se uporabljajo za implementacijo znanih algoritmov in podatkovnih struktur. Posebno pozornost namenjamo elementom jezika, katerih obnašanje ni nedvoumno določeno s standardom is so pogosto vir težko izslednljivih napak. Za študij osnovnih principov programiranja mikrokrmilnikov uporabimo platformo Arduino. Spoznamo programske tehnike za manipulacijo z biti v registrih ali specifičnih delih pomnilnika. Spoznamo načine povezovanja senzorjev in aktuatorjev ter osnove načrtovanja vgrajenih sistemov, ki delujejo v realnem času. V tem kontekstu spoznamo koncept končnih avtomatov kot načrtovalsko orodje. Pojasnimo pojem prekinitev, ki je ključen za razumevanje dogodkovno vodenih sistemov. Predmet zaključimo s praktičnima primeroma načrtovanja digitalne ure in zatemnilnega stikala.
Predmet učimo na programih
Elektrotehnika 1. stopnja
Cilji in kompetence
Podrobno poznavanje osnov programskega jezika C ter seznanitev z osnovami vgrajenih sistemov, z načeli večopravilnih sistemov in sistemov v realnem času ter z načini priključevanja naprav in komunikacije z njimi.
Metode poučevanja in učenja
Dve uri predavanj in dve uri laboratorijskih vaj na teden, posnetki predavanj, učbenik, domače naloge, individualno delo z zahtevnejšimi študenti.
Predvideni študijski rezultati
Po uspešno opravljenem izpitu naj bi bili študenti zmožni:
-
Našteti in opisati osnovne komponente mikrokrmilniškega sistema;
-
Razložiti pomen in način delovanja osnovnih računalniških komponent;
-
Pojasniti moteče fizikalne pojave, ki jih lahko obvladamo s programskimi rešitvemi;
-
Prepoznati izzive, ki jih prinašajo vgrajeni sistemi, večopravilni sistemi in sistemi, ki delujejo v realnem času;
-
Razviti preprost vgrajen sistem;
-
Ovrednotiti pomen časovne in prostorske zahtevnosti programske rešitve;
-
Zgraditi zanesljiv sistem, ki deluje v realnem času;
-
Oceniti učinkovitost konkretne rešitve z vidika porabe sredstev, končne cene, pravilnosti, in zanesljivosti delovanja, ter možnosti vzdrževanja in nadgradnje.
Temeljni viri in literatura
- I. Fajfar, J. Olenšek: Osvojimo C – C89, C99 in primeri programiranja mikrokrmilnikov, Založba FE, 2020
- S. G. Kochan: Programming in C (4th Edition), 2014
- K. N. King: C Programming – A Modern Approach, 2008
- H. Schildt: Teach Yourself C, McGraw-Hill, 1997
- R. P. Halpern: C for Yourself: Learning C Using Experiments, Oxford University Press, 1997
- How C Programming Works (www.howstuffworks.com)
- Spletna stran, www.cprogramming.com