Feladatok

Általános információk

A személyre szabott feladatokat az 3. oktatási héttől a lap alján található adatlapról lehet letölteni. 

A házi feladatok ütemezése.
    Feladat kiadás: 3. oktatási hét hétfő (2019. 09.23.)
    Feladat beadás: 11. oktatási hét  péntek déli 12 óráig (2019. 11. 22.)
    Starter kit visszaadás: 14. oktatási hét (2019. 12. 9-13.)

A házi feladathoz dokumentációt nem kell írni, viszont az elkészített programkód legyen önleíró: jól olvasható, kommentezett, beszédes elnevezésekkel ellátott. 

 

A fejlesztői kártya és a fejlesztői környezet

A Silabs EFM32 Giant Gecko Starter Kit (STK3700) itt vehető át:

           Előadást követően vagy gyakorlatokon. 

A Simplicity Studio fejlesztői környezet az alábbi linken érhető el: https://www.silabs.com/products/development-tools/software/simplicity-studio. (A szoftver igen gyorsan változik. A számunkra leginkább kritikus komponense a "32-bit MCU SDK". Ebben a félévben a laborokban ennek vagy az 5.8.3-as vagy az 5.8.2-es verzióját találjátok meg. Ezek egyben a házi feladatok készítéséhez is ajánlott verziók. Ha valaki később telepíti a gépére a Simplicity Studio-t, akkor elképzelhető, hogy modernebb SDK kerül a gépére. Ha csak a harmadik verzió számban van eltérés, az elvileg nem okoz gondot (frissítés esetén egy harmadik verzió számban modernebb SDK felül szokta írni a régit). Ha viszont a második, netán első verzió számban van eltérés, az okozhat gondot egy régebbi verzióhoz készült projektnek. Szerencsére régebbi SDK verziókat utólag is le lehet tölteni a Simplicity Studio alá.)

Bizonyos házi feladatok megoldásához szükséges az LCD kijelző alsó (alfanumerikus) részének szegmensenkénti vezérlése. Erre az LCD kezeléséhez kiadott gyári API általunk történt kiegészítésével van mód. A kiegészítéshez tartozó forráskódot, a használatukat demonstráló példa projekteket és egy leírást itt tudjátok letölteni. (Figyelem, ez a link 2019.10.03-án módosult, a régi linken elérhető változatot letöltött hallgatóknak plusz infó, hogy az LCD kezeléséhez (akár a gyári módon, akár a szegmensenkénti vezérléshez) szükség van az "em_lcd.c" és "em_cmu.c" fájlokra is! Ha olyan projektből indulunk ki, amiben ilyenek nincsenek, adjuk őket hozzá a projekt [emlib] könyvtárába! A fájlokat úgy könnyű megtalálni, hogy a projektekben az esetek 99%-ban létező "emlib/em_system.c" fájlon nyomtok egy jobb klikket, majd "Browse Files Here". Ezután drag-and-drop módon be lehet húzni a kívánt fájlokat a projektbe.)

(Szintént bejelentkezés után tudjátok letölteni a fejlesztői kártya és a fejlesztői környezet bevezetőjét valamint a gyakorló diáit is.)

Azon IMSc hallgatók, akik a házi feladatra IMSc pontot szeretnétek kapni, kérem, hogy a feladat kiadásakor keressék fel konzulensüket, hogy egyeztessék a teendőket. Lehet a kiegészítő feladat a házi feladat továbbfejlesztése, vagy valamilyen saját projekt kivitelezése. 

Feladat kiadó (a feladatlapot kinyomtatva aláírva el kell hozni)

Irányelvek:
A specifikáció teljesítése mellett tartsátok be a következő irányelveket is a program megírása során:
 
  • Igyekezzetek jól tagolt, könnyen átlátható kódot írni.
  • Tartsátok be a .c és .h fájlokra vonatkozó konvenciókat: a .h fájlok ne tartalmazzanak függvény-implementációkat (ez nem esztétikai kérdés, hanem irányelv, ami könnyebbé teszi a moduláris programfejlesztést nagyobb méretű projekteknél).
  • A logikailag jól körülhatárolt funkciókat tegyétek külön segédfüggvényekbe, a segédfüggvényeket pedig tegyétek egy külön .c fájlba, és ne a main() függvénnyel közös fájlba.
  • A bemutatásra az összes megírt forráskódot hozzátok magatokkal. Gyorsabb az ellenőrzés, ha a teljes projektet elhozzátok.
  • Ha szoftveres pergésmentesítést alkalmaz, és a feladat szempontjából kiritikus a lenyomás pillanata, figyeljen arra, hogy ehhez ne adódjon hozzá a pergésmentesítés ideje.
  • A megszakítások ciklusideje ne legyen túl kicsi. Ehhez érdemes megvizsgálni, hogy a megszakítások közötti időtartamban kb. hány assembly utasítást tud végrehajtani a mikrokontroller.
  • Figyeljen arra, hogy a kijelző frissítési ideje ne legyen túl kicsi.
  • A megszakítási rutinban csak a legszükségesebb műveleteket szabad implementálni. Megszakításban kerülendők az eseményre várakozó, blokkoló utasítások.

 

 

 

© 2010-2020 BME MIT | Hibajelentés | Használati útmutató