Forum: PC-Programmierung Velleman VM110n Einrichten


von Phobos (Gast)


Lesenswert?

Hallo...

Haben vor einem 1/4 Jahr in der Technikerschule angefangen C++ zu 
Programmieren. Jetzt vor den Sommerferien wollte ich schonmal für meine 
Facharbeit etwas tun. Ich hab mit dafür das Velleman VM110n Modul 
gekauft was ja wohl Baugleich mit dem 8055 ist.
Das Standartprogramm läuft ohne probleme. Kann alles ansteuern.
Programmiere mit Borland C++ 6. Dll Datei hab ich in Windows ordner 
kopiert.

So nun zum Problem: Ich will in mein Programm z.B. den Connection button 
einbauen um die Karte zu verbinden. Beide Jumper sind auf der Paltine 
gesetzt und somit die adresse 0. Der Standartbefehl laut beiliegender 
Programmierungshilfe lautet:
int OpenDevice(int CardAddress); //Opens the communication link to the 
K8055N device

So ist es im Programm:

void __fastcall TForm1::Connect1Click(TObject *Sender)
{
  int CardAddr = 3 - (int(CheckBox1->Checked) + int(CheckBox2->Checked) 
* 2);
  int h = OpenDevice(CardAddr);
  switch (h)
  {
    case  0:
    case  1:
    case  2:
    case  3:
      Label1->Caption = "Card " + IntToStr(h) + " connected";
      Timer1->Enabled = true;
      break;
    case  -1 :
      Label1->Caption = "Card " + IntToStr(CardAddr) + " not found";
    break;
  }
}

So hab ich es geschrieben: int OpenDevice(int 0);

Wenn ich das so in mein Programm reinschreibe bekomme ich eine 
Fehlermeldung:
[C++ Fehler] Unit1.cpp(45): E2188 Ausdruckssyntax
[C++ Fehler] Unit1.cpp(45): E2293 ) erwartet
[C++ Warnung] Unit1.cpp(46): W8004 'OpenDevice' wurde ein Wert 
zugewiesen, der nie verwendet wird

Muss ich das wort OpenDevice deklarieren? Aber womit und was gehört da 
rein?  Denk ich mir die Geschichte zu einfach?

Das gleiche bei dem Setzen der Ausgänge.

void SetDigitalChannel(int Channel); Sets the digital output channel

Wie deklarier ich die Ausgänge wo jetzt "Channel" steht? einfach 1-8 
Reinschreiben?


Hab mit das Programm was dabei ist schon angeguckt da stehts so:

CheckBox8->Checked ? SetDigitalChannel(1): ClearDigitalChannel(1);


Wäre dankbar über ein Tipp was ich machen muss. Danke!

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Phobos schrieb:
> So hab ich es geschrieben: int OpenDevice(int 0);

Du solltest Dir ein C- bzw. ein C++-Buch anschaffen und durchlesen. Vom 
Anfang an, denn was Dir hier fehlt, sind wirklich jegliche Grundlagen.

Dein spezifisches Problem an dieser Stelle ist es, zwischen einem 
Funktionsprototypen und dem Aufruf einer Funktion zu unterscheiden.

Was das ist, wie sich das unterscheidet, und wie man das ganze nutzt, 
steht in eben jenem C- bzw. C++-Buch.

von Phobos (Gast)


Lesenswert?

Ich bin bisher so weit das ich glaube das es mit der .ddl datei von 
velleman zusammenhängt.
Alle "fertigen" Projekte kann ich öffnen, aber wenn ich die selber 
erstellen möchte und mit z.B. dem befehl Void SetDigitalChannel (0) 
kennt er diesen Befehl nicht.  Da er wohl in der 8055.ddl steht.

Muss man die ddl datei speziel einbinden außer sie in den Windows ordner 
zu ziehen? Wäre nett wenn jemand da ne ahung hat oder vllt schinmal das 
gleiche Problem hatte.

Danke!

von krumeltee (Gast)


Lesenswert?

Funktionsprototypen, wie vorher schonmal gesgat.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.