MicroSimon (6 / 7 schritt)


Schritt 6: Firmware design

Machen das Spiel so einfach wie ist möglich, zu verstehen und verändern die Firmware rein in C mit dem Hi-Tech-C-Compiler geschrieben. Die PIC12F683 hat nur 2K Flash Programm-was, dass Sie so effizient wie möglich mit den Code bedeutet, um sicherzustellen, dass es auf dem Zielgerät passen. Der Code ist in Module unterteilt, die jeweils mit verschiedenen Hardware-Komponenten ermöglichen es, leicht verständlich und geändert werden.

Buttons.c:
Dieses Modul ist dafür verantwortlich den Schaltflächenzustand über PICs ADC zu lesen. Der ADC wird gelesen und die gedrückte Taste wird durch eine kleine Auswahl an möglichen Eingangsspannung für jede Taste bestimmt. Der Code bietet auch Schaltfläche Entprellung ein- und ausschalten, damit die Schaltflächenaktion ist "positiv" und laut Schalter nicht zu falschen Messergebnissen (was nicht während Ihrer epischen Spiel gewinnen wäre lustig!) führen.

charlieplex.c :
Dieses Modul bietet die Charlieplexed-LED-Steuerung setzt die PIC Port Richtungen und Leistung um die richtige LED.

Sleep.c:
Dieses Modul enthält die Befehle, um das Bild in den stromsparenden Ruhezustand setzen.

Sound.c:
Dieses Modul enthält Funktionen, die den Ton eingeschaltet sein (bei einer bestimmten Frequenz) zu ermöglichen und ausgeschaltet. Es enthält auch die Interrupt Service Anfrage (ISR) Funktion, die über einen basierte timer1 Interrupt aufgerufen ist und schaltet die Ausgangs-Pin ein und aus, um den gewünschten Klang zu erzeugen.

Simon.c:
Dieses Modul enthält des Spiels Automat, der durch die wichtigsten Schleife abgefragt wird funktionieren alle 10 Millisekunden. Das Spiel wird als einer Befragten State-Machine ermöglicht exaktes Timing des Spiels unter Vermeidung der Verwendung von Interrupts (die mit der Klangerzeugung stören würden, da die PIC12F nicht Multi Level priorisierte Interrupts) implementiert. Die Polling-Technik ermöglicht auch das Bild, um ständig das Spiel Schaltflächenzustände lesen und führen Entprellung ohne verhindert, dass das Spiel warten Timeouts und Benutzereingaben während des Spiels.

Das Spiel selbst basiert auf dem ursprünglichen Spiel 1 aus dem MB Elektronik Simon Spiel. Das Spiel gibt aus eine ständig wachsende Zahl von Farben in eine Sequenz, die Sie wiederholen müssen, um zu gewinnen. Die Anzahl der Farben in der preisgekrönten Reihenfolge richtet sich nach den gewählten Schwierigkeitsgrad.

Main.c:
Das Modul main.c initialisiert den PIC einsatzbereit und dann erlaubt dem Benutzer, einen erforderlichen Skill Level auswählen, bevor das Spiel. Wenn die Schaltfläche "Start" gedrückt wurde jagt die Firmware"" die LED um anzuzeigen, dass sie Auswahl Skill Levels wartet. Der Benutzer wählt Skill-Level 1 bis 4 mit der blauen Taste für Stufe 1, den roten Knopf für Stufe 2, die grüne Taste für Stufe 3 oder die blaue Taste für Level 4.

Das Hauptmodul ist auch verantwortlich für die Generierung einer Zufallszahl, die welche die nächste Farbe in der Reihenfolge wählt. Dies geschieht mit der einfachen Technik der kontinuierlich inkrementieren eines Zählers zwischen 1 und 4 als Spiel Umfrage Schleifen. Da das Spiel den Zähler liest auf Basis, wenn der Benutzer eine Taste drückt ist das Ergebnis eine Zufallszahl, die jedes Mal abgeholt. Da die Zeit zwischen betätigen der Reset-Taste und das Bild fertig konstant ist, wird die erste Skill Level Auswahl verwendet, um die zufällige erste Farbe für das Spiel zu bekommen.

In Verbindung stehende Artikel