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