-
Artikel
AVR-Bootloader mit Verschlüsselung von Hagen Re
XTAL von 600 bis zu 256000 Baud per USB-RS232 XTEA Verschlüsselung für FLASH/EEPROM Schreiben 16Bit CRC für die komplette Datenübertragung, Senden & Empfangen FLASH schreiben/löschen mit implizitem Verify separates FLASH Verify EEPROM schreiben/lesen, schreiben mit implizitem Verify SRAM schreiben/lesen
wurden einige Watchdog Reset Aufrufe anders plaziert. 15.03.2009 22:52 16.03.2009 00:49 Version 6.0. 17.03.2009 03:36 Updates /Bugfix zur Anpassung an AVR-Studio 4.16
-
Thread
Welchen Bus nehmen? Smart Home / Temperaturmessung und mehr
> RS485. … Slew rate limited Treiber Das ist doch auch schon fast CAN. Und CAN nimmt Dir noch CRC-Check, Error-Frames usw. ab. Größere Datenblöcke per ISO-TP. µCs mit CAN gibt es massenhaft billig. Und dort dann z.B. einen DHT22 dran. Knoten-Adresse per CAN oder VCOM einstellbar, in EEPROM
Wärmetauscher allerdings krass wirkungsvoll, wie ich finde. 20°C Abluft wärme die kalte Frischluft auf rund 17° vor, so dass ich nur 3° Differenz wieder aufheizen muss. Die Topologie des 1-Wire Netzes ist inzwischen ein wenig modifiziert, es sind inzwischen glaube 3 oder vier direkt angeschlossene Netze und
-
Thread
Bizarrer Firmware crash - ATmega4808. Wie Debuggen?
komplett anderer Stelle einer Firmware so etwas bewirken? Kann es sein dass der Compiler (Version gnu++17) - aus welchem Grund auch immer - schuld ist?
Adresse 0x2B00 (Variable "radio") ldi r30, 0x00 ldi r31, 0x2B ; radio.DATA auf RAM Adresse 0x2B17 ldi r24, 0x17 ldi r25, 0x2B std Z+12, r24 std Z+13, r25 [/code] Solange der TO es also nicht schafft den kompletten Source Code für das zu liefern was das Problem verursacht bzw. funktioniert
-
Thread
CRC Polynome und die zugehörige Bitfolge
Das 17te Bit ist nicht in der Konstanten (0x1021) sondern im Code. Vielleicht dadurch, dass immer 16 Bit verwendet werden.
0001 ergeben. Perfekt! Im GF(2)-Koerper ist die Addition/Subtraktion gleich einem XOR. Die CRC-Operation entspricht einem (Polynom-) Teilen mit Rest. Wie beim schriftlichen Dividieren sucht man sich die "linkeste" Stelle wo man die Operation ausfuehren kann, also etwa 1 abcd efgh ijkl
-
Thread
Wie serielle Kommunikation zwischen µC und PC aufbauen???
, sollte man diese stückeln oder kann man die am Stück rüberschieben? Ich weiß, dass es unzählige CRC Prüfroutinen usw. gibt, aber das ist wohl alles sehr aufwendig zu implementieren und mich würde mal interresieren, wie das Ihr so macht? Vielleicht habt ihr ja ein paar Ansätze und Informationen
noch eine Checksumme sein: Also einfach Zeilen dieser Form: 4 123 542 669 7 9832 0023 9862 17 0000001 435 453 5 -434 +43 -386 Das ist absolut eindeutig, und in diesem Beispiel ist die letzte Zahl schon eine einfache Prüfsumme. Dieses Protokoll ist auch tolerant: Es gibt keine Probleme mit
-
Thread
Crc berechnung ?
xx,yyy] 1 Start 2 A ist 3 V ist 4 mAh ist 5 ? 6 A Soll 7 V Soll 8 ? 9 Temperatur ? xx crc yy ende Es sei gesagt die jeweils 2 Byte zu einem Datenfeld werte werden merkwürdig berechnet [250,12,1, 200,15, 100,0,101,0,0,2,20,1,130,0,10,9,93,248] 15*240! +200 = 3600 = 3,6V Ich habe
250,33,1,170,1,141,0,10,12,248] [250,33,1,170,1,142,0,10,15,248] [250,33,1,170,1,143,0,10,14,248] [250,33,1,170,1,144,0,10,17,248] [250,33,1,170,1,145,0,10,16,248] Das sieht irgendwie nach xor oder so aus?
-
Thread
Serielle Kommunikation zwischen uCs
serielles Protokoll sein, bestehend aus MSG_ID | SenderAddr | ReceiverAddr | DataLen | Data .. Data | CRC (XOR oder 16) Kennt jemand eine Implementierung von solch einem Protokoll in C? Wie würdet ihr das ganze angehen? Danke
STM8) verwendet werden können (es soll ja nur einfache Modbus-Befehle auswerten können: z.B. "Karte 17, Schalte die Frequenzmessung an..." oder "AN ALLE, Sofort alle Mess-Aktivitäten abbrechen" ...) Danke.
-
Thread
Byterkennung UART
Impulsen. Das Signal wird durch ein 18ner Array erzeugt, wobei die Felder Aray 3,5,7,9,11,13,15 und 17 mit entsprechenden Werten für die Impulslängen beschrieben werden. Nun werden bei einem empfangenen Byte die einzelnen Bits auf 0 oder 1 verglichen. Ist das erste Bit 1 schreibe eine 30 in das Feld 3
als Command or Data Erkennung. Das naechste Byte als Commandlength oder Datalength und zum Schluss CRC und ein Stopbyte. So kannst du wirklich sicher sein das ein komplettes Frame empfangen wurde. Vom Programmiertechnischen hat dir schon Bjoern Mueller weitergeholfen. Gruß, Dirk
-
Thread
1-Wire-Bus-Projekt: DS1820 / DS18S20 / DS2450 / DS2408 / unter C und 8051
garnicht. Halte ich den Finger dran wird es wärmer. Ich hab den Code von visitor (Gast) vom 28.08.2010 17:24 benmutzt. Kann es sein dass die 5V Speisung eine Eigenerwärmung des Sensors bewirken? Ich lese ihn alle 20 Sekunden aus und lasse ihn dazwischen in Ruhe. Hat da jemand Erfahrungen gesammelt?
Hi, von mir stammt der Code Schnippsel vom 28.08.2010 17:24 und ich kann nur sagen, dass der korrekt rechnet. Meine DS18s20 zeigen auch Temperaturen an welche mit anderen Thermometern einem Vergleich stand halten. Weiterhin kann ich keine übermäßige Erwärmung
-
Thread
Sensor daten über UART verschicken (mit PIC)
UART5_Write(i2c_payload[14]); UART5_Write(i2c_payload[16]); UART5_Write(i2c_payload[17]); uint8_t summe = 0; summe = summe ^ 0x02; summe = summe ^ 0x00; summe = summe ^ 0x0C; summe = summe ^ i2c_payload[3]
Die Zahl der gelesenen Bytes sollte durch 3 teilbar sein (also 18 statt 19), weil immer MSB, LSB, CRC gesendet werden. Außerdem beginnt i2c_payload bei Null, die Messwerte liegen also bei 0, 1 und 3, 4 usw.
-
Thread
PHILIPS VP5500 VoIP Telefon bei Pollin
Variable "upgradeTimer" mal auf 60 setzen, denn auf diese Weise dürfte das Gerät alle 60 Sekunden statt ~17 Stunden nach Updates suchen ;)
was macht die Post? Leitet das Packet an die nächstgelegene Poststation um. Öffnungszeiten Mo-Fr 11-17 Uhr. Toll; meine Arbeitszeit ist 8-17 Uhr und ich brauche mindestens 30 Minuten zu dieser Poststelle. Nun muss ich extra deswegen früher Schluss machen. Sorry, musste mal meine heiße Luft loswerden
-
Thread
Warum gerade Parität bei DCF77?
ein Sommerzeitflag, falls die Regel mal > geändert oder abgeschafft wird. ??? Gibt's doch: Bit 17 (MEZ) und Bit 18 (MESZ).
Johann L. schrieb im Beitrag #2258305: > ??? Gibt's doch: Bit 17 (MEZ) und Bit 18 (MESZ). Ja, aber das restliche Format ist völlig veraltet. 2Bit-Fehler sollten mindestens korrigierbar sein. Ich sagte ja nicht, daß man es umstellen soll, sondern daß man es
-
Thread
Einen Header aus Variablen im Flash an bestimmte Adresse speichern.
ATXMega64 µC. Ich möchte für meine FW einen Header im Flash ablegen. Der Header soll Version, Name, CRC usw. beinhalten. Wie lege ich so eine Constante im Flash an einer bestimmten Adresse ab. Eigentlich möchte ich den Header am Anfag des Flashbereichs haben. Mit folgendem Code und dem Pragma PROGMEM
0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09}, {0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,0x10,0x11,0x12,0x13}, {0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D}, {0x1E,0x1F,0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27}, {0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F,0x30,0x31}, {0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B}, {0x3C
-
Thread
ATtiny25 - EEPROM - Write ohne Verschleiß
trotzdem erreichen ohne die Spezifikationen zu verletzen mit 126 x low Byte + 1 x high Byte + 1 x Bit 17 (65536-100000) + pointer auf low bytes.
Marc V. schrieb im Beitrag #6172910: > Nein, warum? DB, page 17, chapter 5.3.5 Write ... "If the location to be written has not been erased before write, the data that is stored must be considered as lost." Nach meinen Verständnis, schließt das auch Bit-Writes
-
Thread
RFM22B Interrupt Empfang
rf22_read(0x4B); // packet length for (i=0; i<cnt; i++) // Daten (cnt - 2 für CRC) { *data++=rf22_read(0x7f); } rf22_rxmode(); return (cnt); } rf22_rxmode(); return 0; } [/c] Edit: und noch den INT in rf22_rxmode()
// to_ready_mode(); rf22_write(0x07, 0x01); // to_ready_mode(); rf22_write(0x7e, 0x17); // threshold for rx almost full, interrupt when 1 byte received rf22_write(0x08, 0x03); // clear RX fifo rf22_write(0x08, 0x00); // clear fifo, disable multi packet rf22_write
-
Thread
Prüfsumme Profibus Problem
TByte[7]+TByte[8]+TByte[9]+TByte[10]+TByte[11]+TByte[12]+TByte[13]+TByte[14]+TByte[15]+TByte[16]+TByte[17]+TByte[18]+TByte[19]; TByte[20]=TFCS; delay_us(10); do{ if(PIR1.TXIF==1){ Rest= TByte[i]; // Paritäts Berechnung Rest ^= Rest >> 4; // xor bit wise: 0=0^4, 1=1^5,
wichtig. Ein paar grundsätzliche Gedanken zur Prüfsummenberechnung: So gut wie alle Prüfsummen, CRC etc. werden über alle Elemente der Nachricht berechnet. Nach der Profibus-Spec Abschnitt 4.7.4 wird die FCS über alle Elemente zwischen SD und FCS/ED berechnet. Deshalb empfiehlt es sich, das auch
-
Thread
6-Zellen Lipo -> Messmimik ?
spricht via UART, SPI, I2C etc mit deinem Controller. Gibt es von easy to use bis hin zu Multi-Stack mit CRC und ASIL-D fähig. Kommt halt drauf an was du willst. Willst du intelligente Akkus die du nur eine (stombegrenzte) 25,2V Quelle (4,2V * 6 Zellen) hängst und der Rest sitzt im Akku ODER willst du
vielleicht unter 10€/Stück kommt. Da es nur um 4 Zellenakkus geht, kommt man bei rund 16,8 ; sagen wir 17 Volt raus. Man könnte also den Versuch wagen, ein 19,xV Laptopnetzteil zu nehmen, um die kleinen Lader zu versorgen. Das macht die Sache einfach, weil man im Lader dann keine BugBoost-Topologie braucht
-
Thread
STM32F03C8: SD-Card antwortet nicht
Im Anhang die Signale Clock und MOSI (CRC-Byte[0x95] des Kommandos CMD0), die die Karte empfängt. Der Datenausgang der Karte (mit verschiedenen Karten getestet) bleibt permanent auf High. Wer hat eine Idee, wonach ich suchen muss?
da sieht man auch, das bei den Parametern ein @arg GPIO_AF_0:WKUP, EVENTOUT, TIM15, SPI1, TIM17,MCO, SWDAT, SWCLK, TIM14, * BOOT,USART1, CEC, IR_OUT, SPI2 existiert, der SPI1 enthaelt. Das was Du aufgefuehrt hast ist die Port-config, das hast Du ja schon richtig gemacht
-
Thread
Keine Jobs mehr für Bitschubser?
Zeitvertreib zur persönlichen Unterhaltung. Denkst du irgendjemand putzt gerne Toiletten, fährt nachts einen 17-Tonner rum oder unterrichtet aggressive Jugendliche.
@ulfkotte_17 >Fake it. Einen job annehmen in dem du gut bist und deinen asperger >verschweigen. Es geht gar nicht darum, den Asperger zu verschweigen oder nicht. Ich habe die Diagnose erst erhalten als ich
-
Thread
STM32Cube & Eclipse & GCC
\stm32f4xx_hal_spi.c:639:17: warning: variable 'tmpreg' set but not used [-Wunused-but-set-variable] Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_spi.c: In function 'SPI_RxCloseIRQHandler': Compiling: Drivers\STM32F4xx_HAL_Driver
:1802:17: warning: variable 'tmpreg' set but not used [-Wunused-but-set-variable] Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_spi.c: In function 'SPI_DMATransmitReceiveCplt': Drivers\STM32F4xx_HAL_Driver
-
Thread
OpenWrt LEDE: USB funktioniert nicht.
device Das Device ist in /dev vorhanden: brw------- 1 root root 8, 1 May 13 17:10 sda1 Stimmt was mit dem Mount-Befehl nicht? opkg install kmod-usb-dwc2 [pre] [ 41.868408] scsi 0:0:0:0: Direct-Access USB DRIVE 2.00 PQ: 0 ANSI: 2 [ 41.884769] sd
meinem mobilen Reiserouterchen benutze: Keine Ahnung welche OperWRT-Version da drauf ist. [code] crc16.ko crypto_hash.ko ehci-hcd.ko ehci-platform.ko ext4.ko fat.ko jbd2.ko mbcache.ko nls_cp437.ko nls_iso8859-1.ko ohci-hcd.ko scsi_mod.ko sd_mod.ko usb-storage.ko vfat.ko [/code]
-
Thread
Clevercard USB Lesegerät
durchs Reinschieben über die Sensorzeile "scannt" und dann bei jeder Zeile 6 bit (zzgl. irgendwelche CRC oder so) gelesen werden? CU Floe EDIT: Ach ja, hat schon jemand mal was an den Debug-UART drangehängt? Geht der?
*hochscroll* Autor: Johannes Slotta (johanness) Datum: 09.11.2008 17:20 Jetzt weiß ich wieder, woher mir das bekannt vorkommt, aus dem ComputerClub2! Siehe http://www.cczwei.de/index.php?id=tvissuearchive&tvissueid=25#a59 Ist gleich am Anfang der Sendung, viel
-
Thread
ethersex im etherrape
noinline’ attribute ignored ../uip/../net/../dataflash/fs.h:99: error: expected ‘,’ or ‘;’ before ‘fs_crc’ ../uip/../net/../dataflash/fs.h:101: error: expected declaration specifiers or ‘...’ before ‘fs_inode_t’ ../uip/../net/../dataflash/fs.h:101: error: expected declaration specifiers or ‘...’ before
avr-libc_1.4.5-3_all.deb gcc-avr_4.1.2_i386.deb binutils-avr_2.17_i386.deb muss noch mal ein wenig rumprobieren werde noch mal versuchen die pakte zu installieren weil da sind auch immer mal paar confilikte enstanden vllt finde ich den fehler wenn nicht frag ich
-
Thread
Unidirektionale 1 km Verbindung mit niedriger Datenrate
erhöhte sich die Reichweite zwar, aber man musste genau an dem Punkt der Überlagerung stehen und nicht 17cm weiter wo die Auslöschung der Signale erfolgte. Theoretisch sollte das Gerät eine Empfindlichkeit von -100dBm haben und bei freier Sicht 700m Reichweite liefern. Es gibt ja jetzt noch den Bereich
Auswerteelektronik. Man muss dann aber ein kleines Protokoll einführen, mit Fehlererkennung (Parity Bit oder CRC-Byte) und den Empfängern auch eine Adresse geben.