-
Artikel
Diskussion:Mikrocontroller Vergleich
firmenspezifisch. Meiner Meinung bessere Alternative wenn schon kommerzieller Compiler: Keil Testversion. Auf 16kB beschraenkt bei Keil-eigenem Compiler, unbeschraenkt (ausser Debugger/Simulator) mit gcc-Toolchain von Keil. Bei spaeterem Umstieg auf "gnu-only" kann man viel des Gelernten mitnehmen. Architektur: ARM
Pinanzahl ist nicht alles. Integrierte "Zellen" um den ARM-Kern sind teilweise unterschiedlich (vgl. z.B. Interrupt-System STR7/LPC2k/SAM7, UART LPC/AT91SAM7, ...). Uprade von zu klein gewordenem ARM-Controller zu einen groesseren eines anderen Herstellers mglw. mit viel Codeaenderung verbunden. Interruptfeste
-
Artikel
8bit-CPU: bo8
DX5 DX6 DX7 30- DY0 DY1 DY2 DY3 DY4 DY5 DY6 DY7 38- DZ0 DZ1 DZ2 DZ3 DZ4 DZ5 DZ6 DZ7 40- O.VZ O.VS B.VZ B.VS O.UZ O.US B.UZ B.US 48- O.AZ O.AS B.AZ B.AS O.KZ O.KS B.KZ B.KS 50- O.WY O.RP B.WY B.CN GTR ADR GTA NOL 58- IKL DKL IXL DXL IYL DYL IZL DZL 60- AD. LV. AV. SV. GT. AN. XR. NR. 68- STMX LVMX AVMX
---------------------------------------- nn ist zweites Byte eines 2-Byte-Befehls , % ist X|Y|Z AN.B A <= A and B NR.B A <= A nor B XR.B A <= A xor B AV.B A <= A+B+V V <= Carry SV.B A <= A-B-V V <= Carry LV.B A <= B-A-V V <= Carry GT.B A <= B ST.B B <= A AN. nn A <= A and nn NR. nn A <= A nor nn XR.
-
Artikel
Verilog
Bit den Zustand x oder z hat, ist im Ergebnis x und das wird als FALSCH angesehen. Zum Beispiel: 4'b1100 == 4'b1100; // = 1 --> WAHR 4'b1100 == 4'b11xx; // = x --> FALSCH 4'b11xx == 4'b11xx; // = x --> FALSCH 4'b110z == 4'b110z; // = x --> FALSCH Im gleichen Sinn ergeben größer- und kleiner-Operationen
z mit in den Vergleich einbezogen: 4'b1100 === 4'b1100; // = 1 --> WAHR 4'b1100 === 4'b11xx; // = 0 --> FALSCH 4'b11xx === 4'b11xx; // = 1 --> WAHR 4'b110z === 4'b110z; // = 1 --> WAHR 4'b110x === 4'b110z; // = 0 --> FALSCH Logische Operationen
-
Artikel
AVR-Tutorial: Arithmetik8
später mehr), so kann damit im Zahlenraum 0 bis 255 gerechnet werden. Binär Dezimal Binär Dezimal 0b00000000 0 0b10000000 128 0b00000001 1 0b10000001 129 0b00000010 2 0b10000010 130 0b00000011 3 0b10000011 131 0b00000100 4 0b10000100 132 0b00000101 5 0b10000101 133 ... ... 0b01111100 124 0b11111100 252 0b01111101 125 0b11111101 253 0b01111110 126 0b11111110 254 0b01111111 127 0b11111111 255 Die Umwandlung vom Dezimal- in das Binärsystem. Aus dem vorhergehenden ergibt sich völlig zwanglos die Vorschrift
-
Artikel
Reichelt-Wishlist
Segment LED-Display, insbesondere PSC08 und PSC12) | LED Punktmatrix Anzeigen 8x8 superrot 3mm (z. B. Everlight ELM-1883SRWA) * LED Punktmatrix bicolor 1.9mm (z.b. Betlux BL-M 07A881SG-XX ) LED Punktmatrix (Dot-Matrix) 8x8 RGB (z.B. Betlux BL-M 23B881RGB-11) | TFT/OLED Farb-Displays, wie die bereits
LÜK 2,5, also z.B. LÜK 1,5: * Mini-Schraubklemmen Phoenix Contact MPT-Reihe RM2,54, z.B. MPT0,5/12-2,54 f. 12polig | OBD-Stecker. | | Polklemmen Hirschmann PKNI 10B (max. 63A), zumindest Schwarz und Weiß * preiswerte!
-
Artikel
AVR-Tutorial: IO-Grundlagen
dem Windows-Rechner. Hier ein paar Beispiele: dezimal hexadezimal binär 0 0x00 0b00000000 1 0x01 0b00000001 2 0x02 0b00000010 3 0x03 0b00000011 4 0x04 0b00000100 5 0x05 0b00000101 6 0x06 0b00000110 7 0x07 0b00000111 8 0x08 0b00001000 9 0x09 0b00001001 10 0x0A 0b00001010 11 0x0B 0b00001011 12 0x0C 0b00001100 13 0x0D 0b00001101 14 0x0E 0b00001110 15 0x0F 0b00001111 100 0x64 0b01100100 255 0xFF 0b11111111 0b bzw. 0x und $ haben für die Berechnung keine Bedeutung; sie zeigen nur an, dass es sich bei
-
Artikel
Benutzer Diskussion:Alex45
; inputs movwf TRISB ; port B data direction register movlw B'10000000' ; movwf OPTION_REG ; TMRO prescaler is 2, PORTB pullups disabled movlw B'00011111' ; (1's are inputs) movwf TRISA ; A port data direction register bcf STATUS
momentary) bsf A_STAT,2 ; set bit 2 for acknowledge LED bsf STATUS,RP0 ; select memory bank 1 movlw B'00000000' ; outputs movwf TRISB ; port B data direction register movlw B'10000000' ; movwf OPTION_REG ; TMRO prescaler is 2, PORTB pullups disabled movlw B'00011000' ; (1's are inputs) RA0-2 outputs
-
Artikel
AVR-Tutorial: Logik
laut Wahrheitstabelle unabhängig voneinander verknüpft werden. Sei der Inhalt des Registers r16 = 0b11001100, so lautet die Verknüpfung andi r16, 0b01011010 0b11001100 0b01011010 und ----------- 0b01001000 Das Ergebnis wird im ersten Operanden (r16) abgelegt. Im Ergebnis haben nur diejenigen Bits denselben
laut Wahrheitstabelle unabhängig voneinander verknüpft werden. Sei der Inhalt des Registers r16 = 0b11001100, so lautet die Verknüpfung ori r16, 0b01011010 0b11001100 0b01011010 oder ----------- 0b11011110 Das Ergebnis wird im ersten Operanden (r16) abgelegt. Im Ergebnis tauchen an den Bitpositionen
-
Artikel
Multimeter PDM-300-C2 Analyse
Bytes vom Multimeter gesendet (hier wird 12.34VDC angezeigt): Byte# Offset (s) Datenbits 1 1.32E-06 0b11011100 2 5.87E-03 0b10111010 3 1.22E-02 0b00000001 4 1.93E-02 0b00010110 5 2.56E-02 0b00001000 6 3.23E-02 0b00000000 7 3.85E-02 0b00000100 8 4.48E-02 0b11010010 9 5.19E-02 0b00000000 10 5.82E-02 0b11110101
bilden zusammen den angezeigten vorzeichenbehafteten 16-Bit Displaywert in rohen Counts: Counts = (b[6] << 8) | b[7] Prüfsumme. Bei der Prüfsumme handelt es sich um die 16-Bit Summe der Nutzdaten-Bytes (2 bis 7): Prüfsumme = b[2] + b[3] + b[4] + b[5] + b[6] + b[7] Unbekannte Bytes. Die Funktion der
-
Artikel
Dezibel
und/oder Abschwächern in dB addiert werden. Bsp.: An den Ausgang eines Verstärkers mit einem Gewinn von 20 dB wird Dämpfungsglied mit 3 dB Abschwächung (das Minuszeichen ist hier wie üblich weggelassen) angeschlossen. Wie gross ist die gesamte Verstärkung der Schaltung? Lsg.: 20 dB - 3 dB = 17 dB Ebenso kann bei der Rechnung mit Pseudoeinheiten (wie dBm, siehe weiter unten) der Gewinn des Verstärkers einfach zum Eingangspegel addiert werden, um den Ausgangspegel zu erhalten. Bsp
-
Artikel
ArithmetikBenchmark
__udivdi3 3715 signed long 32 a+b=c Inline 30 signed long 32 a*b=c __mulsi3 74 signed long 32 a/b=c __divmodsi4 637 unsigned long 32 a+b=c Inline 30 unsigned long 32 a*b=c __mulsi3 74 unsigned long 32 a/b=c __udivmodsi4 604 signed int 16 a+b=c Inline 16 signed int 16 a*b=c Inline 25 signed int 16 a/b=c __divmodhi4 245 signed char 8 a+b=c Inline 9 signed char 8 a*b=c Inline 12 signed char 8 a/b=c __divmodhi4 245 double 32 a+b=c __addsf3 804
-
Artikel
LPC-Mikrocontroller
1-36kB 1.71-3.6V USB, CAN, EEPROM LPC1200 Cortex-M0 32-128kB 4-8kB 1.8-3.6V 8 kV protection, IEC 60730 Class B certified LPC1300 Cortex-M3 72MHz 8-64kB 4-12kB 2.0-3.6V USB LPC1500 64-256kB 12-36kB 2.4-3.6V
Controller (NVIC). Serial Wire Debug, Micro Trace Buffer supported. System tick timer. Memory: 32kB (LPC824), 16 kB (LPC812M101JD20/LPC812M101JDH20/LPC812M101JDH16), 8 kB (LPC811M001JDH16) or 4kB (LPC810M021FN8) on-chip flash programming memory. 8kB, 4kB, 2 kB, or 1 kB SRAM. In-System Programming (
-
Artikel
JDY-24M BLE Bluetooth Mesh I/O
folgt ein Unterkommando. AA B1 E7 [Ausgang] [Pegel] - das Kommando setzt den Ausgang (01, 02 ,...) auf den Pegel High (01) oder Low (00) AA B2 E7 [Ausgang] [Pegel] - sehe kein Unterschied zu AA B1 E7 AB B1 E7 FF [Bits] - das Kommando setzt die Ausgänge Bit zugeordnet. Bit 0 -> Ausgang 1, Bit 4 -> Ausgang 5 AB B2 E7 FF [Bits] - sehe kein Unterschied zu AB B1 E7 FF A1 B1 E7 [Ausgang] [beliebig] - das Kommando toggelt den Ausgang (01, 02 ,...) A1 B2 E7 [Ausgang] [beliebig] - sehe kein Unterschied zu A1 B1 E7 A2
-
Artikel
Bitmanipulation
von PORTB bitweise ODER-verknüpft und das Ergebnis PORTB wieder zugewiesen. Ist PORTB vorher z. B. 0b01111010, dann ist der Inhalt nach der Operation 0b01111010 oder 0b00000101 = 0b01111111, die gewünschten Bits sind somit gesetzt! Anmerkung: Will man das gezeigte Beispiel der Bitmanipulation auf
invertiert, aus 0b00000101 wird 0b11111010. &= : PORTB wird mit der berechneten Maske UND-verknüpft und das Ergebnis wieder PORTB zugewiesen. Ist PORTB vorher z. B. 0b01111111, dann ist der Inhalt nach der Operation 0b01111111
-
Artikel
Uhr
//Hier kann man den Code an seine Siebensegment Anzeige anpassen const unsigned char Zahl[10] = {0b01100000, 0b11111100, 0b01010010, 0b01011000, 0b11001100, 0b01001001, 0b01000001, 0b01111100, 0b01000000, 0b01001000}; //Globale Variablen volatile unsigned long int Sekunden=0; //32Bit Variable; 24Bit
= 0b00000000; //Timer im CTC-Mode; Prescaler 256; CPU-Clock TCCR1B = 0b00001100; //Timer im CTC-Mode; Prescaler 256; CPU-Clock TCCR1C = 0b00000000; //Timer im CTC-Mode; Prescaler 256; CPU-Clock TIMSK = 0b01000000
-
Artikel
Wanderkiste (Widlar)
Controller/Boards, praktische ICs, neue Bauteile ((FE)T,R,C...) mal schauen was so dabei ist. 7 Hobby B. 25.02.2023 06.03.23 003404344200652675 12,7 kg 8 Martin S. 45xxx S. VFD Display, B: TTLs 9 P. 751** bzw. 970** B: Schalter, Taster, Bananenstecker/-buchsen, ICs, Verbrauchsmaterial, etc. Ich schau mal
464xx 27.04.2025 24.05.2025 DHL: 00340435040010837516 15,8 kg S: Motortreiber, Sensorik für Robbies; B: ESP32 Eval-Boards, NFC Material ... 10 Holger B. 71xxx 26.05.2025 28.05.2025 Hermes: 245147638780 15,6kg S: SMD-Bauteile, Optoelektronik, HF B: div.THT: 74LS/HCT/TL072/NE5532/MC33078, BF245B, BAT42,
-
Artikel
I2C als Hausbus
Steigerung des Stroms auf dem Bus. Die drei bekanntesten Bustreiber für diesen Zweck sind folgende: P82B715 (3000pF, max. 100kHz) P82B96 (4000pF, max. 400kHz) PCA9600 (4000pF, max. 1MHz) Alle drei Typen haben ihre Vor- und Nachteile. Wobei der PCA9600 als Nachfolger vom P82B96 angesehen werden kann und im Prinzip nur Vorteile gegenüber dem P82B96 hat (Abgesehen vom Preis und der Beschaffbarkeit ;) - PCA9600 Gibts nun bei Reichelt!) Der Hauptunterschied zwischen P82B96 und PCA9600 sind die Spannungspegel an der Sx/Sy Seite des ICs. Der P82B96
-
Artikel
Renesas ra
von 100 MHz Entry-Line Mikrocontrollern mit Arm Cortex-M33-Kern mit 48-64-Pin-Gehäusen, bis zu 512kB Flash-Speicher und 128 kB SRAM. RA4M2. 256-512 128 48-100 2.7-3.6 100 12 Varianten von 100 MHz Mikrocontrollern mit Arm Cortex-M33-Kern mit 48-100-Pin-Gehäusen, bis zu 512kB Flash-Speicher und 128 kB
, 512 kB Flash-Speicher und 256 kB SRAM sowie kapazitivem Touch, CAN, USB Full-Speed, Sicherheitsfunktionen und analog Funktionalität RA6M2. 512-1024 384 100-145 2.7-3.6 120 Sechs Varianten von 120 MHz Mikrocontroller
-
Artikel
Testseite
0x) Geradzahlige Ziffernzahl nötig , für Python 2 und 3 möglich Je nach Bytezahl unterschiedlich: b16decode / b32decode / b64decode >>> import base64 >>> x = b'12345678 >>> base64.b16decode(x) b'\x124Vx' Gegeben ein Textstring aus Hexadezimalziffern (kein vorgestelltes 0x): Geradzahlige Ziffernzahl
"===typeof a){var b=[];a=a.length;for(var c=0;c<a;c++)b.push(c);return b}return _.yd(a)}}; _.Oja=function(a,b,c){if(a.forEach&&"function"==typeof a.forEach)a.forEach(b,c);else if(_.fa(a) "string"===typeof a)_.Fa(a,b,c);
-
Artikel
RFM12
Milliwatt]). Da negativ handelt es sich effektiv um Dämpfungen bezüglich der Maximalverstärkung. 00 = 0 dB 01 = -6 dB 10 = -14 dB 11 = -20 dB rowspan=7|r rowspan=7|rssi detector threshold rowspan=7|Relative Empfangsfeldstärke, bei der das digitale Feldstärkesignal dRSSI aktiv wird, in 6-dB-Schritten. Die
. 000 = -103 dB 001 = -97 dB 010 = -91 dB 011 = -85 dB 100 = -79 dB 101 = -73 dB 11x = reserviert Synchronmuster (Synchron Pattern 0xCExx, nur RFM12B ). {|class="wikitable" b byte Legt den Wert fest, der als Synchronisations-Byte
-
Artikel
Tekway/Hantek
/B = Tekway DST1102B = Protek 3110 : 2 Kanäle 500MS/s pro CH (1GS/s bei 1 CH) 100MHz analoge Bandbreite Hantek DSO5062M/B = Tekway DST1062B : 2 Kanäle 500MS/s pro CH (1GS/s bei 1 CH) 60MHz analoge Bandbreite
die Benchtop-/Handheldgeräte, z.b. Handheld hat [DST type]dso1000b und Benchtop [DST type]dst1000b Man sollte am besten bestehende Updates benutzen und "updaten", so entstehen die wenigsten Fehler (die Execute-Rechte nicht vergessen,
-
Artikel
Drehgeber
zeigen jedoch schnell die Schwächen dieser Ansätze. Flankenerkennung von A und Pegelauswertung von B. Viele Sparvarianten verwenden einen externen Interrupt, welcher auf die steigende oder fallende Flanke von Spur A auslöst und dann den Pegel von B auswertet. Ist B=0, dann dreht der Encoder nach rechts
1 und -3 die Bewegung in eine Richtung, -1 und 3 in die andere Richtung dar. Deren Bitmuster sind 0b0…001, 0b1…101 bzw. 0b1…111, 0b0…011. Damit wird klar, dass man Bit 0 (diff & 1) als Kennzeichen heranziehen kann, dass sich in diesem Schritt überhaupt etwas geändert hat, und Bit 1 (diff & 2) als Kennzeichen
-
Artikel
AVR Checkliste
einem Tastendruck statt eines Signals mehrere, und beim fehlenden Pullup fängt man sich Störungen (z. B. das 50 Hz-Netzbrummen) ein, da der Pin nicht auf einem "definierten Pegel" liegt, wenn der Taster nicht geschlossen ist. Soll z. B. bei einem Tastendruck eine LED angehen, dann leuchtet die LED durch
) in das Register schreiben, keine '0'. Trotzdem wird das Bit dadurch '0' z. B.: Das ganze ist kein Fehler, sondern hat seine guten Gründe. Wenn Interrupts zugelassen sind (z. B. in TIMSK) und die Interruptroutine aufgerufen wird, werden diese Flags zumeist automatisch gelöscht
-
Artikel
Lock-Free Algorithmen
Top und auf den gleichen Knoten wie zuvor zeigt. Allerdings zeigt der next-Pointer von Thread 1 auf B, weshalb nun auch Top zu B hingebogen wird. B ist aber garnicht mehr teil des Stacks sondern in Besitz von Thread 2 oder leer. Der Knoten C und damit der gesamte restliche Stack gehen verloren, da auf
ABA-Problem gibt es verschiedene Lösungsansätze, von denen hier einige vorgestellt werden sollen. A next B next C next a) TOP b) c) t1 next1 A next B next C next TOP A next B next C next TOP t1 next1 d) A next B next C next TOP t1 next1 e) A next B next C next TOP t1 Abbildung 2. Zustandekommen des ABA-Problems
-
Artikel
Methodischer Entwurf einfacher Schaltwerke
Multiplexer vor. Dieser ist für 3 Variablen ausreichend, denn 4=2 2 , daher ist n=2 und n+1=3. f 0 = A B C + style="text-decoration:overline"| A B C + A style="text-decoration:overline"|B C + style="text-decoration:overline"| A style="text-decoration:overline"|B C + A B style="text-decoration:overline"|
wie die Abbildung zeigt: f 1 = style="text-decoration:overline"| A style="text-decoration:overline"| B + A style="text-decoration:overline"| B f 2 = style="text-decoration:overline"| A B + A B f 3 = 1 Bei der Übertragung der Schaltfunktion in einen Festwertspeicher ist im allgemeinen keine Optimierung
-
Artikel
Multiplikation in Assembler
Register wie folgt benutzt: MULT r23 r22 r21 r20 r19 r18 r17 r16 r9 r8 r7 r6 r5 r4 r3 r2 16x8 A1 A0 B0 E2 E1 E0 16x16 A1 A2 B1 B0 E3 E2 E1 E0 24x8 A2 A1 A0 B0 E3 E2 E1 E0 24x16 A2 A1 A0 B1 B0 E4 E3 E2 E1 E0 24x24 A2 A1 A0 B2 B1 B0 E5 E4 E3 E2 E1 E0 32x8 A3 A2 A1 A0 B0 E4 E3 E2 E1 E0 32x16 A3 A2 A1 A0 B1 B0 E5 E4 E3 E2 E1 E0 32x24 A3 A2 A1 A0 B2 B1 B0 E6 E5 E4 E3 E2 E1 E0 32x32 A3 A2 A1 A0 B3 B2 B1 B0 E7 E6 E5 E4 E3 E2 E1 E0 Software Version. MACRO. Hier muss vorher zwingend die "sw_mult.inc" Datei
-
Artikel
MCURSES
foreground magenta F_CYAN // foreground cyan F_WHITE // foreground white F_YELLOW // same as F_BROWN B_BLACK // background black B_RED // background red B_GREEN // background green B_BROWN // background brown B_BLUE // background blue B_MAGENTA // background magenta B_CYAN // background cyan B_WHITE /
Weiß F_YELLOW == (F_BROWN | A_BOLD), einige Terminals zeigen dann "Gelb" F_COLOR Vordergrund-Maske B_BLACK Hintergrund Schwarz B_RED Hintergrund Rot B_GREEN Hintergrund Grün B_BROWN Hintergrund Braun B_BLUE Hintergrund Blau B_MAGENTA Hintergrund Magenta B_CYAN Hintergrund Türkisblau B_WHITE Hintergrund
-
Artikel
WEEE-Anmeldung
Endkunden verkaufen möchte. Auch unterscheiden muss man noch das Endkundengeschäft für private Kunden (B2C) und den gewerblichen Verkauf (B2B). B2C Geräte können ja kostenfrei bei allen Entsorgungsstellen abgegeben werden und hierfür müssen dann die Hersteller im Verbund für die Entsorgung gerade stehen
tätig ist und selber registriert ist, muss auch regelmäßig Container auf seine Kosten entsorgen. Im B2B Bereich gelten andere Entsorgungs-Strategien. Grundsätzlich muss man sich aber bei der Stiftung-EAR anmelden, egal ob man im B2B oder B2C als Hersteller gilt. Der Begriff "In Verkehr bringen" ist übrigens
-
Artikel
STM32 Eclipse JLink Linux/Windows
wird die Library von ST benötigt. Zum Herunterladen die Produktseite des Mikrocontrollers aufrufen (zB hier für STM32F407VG), "Design Resources" anklicken, unter dem Punkt "Related Tools and Software" den Eintrag im Stil von "STM32F4 DSP and standard peripherals library" finden (zB hier für STM32F4).
funktioniert). Die angegebene Adresse sollte Anfangsadresse des RAM's (immer 0x20000000) plus RAM-Größe (z.B. beim STM32F407 0x20000 Bytes) sein, also z.B. 0x20020000 für den STM32F407: _estack = 0x20020000; /* end of RAM */ Ist dies falsch, kann es später zu schwer auffindbaren Problemen im Zusammenhang mit
-
Artikel
Word Clock Variante 1 - getrennte Steuerplatine
des Wortes "VIER"): /---|>|----| R1R |---- PWMR +--|---|>|----| R1G |---- PWMG "V" | \---|>|----| R1B |---- PWMB | | /---|>|----| R2R |---- PWMR +--|---|>|----| R2G |---- PWMG "I" | \---|>|----| R2B |---- PWMB OUTx-+ | /---|>|----| R3R |---- PWMR +--|---|>|----| R3G |---- PWMG "E" | \---|>|----| R3B
Leiterbahnen der ersten Platinen immer mit dem vollen Strom belastet). Das "R/G/B-Ausgangssignal" wird vor jedem Wort auf den Vorwiderstand geführt. Dazu ist es notwendig das "R/G/B-Ausgangssignal" von den gemeinsamen Leiterbahnen (R,G,B) mit Draht- (R und G) bzw. einer Lötbrücke
-
Artikel
AVR-Tutorial: LCD
übertragenden Bytes erstmal vertauschen. Der AVR kennt dazu praktischerweise einen eigenen Befehl: Aus 0b00100101 wird so z. B. 0b01010010. Jetzt sind die Bits für die erste Phase der Übertragung an der richtigen Stelle. Trotzdem wollen wir das Ergebnis nicht einfach so mit out PORTD, r16 an den Port geben
bedeutet, dass an der Bitposition b eine 1 stehen muss. Das dafür zu übertragende Befehlsbyte hat also die Gestalt 0b00001111 oder in hexadezimaler Schreibweise $0F. Clear display: 0b00000001. Die Anzeige wird gelöscht und der Ausgabecursor
-
Artikel
16/32Bit Computer/Konsole
------------CLSR TIMER_2_CTRL C = Capture counter value for read (copy current counter value to $A/B $D/E) L = Enable Auto Reload Value (after counter value runs to 0 next value is $A/B $D/E) S = Stop timer R = Start timer (will do a Autoreload from $A/B $D/E) ---------------------------------------
----------------------- address = $8032 - $8033 name = I2C port a/b read fedcba9876543210 30 ------------D--- I2C_PORT_A (port A (eeprom on DE2-115)) 31 ------------D--- I2C_PORT_B (port B (audio/video in on DE2-115)) D = data in from port A/B write fedcba9876543210
-
Artikel
RFM12 Protokoll Stack
nicht, da der Code 2 Bit Fehler nur erkennen, aber nicht eindeutig reparieren kann. Beispiel: 0x29=0b00101001 kann durch zwei Bitfehler sowohl vom Code 0x2f=0b001011111 (codewort für 7) als auch vom Code 0x38=0b00111001 (codewort für 6) oder von Code 0x49=0b01001001 (Codewort für 2) entstanden sein.
ff0000"|0x00 bgcolor="#ffDDDD"|0x0D bgcolor="#ff9999"|0x09 bgcolor="#ffAAAA"|0x0A bgcolor="#ffBBBB"|0x0B bgcolor="#ffBBBB"|0x0B bgcolor="#ffBBBB"|0x0B bgcolor="#ffAAAA"|0x0A bgcolor="#ffAAAA"|0x0A bgcolor="#ffBBBB"|0x0B bgcolor="#ffBBBB"|0x0B A 0x0C bgcolor="#ffCCCC"|0x0C bgcolor="#ffDDDD"|0x0D bgcolor=
-
Artikel
POV-Globe mit XMC2Go
Schieberegisters beachtet wird. Ich habe mich gegen eine eventuell einfachere Verdrahtung von WS4812B-LEDs entschieden, da ich mit Schieberegistern evtl. flexibler bin, das PWM sowieso zu langsam wäre für die Rotation und ich dank deren 24bit-Farbtiefe 8mal so viele (großteils unnötige) Pulse senden
,39R, 38R, … …, 26B, 25B, 24B D2 23G, 22R, 22B, … …, 18B, 17B, 16B D1 15G, 14R, 13B, … …, 10B, 9B, 8B D0 (LSB) 7G, 6R, 5B, … …, 2B, 1B, 0B LED0 ist die Unterste (Südpol der Kugel). Somit liegt minimaler Rechenaufwand beim
-
Artikel
AVR-GCC-Tutorial
sei anfangs 0b00000000. Die erste Anweisung (a) setzt Bit 0 auf 1, PORTA ist danach 0b00000001. Nun wird im ersten Teil der zweiten Anweisung der Portzustand in ein Register eingelesen (b). Unmittelbar darauf (vor
Interrupt-Routine Bit 0 von PORTA gelöscht wird. Nach Verlassen der Interrupt-Routine hat PORTA den Wert 0b00000000. In den beiden noch folgenden Anweisungen des Hauptprogramms wird nun der zwischengespeicherte "alte" Zustand 0b00000001 mit 0b00011100 logisch-ODER-verknüft (c) und das Ergebnis 0b00011101 in
-
Artikel
UPlay Basic Interpreter per XMC2Go
von char auf int vergrößert Die FOR/NEXT-Schleife so angepasst, das sie auch decrementieren kann (z.B. "10 FOR a=8 TO 2") Die FOR/NEXT-Schleife um "STEP" erweitert. (z.B. "10 FOR a=2 TO 13 STEP 3") Den Befehl "REM" hinzugefügt für Bemerkungstexte (z.B. "10 REM -BEISPIELPROGRAMM-") Der dritte Schritt
Pixels (an x,y Position, Wert=[0,1]) 10 GETPX a=x,y 20 PRINT a LINE zeichnen einer Line (von x,y nach a,b) 10 LINE x,y,a,b RECT zeichnen eines Rechtecks (von x,y nach a,b) 10 RECT x,y,a,b FILL füllen eines Rechtecks (von x,y nach a,b) 10 FILL x,y,a,b CIRCLE zeichnen eines Kreises (an x,y mit Radius r) 10
-
Artikel
Loxone Link
0x14xxxxxx Digital Input (DI) Zum finden von Extentions sendet der Miniserver an ID 0x00000000 { 0x0b, 0x00, 0x00, 0x00, 0x6e, 0x95, 0x6b, 0x00 } . Befehlstabelle Befehl Sender Empfänger D1 D2 D3 D4 D5 D6 D7 D8 Ident MS 0x0xxxxxxx 0x08 0x3b 0x00 0x00 0x00 0x00 0x00 0x00 Alive 0x0xxxxxxx MS 0x89 0x00
Eingangsbit (I1-I20), NAT-ID: 6 Bei mehreren gesetzten Bits werden die Wertigkeiten in den Felden B5, B6 und B8 entsprechend addiert. I1-8 B1 B2 B3 B4 B5 B6 B7 B8 ---- ----------------------- ID: 10006080; Msg: 06 00 00 00 01 00 00 00 ID: 10006080; Msg: 06 00 00 00 02 00 00 00 ID: 10006080; Msg: 06
-
Artikel
Kennzeichnung von Halbleitern
dreistellige Zahl von 001 to 999 ohne feste Bedeutung ausser: A - für triacs nach dem zweiten Buchstabe(=nzB) "R" oder "T" B - für HBT Transistor (bipolar) F - für Sender und Empfänger in Glasfaserkommunikation nzB "G", "P" oder "Q" H - für HEMT Transistor L - für Laser außer in Glasfasern nzB "G" or "Q" M - für Transistor Treiber nzB "R" O - für Opto-Triacs nzB "R" R - für Halbleiter Widerstandsnetzwerke nzB "C" T - für tri-state zweifarbige LEDs nzB "Q". W - für Transienten Suppressor Dioden nzB "Z" für Fotokoppler: ein Buchstabe
-
Artikel
Diskussion:LiFePO4
Ist es möglich, Balancing durchzuführen, ohne die Energie in Wärme zu wandeln? Wenn ja, wie nur? z.B. bei 100Ah Zellen... Da könnte im schlimsten Fall ordentlich "Wärme" entstehen, wenn man "passiv" balanced
-
Artikel
Diskussion:Linux
Mikrocontroller/Elektronik beziehen, f�r die Entwicklungsgeschichte von Linux gibt es besser geeignete Seiten (z.B. Wikipedia)! --Andreas 19:05, 23. Dez 2005 (CET)
-
Artikel
Klangerzeugung
aufnehmen und auf Befehl abspielen. ISD25xx z. B. ISD2560 -> Reichelt ISD17xx z. B. ISD1730 -> ? ISD14xx z. B. ISD1416 -> Conrad Beispiel aus Roboternetz.de DTMF, Telefontönen MT 8880 -> Conrad MT 8870 -> Conrad CM 8870 DDS-Tongeneratoren AD 9850 Der
Inkrementalwert, desto höher die Tonfrequenz. Dabei nimmt man in digitalen Schaltungen wie PLDs z.B. einen 32 Bit-Wert und inkrementiert mit einer Frequenz von z.B. 100MHz. Statt wie bei der DDS eine Tabelle anzusteuern, wird einfach das MSB ausgegeben. Eine Verbesserung ergibt sich, wenn man z.B.
-
Artikel
Diskussion:AVR FAT32
Dringend updaten! Einige Funktionen und Namen von Makros haben sich verändert (wie z.B. ffopen) und der Beispiel Code funktioniert daher nicht mehr. MFG--Fer t 17:23, 18. Jan. 2012 (UTC)
-
Artikel
Diskussion:Gehäuse-Übersicht
mit Gehäusen zu erstellen, die nicht auf den bekannten Gehäusen der Versender aufbauen, sondern z.B. auf Verpackungen etc. die sich zufällig gut als Gehäuse benutzen lassen und möglicherweise deutlich günstiger sind (falls solche Fälle bekannt sind)?
-
Artikel
Diskussion:Entwurf: Spektralanalyse mit der FFT
angedacht, geliefert, benötigt? Mich würden Beispiele zur Nutzung interesieren, ala FFT für Dummies. Z.b. Array mit Signalverlauf in die FFT reinwerfen, und aus der Frequenzkoeffizientenmatrix wieder das Orginal wiederherstellen. Was passiert mit der Phasenlage, welche Buffergröße sollte ich in die FFT
-
Artikel
AVR und Linux
Skript, mit dem man die Einstellungen zusammenklicken kann (benötigt aber auch wieder anderes, z. B. TCL/TK, ..): Dessen Aufruf erfolgt dann z. B. mit $ wish mfile.tcl Über ein Menü kann man dann die Einstellungen zusammenklicken. Das Editieren des Makefiles für Spezialanpassungen lässt sich aktivieren
leitet die Ausgabe auf (Bildschirm). Anstelle des 'i' können verwendet werden: 'h' - hexadezimal, z.B. 0xdf 'o' - oktal, z.B. 0337 'b' - binär, z.B. 0b11011111 [Quelle: man avrdude, Beschreibung des Schalters '-U'] TODO: Frontend? Eine Anleitung zum Umgang: Eine 0 steht für eine gesetzte Fuse. Die Bedeutung
-
Artikel
USB-Tutorial mit STM32
gebraucht, aber darin müssen für jeden Port 2 Interfaces angelegt werden, also in Summe 6. Daher wird bNumInterfaces auf 6 gesetzt. Das erste Interface ist jeweils ein "Communications Class Interface", und erhält die Werte bInterfaceClass=2, bInterfaceSubClass=2 und bInterfaceProtocol=1. Das definiert
um maximal 3% von der gewünschten "B_w" abweicht. Wir wollen also prüfen, ob die angeforderte Baudrate tatsächlich erreichbar ist, d.h. ob "|B_i - B_w| / B_w <= 0.03" ist. Um das nicht mit floating-Point-Zahlen rechnen zu müssen (der Cortex-M3
-
Artikel
Zahlensysteme
0010 3 3 3 0011 4 4 4 0100 5 5 5 0101 6 6 6 0110 7 7 7 0111 8 8 10 1000 9 9 11 1001 10 A 12 1010 11 B 13 1011 12 C 14 1100 13 D 15 1101 14 E 16 1110 15 F 17 1111 Darstellung. Hexadezimal. Hexadezimalzahlen werden meistens (z. B. in C oder im AVR-Assembler) mit dem Prefix "0x" geschrieben, also z. B.
Zahl 52 entspricht. Das gilt auch für AVR-ASM. Binär. Binärzahlen schreibt man im AVR-Assembler mit "0b" am Anfang, z. B. 0b00110100. In C-Programmen ist die direkte Eingabe von Binärzahlen nicht möglich, es lassen sich aber Makros zu diesem Zweck schreiben. Einige Compiler verfügen über eine Spracherweiterung
-
Artikel
FPGA
benötigte Schaltungsteile fast in Hardware zu integrieren. DSP-Elemente. Für rechenintensive Designs, z. B. in der Signalverarbeitung, enthalten inzwischen praktisch alle FPGAs dedizierte Multiplizierer auf dem Chip, die in sehr kurzer Zeit, z.B. auch einem einzigen Taktzyklus, breite Multiplikationen durchführen
unterschiedlichen Taktfrequenzen zu unterscheiden: Mit einem Systemtakt von 20 MHz lassen sich z. B. 18-Bit AD-Wandler auslesen, die so z. B. alle 1 µs neue Daten liefern, die verarbeitet werden müssen. Bei der Nutzung von 5 solchen Wandlern, die sequentiell verarbeitet werden, lägen 5 MHz Datenfrequenz
-
Artikel
RPi als D/A-Wandler
Anwendung von D/A-Steuerungen ist die mögliche Reaktion dieser Steuerung auf 'äußere' Ereignisse, die z.B. mit Hilfe von Sensoren leistbar ist. b. Für unsere Zwecke genügt zunächst ein sehr einfacher Sensor, der ein 0- oder 1-Signal liefert und idealerweise direkt am 'Input Pin 1' des PiFace angeschlossen
würde sich dieses Problem (theoretisch) relativieren, da bei geschickter Auswahl der Widerstände (z.B. im Verhältnis 1 zu 2) jeweils eine Verdoppelung der Kombinationsmöglichkeiten erreichbar ist. b. Wird hier der 50 Ohm Widerstand asymmetrisch geteilt (z.B. 15 + 35 Ohm, s.a. Spannungsteiler) um dort
-
Artikel
Diskussion:Und noch 'ne Nixie-Uhr
kompletten ASCII-Zeichensatz darstellen konnten. Will nicht mal jemand sowas bauen? -- 2A02:2028:22A:F2B1:219:21FF:FE52:21CB 08:07, 29. Jun. 2013 (CEST) (Sloyment)