wie kann ich ein Lauflicht mit dem IOWarrior 40 erzeugen

Dies ist das deutsche Forum für alle Themen um den IO-Warrior. Beiträge bitte nur in Deutsch.

Moderator: Guido Körber

Post Reply
TChris
Posts: 4
Joined: Wed Mar 08, 2006 5:20 pm

wie kann ich ein Lauflicht mit dem IOWarrior 40 erzeugen

Post by TChris »

Hallo Leute, ich habe 'n kleines Problem. Ich muss ein Lauflicht für mein iowarrior 40 erzeugen. Ich weisst nur nicht wie ich auf den Port 3 ( wo die LEDs stehen ) zugreifen kann... ich meine mit welchem Befehl. Ist die Frage klar? Kann mir jemand da helfen? danke im Voraus.
make love, not war!
Guido Körber
Site Admin
Posts: 2876
Joined: Tue Nov 25, 2003 10:25 pm
Location: Germany/Berlin
Contact:

Post by Guido Körber »

Kein Befehl, Portpins werden immer alle auf einmal geschrieben über Interface 0.
Robert Marquardt
Posts: 543
Joined: Mon Dec 01, 2003 6:09 pm

Post by Robert Marquardt »

Welche Programmeirsprache?
TChris
Posts: 4
Joined: Wed Mar 08, 2006 5:20 pm

Post by TChris »

oh sorry, ich möchte es in C++ programmieren... habe VC++ 6 installiert.
make love, not war!
Robert Marquardt
Posts: 543
Joined: Mon Dec 01, 2003 6:09 pm

Post by Robert Marquardt »

Dan ist das Beispiel "samples\Simple IO\C" zustaendig.
Es ist ein VC6-Projekt, also sollte es kein Problem sein es zu oeffnen.

Das Beispiel enthaelt die Funktion WriteSimple, die darauf spezialisiert ist nur die LEDs der Starterkits anzusteuern. Es gibt eine Fallunterscheidung fuer IOW24 und IOW40, da die fuer LEDs direkt geeigneten Pins nicht an gleicher Stelle sitzen.

Das Beispiel steuert alle vorhandenen IO-Warrior an. Das sollte man auf einen vereinfachen.

Was man nun machen muss ist erst mal ein 0xFF schreiben, damit alle LEDs ausgehen. Nun schreibt man zeitgesteuert ein Byte mit jeweils einem Bit rueckgesetzt, denn eine 0 macht die LED an. Es werden also immer alle LEDs geschaltet, aber nur eine ist an.

Code: Select all

{
  DWORD value;
  int i;

  // alle LEDs aus
  val = 0xFF;
  WriteSimple(IOW, val);
  
  for (i = 0; i < 8; i++)
   {
    // dieser Ausdruck setzt nur das Bit i in 8 gesetzen Bits zurueck
    val = 0xff & ~(1 shl i);
    WriteSimple(IOW, val);
    Sleep(50);
   }
TChris
Posts: 4
Joined: Wed Mar 08, 2006 5:20 pm

Post by TChris »

Vielen Dank. Der Code hat mir sehr geholfen.
make love, not war!
Post Reply