C# FTDI - Daten erfassen alle 10ms

Gast #4331968
Lesenswert?

Hallo,

ich muss folgendes in C# programmieren. Von einem uC bekomme ich Daten 
alle 10ms über einen FTDI chip. Ich habe die Schnittstelle zwischen PC 
und FTDI mit Hilfe von FTD2XX_NET aufgebaut und funktioniert bestens. 
Beim senden der Daten von PC reagiert der uC und ich empfange auch Daten 
von uC. Mein Problem ist nun, dass es bei FTD2XX_NET keine 
SerialDataReceivedEvent gibt wie bei C# standard COM Bibliothek. 
Deswegen habe ich einen Timer definiert mit Hilfe von Multimedia.dll, 
weil dieser angeblich genauer sein soll, wie der von Windows.
1
this.mmTimer.Mode = Multimedia.TimerMode.Periodic;
2
this.mmTimer.Period = 10;
3
this.mmTimer.Resolution = 10;
4
this.mmTimer.Tick += new System.EventHandler(this.mmTimer_Tick);
5

6
counter_1ms = 0;
7
mmTimer.Start();

Der Timer wird auch aufgerufen.
1
private void mmTimer_Tick(object sender, System.EventArgs e)
2
{
3
  counter_1ms++;
4
  reiceveBuffer = device.FTDI_Read();
5
  MessageBox.Show(reiceveBuffer);
6
  updateReceivedMSG();
7
}

Nun wenn ich die Daten weiterverarbeiten mit updateReceivedMSG() 
Funktion möchte, einfach in RichTExt reinschreiben, bekomme ich einen 
Fehler den ich gar nicht verstehe. Dabei tritt der Fehler auf nicht beim 
compilieren, sonder wenn die Software startet und die Daten bekommt. Ich 
bin recht neu bei PC Programmierung, komme von uC.

Ich habe versucht Lösung und andere Wege zu 
finden(http://www.codeproject.com/Articles/685749/Data-Acquisition-Library), 
bin aber gescheitert, da ich besonders bei der anderen Lösung wie im 
Link, gar nichts verstanden habe. Der Fehler tritt auf wegen 
Thread-Klassen und deren Behandlung, aber wie löse ich das Problem, ist 
mir bisher nicht klar.

Kann mir einer Helfen und sagen was ich falsch machen?

Gruss Stefan
Angehängte Dateien:
Gast #4333426
Lesenswert?

Wird das Timing PC-seitig denn überhaupt benötigt?
Könntest du nicht PC-seitig einfach in Endlosschleife (z.B. in einem 
BackgroundWorker) vom Port lesen und brauchst eigentlich gar keinen 
Timer?

Oder sind die Daten die der µC raussendet völlig unstrukturiert bzw. die 
Struktur ergibt sich erst durch das Timing?
(Was für Verarbeitung auf PCs ohne Echtzeitbetriebssystem eigentlich 
recht ungünstig wäre ;D)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren