P
Hallo,
Habe mir ein USB Board von Conrad gekauft, das K8055. Bisher gab es auch keine Probleme, ich kann mit dem Demo- Programm auf das Board zugreifen und es funktioniert alles. Ich will aber ein C++ Programm für das Board schreiben, dazu hab ich auch ein Beispiel- Programm, aber wenn ich dieses in C++ Builder ausführe dann öffnet sich ein Fenster "Package Import nicht gefunden: dss.bpi "
Eine solche Datei habe ich nicht und ich weiß leider nicht wo das Problem liegt.
Bitte um Hilfe
K8055_Demo.cpp
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
//---------------------------------------------------------------------------
USEFORM("Unit1.cpp", Form1);
//---------------------------------------------------------------------------
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
try
{
Application->Initialize();
Application->CreateForm(__classid(TForm1), &Form1);
Application->Run();
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
catch (...)
{
try
{
throw Exception("");
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
}
return 0;
}
Unit1.cpp
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#include "K8055D_C.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
bool DisableOtherFunctionCall = false;
int n=8;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
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";
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
CloseDevice();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
for (int i=0;i<8;i++) // Create Output Check Boxes
{
op[i] = new TCheckBox(GroupBox7);
op[i]->Name = "Outbox" + IntToStr(i+1);
op[i]->Caption = IntToStr(i+1);
op[i]->Width = 30;
op[i]->Left = 28 * i + 12;
op[i]->Top = 20;
op[i]->Parent = GroupBox7;
op[i]->OnClick = OutBoxClick;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::SetAllDigital1Click(TObject *Sender)
{
SetAllDigital();
DisableOtherFunctionCall = true;
for (int i=0;i<8;i++)
{
op[i]->Checked = true;
}
DisableOtherFunctionCall = false;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::OutBoxClick(TObject *Sender)
{
int k = 0;
int n = 1;
for (int i=0;i<8;i++)
{
if (op[i]->Checked == true)
{
k = k + n;
}
n = n * 2;
}
if (DisableOtherFunctionCall == false)
WriteAllDigital(k);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ClearAllDigital1Click(TObject *Sender)
{
ClearAllDigital();
DisableOtherFunctionCall = true;
for (int i=0;i<8;i++)
{
op[i]->Checked = false;
}
DisableOtherFunctionCall = false;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::SetAllAnalog1Click(TObject *Sender)
{
SetAllAnalog();
DisableOtherFunctionCall = true;
DAC1->Position = 0;
DAC2->Position = 0;
DisableOtherFunctionCall = false;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ClearAllAnalog1Click(TObject *Sender)
{
ClearAllAnalog();
DisableOtherFunctionCall = true;
DAC1->Position = 255;
DAC2->Position = 255;
DisableOtherFunctionCall = false;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::DAC1Change(TObject *Sender)
{
if (DisableOtherFunctionCall == false)
OutputAnalogChannel(1, 255-DAC1->Position);
Label2->Caption = 255 - DAC1->Position;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::DAC2Change(TObject *Sender)
{
if (DisableOtherFunctionCall == false)
OutputAnalogChannel(2, 255-DAC2->Position);
Label3->Caption = 255 - DAC2->Position;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
Timer1->Enabled = false;
long Data1;
long Data2;
long i;
ReadAllAnalog(&Data1, &Data2);
AD1->Position = Data1;
AD2->Position = Data2;
Label4->Caption = IntToStr(Data1);
Label5->Caption = IntToStr(Data2);
Counter1->Text = IntToStr(ReadCounter(1));
Counter2->Text = IntToStr(ReadCounter(2));
i = ReadAllDigital();
CheckBox3->Checked = (i & 1)>0;
CheckBox4->Checked = (i & 2)>0;
CheckBox5->Checked = (i & 4)>0;
CheckBox6->Checked = (i & 8)>0;
CheckBox7->Checked = (i & 16)>0;
Timer1->Enabled = true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ResetCounter1Click(TObject *Sender)
{
ResetCounter(1);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ResetCounter2Click(TObject *Sender)
{
ResetCounter(2);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::DebounceTime1Click(TObject *Sender)
{
long t1;
switch (DebounceTime1->ItemIndex) {
case 0 : t1 = 0;
break;
case 1 : t1 = 2;
break;
case 2 : t1 = 10;
break;
case 3 : t1 = 1000;
}
SetCounterDebounceTime(1,t1);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::DebounceTime2Click(TObject *Sender)
{
long t2;
switch (DebounceTime2->ItemIndex) {
case 0 : t2 = 0;
break;
case 1 : t2 = 2;
break;
case 2 : t2 = 10;
break;
case 3 : t2 = 1000;
}
SetCounterDebounceTime(2,t2);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::OutputTest1Click(TObject *Sender)
{
Timer2->Enabled = OutputTest1->Down;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer2Timer(TObject *Sender)
{
ClearDigitalChannel(n);
op[n-1]->Checked = false;
n = n +1;
if (n == 9)
n = 1;
SetDigitalChannel(n);
op[n-1]->Checked = true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int intDevices;
bool bChecked;
bChecked = false;
intDevices = SearchDevices(); // Find devices command
if (intDevices) { // If any device was found
GroupBox1->Enabled = false; // Disable buttons
Connect1->Enabled = false;
GroupBox10->Enabled = true;
Timer1->Enabled = true;
}
if (intDevices & 1) { // Device 0 = connected
RadioButton1->Enabled = true; // Enable the radio button
if (!bChecked) {
RadioButton1->Checked = true; // Set radio button check
SetCurrentDevice (0); // Set the current device command
bChecked = true;
}
} else RadioButton1->Enabled = false; // Disable radio button
if (intDevices & 2) { // Device 1 = connected
RadioButton2->Enabled = true; // Enable the radio button
if (!bChecked) {
RadioButton2->Checked = true; // Set radio button check
SetCurrentDevice (1); // Set the current device command
bChecked = true;
}
} else RadioButton2->Enabled = false; // Disable radio button
if (intDevices & 4) { // Device 2 = connected
RadioButton3->Enabled = true; // Enable the radio button
if (!bChecked) {
RadioButton3->Checked = true; // Set radio button check
SetCurrentDevice (2); // Set the current device command
bChecked = true;
}
} else RadioButton3->Enabled = false; // Disable radio button
if (intDevices & 8) { // Device 3 = connected
RadioButton4->Enabled = true; // Enable the radio button
if (!bChecked) {
RadioButton4->Checked = true; // Set radio button check
SetCurrentDevice (3); // Set the current device command
bChecked = true;
}
} else RadioButton4->Enabled = false; // Disable radio button
if (bChecked) Button1->Enabled = false;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::RadioButton1Click(TObject *Sender)
{
SetCurrentDevice (0); // Set the current device command
}
//---------------------------------------------------------------------------
void __fastcall TForm1::RadioButton2Click(TObject *Sender)
{
SetCurrentDevice (1); // Set the current device command
}
//---------------------------------------------------------------------------
void __fastcall TForm1::RadioButton3Click(TObject *Sender)
{
SetCurrentDevice (2); // Set the current device command
}
//---------------------------------------------------------------------------
void __fastcall TForm1::RadioButton4Click(TObject *Sender)
{
SetCurrentDevice (3); // Set the current device command
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Version();
}
//---------------------------------------------------------------------------
Unit1.h
//---------------------------------------------------------------------------
#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ComCtrls.hpp>
#include <Buttons.hpp>
#include <ExtCtrls.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published: // IDE-managed Components
TGroupBox *GroupBox1;
TCheckBox *CheckBox1;
TCheckBox *CheckBox2;
TButton *Connect1;
TLabel *Label1;
TGroupBox *GroupBox2;
TLabel *Label2;
TTrackBar *DAC1;
TGroupBox *GroupBox3;
TLabel *Label3;
TTrackBar *DAC2;
TGroupBox *GroupBox4;
TLabel *Label4;
TProgressBar *AD1;
TSpeedButton *OutputTest1;
TButton *SetAllDigital1;
TButton *ClearAllDigital1;
TButton *SetAllAnalog1;
TButton *ClearAllAnalog1;
TGroupBox *GroupBox5;
TLabel *Label5;
TProgressBar *AD2;
TGroupBox *GroupBox6;
TGroupBox *GroupBox7;
TGroupBox *GroupBox8;
TEdit *Counter1;
TButton *ResetCounter1;
TRadioGroup *DebounceTime1;
TGroupBox *GroupBox9;
TEdit *Counter2;
TButton *ResetCounter2;
TRadioGroup *DebounceTime2;
TTimer *Timer1;
TTimer *Timer2;
TCheckBox *CheckBox3;
TCheckBox *CheckBox4;
TCheckBox *CheckBox5;
TCheckBox *CheckBox6;
TCheckBox *CheckBox7;
TGroupBox *GroupBox10;
TRadioButton *RadioButton1;
TRadioButton *RadioButton2;
TRadioButton *RadioButton3;
TRadioButton *RadioButton4;
TLabel *Label6;
TButton *Button1;
TButton *Button2;
void __fastcall Connect1Click(TObject *Sender);
void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
void __fastcall SetAllDigital1Click(TObject *Sender);
void __fastcall OutBoxClick(TObject *Sender);
void __fastcall ClearAllDigital1Click(TObject *Sender);
void __fastcall SetAllAnalog1Click(TObject *Sender);
void __fastcall DAC1Change(TObject *Sender);
void __fastcall DAC2Change(TObject *Sender);
void __fastcall ClearAllAnalog1Click(TObject *Sender);
void __fastcall FormCreate(TObject *Sender);
void __fastcall Timer1Timer(TObject *Sender);
void __fastcall ResetCounter1Click(TObject *Sender);
void __fastcall ResetCounter2Click(TObject *Sender);
void __fastcall DebounceTime1Click(TObject *Sender);
void __fastcall DebounceTime2Click(TObject *Sender);
void __fastcall OutputTest1Click(TObject *Sender);
void __fastcall Timer2Timer(TObject *Sender);
void __fastcall Button1Click(TObject *Sender);
void __fastcall RadioButton1Click(TObject *Sender);
void __fastcall RadioButton2Click(TObject *Sender);
void __fastcall RadioButton3Click(TObject *Sender);
void __fastcall RadioButton4Click(TObject *Sender);
void __fastcall Button2Click(TObject *Sender);
private: // User declarations
TCheckBox* op[8];
TCheckBox* ip[5];
public: // User declarations
__fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
So sieht das Projekt in Borland aus:
[IMG]http://www.bilder-space.de/show_img.php?img=13773d-1295782102.jpg&size=thumb[/IMG]
Mfg. pHL