Stap 4: Het programma
Het programma is eenvoudig te maken het gemakkelijk te begrijpen gebleven. Zeer weinig Boole-expressies zijn gebruikt als zij een heleboel begrijpen en nemen "trainen" als aan de het resultaat van de instructie.Wij stellen vast dat een eenvoudiger programma is geschreven in "C" en zij niet om te compileren in de 1024 geheugenlocaties, dus ik weet niet hoe de inefficiëntie van een hoger niveau programmering betrekking zou hebben op dit project.
In ieder geval hebben we gebruik gemaakt van de 35 instructies die met de chip komen en dit maakt fout-vindende zeer eenvoudig als u weet dat de schuld ligt in de code die u hebt gegenereerd.
Zolang u slechts een kleine hoeveelheid code op een moment introduceert, zal u zitten kundig voor een programma geleidelijk omhoog-en-running te krijgen.
De interessante eigenschap van het programma is de algemene timing. De micro rekent op de achtergrond via timer1 en dit bestaat uit twee bestanden (registers) kunnen tellen tot 65.536. Een prescaler is toegevoegd aan het verhogen van de graaf tot 524,288. Dit is ongeveer een halve seconde.
Wanneer de timer overloopt, de uitvoering van het programma wordt onderbroken en de micro naar locatie 4 gaat (genaamd de Interrupt-locatie waar er een instructie naar een sub routine genoemd: "isr." Isr, een ander bestand is verlaagd (_20Secs) dertig - negen keer en dit levert de 20 seconden duur voor elk spel.
(Punt om te onthouden: Timer0 leidt niet tot een langdurige vertraging, dus Timer1 moet worden gebruikt).
De knoppen worden gedetecteerd door de 100n opladen en wachten 20mS om te zien als de condensator heeft geloosd. We weten dat het GLB zal kwijten in minder dan 8 MS als een knop wordt ingedrukt.
Het programma kent nu als een knop wordt ingedrukt of niet.
Het maakt een tweede pass, als een knop wordt ingedrukt, uitwerken welke knop is ingedrukt.
De eerste knop zal kwijten van het GLB in minder dan 2 MS, de tweede knop zal kwijten van het GLB in minder dan 4mS en de derde knop zal kwijten van het GLB in minder dan 8mS.
Het programma voert nu een lus van 1mS, op zoek naar een LOW op de detectie pin.
Het wordt afgesloten met een waarde van 1-8.
Het programma nu verlaagt de graaf-bestand en en als deze nul na één of twee verlaagt, knop 1 is ingedrukt. Het zet met verlaagd totdat de knop wordt gevonden.