Het testen van het windmeter programma zonder hardware.

© Harry Broeders.

Deze pagina is bestemd voor EP1 studenten van de THRijswijk.

Testen zonder hardware.

De programma's die beschreven staan op de webpagina windmeter.htm  kun je met behulp van THRSim11 ook zonder hardware testen. Het THRSim11 programma is een simulatieprogramma voor de 68HC11 microcontroller. Dit programma is al geïnstalleerd op de PC's op school en kun je ook thuis installeren. Zie: http://bd.eduweb.hhs.nl/thrsim11_4_thuis/index.htm

Hier volgt een stap voor stap beschrijving waarmee je de testprogramma's kunt simuleren:

  1. Start THRSim11.
  2. Kies de menu optie File, Options, Memory Configuration...
  3. Configureer het geheugen als volgt:

    Klik hier voor een verklaring van deze instellingen (indien gewenst).

  4. Om het programma te kunnen compileren heb je een zogenaamde makefile en een linker script nodig. Klik hier voor meer uitleg over het linker script en de makefile (indien gewenst). Maak een nieuw directory aan en kopieer de files: windmeter.c, simplex3.ld en makefile in dit directory. Je kunt deze files kopiëren door met de cursor op de link te gaan staan en op de rechterknop van de muis te klikken en vervolgens "Save Target As..." te kiezen.  Let op: Internet Explorer zet de extensie .txt achter de makefile (na het downloaden). Deze extensie moet je verwijderen.
  5. Laad het programma windmeter.c in THRSim11 via het File, Open... menu. Als het goed is wordt het programma nu automatisch in de editor SciTe geopend.
  6. Bij het simuleren duurt 2 seconden veel te lang. Daarom is het slim om bij het simuleren maar 0,2 seconden te meten. Pas daarom de volgende regel in het programma aan:
                    RT_perioden=49;
    in plaats van
                    RT_perioden=488;
  7. Je kunt het ingangssignaal simuleleren met de square wave generator (Kies menu: Connect, Signal Generators, Square Wave Generator
  8. Selecteer pin PA2 (IC1) en klik Connect en daarna OK.
  9. Omdat het programma nu maar 0.2 seconden meet moeten we de ingangsfrequentie 10x zo hoog kiezen als in werkelijkheid. B.v. bij 14 omwentelingen per seconde moeten in het echt 7 ledjes branden. Nu moeten dus bij 140 omw/sec 7 ledjes branden. 140 omw/sec komt overeen met een periodetijd van 7143 microseconden. De periodetijd die je moet instellen voor de Square Wave Generator = 7143 * 2 = 14286 E cycles (E is het kloksignaal van de 68HC11 en omdat de 68HC11 een klokfreq heeft van 2 MHz komt 1 E cycle overeen met 0,5 microseconden.)
  10. Als je nu de simulator start (F9) en wacht tot de RT_perioden variabele 0 geworden is kun je zien dat de variable aantal_leds op 7 staat. De simulator gaat sneller als je zoveel mogelijk windows die je niet gebruikt (zoals de listing en de CPU registers) minimaliseert.
  11. Als je op het plusje klikt van de variabelen doa en dob kun je de code zien die naar de leds wordt gestuurd. Je kunt deze codes binair weergeven door de variabele te selecteren en via je rechtermuisknop de optie Binary te kiezen.

  12. Door de periodetijd van de Square Wave Generator te varieren kun je meer of minder ledjes laten branden.

Mogelijke uitbreidingen:

Mogelijke verbeteringen:

In het eerste semester en tweede semster van de hoofdfase (H1 en H2) leer je nog veel meer over microcontrollers in het algemeen en de 68HC11 in het bijzonder. Als je de onderwijsmodulen MICB1 en MICB2 volgt zal blijken dat er nog andere (betere) mogelijkheden zijn: