Kodutöö III variant: Mikrokontrolleril postfix

Ülesande kirjeldus: Emuleeri postfixi parser kasutades PICkit arendusplatvormi.

Postfixi tuntakse ka  Reverse Polish notation nime all.

Dokumentatsioon

  • Tiitelleht
  • Autorideklaratsioon
  • Programmi töövoo ja põhimõtte kirjeldus
    • Programmi töövoog
    • Nimekiri kõigist võimalikest vigadest ja kuidas neid käsitsetakse
    • Nimeta ja kirjelda kõik veakoodid.
    • Nimeta ja kirjelda kõik operatsioonid ja nende koodid
    • Funktsioonide kirjeldused (otstarve, parameetrid ja nõuded nende väärtustele, võimalikud tagastused, võimalikud kõrvalnähud)
    • Kirjelda oma pinumälu struktuuri

Nõuded:

  • Postfixi parser peab kasutama pinumälu töödeldavate andmete salvestamiseks
  • Pinumälu minimaalne suurus on 8 elemeti
  • Test juhud on antud tekstimassiivis. Massiivid hoiavad endas arve (positiivsed, ühekohalised) ja operatsioone (+ – / *)
  • Programm peab suutma käsitleda arvude liitmist, lahutamist, korrutamist ja jagamist.
  • Testjuhtude tulemused ja vahetulemused peavad olema vahemikus -99 ja 99 ning olema vaadeldavad segmentindikaatoril. Arvud, mis pole selles vahemikus, peavad tekitama veaolukorra.
  • Negatiivseid arve tuleb esitada miinusmärgiga, millele on reserveeritud oma segment.
  • Vea olukorrad:
    • Peab suutma tuvastada pinu ületäituvust, alatäituvust, jagamist nulliga, vigast postfixi valemit, samuti ka arvu üle- ja alatäituvust ette antud vahemikust. Kõiki neid tuleb käidelda kui veaolukordi.
    • Vigadele tuleb anda unikaalsed veakoodid, mida kuvatakse  7-segmendi indikaatoritel. Kasutatud veakoodid peavad olema dokumenteeritud.
    • Arvutuse lõppedes peavad kõik LEDid vilkuma ühe sekundilise intervalliga lõputult või kuni uus ülesanne lahendamiseks käivitatakse.
    • Uue ülesande käivitamine peab kasutaja vea olekust välja tooma.
  • Iga samm arvutuses peab olema kasutajale nähtav vähemalt üks sekund.
    • Numbri lisamisel või eemaldamisel pinumälust peab see olema segment  indikaatoritel nähtav.
    • Operatsiooni tüüp, mida tegema hakatakse, peab olema näidatud LEDidel unikaalse mustriga. Kasutatud mustrid peavad olema dokumenteeritud.
  • Lubatud on vaid ühe ülesande korraga lahendamine, valituna DIP lülititelt.
  • Kõik operatsioonid peavad olema korratavad.

Sisendid ja väljundid

  • DIP lülitid – ülesande valik
  • 7-segmendi indikaatorid – esimene segment on reserveeritud märgi jaoks (negatiivse arvu esitamiseks). Ülejäänud segmendid peavad näitama veakoode, arve vastavalt hetke operatsioonile või ülesande tulemust.
  • LEDid – hetke operatsiooni kood, veateavitus
  • Suruupp – valitud ülesande käivitamine

Testülesanded, mida DIP lülitetele määrata:

Kõik vajalikud failid kodutööks on leitavad siit.

Võimalikud lisaväärtused, mida saab indikaatoritele anda.

Saatke oma kodutööd sellele emailile: hardi.selg@ati.ttu.ee
Lisage kokku pakitud kodutöö kaust arhiivina (.zip) kirjale.
Kodutööd on võimalik testida klassi arvutis. Eraldi aja kokkuleppimiseks tuleb soov edastada eelmainitud emaili aadressile.