-
Thread
Symbol redefined ?
____________________________________________________________________________________________ u8 CRC7(u8 * cmd, u32 len) { u8 i, a; u8 crc, Data; crc = 0; // init CRC buffer for (a = 0; a < len ;a++) // for every byte in the msg { Data = cmd[a]; for (i=0;i<8;i++) // for every bit in the byte { crc <<= 1; // shift crc if ((Data & 0x80)^(crc & 0x80)) crc ^=0x09; //xor Data <<= 1; // shift data for next bit } } crc = (crc<<1)|1; // set terminating bit to 1 return
-
Thread
CRC - Byte-weise oder Wort-weise?
byteBuf[], uint32_t bufLen ) { uint32_t crcTable[256] = { 0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA, 0x076DC419, 0x706AF48F, 0xE963A535, 0x9E6495A3, 0x0EDB8832, 0x79DCB8A4, 0xE0D5E91E, 0x97D2D988, 0x09B64C2B, 0x7EB17CBD,
RootFolder=https%3a%2f%2fmy.st.com%2fpublic%2fSTe2ecommunities%2fmcu%2fLists%2fARM%20CortexM3%20STM32%2fCRC%20calculation%20in%20software&FolderCTID=0x01200200770978C69A1141439FE559EB459D758000626BE2B829C32145B9EB5739142DC17E¤tviews=1761 Der Autor hat herausgefunden, wie die CRC-Berechnung beim STM32
-
Thread
LPC2468, Ethernet MAC und Interrupts
void mac_init(void) { INT32U dwID; tx_pkt_cnt = OSSemCreate(1); AHBCFG2 |= (BIT_17 | BIT_12); PCONP |= BIT_30; /* power up the mac */ PINSEL2 |= (BIT_00 | BIT_02 | BIT_08 | /* select the rmii pins */ BIT_16 | BIT_18 | BIT_20 | BIT_28 | BIT_30); PINSEL3 |= (BIT_00 |
reset the mac */ MAC1 = 0; /* deassert the soft resets */ MAC2 = (BIT_04 | BIT_05); /* enable crc and padding */ IPGR = IPGR_DEFAULT; /* set the back-to-back inter packet gap */ CLRT = CLRT_DEFAULT; /* set the collision window and retransmission count */ MAXF = MAX_FRAME; /* maximum frame
-
Thread
OneWire Problem DS2413
"); for( i = 0; i < 8; i++) { Serial.print(addr[i], HEX); Serial.print(" "); } // crc check if ( OneWire::crc8( addr, 7) != addr[7]) { Serial.print("CRC is not valid!\n"); return; } // check if DS2413 if ( addr[0] != 0x3A) { Serial.print("Device is not
stimmt, danke. und dann sollte es funktionieren? ich begreife nicht ganz warum im datenblatt seite 17 (PIO ACCESS WRITE EXAMPLE) so viele schritte gemacht werden. schreiben, invertiert schreiben,2 mal lesen, wieder schreiben... ? versteht das jemand oder ist das ein etwas spezielles beispiel ?
-
Thread
Problem mit CRC-8 Berechnung
Das Telemtriepaket besteht aus einer gewissen Anzahl an Bytes gefolgt von einem Byte für den CRC Wert. Laut Dokumentation lautet das verwendete Polynom X8 + X5 + X4 + 1 (also Dallas/Maxim Typ). Initialwert für den CRC soll 0xde sein. Hier ein Beispiel-Packet, wie ich es über die Schnittstelle empfange
Ich komme jedoch nicht auf den Wert 0xda. Ich habe auch schon die Bytereihenfolge umgekehrt und CRC-Rechner aus dem Netz benutzt, kann aber den Wert, den ich von der Elektronik bekomme nicht reproduzieren. Das gleiche gilt für andere Datenpackete mit unterschiedlichen CRC Werten. Hat jemand eine
-
Thread
Frequenzzähler 1Hz - 40MHz
basiert auf ATMEGA88 ( warum BOD auf 2,7V wenn das diggen auf 5 V läuft ? ) Quarz hatt ich nen PAL 17.734475 MHz, habe aber dann auf 16Mhz umgelötet, mit gleichem erfolg-=> geht nicht ( latürnich neu kompiliert mit 16Mhz) Entweder mein LCd hat arge Timingprobleme mit der library oder ich weiss nicht
gekaempft" um mit der programmierbaren Frequenzkorrektur klar zu kommen. Man muss ja auch noch die CRC richtig in die main.eep eintragen. Damit hatte ich mich ganz schoen schwer getan. Aber jetzt laeuft er erstmal. Ich habe das uebrigens mit WinAVR-20100110 und der avr-libc 1.6.7 kompiliert. Also
-
Thread
Protokollaufbau
Kommandos und Daten. Welche Daten du überträgst weisst du angand des Befehls oder Kommandos. > 1 Byte CRC16 Ein CRC16 hat 2 Bytes. Beachte Byte Ordering. > So das ganze soll nun noch über einen Timeout gesteuert werden, also > Beginn Übertragung Start des Timers und wenn das Timeout kommt ist der
Bei RDM wird an Stelle eines CRC eine additive CS gebildet. Ich halte dies für die einfachere und schnellere Alternative. Die Anzahl der Datenbytes im Paket mitzuliefern (bzw. die Paketlänge) ist sinnvoll. Allein schon, falls einer
-
Thread
Junkers HT-Bus Heatronic 3 Schnittstelle
6E <= 6E 16 00 17 00 10 00 90 00 06 00 0B 01 0F 0D 27 07 04 00 58 <= 0D [/code] Grüße.
wohl fummeln oder evtl. haben die auch ein Monitormenü !? Anbei noch die Raw-Daten mit korrekter CRC. Grüße.
-
Thread
Installation von CentiPad-Host-SW auf Debian
vmlinux: 919976 bytes ( 898 kBytes) target/initrd: 2793472 bytes (2728 kBytes) section 0x0001: crc32: 0xfa5494c7, 919986 bytes ( 898 kBytes) section 0x0002: crc32: 0x76fc731e, 2793482 bytes (2728 kBytes) section 0x0000: crc32: 0xffffffff, 10 bytes ( 0 kBytes) bootimage size: 3713482
vmlinux: 919944 bytes ( 898 kBytes) target/initrd: 2793472 bytes (2728 kBytes) section 0x0001: crc32: 0x90071689, 919954 bytes ( 898 kBytes) section 0x0002: crc32: 0xf8c039c7, 2793482 bytes (2728 kBytes) section 0x0000: crc32: 0xffffffff, 10 bytes ( 0 kBytes) bootimage size: 3713450
-
Thread
Biete CentiPad Embedded Linux Module
CentiPad-v11> 2 Trying to boot from Dataflash: Loading kernel... ............. 898kB complete, CRC ok. Loading initrd... ........................................... 2872kB complete, CRC ok. image loading complete (8226 ms) .Booting kernel... Uncompressing Linux (LZMA)......................
registered TCP bic registered NET: Registered protocol family 1 NET: Registered protocol family 17 Bluetooth: L2CAP ver 2.8 Bluetooth: L2CAP socket layer initialized Bluetooth: RFCOMM socket layer initialized Bluetooth: RFCOMM TTY layer initialized Bluetooth: RFCOMM ver 1.7 802.1Q VLAN Support
-
Thread
Viele Fragen und ein kleiner Blog
PortB,6 sbi PortB,7 rcall Warte rjmp Loop Warte: ldi r16, $10 S0: ldi r17, $ff S1: ldi r18, $ff S2: dec r18 cpi r18, 0 brne S2 dec r17 cpi r17, 0 brne S1 dec r16 cpi r16, 0 brne S0 ret [/avrasm]
: ld r17,X+ ; Zeichen aus SRAM holen cp r16,r17 brne Kende rjmp XXX Kende: pop r17 pop r16 ret [/avrasm] Und mit dem Unterprogramm machst
-
Thread
Inventer Lüfter Ansteuerung
inzwischen ZR31) welche von der Firma IBES kommen, werden auch Mosfets benutzt zur Schaltung von bis zu 17 V. Die Peaks werden in ihrer Steuerung über einen 3300µF Kondensator bis 50 V, abfangen. In meiner Versuchsreihe habe ich vier inVENTer14 Reversierlüfter aufgebaut, welche 16,5 V schalten. (Kondensator
Busprotokoll ist eine eigene Entwicklung. Aber einfach gehalten mit Adresse, Länge, Funktionscode, Daten und CRC. Wenn Interesse besteht melden. Viel Spaß damit.
-
Thread
USBaspLoader und ATmega32 wollen nicht
Software GmbH # License: GNU GPL v2 (see License.txt) # This Revision: $Id: Makefile 798 2010-07-27 17:29:28Z cs $ ############################################################################### # Configure the following variables according to your AVR. # Program the device with # make fuse
0 1966 7ae main.hex > Process Exit Code: 0 > Time Taken: 00:02 [/code] P.S.: Das CRC-232 Projekt habe ich bereits erfolgreich auf dem selben Board zum Laufen gebracht, an der Hardware sollte es demnach nicht liegen.
-
Thread
Hat jemand Erfahrung mit dem 2,4GHz-Transceiver RFM70?
const unsigned int Bank0_Reg0_29[18]= { // address data (0x20|0x00), 0x7A, //Enable CRC ,CRC=1byte, POWER UP, TX (0x20|0x01), 0x01, //Enable Autoacknownledge datapipe 0 (0x20|0x02), 0x01, //Enable RX Addresses datapipe 0 (0x20|0x03), 0x03, //RX/TX address field width
Dann sind das aber eigentlich 2 Sendungen, wenn ich dich richtig verstehe: - Du sendest 17 Byte - der Slave sendet das ACK - danach sendet der Slave die 17 Byte zurück - der Master sendet das ACK zum Slave Meiner Meinung nach ist das eine mehr als ausreichende Performance. Gruß
-
Thread
[Biete] Sammelbestellung Funkmodul CC2500
den Prototyp. Klar sind RFM12 und RFM70 billiger, aber der CC2500 hat doch einige Vorteile, wie CRC Prüfung, FEC, AFC, verschiedene Modulationsverfahren und eine Empfangsempfindlichkeit von -104 dBm!
define MDMCFG1 0x13 #define MDMCFG0 0x14 #define DEVIATN 0x15 #define MCSM2 0x16 #define MCSM1 0x17 #define MCSM0 0x18 #define FOCCFG 0x19 #define BSCFG 0x1A #define AGCTRL2 0x1B #define AGCTRL1 0x1C #define AGCTRL0 0x1D #define WOREVT1 0x1E #define WOREVT0 0x1F #define WORECTRL 0x20 #define
-
Thread
CRC16-CCITT Polynom Verständnisproblem
bit wäre von 0 bis 15 und damit würde alles reinpassen 1 = x^0 x^0, ..., x^16 macht insgesamt 17.
PPS: Ich habe nun das ISO file gefunden - durch Zufall im Netz - und das sagt mir folgendes: The CRC polynomial (0x1021) is x16+x12+x1 The implemented version of the CRC check has the following characteristics reverse CRC CCITT 0x8048 data stream has LSB first the CRC shift register is initialied
-
Thread
RFM70-Funkmodul funkt nicht!
const unsigned int Bank0_Reg0_29[18]= { // address data (0x20|0x00), 0x72, //Disable CRC ,CRC=1byte, POWER UP, TX (0x20|0x01), 0x01, //Enable auto acknowledgement data pipe0 (0x20|0x02), 0x01, //Enable RX Addresses pipe0 (0x20|0x03), 0x03, //RX/TX address field width
commands uint8_t bank0Init[][2]= { // address data { (0x20|0x00), 0x0F }, //Disable CRC ,CRC=1byte, POWER UP, TX { (0x20|0x01), 0x3F }, //Enable auto acknowledgement data pipe0 { (0x20|0x02), 0x3F }, //Enable RX Addresses pipe0 { (0x20|0x03), 0x03 }, //RX/TX address
-
Thread
Welche Frequenz / welcher RF Chip für Hausnetz?
NWK-Frame noch einen MAC-Frame, der 0x0001 als Quelle und 0x0002 als Ziel hat (sowie am Ende die CRC-16, die logisch auch zum MAC gehört). Nun kann er den Frame dem Layer 1 (PHY) übergeben, der ihn verschickt. 0x0002 empfängt ihn, und wenn der Frame dort vom MAC zur NWK-Schicht gereicht wird,
RFM22B steht nichts mehr von weniger Leistung. Bei den RFM22 (ohne B) war angegeben, dass sie "nur" +17dbm liefern, das stimmt. mfg, Andreas
-
Thread
Kompatibelität CC1100 und RFM12
Sry, editieren geht leider nicht. Korrektur: Habe in meinem Empfänger den crc-check wohl versehentlich abgeschaltet gehabt. Die ankommenden Datenpakete sind NICHT valide, somit scheint es wohl doch noch Probleme bei der Kommunikation zu geben. Kennt jemand einen Zaubertrick?
aber genau bei 19200 zu dem Wert 16 führt, der aber lt. Datenblatt 21552 Baud ergibt, richtig wäre 17, also 0xC611...
-
Thread
Dimmer für den Verteilerschrank mit Steuerinterface
= DATA[0] 04 = ID[3] = Vermutlich FSR14-2x 02 = ID[2] 11 = ID[1] 00 = ID[0] 00 = Status 1C = CRC = 8B + F0 + 01 + 02 + 7F + 08 + 04 + 02 + 11 + 00 + 00 = 21C [/code] Ich hoffe das hilft Dir weiter. lg tic
0] 00 = ID[3] 00 = ID[2] 00 = ID[1] 00 = ID[0] 02 = Status = Aktor mit Device Adresse 2 A9 = CRC = AB + FC + 00 + 00 + 00 + 00 + 00 + 00 + 00 + 00 + 02 = 1A9 Zu beachten ist, dass die Aktoren nur antworten, wenn sich etwas geändert hat. Gruß André
-
Thread
40 Spannungen einlesen und an AtMega8 übertragen
Spannung direkt messe und alle 6 ADC Kanäle ausnutze habe ich in etwa die Spannungen 3.5-7-10.5-14-17.5-20 das müsste ich alles messen, also Spg. Teiler oder sonstiges davor schalten oder? Oder hat jemand eine bessere Idee? Eventuell einen eigenen ADC der per SPI verbunden wird ( natürlich über einen
eventuell die Widerstände kleiner wählen. 1200Bit/s sollte man aber weit überschreiten können. Ne 8Bit-CRC würde ich noch ranhängen. Bei stark abweichenden Werten wird der Master eh gleich nochmal abfragen. Wenn die ATtinys per Watchdoginterrupt nach einer bestimmten Zeit alleine senden, kriegt man
-
Thread
[How-To] Seagate Dockstar als 300mbit Draft-N Access Point
has been configured with new IP=192.168.0.52 Configuration file: /etc/hostapd/hostapd.conf Line 17: unknown configuration item ' driver' 1 errors found in configuration file '/etc/hostapd/hostapd.conf' Failed to bring up wlan0. done. Viele Grüße Michl
55411 1 mbcache 4860 1 ext2 sd_mod 31224 3 crc_t10dif 1106 1 sd_mod usb_storage 34879 2 scsi_mod 119212 2 sd_mod,usb_storage ehci_hcd 35579 0 mvsdio 5318 0 usbcore
-
Thread
Das A und O des UART- Puffers
sendet 0xf0 X RX 111101111011110000101111000010111100001111111 -- empfängt 0xf7 0x17, 0x17 und 0x1f 11110111 00010111 00010111 00011111 --> vier Bytes korrekt empfangen, aber Daten korrupt [/pre] > Kannst Du nicht, wenn Du zwischen zwei Streams hin und herschaltest
XXXX <-- Umschalten RX 111101111111110000101111000010111100001111111 -- empfängt 0x17, 0x17 und 0x1f 00010111 00010111 00011111 --> drei Bytes korrekt empfangen, aber Daten korrupt [/pre] Jede andere Kombination ist problemlos vorstellbar...
-
Thread
-> RFM vs. BTM vs <-
Empfänger mit RS232 an PC -> LabVIEW - 1 Repeater zentral im Gebäude positioniert - alle Geräte mit 17cm Drahtantenne - 25-Byte-String Sendeintervall ca. 10-12 Sekunden - 2x Temperatursender mit Tsic-206 - 6x Fenster- und Türüberwachung mit Reedkontakten - Kollisionsrate hält sich in Grenzen (keine
ich keine Auswertung über Fehler etc. gemacht. Die Pakete wurden glaube alle 30 Minuten mit einem CRC16 verschickt, ging was schief wurden die Pakete einfach nochmal geschickt. Das kam aber ausgesprochen selten vor. Achso, ich habe die 434MHz Module benutzt. Sind die 868MHz Module besser? Soweit