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 

CRC8



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!

30.09.2011, 10:32
Beitrag #1

Stomy Offline
LVF-Neueinsteiger


Beiträge: 2
Registriert seit: Sep 2011

9.0
2011
kA



CRC8
Hallo liebe User liebe Users,

ich bin ein Anfänger in der Labview-Programmierung und ich tue mich gerade schwer mit der implementierung eines CRC8-Codes in Labview. Der Code ist bereits, wie folgt in der C-Sprache implementiert:

int8 calc_crc(int8 smb_byte, int8 crc_in)
{
int8 crc_polyn= 0x07;
int8 smb_crc=crc_in;
for ( int i=0; i<8; i=i+1)
{smb_crc= (((smb_crc<<1)& 0xFF)
^(((smb_crc >> 7) ^ (sm_byte >> (7-i))) & 0x1)
? crc_polynom : 0);
}
return smb_crc;
}

Ich habe zwar schon über den Formelknoten versucht dies in Labview umzusetzen, aber das Ergebnis der CRC ist nicht zufrieden stellen.
Nämlich ich muss bei folgenden Bits Eingabe: aa55 6f00 e381 27c4 03a2 6f6c 1c09 266d 0000 0c00 6a68 8000 6a68 8000 25a0 1812

CRC=b8 erhalten.

Über jede schnelle Hilfe würde ich mich sehr freuen.

Viele Grüße, Stomy


Angehängte Datei(en)
9.0 .vi  CRC8.vi (Größe: 8,04 KB / Downloads: 603)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
30.09.2011, 10:37
Beitrag #2

Dennis.Moser Offline
Administrator
Administrators

Beiträge: 3.045
Registriert seit: Aug 2004

5.1 : 7.1 : 8.x : 20xx
1997
DE_EN

57589
Deutschland
RE: CRC8
Hi,

habe mir deine Aufgabe zwar nicht angesehen, aber ggf. hilft dir das ja auch schon weiter ? Smile

http://labviewportal.eu/de/downloads/21-...und-crc-16

Wissen ist das einzige Gut das sich vermehrt, wenn man es teilt!

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!

BC: 14vqy6mgfswpX6z7HLVxk1h3sHAvzE4aZG
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30.09.2011, 11:27
Beitrag #3

Stomy Offline
LVF-Neueinsteiger


Beiträge: 2
Registriert seit: Sep 2011

9.0
2011
kA



RE: CRC8
Da habe ich auch schon nachgeschaut, leider hilft es mir nicht weiter.
Vielen Dank für die schnelle Antwort.

Viele Grüße, Stomy
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.10.2011, 11:45
Beitrag #4

Kiesch Offline
LVF-Stammgast
***


Beiträge: 412
Registriert seit: Mar 2009

2019, 2018, 2016
2009
DE

04519
Deutschland
RE: CRC8
Kannst du vielleicht in Worten beschreiben, was da gerechnet werden soll um das CRC8 zu erhalten? Ich muss ganz ehrlich sagen, dass meine C Kenntnisse für den Code der da steht doch grade nich ausreichen.
Das sollte ja aber vermutlich auch komplett in LV umsetzbar sein.

Was du alternativ auch machen könntest, wäre den code als C Programm durchzukompilieren und dann als dll in LV aufzurufen (wäre eher ein Workaround, falls du das nicht als "richtigen" LV code umsetzen willst).

Zitat:Märchen und Geschichten werden erzählt am Lagerfeuer, technischen Fakten werden mitgeteilt (oder so). (Genauso wie Software nicht auf einem Server "herumliegt", die ist dort installiert.)
*Zitat: IchSelbst*
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.10.2011, 20:31 (Dieser Beitrag wurde zuletzt bearbeitet: 05.10.2011 20:32 von GerdW.)
Beitrag #5

GerdW Offline
______________
LVF-Team

Beiträge: 17.470
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: CRC8
Hallo Stomy,

Code:
int8 calc_crc(int8 smb_byte, int8 crc_in)
{
int8 crc_polyn= 0x07;
int8 smb_crc=crc_in;
for ( int i=0; i<8; i=i+1)
{smb_crc= (((smb_crc<<1)& 0xFF)
^(((smb_crc >> 7) ^ (sm_byte >> (7-i))) & 0x1)
? crc_polynom : 0);
}
return smb_crc;
}
- Wieso muss man ein int8 mit 0xFF verUNDen? (Wenn ich den C-Code richtig interpretiere...)
- Wo ist die Variable/Konstante "crc_polynom" definiert?
- Interpretiere ich den Dreizeiler richtig: IF(Ergebnis von boolsche Operation=TRUE) THEN smb_crc ="crc_polynom" ELSE smb_crc =0 ???

Zitat:Da habe ich auch schon nachgeschaut, leider hilft es mir nicht weiter.
Warum nicht?

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Gehe zu: