Forum: Mikrocontroller und Digitale Elektronik Problem mit FT232R im CBUS Bit Bang Mode


von Bernhard84 (Gast)


Lesenswert?

Hallo!

Ich betreibe einen FT232R unter Windows XP mit Combined Driver und ich 
will den CBUS Bit Bang Mode verwenden.

mein Code schaut folgendermaßen aus:

    ftStatus=my_FT_Open(0,&ftHandle);
    if(ftStatus==FT_OK)
    {
      printf("Device opened\n");
//      ftStatus=my_FT_ResetDevice(ftHandle);
//      if(ftStatus==FT_OK) printf("Device Reseted\n");
      ftStatus=my_FT_GetBitMode(ftHandle,&a);
      if(ftStatus==FT_OK) printf("Device GetBit 0x%02X\n",a);
      for(i=0;i<20;i++)
      {
        a=i|0xF0;
        printf("a=0x%02X; i=%i : ",a,i);
        ftStatus=my_FT_SetBitMode(ftHandle,a,0x20);
        if(ftStatus==FT_OK) printf("Device setBit 0x%02X (i=%i, 
ftHanlde=%i)\n",a,i,(int)ftHandle);
        else printf("Error: ftStatus %i 
(i=%i;a=0x%02X,ftHandle=%i)\n",(int)ftStatus,i,a,(int)ftHandle);
        Sleep(1000);
      }
      ftStatus=my_FT_Close(ftHandle);
      if(ftStatus==FT_OK) printf("Device closed\n");
    }

und mein Ergebnis is:
Device opened
Device GetBit 0xF7
a=0xF0; i=0 : Device setBit 0xF0 (i=0, ftHanlde=9969840)
a=0xF1; i=1 : Device setBit 0xF1 (i=1, ftHanlde=9969840)
a=0xF2; i=2 : Device setBit 0xF2 (i=2, ftHanlde=9969840)
a=0xF3; i=3 : Device setBit 0xF3 (i=3, ftHanlde=9969840)
a=0xF4; i=4 : Device setBit 0xF4 (i=4, ftHanlde=9969840)
a=0xF5; i=5 : Device setBit 0xF5 (i=5, ftHanlde=9969840)
a=0xF6; i=6 : Device setBit 0xF6 (i=6, ftHanlde=9969840)
a=0xF7; i=7 : Device setBit 0x00 (i=9969840, ftHanlde=9969840)
Device closed

was geht da schief?

Danke
Bernhard

von Bernhard84 (Gast)


Lesenswert?

Kann mir niemand helfen?
Hat schon jemand den CBUS Bit Bang Mode verwendet? sind da irgendwelche 
Probleme aufgetreten?

Danke
Bernhard

von Bernhard84 (Gast)


Lesenswert?

Hallo zusammen!

Ich bin jetzt selber ein bisschen weiter gekommen.
Es scheint ein Problem mit der Einbindung der dll zu sein.
Ich benutze den MinGW als compiler und leider habe ich mit DLLs noch 
nicht so viel Erfahrung.
Wenn ich den Fehler gefunden habe, berichte ich davon.

Bernhard

von NochEinGast (Gast)


Lesenswert?

Hallo,
vielleicht gibt das folgende Buch was her:
http://www.b-redemann.de/buchinhalt.shtml
Dort wird auch der CBUS besprochen.

J.

von Bernhard84 (Gast)


Lesenswert?

Danke für den Link.

aber ich habe das Problem jetzt gelöst.
Auslöser war eigene Dummheit.
Da ich noch nie was mit DLLs gemacht hab, hab ich da auf irgendwelche 
Internet-Code-Beispiele vertraut. Und die schlagen vor, dass man die 
DLLs dynamisch mit LoadLibrary lädt.
Das hat dann auch erst mal hingehaun, nur irgendwie halt dann doch nicht 
so ganz. Ich habe wohl irgendwas falsch konfiguriert und somit hat mir 
irgendwas irgendwelche Variablen überschrieben und mein programm 
stürtzte ab.
Die Lösung war Verwendung von statischen DLLs.
die kann man sehr einfach einbinden, wenn man die entsprechende *.lib 
hat. dann muss man nur noch die *.h ins programm includieren und mit 
folgendem befehl kompilieren:
  gcc usbtest.cpp ftd2xx.lib -o usbtest -Wall

Vielleicht hilft es ja jemanden weiter.

um die dynamischen DLLs kümmere ich mich ein anderes mal ;-)

Bernhard

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.