kramann.info
© Guido Kramann

Login: Passwort:










Mikrocontroller
1 Einfuehrung
..1.1 Entwicklungsgeschichtliches
..1.2 Maschinensprache
..1.3 Assemblerbeispiel
..1.4 Sprachwahl
..1.5 Praxis
....1.5.1 Digital_IO
....1.5.2 Byteoperationen
....1.5.3 AVR_Studio
....1.5.4 Testboard
....1.5.5 Aufgaben
....1.5.6 Do_it_yourself
......1.5.6.1 Ampel
......1.5.6.2 Programmierer
..1.6 Literatur
..1.7 Programmierer
....1.7.1 Bauverlauf
....1.7.2 KurzreferenzLow
....1.7.2 Kurzreferenz_16PU
..1.8 Uebung1
..1.9 BoardAtHome
....1.9.1 Software
....1.9.2 Hardware
....1.9.3 Knoppix
....1.9.4 Aufbau
....1.9.5 LED
2 Oszillator
..2.1 Assembler
..2.2 Interner_RC
..2.3 Quarz
..2.4 Taktgenerator
3 DigitalIO
..3.1 Elektrische_Eigenschaften
..3.2 Pullup_Widerstaende
..3.3 Bitmasken_Eingang
..3.4 Bitmasken_Ausgang
..3.5 Tic_Tac_Toe
....3.5.1 DuoLEDs
....3.5.2 Schaltplan
....3.5.3 Spielfeld
....3.5.4 Anwahl
....3.5.5 Kontrolle
..3.6 Laboruebung2
..3.7 Laboruebung2_alt
4 PWM
..4.1 Prinzip
..4.2 Nutzen
..4.3 Generierung
..4.4 Programmierung
..4.5 Servos
..4.7 Laboruebung3
..4.8 LoesungUE3
..4.9 Uebung6
5 LichtKlangKugeln
..5.1 LED
..5.2 RGB
..5.3 Sensoren
..5.4 lautsprecher
..5.5 tonerzeugung
6 UART
..6.1 Bussysteme
..6.2 UART
..6.3 RS232
..6.4 Hardware
..6.5 Senden
..6.6 Hyperterminal
..6.7 Empfangen
..6.8 Broadcast
..6.9 Uebung4
7 Infrarot
..7.1 schalten
..7.2 seriell
..7.3 Uebung
8 OOP
..8.1 Probleme
..8.2 Konzept
..8.3 Statisch
..8.4 Datentypen
..8.5 RS232
....8.5.1 Prozedural
....8.5.2 Analyse
....8.5.3 Umsetzung
....8.5.4 Vererbung
....8.5.5 Statisch
....8.5.6 Performance
..8.6 Fahrzeug
9 ADW
..9.1 ADW
..9.2 Zaehler
10 Peripherie
..10.1 RS232Menue
..10.2 ASCIIDisplay
..10.3 Tastenmatrix
..10.4 Schrittmotor
..10.5 Zaehler
..10.6 Uebung7
11 SPI
..11.1 Testanordnung
..11.2 Register
..11.3 Test1
..11.4 Test2_Interrupt
..11.5 Test3_2Slaves
..11.6 Laboruebung
12 EEPROM
13 I2C
..13.1 MasterSendByte
..13.2 MasterSend2Bytes
..13.3 MasterReceiveByte
..13.4 MasterReceive2Bytes
14 Anwendungen
..14.1 Mechatroniklabor
....14.1.1 Biegelinie
....14.1.2 Ausbruchsicherung
....14.1.3 Einachser
....14.1.4 AV
....14.1.5 Vierradlenkung
....14.1.6 Kommunikation
..14.2 Sinuserzeugung
....14.2.1 Variante1
....14.2.2 Variante2
....14.2.3 Variante3
....14.2.4 Variante4
..14.3 Laboruebung8
..14.4 Loesung_Ue8
..14.5 SPI_Nachtrag
20 Xubuntu

8.3 Statische Variablen und Methoden

  • In der Sache begründet, dass bestimmte Peripherie nur einmal existiert, liegt, dass häufig es nicht sinnvoll ist mehrere Objekte einer Klasse zu haben.
  • Hier bietet es sich an erst gar keine Objekte zu erzeugen, sondern mit statischen Methoden und Attributen zu arbeiten.
  • Zur Erinnerung: Statische Objekte und Attribute existieren, auch ohne das vorherige Erzeugen eines Objektes der Klasse, in der sie definiert sind.
  • Ein Beispiel ist eine Variable, die dazu benutzt werden soll, wieviele Objekte einer Klasse bereits erzeugt worden sind (s. Informatik3, Kapitel 3.6).
  • In unserem Fall existiert besispielsweise nur eine UART-Schnittstelle.
  • Somit leuchtet es nicht ein, warum z.B. die Möglichkeit bestehen soll mehr als ein Objekt von einer Klasse RS232 bilden zu können.
  • Hinweis: Wenn durch entsprechende Mechanismen dafür gesorgt wird, dass von einer Klasse nur ein Objekt erzeugt werden kann, spricht man auch von einem "Singleton".
  • Für eine Klasse RS232, die die RS232-Schnittstelle benutzbar macht und nur statische Methoden besitzt, würden Methoden und Attribute bespielsweise in folgender Weise angesprochen werden können:
  • RS232::start(baudrate,stopbits);RS232::sendeText(meintext);akku = RS232::holoZeichen();bereit = RS232::bereitschaftsflag; etc.
  • Die Verwendung statischer Methoden und Attribute erlaubt es ferner auf Methoden an jeder Stelle im Programm zuzugreifen, ohne beispielsweise Zeiger auf ein Objekt übergeben zu müssen.
  • Der doppelte Doppelpunkt mit dem vrangehenden Klassennamen definiert also eindeutig die Zugehörigkeit einer Methode oder eines Attributs.
  • Hier nun ein UML-Entwurf für eine allgemeine Klasse zur Verwendung in C++-Programmen für den ATmega32, in dem alle Methoden und Attribute statisch sind (statische Methoden und Attribute werden im UML-Klassendiagramm unterstrichen dargestellt):
UML-Klassendiagramm

Bild 8.3-3: UML-Klassendiagramm für den Entwurf einer geeigneten Klassenstruktur mit rein statischen Elementen.