-
Thread
8bit Latch mit Schmitt-Trigger
Moin, ich suche einen 8bit Latch mit Schmittrigger-Eingängen der Datenleitungen. Beim 74xx573 Blick ich da gerade nicht ganz durch. Die meisten Datenblättern erwähnen keinen ST, fürchte also er hat keinen. (Ein exotisches Datenblatt
AVR) knapp werden. Zudem gibt es aber auch keinen Grund das ALE-Latch nicht dicht an die CPU zu setzen.
-
Thread
Arduio Zero mit ARM Cortex M0.
schrieb im Beitrag #4061112: > Also zumindest die SAMD20 haben zig Register pro Port. > Je eines zum Setzen, Löschen, Wackeln zum Beispiel. Wenn das so ist braucht es immer noch einen zusätzlichen Shift um das entsprechende Bit anzusprechen. Bei Bit-addressierbarem Speicher hat jeder Pin eine eigene 8
im Beitrag #4061173: >> Also zumindest die SAMD20 haben zig Register pro Port. >> Je eines zum Setzen, Löschen, Wackeln zum Beispiel. > > Wenn das so ist braucht es immer noch einen zusätzlichen Shift um das > entsprechende Bit anzusprechen. Was für ein Shift? Sowas wie in "(1<<PA0)"? Das wird
-
Thread
Com Port Zugriff unter Windows 7 64 bit mit C++
tmp = 0; char buffer[1024]; WriteFile( h, buffer, sizeof(buffer), &nBytesRead, NULL ); DTR setzen/löschen: EscapeCommFunction( h, SETDTR ); EscapeCommFunction( h, CLRDTR ); RTS setzen/löschen: EscapeCommFunction( h, SETRTS ); EscapeCommFunction( h, CLRRTS ); DSR lesen: DWORD dw; GetCommModemStatus
printf("error1"); dcb.BaudRate = CBR_9600; //9600 Baud dcb.ByteSize = 8; //8 data bits dcb.Parity = NOPARITY; //no parity dcb.StopBits = ONESTOPBIT; //1 stop if (!SetCommState(hPort,&dcb)) printf("error2"); bool retVal = WriteFile(hPort,data,1,&byteswritten
-
Thread
STM32F3: IRQ-Prioritäten
ich durch Einrückung dargestellt. [c]#define NVIC_PRIORITYGROUP_0 (0x00000007U) /*!< 0 bits for pre-emption priority #define NVIC_PRIORITYGROUP_4 (0x00000003U) /*!< 4 bits for pre-emption priority #define __NVIC_PRIO_BITS 4U /*!< STM32F302x8 devices use 4 Bits for
PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ uint32_t PreemptPriorityBits; uint32_t SubPriorityBits; PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); SubPriorityBits
-
Thread
Parity-Funktion in C
Kann man eine 0 setzen, wie man es mit einer 1 macht? data=data|(1<<7); // Parity - Bit an Stelle 7 setzen
Muss die Sende-Funktion, die um das PARITY - Bit erweiterte Zahl, an die Empfangs-Funktion senden oder nur das PARITY - Bit?
-
Thread
AVR WGM Modus 11
TOP zu 0x0000 rückgesetzt würde, oder falls benötigt umgekehrt. Aufwand in diesem Fall: 1x 16 Bit-Register OCR1A setzen 1x Compare Match A Interrupt Routine mit Schritt zählen 1x Overflow Routine mit Frequenz ändern Aufwand CTC-Modus: 1x 16 Bit-Register OCR1A setzen 1x Interrupt-Routine (
wird, dann 1x 16 Bit-Register ICR1 setzen (nicht gepuffert!) 1x 16 Bit Division mit 2 (ok einfach, aber doch "Aufwand") 1x 16 Bit-Register OCR1A setzen für 1:1 1x Interrupt Routine (Compare Match A) 1x Vergleich um
-
Thread
unerwünschter Interrupt bei Timeraktivierung
TIFR, r16 ist einfach nur alle Interruptzeigeregister auf 1 (also "kein Interrupt vorhanden") setzen
; IRQ Serviceprogramm .ORG OC1Aaddr rjmp CTC_MATCH ; Timer1 (16-Bit) Serviceprogramm ; ########## HAUPTPROGRAMMBEREICH ########## START: ; Begin Hauptprogramm (Stackinitaklisierung usw.) ; Konfiguriere Timer1 (16 Bit) für
-
Thread
Problem mit LCD an ATMega 644
PD4 am AVR 12 DB5 PD5 am AVR 13 DB6 PD6 am AVR 14 DB7 PD7 am AVR lcd_command(0x28); // 4Bit 2 Zeilen 5x7 wird nun akzeptiert jedoch geht wie vorher nur eine Zeile in der soft Reset Routine musste ich das 0x30 mit einem 0x20 wie bei auf 4-bit setzen tauschen sonst kein bild laut der
10k zu setzen so das solange das teil am initialisieren ist und noch im 8 bit Modus es sofort auf 4 bit 2 Zeilen gesetzt wird also mit einem 0x28, glaubst Du das ist ne gute Idee?
-
Thread
Lohnt sich der Einstieg in die MSP430 Welt?
- ich habe das bei einem PIC16F-Modell (8-bit) kennenlernen müssen > und das ist einfach nur grausam. Kaum ein 8-Bit-Prozessor kennt nur 8-Bit-Adressen. Die meisten sind in der Lage, mit 16-Bit-Adressen zu arbeiten und können damit 64 kiB
größer als 8bit. Einige (z.B. AVR) haben sogar einen 16bit breiten Programmspeicher.
-
Thread
Spannungsmessung ADC
Danke ich habe es mir durchgelesen.Ich habe bis jetzt nicht ganz verstanden warum ich ein ADSC Bit brauche. Kann ich diesen Bit (Bit 6) auf Null setzen?
Vielen dank für die Antwort. Heißt das, (2.) wenn ich den Bit 6 im ADSCR Register nicht setze (ADSC=0), keine Messung vorgenommen wird. Muss ich immer diesen Bit setzen (ADSC=1)?
-
Thread
Programmiersprache - C oder Assembler?
vorweg. Kann der UART mit Nutzdaten gefüttert werden, die Start und Stoppbits eigenständig dazu setzen? Oder müssen diese Bits von Hand mitprogrammiert werden? Danke!
vorweg. Kann der UART mit Nutzdaten gefüttert > werden, die Start und Stoppbits eigenständig dazu setzen? Ja. > Oder müssen > diese Bits von Hand mitprogrammiert werden? Nein. Näheres im Datenblatt des verwendeten Controllers.
-
Thread
Verschlüsselung im Jahr 2016: Immernoch "schwache" Hardware berücksichtigen?
Plattformen wurde in drei zusätzlichen Zielen unterteilt: - Die rechnerische Geschwindigkeit mit 128-Bit-Schlüsseln. - Die rechnerische Geschwindigkeit mit 192-Bit- und 256-Bit-Schlüsseln sowie die rechnerische Geschwindigkeit verschiedener Hardware- Implementierungen. Der Speicherverbrauch und
ein "OK" oder ein "N(och)2" aus. Dann kommt der "Verbesserungsvorschlag": "Wenn wir doch eh jedes Bit seriell als Eingabe bekommen, können wir doch gleich in der Eingabepufferzählschleife, die die Bits entgegennimmt, schon Bit für Bit mit dem gespeicherten Pin vergleichen. Dann brauchen wir doch den
-
Thread
BLDC Sinuskommutierung Ansteuerung H-Brücke
und das Ergebnis auf den PWM Bereich // scalieren /* if (FW == 0) { n1=(IMAX-dU)>>(30-BITS); n2=(IMAX-dV)>>(30-BITS); n3=(IMAX-dW)>>(30-BITS); } else { n1=(IMAX-(IMAX/4+1)-dU)>>(30-BITS); n2=(IMAX-(IMAX/4+1)-dV)>>(30-BITS); n3=(IMAX-(IMAX/4+1)-dW)>>(30-BITS); }
// Begrenzung der Werte if (n1<0) n1=0; if (n2<0) n2=0; if (n3<0) n3=0; if (n1 > (1<<BITS)) n1=(1<<BITS); if (n2 > (1<<BITS)) n2=(1<<BITS); if (n3 > (1<<BITS)) n3=(1<<BITS); */ pM->dU=n1; pM->dV=n2; pM->dW=n3; pM->sector=sector; Der NullVektor wird auch in der SVPWM
-
Thread
Abhörtechnik "Wanzen" finden.
48kByte RAM eine Bitmaske zu ziehen und so Bitreihe für Bitreihe (48k * 8) auf 1 oder 0 zu setzen, bzw. auf den Speaker zu kopieren. Wenn man das schnell genug macht (etwa 10 Sekunden gingen beim Apple), dann versteht man da schon was, das Ohr 'dithert' das Bit.
die 48kByte RAM eine Bitmaske zu ziehen > und so Bitreihe für Bitreihe (48k * 8) auf 1 oder 0 zu setzen Damit wäre das eine 8-bit Quantisierung. Um zB eine 8bit Hüllkürve zu erfassen brauchst du trotzdem 8 einzelne bits. Damit wäre die Auflösung dieses Samples technisch gesehen 8bit (256 Zustände
-
Thread
Windows XP auf SSD migrieren?
beeinflussen)? - Wie geht man sinnvoll vor? Kann ich auf althergebrachte Werkzeuge wie GParted setzen? Viele Grüße W.T.
fehlt höchstwahrscheinlich die 48-Bit-Unterstützung.
-
Thread
HD44780 LCD - Simulation OK, AVR bleibt in Funktionen stecken
_t data ) { >// data &= 0xF0; // obere 4 Bit maskieren >// LCD_PORT &= ~(0xF0>>(4-LCD_DB)); // Maske löschen >// LCD_PORT |= (data>>(4-LCD_DB)); // Bits setzen > LCD_PORT = data; // Bits setzen > lcd_enable(); >}
0xF0; // obere 4 Bit maskieren LCD_PORT &= ~(0xF0>>(4-LCD_DB)); // Maske löschen LCD_PORT |= (data>>(4-LCD_DB)); // Bits setzen lcd_enable(); } [/C] Daten oder Steuer? Ganz klar Daten. Und zwar
-
Thread
MSP430G2: Elegantester Weg Bits zu empfangen?
auf "primary module selection" aendern (via P2SEL0/P2SEL1) b) TA0CCR auf 16MHz/160kHz = 100 setzen. c) Counter (TA0CR) auf -50 setzen und timer starten d) Der erste compare interrupt sollte nach 150 timer zyklen kommen, also inter Mitte vom zweiten "1" bit. e) Folgende interrupts
auf die pos. Flanke warten. Wenn Delimiter high: Timer (CCR0) auf eine halbe Bitzeit (~3.12 µs) setzen. Z. B. Bitzähler setzen Bei jedem Timerinterrupt: - Bit einlesen - Bit in ein Schieberegister - Timer (CCR0) auf eine ganze Bitzeit (~6.25 µs) setzen Letzteres ist prinzipiell nur beim ersten
-
Thread
Bit verschieben in C
mit einer Oder Funktion weiß aber nicht ob das funktioniert. Ich weiß auch nicht wie ich einzelne Bits in einem Byte durchschieben kann. mfg
die Schiebeoperatoren verstanden da kann ich eh immer ne 1 nachschieben und nach 8 mal schieben setz ich das byte neu damit müsste die 0 immer weiter verschoben werden
-
Thread
Auf dem Kriegsfuss mit AVR
ausgeführt werden, ohne das sich nur ein Byte verändert (keine Lockbits sind gesetzt) 4. warum das Setzen von Fuses immer so ein umständlicher Akt ist, während bei microchip in C18 alle Bits in #pragma-Anweisungen festgelegt werden. Auch das Platzieren von Konstanten im Programmspeicher an einer vorgegebenen
Bootsektor. Bei meinem Bootloader habe ich deshalb einen API-Call dafür eingebaut. > 4. warum das Setzen von Fuses immer so ein umständlicher Akt ist, > während bei microchip in C18 alle Bits in #pragma-Anweisungen festgelegt > werden. Ja, das ist unschön. Andere MCs machen das besser, indem immer
-
Thread
LCD-Tutorial.:)
hi, ich bin gerade dabei das LCD-Tutorial zu testen. ich bekomme das Display im 4Bit Modus ans laufen, heisst der Cursor blinkt an der ersten stelle, aber mehr auch nicht. [c] // Ansteuerung eines HD44780 kompatiblen LCD im 4-Bit-Interfacemodus // http://www.mikrocontroller.net
// RS auf 0 setzen temp1 = temp1 >> 4; // oberes Nibble holen temp1 = temp1 & 0x0F; // maskieren LCD_PORT &= 0xF0; LCD_PORT |= temp1; // setzen lcd_enable(
-
Thread
AVR: Bit direkt in IO-Space kopieren
Ohne low/high vs high/low Jitter und bezogen auf alle anderen Bits im Zielregister atomar: ;in=regA,bitA, out=portB,bitB bst regA, bitA bld r16, bitB in r17, portB eor r16, r17 and r16, 1<<bitB out pinB, r16 Geht nicht bei der ATmega8
Lösung ist die mit cli/sei. Ohne cli/sei kann es immer Jitter geben, selbst wenn du direkt die bits setzen könntest, da die ISR jederzeit zuschlagen kann. P.S. Wenn es aber wirklich atomar und unabhängig/ungestört von der ISR gehen sollte, hätte ich es ganz einfach mit SPI gemacht. serialpin
-
Thread
Wie Display beschalten und Temperatur ausgeben?
RST an PC5 So, ich habe es nun folgendermassen aus dem Datenblatt verstanden, R/W auf Low setzen zum schreiben (...|&= ~(1<<PC1)) ok CS1 auf High setzen (...|=(1<<PC3)) ok D/I und E verstehe ich nicht wofür die seien sollen, aber das erlese ich mir gerade nochmal genau. Aber mit dem "daten
. D/I=1 Daten senden, z.B. Y-Adresse eines Pixels meist werden Bytes gesendet in denen z.B. ein H-Bit bedeuted dass ein Pixel gesetzt wird bzw. ein Low-Bit bedeutet, dass ein Pixel gelöscht, bzw. nicht gesetzt wird Ich würde es mal so probieren Power ON wait 100ms Setze RESET (RST) = Low
-
Thread
ATmega1284p lässt sich nur einmal laden
Die Frage: in Manual in 9.12.2 steht: "The CKDIV8 Fuse determines the initial value of the CLKPS bits. If CKDIV8 is unprogrammed, the CLKPS bits will be reset to “0000”. If CKDIV8 is programmed, CLKPS bits are reset to “0011”, giving a division factor of 8 at start up." Wenn aus deinem Bericht kommt
Programmieren in aller Ruhe den Hart-Reset weg. Und das Programm läuft ohne über die alten CLKPR-Bits zu stolpern.
-
Thread
Problem mit PWM aus Timer2 mit ATmega8535
CTC_Mode.png sieht es aus, wenn ich das Programm grade gestartet hab und eine Anweisung nach dem TCCR2-Setzen bin. Man beachte, dass zwar rechts oben "normal" angezeigt wird, die Bits jedoch das Bitmuster für CTC anzeigen (WGM21=1, WGM20=0). Auswahl.png zeigt, daß man zur Laufzeit die Bits für den Timer-Modus
PD7 als PWM-Ausgang dienen kann (PD7 = OC2) ldi tmp1, 0x00 out PORTD, tmp1 ; PORTD auf "0" setzen ; Timer2 starten via Setzen des Clock Bits in tmp1, TCCR2 ori tmp1, (1 << CS22 | 1 << CS21 | 1 << CS20) out TCCR2, tmp1 [/avrasm]
-
Thread
Menu Designer für Grafik LCDs inklusive grafischem Editor
komplettes Menüsystem für schwarz-weiß Grafik LCDs erstellt. Features: Bis zu 16 MB Menü Größe im 24/32 Bit Adressen Modus Bis zu 64 KB Menü Größe im 16 Bit Adressen Modus Implementiert ist das ganze als Bytecode Interpreter. Das Menü kann auf jedem beliebigen wahlfrei lesbarem Speicher untergebracht werden
XP 32bit + Lazarus 1.2.2: Menuedit compiliert, keine weiteren Tests durchgeführt Windows Vista 32bit + Lazarus 0.9.28.2 + Cygwin: Compiliert nicht, Lazarus zu alt [/code
-
Thread
Erste Schritte mit ARM SAMD20
ja auf RAM wie auf Register zugreifen (wie schon der 8051), somit kann man dort direkt im Port ein Bit setzen (ist natürlich nicht wirklich RISC). Der ARM trennt aber Register und RAM, somit müsste man den Port auslesen, Bit setzen und wieder zurück schreiben. Da aber der ARM einen riesigen Adressraum
Register was erstmal sehr nett ist. Und OUTSET ist das Register mit dem einfach die entsprechenden Bits auf 1 setzen kann, also ohne read-modify-write.
-
Thread
Universelle Tastenabfrage
Nach 500ms wird ihr dann eben die 1 an der jeweiligen Position übergeben. Aber nach 500ms wurde das Bit in key_press doch schon längst gelöscht, weil das ja sofort beim Timeroverflow nach dem setzen wieder gelöscht wird. Also müsste get_key_press() dann doch immer eine 0 liefern? Aber sie gibt ja eine
die die Tastatur - Variablen nicht verändern, dürfen ja schadlos laufen ... od'r? Ich lösche / setze daher selektiv nur das Timer - Interrupt Enable Bit des 10ms Timers. Sollte - was sehr unwahrscheinlich, aber immerhin möglich ist - genau während dieser Sperre ein Timer Overflow eintreten, gibt's
-
Thread
Xmega Programmierung in ASM
So lange man nur einzelne Bits zu setzten hat hat man vielleicht keinen Vorteil. Aber sobald man zwei Bits setzen will spart man Befehle
Also mit sbi oder cbi kann ich auch mehrere Bits mittels "|" Operator gleichzeitig setzen. z.B. sbi PORTB, Bit1 | Bit3 | Bit6
-
Thread
Menüsteuerung mit zwei Tasten (Up/Down) in Assembler
mit Schieberegister für Hoch/runter ROR R17 ; schiebe nach rechts BRNE Set_Bit_ok ; Wenn nicht 0 dann ablegen LDI R17, 0b10000000 ; Bit 7 setzen RJMP Set_Bit_Ok Chk_T2_Off: Mov R16, R1 ; noch mal abfallende Flanken laden ANDI R16,0b00001000
mit Schieberegister für Hoch/runter ROL R17 ; schiebe nach links BRNE Set_Bit_ok ; Wenn nicht 0 dann ablegen LDI R17, 0b00000001 ; Bit 0 setzen Set_Bit_Ok: STS Ausgabe, R17 ; Schiebevariable in Ausgabevariable schreiben Mov R16, R1 ANDI
-
Thread
Assembler, Register reagiert falsch
Versuche mal statt Bit.5 fuer PCIE Bit.4 (ohne Belegung) zu setzen und kuck was passiert. >UDRIE=1 fährt dir dein prgramm zu, weil (>>>>31<<<<<<<TXEN) gesetzt wird. Was meinst Du damit?
Ja, die 31 war absichtlich gesetzt als Maske zum setzen der erforderlichen Bits
-
Thread
Poti mit ADC einlesen
Oder ausführlich: • Bit 4 – ADIF: ADC Interrupt Flag This bit is set when an ADC conversion completes and the Data Registers are updated. The ADC Conversion Complete Interrupt is executed if the ADIE bit and the I-bit in
Muss ich mich denn selber zitieren? >Ok, nochmal: Das ADIF wird durch setzen von ADSC gelöscht. Ich löse durch setzen des ADSC ein Messung aus (dazu ist das bit schließlich da!) und warte bis die Messung beendet ist, angezeigt durch Wechsel von null auf eins des ADIF. Liest
-
Thread
128x64 Grafik LCD An Atmega 8/16/32
loesche Anzeige .equ home_LCD = 0b00000010 ;return home .equ set_LCD = 0b00111100 ;8 bits,2 Zeilen,5x7dots .equ LCD_on = 0b00001110 ;schalte LCD ein .equ entry_mode = 0b00000110 ;setze Cursor ;*************************************************************** ;Variablendefinition
trotzdem mal einen Erklärungsversuch. Wenn du ein Byte zum Display schickst, representieren die 8 Bits 8 untereinanderliegende Pixel. Ein H-Bit heisst Pixel an. Ein L-Bit Pixel aus. Bei einem 5x7 Font hast du 5 Spalten mit 7 Bits. Wenn du dir die linke Spalte von einem 'A' (Anhang) ansiehst sind Bit0
-
Thread
Timer 0 beim Atmega8
Nimm eine globale Variable setze sie auf 10, und zähle bei jedem Interrupt 1 ab. Wenn sie 0 erreicht schaltest du das Port-Bit nicht mehr um - fertig. Jedesmal wenn du wieder erneut ein Signal senden willst setzt du im Main die
Jetzt folgt noch die Abfrage, ob diese Variable schon einen bestimmten Wert erreicht hat (weiteres Bit setzen) oder nicht (kein Bit setzen *g*) und es wird ins Hauptprogramm gesprungen. Entweder wird jetzt bei jedem Durchlauf des Hauptprogramms dieses Bit (in irgendeinem beliebigen Register; "privates
-
Thread
LCD am ATmega8
des LCD ist fehlerhaft. Ich hatte das gleiche Problem, weil ich die Betriebsarten 2-zeilig UND 4-Bit Bus gleichzeitig mit einem Kommando einstellen wollte. Nachdem ich zuerst den 4bit-Modus und dann 2-zeilig gesendet habe gings einwandfrei. Ich habe gerade den Code gerade nicht hier, kann aber
rcall lcd_enable ;3 rcall delay5ms ldi temp,0b00100000 ;set Function (zuerst mal 4 bit Interface aktivieren) rcall lcd_command ;sonst komme ich nämlich nicht an Bit 3 ran (für Modus 2-zeilig) rcall delay5ms ldi temp,0b00101000 ;set Function (2 zeilig, Font 5x7)
-
Thread
enc28j60 kann Adresse für die Bank Registers nicht finden im Datenblatt
wird die neue gesetzt. Das stimmt, ist aber nur ein Teilaspekt. Dummerweise kann man die Banksel-Bits nicht direkt beschreiben, sondern nur getrennt setzen und löschen. dh. man braucht ggf. zwei Befehle. In bestimmten Fällen, nämlich wenn nur Bit(s) gesetzt bzw. gelöscht werden müssen, reicht jedoch
eProfi schrieb im Beitrag #5052320: > Dummerweise kann man die Banksel-Bits nicht direkt beschreiben, sondern > nur getrennt setzen und löschen. dh. man braucht ggf. zwei Befehle. > In bestimmten Fällen, nämlich wenn nur Bit(s) gesetzt bzw. gelöscht > werden müssen, reicht
-
Thread
1-wire mit Atmega8
schreiben cmd(0xC0,0); //Zeilenumbruch DDRD |= (1<<PD5); //PD5 als Ausgang setzen PORTD = (0<<PD5); //Bus-Master PullDown _delay_us(480); //warte 480uS - auch mit 500 und 550 versucht DDRD &= ~(0<<PD5); //PD5 als Eingang setzen _delay_us(60);
; int D=10; DDRD |= (1<<PD5); //PD5 als Ausgang setzen PORTD = (0<<PD5); //Bus-Master PullDown _delay_us(C); DDRD &= ~(0<<PD5); //PD5 als Eingang setzen _delay_us(D); } void oww(int command){ for(int i=7; i>=0; --i)
-
Thread
Einzelnen Bits eines Bytes PINs zuweisen
sicher, dass man auch auf dem MSP-Compiler mit Standard C-Mitteln durch P1 |= ( 1 << 0 ); das Bit Nr 0 am Port P1 setzen kann. Kein Mensch zwingt dich, das über einen Zugriff über P1.0 zu erledigen.
dann auch immer der lesende Zugriff auf P1 geht. Entscheidend ist nur: P1 lesen, die unteren 5 Bits auf 0 setzen, vom Counter die unteren 5 1-Bits übernehmen, auf P1 schreiben. Wenn der Zustand der restlichen 3 Bits an P1 egal ist, dann natürlich P1 = Counter; Oder auch Kombinationen davon
-
Thread
Hilfe beim Brennen eines Atmega8 ( Fusebits)
zu markieren.. Der Resetpin kann man nicht auswählen. Beim Atmega 8 ist dies der Pin 1. Das Fuse bit RSTDISBL programmiert diesen Pin um. Dies sollte also nach dem Schreiben des Programms geschehen. Die anderen Fuse Bits könntest du auch vorher setzen. Wichtig ist, dass die Clock nicht falsch eingestellt
nicht wie nötig eine Auswahl vornimmt. Meine Überlegung : 1. Brennen vom Flsah Speicher 2. Setzen der Fuse Bits ohne RSTDISBL 3. Verifizieren ob bis hier alles stimmt 4. Wechseln auf AVR Dude mit AVR 8 Burn und auslesen der Fuse Bits 5. Nachsetzen von RSTDISBL und neu brennen der Fuse Bits
-
Thread
bit position ohnel log
wie kann ich folgende umwandlung ohne log durchführen (bit position ermitteln): input -> output 0x08 -> 4 0x04 -> 3 0x02 -> 2 0x01 -> 1 danke
Addresse im Z-Register springen. dafür muss man aber erst das Z-Register auf die aktuellen PC setzen und dann noch den wert addieren. Danach noch den Sprung ausführen. Es ging um die Optimierung und das ist das zu langsam.
-
Thread
STM32L031K6 Sprung in Bootloader aus Applikation funktioniert nicht
->LOAD = 0; SysTick->VAL = 0; //Alle Interrupts deaktivieren __disable_irq(); //PRIMASK-Bit setzen (nur NMI/HardFault Interrupt möglich) //Das erste Datenwort im System ROM (= Speicherbereich des Bootloaders) enthält die Adresse, //mit welcher der Stackpointer geladen wird. Dieser
BootLoaderUniversalAnsprungFunktion(void) // ™pegel { __disable_irq(); //Interrupts deaktivieren, PRIMASK-Bit setzen RCC->APB2ENR |= RCC_APB2ENR_SYSCFGEN; //Takt aktivieren SYSCFG->CFGR1 &= ~SYSCFG_CFGR1_MEM_MODE_1; //Bit löschen SYSCFG->CFGR1 |= SYSCFG_CFGR1_MEM_MODE_0; //System Memory auf Adresse
-
Thread
warum werden bei uart immer char gesendet/empfangen?
zwecks Synchronisierung ("lowlevel Protokoll"). Das is ne Ebene zu tief! Steuer _Zeichen_ nicht Bits! Setzen wir hier mal an: STK500-Besitzer schrieb im Beitrag #6701727: > Statt Steuerzeichen ("Soft Handshake") https://de.wikipedia.org/wiki/Datenflusssteuerung#Software-Flusssteuerung,_Software-Handshake
nicht zwingend 8 Bit, auf manchen DSPs gibts schlicht keinen 8 Bit Typ.
-
Thread
Beim Setzen von Pixel werden 2 statt 1 gesetzt (STM32F4 + ili9341))
RGB565 ist ein 16-Bit Format, du schreibst 32 Bits (uint32_t) in den Speicher. Hätte eigentlich einen weißen und einen schwarzen Pixel schreiben sollen, denn 0x0000FFFF ist einmal weiß 16 Bits und einmal schwarz 16 Bits
hinzeigt. ....... Leuchtet mir als Mitlesender noch nicht ganz ein. Für einen Schreibvorgang 32 Bit erzeugt der FMC ja nur einen Write Strobe. Da das Display einen 16-Bit Port hat kann es doch eigentlich auch nur 16 Bit (also ein Pixel-Wort) durch einen Write Zyklus bekommen. Wenn zwei Pixel
-
Thread
Integer vergleichen
( 0, 0, 0, 0, 0, 0 ) ); -- 12 aus Begin ha <= to_bit(wi_hallA); hb <= to_bit(wi_hallB); hc <= to_bit(wi_hallC); SensorzustandSetzen: process (clock) begin with bit_vector'(ha ,hb ,hc) select Sensorzustand <= To_unsigned( 0,10)
werden darf. Fazit: mach den Prozess dort weg, dann ist dieser Fehler weg. [vhdl] --SensorzustandSetzen: process (clock) --begin with bit_vector'(ha ,hb ,hc) select Sensorzustand <= To_unsigned( 0,10) when "001", --Zeile 70 To_unsigned( 2,10) when "011", To_unsigned( 4,10) when
-
Thread
Ethernet-Protokoll für LED-Controller "Linsn"?
goto=new#3945839 Warum ich das hier schreibe? Es geht mir um gleichmäßige Helligkeitsstufen. Ich setze erstmal 9 Timeslots um und kann dann 32 also 5 Bit "echte" (logarithmische) Helligleitsstufen. Im Bild: * Spalten = Helligleitsstufen, * Zeilen = Zeitschlitze nosilent schrieb im Beitrag
LED Module angeschlossen, bis zu 4 Ausgänge) steuert (und somit die Datengeschwindigkeit). Die 24 bit sind aber linear. Bei geringerer Modulanzahl sind natürlich mehr lineare Bit möglich.
-
Thread
Welche ARM Modelle eignen sich für Anfänger?
eingängigere Namen und die Ports sind nummeriert, ich kann also mit einem Register Px.0 bis Px.31 setzen. Wie sieht es beim STM32 mit Bitbanding auf 8/16/32-bit aligned aus?
P0_3 : 1; __REG32 P0_4 : 1; __REG32 P0_5 : 1; __REG32 :26; } __gpio0_bits; __IO_REG32_BIT(DIR0, 0xA0002000, __READ_WRITE, __gpio0_bits); __IO_REG32_BIT(PIN0, 0xA0002100, __READ_WRITE, __gpio0_bits); DIR0_bit.P0_4 = 1; // output PIN0_bit.P0_4 = 1; // high
-
Thread
"I2C-Stopp" wird nicht ausgeführt (HW-TWI, AVR)
kommen) Also auf TWSTO im TWSR zu warten bringt schonmal gar nichts. Denn da musst du dein TWSTO-Bit setzen um einen STOP ausführen zu lassen. Wenn du Zustände des HW-TWI abfragen willst, dann musst du schon das TWI-Statusregister befragen. Und das ist *TWSR*. Allerdings gibt es da keinen Status
Hallo, also heutzutage kann doch jeder lesen oder? siehe Datenblatt: • Bit 4 – TWSTO: TWI STOP Condition Bit Writing the TWSTO bit to one in Master mode will generate a STOP condition on the 2-wire Serial Bus. When the STOP condition is executed on the bus, the TWSTO bit
-
Thread
Brötje ISR Plus Kommunikation / LPB
mal auf 0 runtergezogen wurde. Wenn ja - mit den warten neu anfangen. Wenn nicht wird das erste Bit gesendet. ( Startbit ) Jedes gesendete Bit wird ( wegen Bus ) ja sofort auf der Empfangsleitung wieder ankommen. Man schaut nach, ob das gesendetet Bit mit dem empfangenen Bit übereinstimmt. Wenn
stimme mit deiner Interpretation überein. Zu ergänzen ist noch dass die Nullwerte ("--:--") durch Setzen des 0x80-Bits in der Startzeit kodiert werden. (0x98 in deinem Dump). Harald, bzgl. der Master-Feldliste: - Ein definierter Trenner ("hier beginnt ein neues Feld") wäre günstig. Im Zweifelsfall
-
Thread
Polin Display scheint tot
Kapiert. Wenn ich das Fuse Bit: JTAGEN setzt (=0), dann kann ich den PORTC erst verwenden. Damit ist mein ISP dann Müll, richtig? Also -> an den anderen Port. Wie setze ich die Fuse bits mit PonyProg? Weiter gibt es 4 bits: CKSEL0
0000 Ich hab ein 8MHz quarz angeschlossen (XTAL1/XTAL2) - keinen Oszillator. Welche Bits sollte ich da setzen? Damit mach' ich nix kaupt, oder? <bibber bibber>
-
Thread
Suche Mentor für Entwicklung eines Audio-Messwert-Erfassers
, 24-bit Yes Yes Also auf Seite 22 sieht man beim I2S Timing Diagram, dass vor den 24Bit "Nutzdaten" ein Bit zum Vorspülen getrunken wird und nach den 24 Bit Nutzdaten wird auf der BCK-Leitung noch lustig
4 Clocks für ein Bit des I2S-Streams Zeit haben.
-
Thread
AD7177 SPI Kommunikation durch Schleifringe
einer CRC überprüfen, ob die Daten korrekt sind. Also kann man ihn nach jedem CRC-Fehler mit 64 1-Bits neu synchronisieren. Und mit dem Bit CRC_ERROR kann man überprüfen, ob er selber alles richtig verstanden hat und die Befehle nach der Synchronisation nochmal senden. Man kann dann mitzählen, wie
Kanäle? Also in der Summe 10kS/s? Oder nur 1 Kanal? Bei einem Kanal wären das ja grade mal 32 Bits/Sample * 2500 Samples/s = 80kBit/s und damit würde eine Tatkfrequenz von 100 eigentlich ausreichen. Also deutlich langsamer als derzeit. Und dann könntest du für den Takteingang ein wenig Shaping mit