Programiranje mikrokrmilnikov

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

  1. I. Fajfar, J. Olenšek: Osvojimo C – C89, C99 in primeri programiranja mikrokrmilnikov, Založba FE, 2020
  2. S. G. Kochan: Programming in C (4th Edition), 2014
  3. K. N. King: C Programming – A Modern Approach, 2008
  4. H. Schildt: Teach Yourself C, McGraw-Hill, 1997
  5. R. P. Halpern: C for Yourself: Learning C Using Experiments, Oxford University Press, 1997
  6. How C Programming Works (www.howstuffworks.com)
  7. Spletna stran, www.cprogramming.com

Bodi na tekočem

Univerza v Ljubljani, Fakulteta za elektrotehniko, Tržaška cesta 25, 1000 Ljubljana

E:  dekanat@fe.uni-lj.si T:  01 4768 411