www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik FT245 - Problem


Autor: flownfluid (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich arbeite das erste mal mit einem FT245 Chip und habe da so meine
Probleme.
Ich brauche diesen Chip um die Daten, welcher mir ein PIC18F452
bereitstellt, zu lesen.

Laut Doku von FTDI beim D2XX- Treiber kann man die Daten unter C++ auf
zwei verschiedenen Arten lesen:

1. immer die aktuellen Daten
2. mit einem timout

Die 2. Methode funktioniert mir aber ich bräuchte die 1. Methode und
diese Funktioniert mir irgendwie nicht.

Mein C- Funktion sieht so aus:
void USB::readFTDIonce()
{
  FT_STATUS ftStatus;
  DWORD EventDWord;
  DWORD TxBytes;
  DWORD BytesReceived;
  DWORD RxBytes;
  unsigned char RxBuffer[256];

  FT_GetStatus(ftHandle,&RxBytes,&TxBytes,&EventDWord);
  if(RxBytes > 0)
  {
    ftStatus = FT_Read(ftHandle,RxBuffer,RxBytes,&BytesReceived);

    if(ftStatus = FT_OK)
    {
      for(int i = 0 ; i< int(RxBytes) ; i++)
      {
        printf("%i\n",RxBuffer[i]);
      }
    }
    else
    {
      printf("no value was writen on the bus\n");
    }
  }
  else
  {
    printf("can't read\n");
  }
}

und fürs öffnen des devices:
void USB::openFTDI()
{
  FT_STATUS ftStatus;
  ftStatus = FT_Open(0,&ftHandle);

  if(ftStatus == FT_OK)
  {
    printf("CONNECTED\n");
  }
  else
  {
    printf("NOT CONNECTED\n");
  }
}

mit dem Pic schreibe ich folgendermassen auf den Bus:
  while(1)
  {
    while(USB_D_NTXE == 1)
    {
    }
    PORTD = 0xFF;
    USB_D_WR = 1;
            asm(" NOP");
    USB_D_WR = 0;
  }

Leider zeigt mir die Dos-Console immer "no value was writen on the
bus" und ich habe keine Ahnung wieso

Vielen Dank für euere Hilfe

Gruss

Autor: MSE (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>>    if(ftStatus = FT_OK)

Unabhängig von allem anderen ist in obiger Zeile schon mal ein Fehler:
Zuweisung statt vergleich, wegen '=' statt '=='.

Gruß, Michael

Autor: flownfluid (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja ja der Fehlerteufel...

Merci aber funkt gleich nicht :-(

Autor: chrigu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich glaube, um ein FT_Read auszuführe, musst du zuerst ein FT_Purge
machen, damit der Buffer gelöscht wird und sich wieder neu beschreibt.
Grusss chrigu

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.