-
Thread
Genesys 2 (Xilinx Kintex 7): Audio-Codec Implementierung und Filteranbindung
Was macht der FIR bei dir noch alles? Sieht reichlich kompliziert aus ... Als Eingang werden 16 Bit Daten verwendet (Q1.15: 1 VZ Bit und 15 für den Nachkommaanteil). Die Koeffizienten sind ebenfalls 16 Bits groß (Q1.15). Das Produkt zweier Q1.15 Zahlen ergibt eine Q2.30 Zahl (2 VZ Bits und 30 Bits
/ Control: 1-bit (each) output: Control Inputs/Status Bits .OVERFLOW(OVERFLOW), // 1-bit output: Overflow in add/acc output .PATTERNBDETECT(PATTERNBDETECT), // 1-bit output: Pattern bar detect
-
Thread
Bits schubsen
0b00001000 Und damit wird das Register geladen. > Wie würde ich den in einem Register einzelne Bits löschen oder > setzen. Gesetzt wird mit einem ODER. Gelöscht mit einem UND Das 3. Bit setzen ori r16, $08 ; $08 == 00001000 das 3. Bit löschen andi r16, $F7 ; $F7 ==
Zweite Frage übersehen: Um einzelne Bits zu setzen, kannst du sbi (bzw. cbi zum Löschen) benutzen. Ab drei Bits lohnt sich das von dir vorgeschlagene Vorgehen mit in - andi - out bzw. in - ori - out
-
Thread
Seit dem setzen der FUSEbits ATMEGA nicht mehr programierbar
über SPI mehr möglich. Ich benutze diese Einstellung immer um über DebugWire zu debuggen. Um die Bits zurück zu setzen muss man eine Debug-Session aufmachen und diese mit "Disable debugWIRe and Close" beenden. EDIT:!!!!!!!!! Vergiss den Quatsch den ich geschrieben hab! War beim flaschen Atmega
die Amplitude zu klein und die Frequenz auch zu klein morgen mehr. Wenn ich wirklich das ocden bit gesetzt habe sollte ein programmieren über ISP nicht mehr möglich sein. Wie kann ich dann das fusebit setzen? Bzw. Wie kann ich ocd-debbuggen?
-
Thread
attiny2313 schläft und lässt sich nicht mehr programmieren
mann nur einzelne Bits verändern sollte man Bit-set-befehle in ASM benutzen wenn mann kein ASM verwenden will oder mit AND und OR die bits setzen und löschen (Maskierung) z.b MCUCR=MCUCR or 0b0110000; Rem setzen MCUCR
aber das SE-Bit erst direkt vot dem 'sleep'-Befehl zu setzen und direkt danach wieder zu löschen. Per Bitmanipulation kann man das in ASM wunderbar machen. In C braucht´s halt worst case ein paar Befehle mehr.
-
Thread
bidirektionale Datenübertragung zwischen 2 Atmega 8
// Bit 6 7 löschen 00 Sensor_7bis12 |= (0x80); // Bit 7 setzen 10 negiert_Sensor_1bis6 &= ~(0xC0); // Bit 6 7 löschen 00 negiert_Sensor
5bis8 &= ~0xC0; // Bit 6,7 löschen 00 SPS_out_5bis8 |= 0x80; // Bit 7 setzen 10 SPS_out_5bis8_negiert |= 0xC0; // Bits 6 & 7 setzen 11 am höchstwertigem Bit //Senden
-
Thread
SPI 16 bits zu 11bits
quarz angeschlossen ist? Aber nochmal kurz zum Hardware SPI ne andere Idee wenn ich nun 16 bit zum DAC schicke und nach 16 bits haufhöre schreibt der da die 5 bit am anfang wieder rein oder bei einem solchen fall da verhalten undefiniert?
Übrigens: Nur weil der Wandler 11Bits erwartet, heißt das nicht unbedingt, dass man exakt 11 Bits senden muss. Das ist ein Trugschluss! Stell dir vor du hast ein 11-Bittiges Schieberegister und schiebst 16Bits herein. Na, welche Bits
-
Thread
Denkfehler mit PCA9536 (Problem)
I2C_start(slave_address); // Addressiere Device I2C_write(register_index); // Setze lesezugriff Register Index i2c_start(slave_address | 0x01 ); // Starte Lesezugriff mit READ bit gesetzt d=i2c_readNak(); // Schreib Leseergebnis in d I2C_stop(); return
jetzt zwei PCA9536 oder einen PCF8574 oder PCA9554. Wenn Du z.B. zwei unabhaengighe Bitgruppen zu je 4-bit haben willst geht das auch indem Du die Bitgruppen aufteilst und durch OR und ANDING steuerst. z.B. bits_high = 15; // Wert von 0-15 erlaubt bits_low = 15; // Wert von 0-15 erlaubt // Setz
-
Thread
SPI mit Attiny 841 und MCP23S17
Evtl. besser: [c] // SPI Init void spi_master_init(void) { MCP_PORT |= (1<<SS); // setze SS (Pullup) auf High 1. // Setzen von MOSI und SCK auf output und alle anderen auf input SPI_DDR = (1<<SS) | (1<<MOSI) | (1<<SCK);// Angabe der Pins // Einschalten SPI, Master, setzen Clock
erfogen soll. Soll sie ja laut Datenblatt auch. Nur eben entsprechend der Bitanordung im Datenblatt: 4 Bit Opcode, 3 Bit Adresse, 1 Bit R/W und dann die Daten.
-
Thread
avrdude: Wie ISP-Frequenz setzen?
- WINXP - STK500v2 - Mega168 - Clock (intern 8Mhz) -> 62Khz ( nach CLKPR=0x80; CLKPR=0x07;) Nun kann ich zwar mit AVR-Studio bei einer ISP-Frequenz von ca.4Khz meinen Controller flashen, würde das allerdings wieder gern direkt aus WINAVR heraus machen. Mit welcher Einstellung / Kommandozeilenschalter im Makefile kann ich die ISP Frequenz auf meinen geforderten Wert absenken? Vielen Dank AxelR.
-
Thread
BitBangMode FT2xxBM wie Ausgänge setzen?
Hallo Leute, wie der Betreff schon sagt, möchte ich mittels BitBangMode paar Ausgänge des FT232BM setzen und löschen. Allerdings weiss ich im Moment nicht mehr weiter, ich habe mittels FT_SetBitMode(FT_Handle, 1,1) den asynchronen BitBandModus aktiviert und Bit0 als Ausgang definiert. Wie sage ich nun dem Baustein, dass Bit0 1/high gesetzt werden soll? Wenn ich mit FT_write(...) irgendwas schreibe, dann "flackert" an Bit0 zwar irgendwas aber ich möchte, das Bit einfach nur High setzen und bei bedarf manuell wieder löschen
-
Thread
EleLa - Elektronik Lagerverwaltung ab V2.0
Im ZIP sind zwei Dateien "elela" und "elela.64" mit mehreren MB größe. Die eine ist die EXE für 32 Bit und die andere für 64 Bit Linux. Ich weiß jetzt nicht was für ein Linux Du hast, entsprechend bei der Date das Bit "Ausführbar" setzen, dann wenn man die EXE ausführt sollte EleLa auch starten. Das
sind zwei Dateien "elela" und "elela.64" mit mehreren MB > größe. > Die eine ist die EXE für 32 Bit und die andere für 64 Bit Linux. > Ich weiß jetzt nicht was für ein Linux Du hast, entsprechend bei der > Date das Bit "Ausführbar" setzen, dann wenn man die EXE ausführt sollte > EleLa auch starten
-
Thread
Tasten entprellen - Bulletproof
wurden ;entweder: swap tmp ;ins andere Nibble (das ist ja frei) or tfl,tmp ;Bits im anderen Nibble setzen (alternativ) ;oder: ; or tlf,tmp ;Bits im anderen Register setzen (alternativ) ;--- pop tmp ;alten Wert wiederherstellen eor tas,tmp ;erhaltene
losgelassen wurden ; swap tmp ;ins andere Nibble (das ist ja frei) ; or tfl,tmp ;Bits im anderen Nibble setzen (alternativ) ; or tlf,tmp ;Bits im anderen Register setzen (alternativ) ; pop tmp ;alten Wert eor tas,tmp ;erhaltene Änderungen toggeln alten (
-
Thread
10 Bit nach 8 Bit
Board von AVR Analoge Signale in Digitale umzuwandeln. Der eingebaute Converter liefert mir mir das 10 Bit ergebnis, ich benötige aber 8 Bit! Also wie bekomme ich aus den 10 Bit die 8 Bits heraus? MfG Ingo
Ich weiß nicht, ob ich mich unklar ausgedrückt habe: Die einfachste (und übliche Methode) ist, das Bit ADLAR (ADC Left Adjust Result) im Register ADMUX zu setzen und dann nur das High-Byte ADCH auszulesen. Wie gesagt, steht alles im Datenblatt.
-
Thread
Alarm setzen im pcf8583
schon eine weile rumprobiert und finde aber viele widersprüchliche angaben über die zu setzenden bits, deshalb hier kurz ein abriss der entsprechenden code-segmente: zuerst, alarm aktivieren: I2cwbyte &HA0 'write addres of PCF8583 I2cwbyte &H00 'select control / state register
damit ich in 10 sekunden (oder irgendwann) wieder geweckt werden. in der int0 service routine setze ich dann nur wieder die neue uhrzeit und den alarm ============================================================ allein, es will nicht. habe ich noch ein doofes bit vergessen???? mein i2c bus
-
Thread
einfaches DIGITAL- Oszilloskop (800 Datenpunkte) Assembler
Ich würde einfach von 0 an jedem Befehl einen Wert geben: 0 Messung starten 1 ADC Teiler auf 2 setzen 2 ADC Teiler auf 4 setzen 3 ADC Teiler auf 8 setzen 4 ADC Teiler auf 16 setzen 5 ADC Teiler auf 32 setzen 6 ADC Teiler auf 64 setzen 7 ADC Teiler auf 128 setzen 8 ADC Teiler auf 256 setzen
zusammengefasst. Und hoffe, dass ich nichts übersehen habe? 0 Messung starten 1 ADC Teiler auf 2 setzen 2 ADC Teiler auf 4 setzen 3 ADC Teiler auf 8 setzen 4 ADC Teiler auf 16 setzen 5 ADC Teiler auf 32 setzen 6 ADC Teiler auf 64 setzen 7 ADC Teiler auf 128 setzen 8 ADC Teiler auf 256 setzen
-
Thread
Einzelne analog Pins auf digital setzen
PIC18F4550/4455 und XC8 habe dann fehlt mir das ANSEL Register gerade etwas. Ich hab hier nur mit ADCON1bits.PCFG die Auswahl, allerdings nicht um zb. nur AN1 digital zu setzen. Gibt es da eine Möglichkeit? MfG Beast
>Ich hab hier nur mit ADCON1bits.PCFG die Auswahl, allerdings nicht um >zb. nur AN1 digital zu setzen. Gibt es da eine Möglichkeit? Nein, das ist bei diesen Pics richtig blöd.
-
Thread
Auf Bit array zugreifen
if(buffer[my_ptr.Byte] & (my_ptr.Mask[my_ptr.Bit]) //Abfrage buffer[my_ptr.Byte] |= (my_ptr.Mask[my_ptr.Bit]); //Setzen buffer[my_ptr.Byte] &= ~(my_ptr.Mask[my_ptr.Bit]); //Löschen my_ptr.Bit=(my_ptr.Bit+1)&0x07;
allgemeinen Zugriffsfunktionen gar nicht. Alles was du willst ist doch nichts anderes als das nächste 'Bit' auf entweder 0 oder 1 zu setzen. Das lässt sich aber recht einfach erreichen [c] uint8_t writeIndex = 0x00; uint8_t bitMask = 0x01; uint8_t buffer[128]; void IncrementToNextBit() { bitMask
-
Thread
kann keine Uhrzeit automatisch einstellen
Also normalerweise nummeriert man die Bits von rechts nach links. Weiterhin habe ich geschrieben, dass im Datenblatt CKSEL 3 bis 1 angegeben sind. Also insgesamt 4 Bits mit in deinem Fall 110X. Das 0. (nullte) Bit wählt zusammen mit den SUT-Bits
Low-Impuls (Signal ist low-aktiv). Je nach dauer des Low-Impulses (100 oder 200 ms) wird ein 0- oder 1-Bit repräsentiert. Du brauchst jetzt nur 59 Bits abzuwarten, dann hast du eine komplette DCF77-Sequenz empfangen. natürlich musst du noch wissen, ab wann du die Bits zählen musst. Nun, immer der Minutenanfang
-
Thread
Das Ende von 8bit?
drin hat ist doch eigentlich nur Nervig bei der Entwicklung. Da muss man ja erstmal 200 Register setzen damit das Ding überhaupt was macht. Ich hab eh das gefühl dass viele µC-Pherieferien im 32bit-Sektor Speziallösungen von großen Firmen sind, die man halt auch so auf dem Markt anbietet. Wie
schon soweit, dass die Blitz-LED-Anschalt-App fürs Android-Phone 5MB groß ist, was vmtl nur das Setzen eines Bits ist. Aber hey... Es geht ja auch so und der Speicher ist ja groß genug. So kann man den Fortschritt auch voran treiben. Irgendwann sind in den Handys ultrakleine, stromsparende Terabyte-Speicher
-
Thread
64/128 Bit Softcore
> mit 256bit auf dem Ram zugreifen Welche RAMs haben denn 256bit???
Peter II schrieb im Beitrag #2293737: > eine normale 32bit CPU kann auch mit 256bit auf dem Ram > zugreifen. ...und was macht die 32-Bit ALU dann mit den 256 Bits im nächsten Taktzyklus??? EBEN!
-
Thread
Interrupts in Assembler und C
falsche operatoren - Setzen von Bits mit "oder" [c]EICRA |= ( (1<<ISC00) | (1<<ISC01) ); EIMSK |= (1<<INT0); // Interrupt zulassen! [/c]
an _delay_ms(2000); PORTC |= (1 << PORTC0); // Bit 0 setzen, LED aus uart_putc ('1'); } void Schalter2 (void) { PORTC &= ~(1<<PORTC1); // Bit 0 loeschen, LED an _delay_ms(2000); PORTC |= (1 << PORTC1); // Bit 0 setzen, LED aus}
-
Thread
AVR Assembler-Frage
Oder von Knut Ballhause schrieb im Beitrag #3704100: > Es gibt spezielle Befehle, um einzelne > Bits im SREG zu setzen und zu löschen. ? Bit 2 in SREG ist das N Flag. Dafür gibt es SEN und CLN. XL
.org 0x0006 auf nop ; timer0_match_bit-64 lenken reti timer0_match_bit-64: out PortB,output64 ; Portausgabe für Bit 64 ldi tmp,0b00100000 ; CompareMatch auf 32 setzen out PortB,tmp ; 32 auf OCR0A schreiben nop ; ich muss
-
Thread
AVR 8bit auch für größere Projekte?
Code und 8kBytes RAM setzen. ODer eben, falls massive Berechnungen nötig sind (MP3, Video, ...) Alles drunter ist klassiches 8Bit-Terrain, wo die höher integrierten ARMs einem das Leben nciht unbedingt schwerer, aber oft auch
Methode, was? ;-) Aber in der Tat, unser Motto unterscheidet uns. Deiner zweifelhaften Innovation setze ich Pro 8-Bit Einfachheit entgegen! SimplyAVR. Jörg Wunsch schrieb im Beitrag #4091455: > Schön, wenn man in solch einfachen Denkmustern arbeiten kann. Und die enthält kein bischen Wahrheit
-
Thread
Assembler lernen für Mikrocontroller-Programmierung
gegen versehentliches Umschalten des Taktes eingebaut: Man muss zunächst lediglich das oberste Bit im Register CLKPR auf "1" setzen (alle anderen Bits müssen "0" sein) und hat dann 4 Takte Zeit, durch Beschreiben der 4 unteren Bits die neue Taktrate einzustellen (das oberste Bit muss dabei auf "0
bin erstaunt, dass du etwas anderes erwartet hast. > Bei meinem verschrobenem Denken dachte ich, setze BitX = 0 ;-) Bernd_Stein
-
Thread
Telefon-Wählscheibe mit Attiny13 Ausgang auf low setzen
bleiben: PORTB = 0b11100111; // PULL-UP für Eingänge Die zweite Zeile setzt Bit3 und Bit4 auf high, die musst du ändern: PORTB = PORTB | 0b00011000; wird zu-> PORTB &= ~( (1<<PB3) | (1<<PB4) ); //Bit3 und Bit4 auf low setzen Die dritte Zeile setzt Bit4 auf low,die musst
-------wenn ja, Sprachmodul auslösen wird zu-> PORTB |= (1<<PB3) | (1<<PB4); Das würde dann Bit3 und Bit4 auf high setzen und falls es wirklich nur Bit3 sein soll, dann eben nur: PORTB |= (1<<PB3); //setzt Bit3 auf high Informationen dazu: http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial
-
Thread
NTFS: unbenutzte Sektoren auf Null setzen
wenn die wiederhergestellte Partition nicht booten will liegt es evtl. nur am fehlenden 'Active' Bit. Mit 'diskpart' kann man das einfach in der Kommandozeile testen/setzen (ab Windows XP).
wenn die wiederhergestellte Partition nicht booten will liegt es evtl. > nur am fehlenden 'Active' Bit. Daran lags nicht, darauf hab ich schon geachtet. Das mit partimage kopierte XP (Image gezogen und auf andere Platte "recovered") hat ja auch angefangen zu booten, hing dann aber auf hlaben Weg.
-
Thread
Wie UDR Register im Simulator setzen
simulieren funktioniert gut. Nur wie kann ich ein Zeichen über UART senden? Ich kann zwar im IOView das RXC Bit im UCSRA setzen, aber das UDR wo ja das empfangene Zeichen landet kann ich im Simulator nicht verändern. Wie muss man da rangehen? Macht man das mit diesen Stimuli Files? Wie ist denn da die Syntax
Simulant schrieb im Beitrag #3185382: > senden? Ich kann zwar im IOView das RXC Bit im UCSRA setzen, aber das > UDR wo ja das empfangene Zeichen landet kann ich im Simulator nicht > verändern. Aber du liest es irgendwo hin aus. Und dieses Ziel kannst du wieder verändern. Das beim
-
Thread
Löschen eines Bits löscht auch ein ganz anderes Bit. Weshalb?
anders nutzen möchte? Es scheint nun also nicht zu funktionieren die entsprechend zu ändernden Bits auf 1 oder 0 zu setzen. Aber kann ich mir andersherum sicher sein, dass bei einem setzen eines Bits auf 0 alle Bits gelöscht werden? Kann ich mich darauf verlassen und danach nur noch die einsen schreiben
gesetzt wird müsste ich zuerst alle nullenden Befehle aufrufen und dann erst all jene, die auf 1 setzen. Das führt zu einem Recht unübersichtlichem Kuddelmuddel das ich gerne vermeiden wollen würde. Oben wird ein Teil der Clockselect Bits auf Null gesetzt, dann kommt etwas ganz anderes was auf null
-
Thread
Neue Cortex-M0+-Familie von Atmel
>- 8-Bitter sterben aus wetten dass nicht? Frag mal Microship, die werden alles dran setzen auch weiterhin ihre (vom Grunde her seit Anf. der 70er Jahre(!!!) bestehende 8-Biter zu vermarkten.
8-Bit schrieb im Beitrag #3218140: > Es gibt keinen vernünftigen Grund mehr, weiterhin auf > 8-Bitter zu setzen. Ich bin anderer Meinung. Als ich vor Jahren mein Aha-Erlebnis bit dem ARM hatte, sagte
-
Thread
SSD1306/1309 Library zum Darstellen von Text auf OLED Displays
0x78 // Display addresse // last bit (0) is write mode //(1) is read mode ACK 0x40 // Befehl folgt ACK 0xB0 // Setze Page 0 0xB0-B7 für page 0-7 ACK 0xD3 // Setze Display offset ACK 0x05 // 0x00 - 0x7F Für Spaltenoffset 0-127
aber ich glaube mich erinnern zu können, dass es dafür ein Befehl für das Display gibt. Also nur ein Bit setzen und fertig.
-
Thread
SPI ATmega8L Beschleunigungssenor
könntest du mir das an einem beispiel erklären. ich muss beim Beschleunigungssenor in der Adresse 25h Bit 7 setzen und Bit 5 und 6 nicht setzen.
**********************************************************/ void main(void) { bit_setzen (0x19, (1<<7)); // Bit setzen BeSe bit_setzen (0x1A, (1<<6)); // Bit setzen BeSe bit_setzen (0x1A, (1<<5)); // Bit setzen BeSe bit_setzen (0x1B, (1<
-
Thread
AVR-ChipBasic2 - BASIC-Computer mit ATMega 644
Danke Jörg, so ähnlich habe ich mir das auch schon gedacht. Kann ich denn irgendwie dieses Bit hochzählen bei jedem tastendruck und abhängig vom Wert im Bit die unterschiedlichen SPI Geschwindigkeiten anzeigen lassen? Und wenn ich speicher dann sehe ich welcher Wert gerade das Bit hat und setze
alle Bits belegt. Das zweite Config-Byte liegt in r19/GPIOR1, hier sind m.W. noch Bit 3 und Bit 7 frei. Bit 0-2 ist die EEPROM-Adresse und Bit 4-6 das gewählte Autostart-Programm. Vom dritten Config-Byte (tempreg3
-
Thread
Wie setze ich ein FIR-Filter aus MATLAB um ?
Habe mal ein Filter mit dem FDATool von MATLAB entworfen. Verstehe jedoch nicht die Umsetzung in VHDL. Wo benötige ich welche Bitbreite und welchen Datentype ? Habe ausserdem ein Warning das Input zugewiesen aber nicht benutzt wird. Wie kann ich die Wav-Datei die ich unter Simulink verwende auch in der Simulation mit Xilinx ISE verwenden ? Danke
-
Thread
Atmel noch zukunftsfähig? Gesperrt
und überraschend. Aber AVR-µC leben munter weiter! > Sollte man als Unternehmen auf Microchip setzen? Du solltest dann "auf Microchip setzen", wenn sie dir eine Lösung für dein Problem anbieten. Wenn keine Unternehmen "aus Microchip setzen" würde, dann wäre Microchip nicht so groß. Patrick B.
Steuerung sehr einfach und deswegen der 8-Bit Controller.
-
Thread
Verständnis AVR Interrupts Gesperrt
ohne dass es 'übersehen' wird" Aber immer nur das letzte Auftreten eines Ereignisses (das letzte Setzen eines bestimmten Interrupt-Bits) wird "abgearbeitet". Es wird weder gezählt noch in irgendeiner "Interrupt-Reihenfolge (zum jeweiligen Interrupt / -Bit) verarbeitet.
schrieb im Beitrag #6408533: > Aber immer nur das letzte Auftreten eines Ereignisses (das letzte Setzen > eines bestimmten Interrupt-Bits) wird "abgearbeitet". Es wird weder > gezählt noch in irgendeiner "Interrupt-Reihenfolge (zum jeweiligen > Interrupt / -Bit) verarbeitet. Das bedeutet auch,
-
Thread
8 Bit aus 32-Bit-Variable auswählen
wie setze ich die dann hinter die ersten 8 Bit die den Befehl+Adresse enthalten? [c] Frequenz<<=8; uint16_t Datenpaket = 0bxxxxxxxx00000000|Frequenz; [/c] Das Ganze eben viermal?
aber aufpassen, daß man Zwischenergebnisse erst auf den langen Typ castet. Sonst schiebt man die Bits aus dem kurzen Typ hinaus ins Nirvana. Um z.B. die höchstwertigen 8 Bit in einem 32-bit Wert aus einem 8-bit Wert zu setzen (es wird erwartet, daß die vorher 0 sind): [c] uint8_t x; uint32_t
-
Thread
Fernbedien RC5 Empfänger
allerdings, den ganzen Code Müll zu entschuldigen. Nun muss ich nur noch sehen, wie und wo ich ein Bit setze, damit ich auswerten kann, ob es das Startsignal für meine Anwendung ist. Ich denke, ich sollte es nach den beiden Startbits machen. Gruß Toby
Christian R. wrote: > Warum setzt du das i=200 bei gleichem Toggle Bit? Und deine main > Schleife arbeitet doch trotzdem immer alles durch, egal, ob da eine neue > Taste gedrückt wurde oder nicht? Richtig. In der Main-Schleife wird alles abgearbeitet. Ich setze i=
-
Thread
AVR-UART master slave
alten datei ldi wl,high((clock/(16*baud0))-1) ;einstellen sts ubrr0h,wl ;Baudratenwert H setzen ldi wl,low((clock/(16*baud0))-1) ;RS232-1 auf 9600 Baud;; out ubrr0l,wl ;Baudratenwert L setzen so nun hab ich die bits so wie im datenblatt beschrieben ldi wl,0b00001100 ;9bit
diesem konkreten Fall nachgedacht) also zuerst einlesen und dann per bitweisem Oder nur diejenigen Bits setzen, die du möchtest. Der Rest bleibt wie ausgelesen und wird auch genau so wieder zurückgeschrieben. Für das Löschen = auf Null setzen bestimmter Bits nimmt man dann ein bitweises Und, wie
-
Thread
ADIF Bit
Mit: ADCSRA |= _BV (ADSC); wird doch das ADIF gelöscht. Es ist nämlich eins dieser blöden Bits, womit Atmel Leute oft zur Verzweiflung bringt, weil die umgekehrt (auf 1 setzen) gelöscht werden müssen. Peter
Jep jetzt seh ichs auch ... ADIF setzen um es wieder zu löschen. Denke ich werde das ADSC bit nehmen. Für meine Anwendung völlig ausreichend. Mit ADIF beschäftige ich mich dann wenn ich nen Interrupt brauche. AVR-Studio kann leider den
-
Thread
Eingang abfragen Ausgang setzen geht nicht wie ich will
Ausgänge mit LED's verbunden. Mein code: [c] DDRB=0xFF; // alle pins des Port B als Ausgang setzen DDRA=0x00; // alle Pins des Port A als Eingang setzen PORTA=0xFF; // Pull Up wiederstände an Eingang A aktivieren while(1) { if (PINA & (1<<PINA0)) { PORTB|= 0x00;
Ein "verodern" mit 0 "PORTB|= 0x00" löscht kein einziges Bit. Setze die Bits gleich auf 0, PORTB = 0x00; dann gehts!
-
Thread
Variable zwischen zwei Uhrzeiten auf 1 setzen, sonst 0
noch einmal stören ;). ich möchte gern eine Variable in einer Zeit von 22:30 bis 5:30 Uhr auf 1 setzen. würde das so gehen? Die Zeiten bekomme ich über eine DCF77 RTC. Daher ist das Testen sonst sehr zeit aufwendig ^^. Die Uhrzeit wird alle 15 Minuten vom uC bei der RTC abgefragt. ES sind alles Globale
schrieb im Beitrag #3857201: > Daher ist das Testen sonst sehr zeit aufwendig ^^. 4 Vergleiche 8Bit sind überhaupt nicht zeitaufwendig. Das vorher multiplizieren ist deutlich aufwendiger.
-
Thread
NXP verschenkt ARM-Chips
Morgen bzw. nach'm schlafen gehts weiter. Dann ätze ich mein krüppeliges Board und setze was neues auf mit 32 Bit RAM.
. Im Normalfall immer die untersten Bits auf 0 setzen, die obersten Bits anschließen.
-
Thread
LED Tisch mit Berührungs-/Gegenstandserkennung
mehrfach-Einspeisung in der Software. Für einen 10x10 RGB-Touch-Tisch sind das 100 Slaves. Jeder hat 24 Bits zu bekommen, ergibt 2400 Bits. Mal Framerate von 25 ergibt 25 x 2.400 Bits = 60.000 Bits pro Sekunde. Vorsichtshalber betreiben wir den Bus mit 100 kBit, dann sind wir nicht in einem technisch kritischen
relevante Bit-Slot zu Ende?
-
Thread
JTAG ICE 3 - muss man ISP Clock jedes mal setzen?
was darüber gemeldet hat. Also ein AVR mit dem JTAGICE3 über ISP flashen (ISP z.B. auf 250kHz setzen) dann Proger von USB trennen und wieder einstecken dann schauen was passiert mit dem ISP Clock, ist wieder auf 7kHz runter oder auf 250kHz. Wäre sehr nett vielen Dank.
jedes Mal wenn ich das ICE3 benutzen will muss ich erst in AVRStudio das ISP Geschwindigkeit hoch setzen dann gehts mit avrdude vorher nicht. Was meins mit -B1? geht damit?
-
Thread
Brauche Unterstützung beim OV7670 (bzw. SCCB)
Hallo, nach Rest sind sie triState und der interne PullUp ist aus. Setze ich den Pin über DDR auf Ausgang ist die Push-Pull-Stufe aktiv. Schalte ich TWEN aktiv ist die Ausgangsstufe openDrain, meiner Erinnerung nach völlig unabhängig vom Zustand des DDR-Bits (da müßte
ist die Windowsposition auf "automatisch" was das auch immer heißt. Ich werden das mal auf manuell setzen. Register 0x3A (TSLB) Bit [0] muß ich mir auch noch anschauen. Ansonsten eben Register 0x17...0x1a [HSTART/HSTOP/VSTRT/VSTOP]. Dummy-Zeilen und Pixel kann man auch noch einfügen, wo und wozu? Noch
-
Thread
Warum sind STM32 I/Os auf 16 Bit kastriert?
Die 16-bit Beschraenkung erlaubt mittels BSRR Register atomar Bits zu setzen und rueckzusetzen.
Uwe B. schrieb im Beitrag #6406369: > 16-bit Beschraenkung erlaubt mittels BSRR Register atomar Bits zu setzen Die LPC können auch mit 32-bit I/O atomar Bits setzen Der tatsächliche Grund dürfte darin liegen dass die STM32 I/O IP vom STM8
-
Thread
Wittig(welec) DSO W20xxA Hardware
implementiert. Allerdings habe ich festgestellt, dass es ausreicht den Registerwert einfach auf Null zu setzen, statt der aus dem Protected Flash geladenen 0x02020800. Dadurch werden die Filterbits nicht gesetzt und das Ergebnis ist wirklich nicht übel. Mit Bit 28 kann man übrigens so eine Art Testsignal
entsprechend am Display korrekt ausgibt. Das Teil funktionierte, jedoch übersah ich, dass für das Setzen eines Bits einer Plane, das entsprechende Pixel gelesen und dann verodert werden musste! Bei einem 32 Byte Line Cache bedeuted dies 8 Lesezugriffe zusätzlich pro Pixel bei vertikalen Linien. Das
-
Thread
Messfehler am ADC vom ATmega
abgetastet und ein Ergebnis erhalten. Wie jetzt? 300ms? > Bei der Lösung vorher hatte ich 100 Bit für 1 Ampere zur Verfügung > nun nur noch 20. Kannst du uns mal eben aufklären was du uns immer mit deinen Bit-Angaben sagen willst? Der ADC der AVRs hat eine Aufläsung von 10 Bit. Was meinst du also mit "100 Bit"?
-
Thread
Attiny85 PWM
|= ((1<<WGM00) | (1<<WGM01)); //FAST PWM Seite 79... TCCR0B |= (1<<WGM02); // ...diese 3 WGM-Bits setzen Fast PWM mit TOP-Wert in OCRA .Seite 79 TCCR0A |= ((1<<COM0B0) | (1<<COM0B1)); // inverting Mode. COM0b1=1 und COM0B0=0 Non-Inverting TCCR0B |= ((1<<CS02) | (1<<CS00)); // Prescaler: CS02
U hfuse:w:0xd5:m -U efuse:w:0xff:m Ich empfehle sehr stark, die Fuses mit dem Atmel Studio zu setzen, wo das entsprechende Fuse-Bit auch genau erklärt ist. Ich hatte sicher schon 5+ Stück 40 Pin uC ausgewechselt, nur weil ich (damals noch in HEX-Format in CodeBlocks) die Fuse-Bits falsch gesetzt
-
Thread
Card12 mit EVAL-AD5781 verbinden
soll. Um das zu tun müssen wir das Control Register beschreiben. Dieses wählen wir aus in dem wir die bit DB22 = 0, DB21 = 1 und DB20 = 0 setzen Die bit DB19 - DB10 dürfen wir nicht wirklich anfassen. deswegen setzen wir die auf 0. DB9 - DB6 stellen die Lineare Kompensation ein. da wir nix zu verschieben
2,5V Bleib bei dem Programm was Ich da geschickt habe und kommentier die Zeile myvalue +=1 aus. Setze alle 18 bit auf 0 und schau was als Ergebnis kommt. Danach setze das MSB auf 1 und schau was dann als Ergebnis kommt. zuletzt alle 18 bit auf 1 und wieder das Ergebnis festhalten. Ich muss mich