C/C++
|
Während der Vorbereitung der Fachhochschulreife erarbeitete ich mir im Rahmen eines Projektes eigenständig erste Fähigkeiten in C/C++.
Fasziniert von der Materie vertiefte ich meine Programmierkenntnisse kontinuierlich bis heute. Im Laufe der Zeit lernte ich nicht nur die Standardbibliothek sehr detailliert kennen, sondern auch die Standard Template Liberary (STL) sowie generisches (Typen-sicheres) Programmieren.
Im Bereich Interprozesskommunikation konnte ich Erfahrungen mit boost (Interprocess) im Bereich Shared Memory und mit Unix Sockets (TCP/UDP)/IP sammeln.
Während meiner Diplomarbeit verwendete ich die Bibliotheken QT4 und OpenGL.
Aber auch Embedded kann ich auf einen angemessenen Erfahrungsschatz zurück greifen. So habe ich in Aalen an der Fachhochschule auf einem Board einen PIC18Fxx in C und Assembler programmiert. Es ging primär um die Entprellung und Ansteuerung der I/O sowie die Implementierung von 32 Bit-Operationen. Auf einem DSP Board habe ich im Rahmen eines Praktikums digitale Filter implementiert. In meinem zweiten Praxissemester habe ich bei der Firma ERL-Elektronik auf einem XC164 von Infineon den Treiber für eine Motoransteuerung implementiert. |
---|
Embedded
|
Da meine C Wurzeln auf Windows 3.11 Zeiten zurückgehen, habe ich mich schon früh in unmittelbarer Hardwarenähe aufgehalten.
Meinen ersten Microcontroller habe ich jedoch erst in der FH Allen programmiert.
Ich lernte den Umgang mit I/O kennen, sowie Hardware und Software Interrupts. (Pullup Widerstände für Taster, deren Entprellung sowie timer gesteuerte Interrupts)
Auch mit besonderem Augenmerk auf die Speicherverwaltung.
Angetrieben von der Freude und Einfachheit von Embedded Systemen, habe ich ein halbes Jahr als embedded System Programmierer gearbeitet,
und den Treiber für eine Feldorientierte Steuerung implementiert.
Erwähnenswert sind noch Praktika an der Hochschule zu der Vorlesung Digitale Signalverarbeitung. Dort habe ich den Umgang mit Filtern auf einem DSP-Board kennengelernt.
Gegen Ende meines Studiums habe ich im Rahmen einer Gruppenarbeit ein eigenes Board entworfen, gelayoutet und die Hardware nahe Programmierung übernommen.
|
---|
Bibliotheken
|
Für die graphische Benutzeroberfläche meiner Diplomarbeit verwendete ich die Bibliothek QT4. Sie kam hauptsächlich zur Steuerung des Programmablaufs zum Einsatz.
Innerhalb der Vorlesung Bildverarbeitung und Mustererkennung habe ich alle besprochenen Filter auf Bilder angewandt. Zur Darstellung kam auch hier OpenGL zum Einsatz. Im letzten Semester habe ich auf einer Linuxplattform Chat-Programme geschrieben. Dazu wurden Unix Sockets verwendet. Diese Programme funktionieren auch als separate Prozesse auf einem PC und realisieren somit eine Interprozesskommunikation. Eine andere Möglichkeit, Daten zwischen Prozessen auszutauschen, stellt Shared Memory dar. Mit Hilfe von Boos.Interprocess habe ich auch den schnellen Weg zur Interprozesskommunikation implementiert. |
---|
Feldtheorie
|
Die Feldtheorie ist wohl eines der interessantesten Bereiche der Elektrotechnik. Die Einarbeitung ist mir mit Hilfe von K.Simony "Theoretische Elektrotechnik" und Günther Lehner "Elektromagnetische Feldtheorie"
gelungen. So kenne ich die Maxwell-Gleichungen bereits sehr detailliert.
Im Rahmen meiner Arbeit üeber finite Elemente habe ich mich in erster Linie mit den Poisson/Laplace-Gleichungen mit einer Dirichlet-Randbedingung auseinandergesetzt.
Da die Definition von Potentialfunktionen untrennbar mit der Feldtheorie und der Funktionentheorie verknüpft ist, habe ich mich auch mit der komplexen Analysis detaillierter auseinander gesetzt. So ist ein Programm entstanden, welches mit Hilfe einer Punkte- und Kanten- Liste sowie den damit verkmüpften Materialparametern eine Systemmatrix generiert, und diese dann mit einem Iterativen Verfahren löst. Ich habe mehrere Solver implementiert. So zum Beispiel die Gauß-Seidel-Relaxation, die Methode des steilsten Abstiegs, das Verfahren der konjugierten Richtung und das Verfahren der konjugierten Gradienten. |
---|
Simulation
|
Innerhalb meiner Studienarbeit habe ich einige Scripte mit Hilfe von Matlab geschrieben. Diese dienten zum Beispiel zum Testen von digitalen Filtern.
Auch mit Simulink habe ich mich ein Semester lang befasst.
Ich habe dabei MA-Filter (moving-average), AR-Filter (auto-regressive), ARMA-Filter sowie einen ARXMA-Filter (Rauschunterdrückung durch &uueml;berbesetzte Filtermatrix) entworfen. Die Impulsantwort wurde adaptiv erzeugt. |
---|
UML 2
|
Auf dem Gebiet der Softwarearchitektur habe ich einschlägige Erfahrungen in UML 2. Dabei bin ich mit den gängigen Analysemustern vertraut wie zum Beispiel Liste, Examplartyp, Baugruppe, etc. .
Eine grafische Benutzeroberfläche habe ich mit Hilfe der UML für meine Diplomarbeit entworfen. Auch in einem Praktikum an der Fachhochschule habe ich Software entworfen. Sowohl das statische als auch das dynamische Modell ist dabei zum Einsatz gekommen.
Für Embedded Systems wurden Zustandsautomaten zur Beschreibung verwendet. Zur Beschreibung der Transition, ausgelöst durch ein Ereignis (Trigger) sind Signale, Operationsaufrufe oder zeitliche Ereignisse verwendet worden.
Zum Beispiel habe ich innerhalb eines Praktikums (Gruppenarbeit) Zustandsgraphen verwendet. Dabei war ich für die Hardwarenahe Programmierung und das Design und Layouten der Hardware zuständig.
|
---|