INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

DAQ mit µC möglichst schnell



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

12.06.2014, 14:26 (Dieser Beitrag wurde zuletzt bearbeitet: 12.06.2014 14:32 von Lucki.)
Beitrag #7

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
RE: DAQ mit µC möglichst schnell
(12.06.2014 09:41 )Steffen.S schrieb:  So ganz verstehe ich die Dekodierung noch nicht. Du machst als erstes eine UND Verknüpfung, um das MSB zu löschen, richtig?
Dann Teilst du die Daten im Array auf, so dass je zwei Bytes in einer Spalte sind und insgesamt vier Zeilen entstehen.
Anschließend werden die Daten wieder so zusammengefügt, dass die Wertigkeit stimmt.
Es fehlt aber komplett die Erkennung des Datenbeginns oder seh ich das nur nicht?

Der Erkennen des Datenbegins fehlt tatsächlich. Statt dessen ist das Datenende markiert. Das ist prakischer, weill genau zu diesem Zeitpunkt mit der Auswertung der Daten begonnen werden kann.
Habe mal ein VI angehängt, wie ich mir das Lesen der Daten etwa vorstelle. Es ist aber noch nicht professionell, z.B. fehlt die Timout-Behandlung.
Es wird angenommen, dass der µC vorher eingeschalten ist. (Andernfalls wäre eine Timeout-Behandlung fällig, mit Meldung wie z.B: "µC einschalten, Du vergessliches A..loch").
Wenn dann das VI gestartet wird, dann hört der PC gewöhnlich mitten in ein Byte hinein und es kommt zum Rahmen-Synchronisationfehler. Der wird mit der ersten Schleife abgefangen.
Wenn das ausgestanden ist, dann hört der PC wahrscheinlich immer noch mitten in den Datensatz hinein, so dass dieser unvollstandg ist. Dieser erste Datensatzt sollte also weggeschmissen werden. Dazu dient die zweite Schleife.
Damit ist die Synchronisation hergestellt.
In der inneren rechten schleife wird jeweils ein Datensatz gelesen,und zwar byteweise. Wenn ein eintreffendes Byte >63 ist, so handest es sich um das letzte Byte des Datensatzes. Die Schleife wird verlassen und die Auswertung kann beginnen. (das ab jetzt nur noch störende Datenerkennung-Bit 5 wird gleich in diesser Schleife entfernt.)
Dekodierung:
Das Low-Byte wird geshiftet und linksbündig in die U8-Zahl gesetzt, d.h. der Inhalt wird um 2 bit nach links verschoben. Dann wird aus High- und low-Byte eine U16-Zahl gebildet. In dieser Zahl befindet sich der eigentliche 10-bit Inhalt zwischen den Bits 2 und 13. Diese 12 bits müssen jetzt noch rechtbündig platziert werden, d.h der Zahl ist um 2 bit nach rechts zu shiften.


Angehängte Datei(en)
13.0 .vi  daten lesen2.vi (Größe: 21,46 KB / Downloads: 171)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Nachrichten in diesem Thema
RE: DAQ mit µC möglichst schnell - jg - 11.06.2014, 15:12
RE: DAQ mit µC möglichst schnell - Lucki - 12.06.2014 14:26

Gehe zu: