Amateurfunk verbindet Menschen in der ganzen Welt

Projektsoftware

Die Software für meine Projekte wird - in der Regel - in der Programmiersprache PASCAL erstellt. Heute programmiert zwar alle Welt in "C", aber ich kann mich mit "C" einfach nicht anfreunden. Muss ich ja auch nicht. In wenigen Fällen programmiere ich auch direkt in Assembler. Mittlerweile aber kaum noch, da es in PASCAL halt bequemer ist und für viele Bereiche schon Routinen in der Programmbibliothek enthalten sind (Display, TWI-Interface usw).

Zur Verwendung kommt der Compiler "mikroPascal PRO for AVR" von Mikroelektronika. Dieser Compiler erscheint mir gut geeignet, da auch das Preis-Leistungsverhältnis stimmt. Für kleine Projekte braucht man ihn auch nicht kaufen. Bis 4 KB Output Code kann man mit der Demo-Version erzeugen. Damit geht schon eine ganze Menge. Die Herrlichkeit ist aber schlagartig vorbei, wenn man diverse Libraries einbinden muss, weil man z.B. irgendwelche mathematischen Verrenkungen machen muss. Dann braucht man doch einiges an Speicher. Aber wer mal reinschnuppern will, der kann mit 4 KB schon eine Menge testen. Dann weiss man zumindest, was der Compiler leistet und kann ihn ausgiebig testen, bevor man sich entschließt, ihn zu kaufen. So ganz preiswert ist er ja nicht. Man kann ihn mit Dongle oder Software-Lizenz erwerben und man bekommt bei letzterer auch, auf Wunsch, eine zweite Lizenz für einen weiteren Arbeitsplatz.  

Mit PASCAL kann man sehr strukturiert programmieren und erreicht daher auch sehr schnell funktionsfähige Resultate. Bei der Erstellung von Software gelten aber andere Bedingungen wie z.B. dem Zusammenlöten eines Bausatzes. Hier muss man exakt wissen was man macht. Beim Bausatz erreicht man ein funktionsfähiges Model auch dann, wenn man nicht genau versteht, was drinnen alles passiert. Beim Programmieren ist das anders. Weil der Prozessor strikt das Programm abarbeitet. Ist hier ein Fehler programmiert, dann macht er den auch. Klar, das Ding ist ja nicht intelligent (auch wenn manche das meinen), aber dafür halt sauschnell.

Das heißt, man muss genau wissen wie die einzelnen Komponenten des Prozessors funktionieren und genauso muss man wissen wie die eventuell vorhandene Peripherie funktioniert. Das bedeutet, man muss hier oft in diverse Datenblätter schauen. Für die Meisten von uns ist das ja sowas wie eine Bankrotterklärung....... Aber hier geht es nicht anders, weil die Software halt eben bis ins Detail richtig sein muss, damit es dann auch wie gewünscht funktioniert.

Für Interessierte habe ich, als Beispiele, die Listings des "Attenuators" und des "Datenloggers" bereitgestellt. Hier kann man die Struktur von PASCAL gut erkennen. Viele Strukturanweisungen (IF Then Else, Repeat Until, Case usw.)  sind hier verwendet. Als Hilfe zum Einstieg sind diese Programmbeispiele aber nicht geeignet.

Programmierung der Controller
Das vom Compiler generierte HEX-File muss anschließend in den Controller übertragen werden. Das kann in einem externen Programmiergerät erfolgen oder aber direkt in der Schaltung. Letzteres ist die von mir bevorzugte Methode. Hier kann man - ohne den Controller aus der Schaltung zu entfernen - die aktuelle Software in den Flash-Speicher übertragen. Damit können auch Änderungen sehr schnell in den Controller übertragen werden. Aus diesem Grunde wird in jedes Projekt ein 10-pol. Wannenstecker mit Normbelegung eingebaut.

Außer dem Programmieren des Flash-Speichers und eventuell des EEPROM-Speichers müssen aber auch die  Fuse-Bits des Controllers entsprechend gesetzt werden. 

Zum Übertragen des HEX-Files in den Controller und zum Setzen der Fuse-Bits benötigt man dann noch ein entsprechendes Software-Tool und eine passende Hardware.

Als Hardware verwende ich den Programmier-Stick "mySmartUSB light", sowie den Programmer "mySmartUSB MK2" plus Zusatzboard "myMultiProg MK2" mit diversen Sockeln und das passende Programmiertool "myAVR-ProgTool" von myAVR.

Das Software-Tool ist Freeware und steht jedem Interessenten zur freien Verfügung. Hier lassen sich auch noch andere Programmiergeräte einbinden. Sehr komfortabel find ich in diesem Tool die Bearbeitung der Fuse-Bits. Diese können hier - ohne geistige Verrenkungen - in drei Tabellen gesetzt oder gelöscht werden.


ISP-Programmier-Stick am Zielsystem angeschlossen

PASCAL

Der Name geht zurück auf den Franzosen Blaise Pascal, 1623 - 1662. Er war Mathematiker, Physiker und Philosoph. Entwickelt wurde PASCAL aber von Niklaus Wirth im Jahr 1971 an der ETH Zürich. PASCAL wurde ursprünglich entworfen, um das Lehren einer strukturierten Programmierung zu ermöglichen.