Herunterladen Inhalt Inhalt Diese Seite drucken

Hardware Reset; Crc-Berechnung - ELECTRONIC ASSEMBLY EA uniTFT Serie Bedienungsanleitung

Inhaltsverzeichnis

Werbung

Modul sendet
ACK
0x06

11. Hardware Reset

Das Modul wird mit diesem Protokollbefehl neu gestartet. Je nach Parameter wird nach dem Reset eine andere
Startoption gewählt.
Modul empfängt
DC4
Defaultwerte
0x14
Modul sendet
ACK
0x06

CRC-Berechnung

Für die Berechnung der Prüfsumme wird eine zyklische Redundanzprüfung (CRC) eingesetzt. Eine gängige und
bekannte CRC-Prüfung ist die CRC-CCITT. Als Startwert wird 0xFFFF verwendet. Im Folgenden sehen Sie eine
typische C-Implementierung. Die Funktionen müssen extern aufgerufen werden. Die Prüfsumme muss mit dem
Startwert vorbelegt werden.
//----------------------------------------------------------------------------
//Funktion: buffer2crc16()
//input:
ptr Datum, ptr auf CRC, Blocklänge
//output:
---
//Beschr:
CRC-CCITT eines Speicherbereichs
//----------------------------------------------------------------------------
void
buffer2crc16(UBYTE
{
while(anz--)
crc16(*dat++, pCRC);
}
//----------------------------------------------------------------------------
//Funktion: sp_crc16()
//input:
Datum, ptr auf CRC
//output:
---
//Beschr:
CRC_CCITT (x^16+x^12+x^5+1 = 1 0001 0000 0010 0001 = 0x1021
//----------------------------------------------------------------------------
void
crc16
(UBYTE
dat,
{
register
UINT16
lcrc = *crc;
lcrc = (lcrc >> 8) | (lcrc << 8);
lcrc ^= dat;
lcrc ^= (lcrc & 0xFF) >> 4;
lcrc ^= lcrc << 12;
lcrc ^= (lcrc & 0xFF) << 5;
*crc = lcrc;
}
Technische Änderungen vorbehalten. Wir übernehmen keine Haftung für Druckfehler und
Applikationsbeispiele
EA uniTFT050-A
Länge (16 Bit)
'B'
0x02 0x00
0x42
*dat,
UINT16
*pCRC,
volatile
UINT16
* crc)
0x04
= Sendepuffer löschen
0x08
= Empfangsbuffer leeren
0x10
= Makrodefiniton (z.B. Portmakros)
0xFF
= Alles Unterbrechen und Beenden
Option
0x00
= Normaler Neustart
0x01
= Neustart im Testmode
0x02
= Neustart ohne 'start.emc'
0x03
= Neustart ohne default Styles
0x04
= Bootmenü anzeigen (Projektauswahl)
0x05
= Reserved
0x06
= Mass Storage Mode (ab V1.2)
UINT32
anz)
crc (16 Bit)
0xXX 0xXX
47 / 172

Werbung

Inhaltsverzeichnis
loading

Inhaltsverzeichnis