Follow-up Stoppuhr mit Digitalanzeige
Wir möchten Euch nicht vorenthalten, wie es mit der Stoppuhr-Platine aus einem der letzten Beiträge weiter ging.
Zur Erinnerung: Wir haben für einen Kunden aus dem Bereich Sondermaschinenbau eine Stoppuhr mit 7-Segment Digitalanzeige realisiert. Die zentrale Komponente des Boards ist ein AVR ATmega32 Mikrocontroller, den es nun noch zu programmieren galt.
Zwischenzeitlich sind die bestückten Platinen eingetroffen. Sind wirklich schick geworden, wie wir finden. Doch seht selbst:
Die Firmware für den Mikrocontroller haben wir in C programmiert. Da wir ein Faible für gelungene OpenSource-Projekte haben, würdigen wir gerne die großartigen Leistungen von OpenSource Communities, indem wir selbst quelloffene Tools in unserer täglichen Arbeit nutzen. Daher setzten wir für die Entwicklung der Firmware auf den Editor Geany unter Debian Linux sowie auf die AVR-GCC Toolchain für die AVR Mikrocontroller, bestehend aus der C-Bibliothek avr-libc, dem C-Compiler AVR-GCC sowie dem ISP-Programmer AVRDUDE auf Kommandozeilenbasis.
Test der Platine
Nachdem sichergestellt war, dass die Platinen elektrisch soweit in Ordnung sind und der verbaute Schaltregler eine saubere Versorgungsspannung für den Mikrocontroller bereitstellt, konnte es weiter gehen. Das Setzen der erforderlichen Fuses für den ATmega32 funktionierte problemlos. Damit war klar, dass auch die ISP-Schnittstelle ordnungsgemäß arbeitet. Anschließend konnten wir verifizieren, dass der Schwingquarz einen ordentlichen Takt liefert. Prima – damit stand dem Flashen, Testen und Debuggen der Firmware nichts mehr im Wege.
Der Quellcode
Beim Quellcode haben wir bewusst auf eine modulare, übersichtliche Programmstruktur geachtet und alle wichtigen Abläufe in Funktionen mit einfacher, klarer Zuständigkeit gebündelt. Dies hat sich dann auch als sehr vorteilhaft erwiesen. Schon das erste Kompilieren lief ohne Fehler glatt durch. Und auch das Debuggen hielt sich dadurch stark in Grenzen. Innerhalb weniger Stunden nach dem ersten Kompiliervorgang waren wir am Ziel: Die Stoppuhr funktionierte wie vom Kunden gewünscht.
Über einen zentralen Steuereingang lässt sich die Uhr starten, stoppen und zurücksetzen. Sie zählt im Sekundentakt hoch und setzt sich nach dem Erreichen von 59:59 automatisch auf 00:00 zurück.
Fazit – hat Spaß gemacht! Abschließend noch ein paar Eindrücke von der Programmierarbeit: