kramann.info
© Guido Kramann

Login: Passwort:










COACH2
1 Planung
2 Architektur
3 Anzeige
4 EEPROM
5 I2C
..5.1 MasterSendByte
..5.2 MasterSend2Bytes
..5.3 MasterReceiveByte
..5.4 MasterReceive2Bytes
6 UART
7 DFT
8 FFT
9 Planung2
10 Klassen
..10.1 AnzeigeTaster
..10.2 RS232
..10.3 MotorServo
..10.4 Drehgeber
..10.5 Sensor
..10.6 Funk
11 Adaption
..11.1 Programmiertechnik
..11.2 Evoopt
12 Fuzzy
..12.1 Uebungsaufgabe
..12.2 Fuzzygroesse
..12.3 Fuzzyset
..12.4 Lookuptable
13 Skript
..13.1 Funkkorrektur
..13.2 Skriptsprachen
..13.3 Anforderungen
..13.4 Agentensysteme
..13.5 Implementierung
..13.6 Experimente
14 Gesamtkonzept
..14.1 Skripterweiterung
..14.2 Makroverhalten
67 Echtzeitsysteme
..67.1 Einfuehrung
....67.1.1 Echtzeit
....67.1.2 Korrektheit
....67.1.3 Hardware
....67.1.4 Ziele
....67.1.5 Synchronprogramm
..67.2 Threads
....67.2.1 Java
....67.2.2 Synchronisierung
..67.3 COACH
....67.3.1 Kaskadenregler
....67.3.2 Zeitebene1
....67.3.3 Zeitebene2
....67.3.4 Zeitebene3
....67.3.5 Puck
....67.3.6 Puckschwarm
..67.4 RTAIlab
....67.4.1 Slax
....67.4.1 USB_Stick
....67.4.2 Sinus
..67.5 Semaphor
....67.5.1 Laufkatze
....67.5.2 Java
....67.5.3 Semaphor
..67.6 Audio
....67.6.1 wav
....67.6.2 Linux
..67.7 Lookup
....67.7.1 Fuzzy
....67.7.2 PWM
..67.8 NeuronaleNetze
....67.8.1 Neuron
....67.8.2 Backpropagation
....67.8.3 Umsetzung
....67.8.4 Winkelerkennung
..67.9 Internetprogrammierung
....67.9.1 Codegenerierung
....67.9.2 PHP_Programmierung
....67.9.3 PHP_OOP
....67.9.4 Java
....67.9.5 UDP
..67.10 DFT
..67.11 FFT
..67.12 Zustandsmaschine
..67.13 Fuzzy
....67.13.1 Fuzzylogik
....67.13.2 FuzzyRegler
....67.13.3 Uebung9
....67.13.5 Softwareentwicklung
......67.13.5.1 AgileSoftwareentwicklung
......67.13.5.2 FuzzyRegler
......67.13.5.3 Uebung
....67.13.6 Umsetzung
......67.13.6.1 FuzzyRegler
......67.13.6.2 Simulation
......67.13.6.3 Optimierung
......67.13.6.4 Uebung
....67.13.7 Haengependel
......67.13.7.1 Haengependel
......67.13.7.2 Simulation
......67.13.7.3 FuzzyRegler
......67.13.7.4 Optimierer
......67.13.7.5 Genetisch
....67.13.8 Information
....67.13.9 Energie

10.2 AVR-Projekt coach2.2_02_RS232 - Verwendung der seriellen Schnittstelle

  • Folgende virtuellen Klassen wurden implementiert:
class RS232BASIS
{
    public:
        virtual void sendeZeichen(uint8_t zeichen);
        virtual uint8_t holeZeichen();
        virtual void sendeText(char*);            
        virtual char* holeText(bool reflect);            
        virtual void sendeInteger(int16_t);            
        virtual int16_t holeInteger(bool reflect);            
        virtual void sendeDouble(double);            
        virtual double holeDouble(bool reflect);            
};

Code 10.2-1: Virtuelle Basisklasse der Klasse RS232

Methodenname Beschreibung Beispiel
sendeZeichen(uint8_t zeichen)


Sendet ein einzelnes Zeichen an den PC rs232.sendeZeichen('a');
uint8_t holeZeichen()


Holt ein einzelnes Zeichen vom PC c = rs232.holeZeichen();
sendeText(char*)


Sendet eine Textzeile an den PC rs232.sendeText("Motor gestartet");
char* holeText(bool reflect)


Liest vom Hyperterminal einen Text, der mit # abgeschlossen werden muß. puffer = rs232.holeText(true);
sendeInteger(int16_t)


Sendet eine ganze Zahl. rs232.sendeInteger(42);
int16_t holeInteger(bool reflect)


Holt eine ganze Zahl x=rs232.holeInteger(true);
sendeDouble(double)


Sendet eine Fließkommazahl. rs232.sendeDouble(-9.5);
double holeDouble(bool reflect)


Holt eine Fließkommazahl. wert = rs232.holeDouble(false);

Tabelle 10.2-1: Methoden der Klasse RS232

  • Achten Sie beim Testen des Hauptprogramms auf folgendes:
  • Es wird die Kommunikation mit dem PC getestet. Dies setzt voraus, dass das Hyperterminal gestartet und richtig konfiguriert wurde und Mikrocontroller und PC über die serielle Schnittstelle verbunden sind.
  • Die boolsche Variable "reflect" entscheidet darüber, ob die am Hyperterminal eingetippten Zeichen dort auch erscheinen. Dazu müsssen sie vom Mikrocontroller zurückgespiegelt werden.
  • Der Mikrocontroller muß über den 9,216MHz Quarz getaktet sein.
  • Am Hyperterminal müssen eingestellt sein: Baudrate:115200, 8 Datenbits, ein Stopbit, kein Startbit, keine Flußsteuerung.