abacom-online.de

Das offizielle Elektronik-Software Forum
Aktuelle Zeit: Donnerstag 25. Mai 2017, 21:05

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 2 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: CRC-CCITT (XModem)
BeitragVerfasst: Mittwoch 1. März 2017, 11:32 
Offline

Registriert: Montag 25. Mai 2009, 19:24
Beiträge: 58
Hallo zusammen
Ich habe mal wieder ein kleines Problem und checke es rein gar nicht…

Und zwar für die Kommunikation mit meinen beiden Wechselrichtern (Effekta AX 1000 und 2000 baugleich der MPPsolar PIP) würde ich gerne den CRC selbst berechnen.
Der Onlinerechner der auf der Seite http://www.Lammertbies.nl/comm/info/crc ... ation.html
berechnet mir zum Glück den richtigen CRC sodass ich die Kommunikation schon mal testen konnte.
Ist es möglich den Profilab CRC Baustein so einzustellen das er mir den richtigen wert liefert? Und wenn ja wie??? Ich blicke leider die ganze Thematik nicht so richtig.

Falls es hilft bei der Anfrage „QPI“ hex: 51 50 49 ist der CRC hex: BE AC
Somit der komplette Befehl hex: 51 50 49 BE AC 0D
0D als oder <CR> als Trennzeichen

Desweitern hat mir noch jemand einen C programmschnipsel geschickt wie der CRC berechnet wird aber auch diesen verstehe ich nicht.
Zitat:
INT16U cal_crc_half(INT8U far *pin, INT8U len)
{

INT16U crc;

INT8U da;
INT8U far *ptr;
INT8U bCRCHign;
INT8U bCRCLow;

INT16U crc_ta[16]=
{
0x0000,0x1021,0x2042,0x3063,0x4084,0x50a5,0x60c6,0x70e7,

0x8108,0x9129,0xa14a,0xb16b,0xc18c,0xd1ad,0xe1ce,0xf1ef
};
ptr=pin;
crc=0;

while(len--!=0)
{
da=((INT8U)(crc>>8))>>4;

crc<<=4;

crc^=crc_ta[da^(*ptr>>4)];

da=((INT8U)(crc>>8))>>4;

crc<<=4;

crc^=crc_ta[da^(*ptr&0x0f)];

ptr++;
}
bCRCLow = crc;

bCRCHign= (INT8U)(crc>>8);

if(bCRCLow==0x28||bCRCLow==0x0d||bCRCLow==0x0a)

{
bCRCLow++;
}
if(bCRCHign==0x28||bCRCHign==0x0d||bCRCHign==0x0a)

{
bCRCHign++;
}
crc = ((INT16U)bCRCHign)<<8;
crc += bCRCLow;
return(crc);
}

Vielen Dank für eure mühe
MfG
Daniel


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: CRC-CCITT (XModem)
BeitragVerfasst: Mittwoch 1. März 2017, 12:38 
Offline

Registriert: Montag 25. Mai 2009, 19:24
Beiträge: 58
Hat sich erledigt
Der CRC Baustein nimmt nur Ascii am Eingang $D ich habe es die ganze Zeit mit Hex probiert.


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 2 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.
Sie dürfen keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Deutsche Übersetzung durch phpBB.de