Starthjälp med FT245R i C# och dll

Elektronik- och mekanikrelaterad mjukvara/litteratur. (T.ex schema-CAD, simulering, böcker, manualer mm. OS-problem hör inte hit!)
Användarvisningsbild
Cenorpa
Inlägg: 737
Blev medlem: 11 juli 2005, 20:58:03
Ort: Stockholm | Borlänge
Kontakt:

Starthjälp med FT245R i C# och dll

Inlägg av Cenorpa »

Hej, skulle behöva lite hjälp för att komma igång med FT245R i C#.
FT245R är altså en USB->FIFO controller.

Jag har kollat på ett kodexempel men det använder en annan DLL som skall vara någon brygga mellan orginal dll:en d2xx.dll och mjukvaran.
Det jag vill ha hjälp med är altså hur man importerar funktioner från orginal dll:en och hur jag använder dessa, har nämligen aldrig hållt på med dll förut.

Peka mig bara åt rätt håll.

Kod: Markera allt


Examples
The examples that follow use these variables.
FT_STATUS ftStatus;
DWORD numDevs;

Get the number of devices currently connected

ftStatus = FT_ListDevices(&numDevs,NULL,FT_LIST_NUMBER_ONLY);
if (ftStatus == FT_OK) {
    // FT_ListDevices OK, number of devices connected is in numDevs
}
else {
    // FT_ListDevices failed
}

Hur får jag t.ex in ovanstående funktion "FT_ListDevices" ?
Användarvisningsbild
Cenorpa
Inlägg: 737
Blev medlem: 11 juli 2005, 20:58:03
Ort: Stockholm | Borlänge
Kontakt:

Inlägg av Cenorpa »

Tjoho, jag har nu lyckats öppna port 0 och skrivit till den:)
Men jag måste greja lite mer med det här, försöka förstå det ordentligt. Måste försöka göra så att jag endast öppnar den porten med rätt beskrivning, ifall man har fler anslutna i framtiden...

Såhär importerade man öppna funktionen:

Kod: Markera allt

        [DllImport("FTD2XX.dll", EntryPoint = "FT_Open")]
        public static extern uint FT_Open(int iDevice, ref IntPtr ftHandle);
Ska leka vidare med det här. Enligt databladet så skall det finnas en buffert i chipet så att man kan fylla på med mycket data och sedan läsa av det. Det vet jag inte riktigt hur jag ska göra, men jag behöver använda det för att få lite snabbhet.
Jag vill skicka över 12byte i ett kör och sedan läsa av det från bufferten i chipet, men jag vet inte riktigt hur jag ska göra. Tips?

Skickar jag flera byte nu så ser jag bara den senaste skickade på utgången.

[edit]
Såg nu att det verkar finnas en timeout för bufferten så efter 16ms
(default) så rensas den. Jag har inte kopplat chipet till någon mcu än utan har bara kollat på utgångarna med hjälp av lysdioder så när jag väl har kopplat ihop det så skall det nog inte vara något problem att ta emot flera bytes.

[edit2]
Så nu har jag fått det att fungera som jag vill. Det var som jag trodde med timeouten men nu när jag har den inkopplad till en pic så går det bra. Nu öppnar jag även USBporten efter beskrivning och inte plats så nu ska det inte bli något problem där. Gjorde även en egen klass till C# som sköter jobbet med dll:en så att det blev smidigare kod.
Skriv svar