05.11.2013 Aufrufe

est Bewegung durch eine 3D-Landschaft mit ... - David Zaadstra

est Bewegung durch eine 3D-Landschaft mit ... - David Zaadstra

est Bewegung durch eine 3D-Landschaft mit ... - David Zaadstra

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Projektarbeit 2002, BKIK 2/1<br />

<strong>David</strong> <strong>Zaadstra</strong>, Alexander Fuchs<br />

<strong>Bewegung</strong> <strong>durch</strong> <strong>eine</strong> <strong>3D</strong>-<strong>Landschaft</strong> <strong>mit</strong> Fernbedienung<br />

Elektronikschule Tettnang<br />

6. Kommunikation Mikrokontroller -> PC<br />

6.1 Empfang der Daten <strong>mit</strong> den Communications-Funktionen der Win32-API<br />

Das Win32 API der Microsoft Windows Betriebssysteme stellt unter dem Bereich<br />

„Communications“ Funktionen zur Verfügung, die es ermöglichen, Daten über die seriellen<br />

Schnittstellen auszutauschen.<br />

Die Kommunikation zu <strong>eine</strong>r der seriellen Schnittstellen wird über die Funktion<br />

CreateFile aufgebaut. Die Schnittstelle wird also wie <strong>eine</strong> Datei angesprochen.<br />

Der Unterschied liegt nur in den Parametern, die bei der Initialisierung übergeben werden.<br />

Will man zum Beispiel COM1 ansprechen, sieht die Initialisierung so aus:<br />

CODE:<br />

DCB dcb;<br />

HANDLE com;<br />

DWORD error;<br />

BOOL success;<br />

com = CreateFile(<br />

"COM1",<br />

// Kontrollstruktur für die serielle Schnittstelle<br />

// Handle der Schnittstelle<br />

// für zurückgegebene Fehlercodes<br />

// COM1 öffnen<br />

GENERIC_READ |<br />

GENERIC_WRITE,<br />

// lesen und schreiben<br />

0, // exklusiver Zugriff<br />

NULL,<br />

OPEN_EXISTING,<br />

// k<strong>eine</strong> Sicherheitsattribute<br />

// muss bei der seriellen Schnittstelle<br />

// verwendet werden<br />

0, // kein asynchroner Zugriff<br />

);<br />

NULL<br />

// muss bei der seriellen Schnittstelle<br />

// verwendet werden<br />

// Ist das zurückgegebene Handle gültig?<br />

if (com == INVALID_HANDLE_VALUE)<br />

{<br />

error = GetLastError(); //Fehlercode holen<br />

// hier Fehlerbehandlung einfügen<br />

}<br />

- 46 -

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!