Hallo zusammen. Ich habe ein Problem. Ich bin nicht im µController-programmieren bewandert. Es geht um einen ATmega128. Und mein Praktikumspartner ist abgesprungen... Und als würde das nicht reichen, muss ich das Ding nächste Woche abgeben. Kann mir jemand helfen?
Hier die Aufgabenstellunng:
Auswertung eines Bewegungssensors
Thema: Erstellung einer komplexen Echtzeitapplikation auf Basis von uC/
OS-II
Die Firma „Zerberus AG“ ist auf Sicherheitssysteme spezialisiert. Sie entwickelt momentan
ein autonomes Überwachungssystem, welches sich während der Schließzeiten eines
Bürokomplexes selbständig durch dessen Räume bewegen und die Einhaltung der Sicherheit
kontrollieren soll. Das System ist als ein Fahrzeug konzipiert und verfügt über ein autonomes
Navigationssystem.
Das System verfügt über einen Bewegungssensor entsprechend Arbeitsprobe 1. Die dort
genannten Parameter für Koordinaten, Maßeinheiten und Aufbau des Datenpaketes sind hier
anzuwenden. Die Daten werden in unregelmäßigen zeitlichen Abständen 0,01..0,1 s gemessen
und über eine serielle Schnittstelle mit 9600 Baud ausgegeben.
Aufgabe: Die Bewegungsdaten des Sensors sind lückenlos zu erfassen und möglichst online
auszuwerten. Die erfassten Daten sollen auf einem LCD-Display in geeignetem
Format dargestellt werden.
Bedienung:
Taste 1 Rückstellen der Messdaten auf den Nullpunkt (Referenzpunkt)
(X = 0, Y = 0, Richtung = positive X-Achse, Zeit = 0s).
Taste 2 Umschaltung zwischen verschiedenen Anzeigeformaten (soll auch
während der Messung möglich sein).
Anzeigeformate:
Zwischen folgenden Anzeigeformaten soll durch Betätigen der Taste 2 zyklisch umgeschalten
werden können.
1. Aktuelle Position als X- und Y-Koordinate (in mm)
2. Abstand vom Nullpunkt R und Richtung relativ zur Ursprungsrichtung
3. Gefahrene Gesamtstrecke
4. Zeit ab Rückstellen in Sekunden
Zur Kontrolle ob alle Datenpakete erfasst wurden, ist jederzeit die aktuelle Anzahl
eingetroffener Positionspakete (seit dem letzten Rücksetzen) anzuzeigen.
Anforderungen an die Lösung:
1. Die seriellen Daten sind mittels Interrupt-Service-Routine zu erfassen.
2. Es sind mindestens zwei Task und geeignete Kommunikations- bzw.
Synchronisationsmittel einzusetzen.
3. Zur Synchronisation zwischen ISR und Task sind Semaphore, Mailboxen o.ä. einzusetzen.
4. Das LCD-Display ist aller 200 ms zu aktualisieren.
5. Eine Reaktion auf einen Tastendruck darf höchstens 250 ms dauern.
Über die Versuche ist ein Protokoll zu erstellen und bis zum 10. November einzureichen. Es
sollte enthalten:
1. Ein Strukturdiagramm, welches die verwendeten Task, Ihre Aufgaben und
Kommunikationsbeziehungen darstellt.
2. Benutze Datenstrukturen, deren Übergabe zwischen den Task sowie bei Bedarf benötigte
Mittel zur Ressourcenverwaltung.
3. Diskussion der Priorisierung der Task auf Basis DMS-Algorithmus.
4. Eine geeignete Dokumentation der einzelnen Routinen und Datenwerte.
5. Der kommentierte Quelltext.
6. Testergebnisse
Beachte:
• Die in SW-Technik diskutierten Richtlinien zur Quelltextgestaltung sind
anzuwenden!
• Die Bearbeitung sollte in Zweiergruppen erfolgen.