-
Thread
ASM-Problem bei Speicher >16 Bit
auslesen und zu einem Controller übertragen will. Wenn ich es richtig verstehe, dann kann ich durch setzen des RAMPZ Bits den Zeiger auf die oberste Adresse setzen und dann mit lpm (oder elpm?) und sbiw nach unten gehen. Muß ich dann bei Erreichen der 64K Grenze das RAMPZ Bit wieder löschen? Gruß Bruno
Hi >Wenn ich es richtig verstehe, dann kann ich durch setzen des RAMPZ Bits >den Zeiger auf die oberste Adresse setzen und dann mit lpm (oder elpm?) >und sbiw nach unten gehen. Ja. Muß ich dann bei Erreichen der 64K Grenze das RAMPZ Bit wieder löschen
-
Thread
Bit löschen
zusammen, steh gerade etwas auf dem Schlauch und hoffe mir kann jemand helfen. Wie kann ich ein Bit in einem 16bit word löschen? Also nicht auf "0" setzen sondern löschen damit ich nur noch 15 Bit habe. Benutze einen ATMega und Assembler. Danke schonmal für eure Hilfe.
> Also nicht auf "0" setzen sondern löschen damit ich nur noch 15 Bit > habe. Im Dualsystem gibt es aber nur "0" oder "1". "Nichts" ist da nicht vorgesehen. Eine 16-Bit-Zahl wird immer 16 Bit haben, jedes ihrer Bits wird
-
Thread
DS1820, DS18B20 in C
if ( temp & DEFmask) temp = (temp-DEFoffset) & ~DEFmask; else // addieren und bit setzen temp = (temp+DEFoffset) | DEFmask; thermoValues[i]=temp; } sprintf( (char*)s, "%3d.%01dC", temp >> 4, (temp << 12) / 6553 ); // 0.1øC lcd_string( (char*)s
cyblord ---- schrieb im Beitrag #2993171: >> Nur halte ich diese Option bei einer 8-Bit-Prüfsumme für keine solche >> :-). > Nur weil du die CRC als einzige Möglichkeit siehst. Der Interrupt könnte > auch ein Flag setzen wenn er auftritt, und die 1Wire Routine könnte > dieses Flag
-
Thread
Lightweight WS2811/WS2812 Library
Compiler da falsch? Thema 2: Ich verstehe das "Protokoll" nicht so ganz. der Teil mit 1,25µs je Bit ist klar, 24 Bit je Farbe auch, n 24 Bit Werte hintereinander steuern n LEDs an, 50µs low übernimmt die je 24 Bit in die LED und "schaltet" die Farbe. Nicht klar ist mir die Pause zwischen Bits / 24
zielen auf die Nutzung von Flags ab. Du solltest Dir einmal anschauen, welche Befehle welche Flags setzen. Der Code ist teilweise etwas verwirrend, da die Sprungbefehle von Flags abhängen, die von weiter zurück liegenden Befehlen gesetzt werden. Im obigen Fall wird das auszugebende bit von "lsl" ins
-
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
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
Bauen oder nicht bauen ?
die erhöhte Bit-pro-Pixel (Farbe) erlauben. Wenn ich schon ständig von der Kiste träume dann muss es wohl die 16-Bit-Version sein :-)
noch RAM haben will. Reserviere zwei Adressen im I/O-Adressraum (zwei Latches, ein Dekoder) und setze die oberen Adressbits separat. Dann reichen 256 Bytes (8 Bit) im normalen Adressraum für 16 MB (24 Bit) Grafikadressraum.
-
Thread
Atomarer Zugriff von 16 Bit Variable in 8 Bit Controller
. Timer start Nachteil: Timer steht für einige µsec Auch hier gilt wie für alle anderen 16 Bit zugriffe auf einem 8 Bit µC: Prüfen ob IRQ abgeschaltet werden müssen, in diesem Fall empfehlenswert.
Noch ne weitere Anmerkung: auch bei 16bit Controllern bei denen eine 16bit Zahl vom Speicher gelesen wird kann es zu 2Lesezyklen und damit veränderung während des lesens kommen. Sobald im Speichermapping die 16bit Zahl auf einer ungeraden Adresse
-
Thread
seriell FTDI TTL UART SUART ich blicke nicht mehr Durch!
-e und die Ausgabe posten. Eigentlich sollte nämlich die 0 auch funktionieren (und eben ein toggle-Bit setzen). Wenn das immer noch nicht geht, lassen wir den Kram mit dem XOR und generieren halt separate Befehle zum Setzen und Löschen.
ttyUSB0 -e -s xxxxxxx1 got file descriptor fd=3 Firmware-Version 11 OK, Aktuelle Kontaktstellung: 0 Setze Bits 1 FAIL: 249 1 1 0 Sequenz 4 :./relais -d /dev/ttyUSB0 -e -s 11111111 got file descriptor fd=3 Firmware-Version 11 OK, Aktuelle Kontaktstellung: 1 Setze Bits 255 FAIL: 249 1 255 0 Sequenz
-
Thread
DCC Decoder
Adresse rcall readEEProm ; Springe zu readEEprom bst Temp2, 5 ; Lade aus TEMP2 BIT 5 / Lange Adresse ( CV29 ) bld DCCReg, LongADR ; schreibe T-Bit in DCCReg, LongADR ( BIT 7 ) bst Temp2, 0 ; Lade aus TEMP2 BIT 0 für Reversierbetrieb ( CV29 ) bld DCCReg
; wenn das Bit 6 im Sopregister auf Null steht rjmp pc+12 ; springe im Programm Counter 13 vor sbrc DCCReg,DIR ; Wenn Fahrtrichtung Bit Rückwärts 1 dann rjmp PC+6 ; springe im Programm Counter
-
Thread
16-bit Mikroprozessor
RISC-Prozessor entworfen. Ein paar Daten: - vollständig in VHDL beschrieben - Harvard Architektur - 16-bit Datenbreite (andere mit etwas Aufwand natürlich möglich) - 16-bit Befehle - optimiert für Spartan 3 (ein paar Instanziierungen) - internes Befehls-ROM (max. 2^16 Befehle = 128 kB) - internes und
hinweis zu deiner doku : - die Xilinx Block RAMS haben nur 2kB und nicht 4kB (1 Blockram = 16384 Bits Data + 2048 Bits Parity -> 2kB Daten + 256B Parity ) - es wäre schön wenn du die Block RAMs klarer kennzeichnen würdest (eine Abkürzung in der Zeichung würde schon fast reichen, aber bei dir steht
-
Thread
AVR Assembler: add adc auf 0 prüfen
auch damit, daß das Statusregister beeinflusst wird. Sonst geht man davon aus, daß ein expliziter Bit-Set bzw. Clear-Befehl nur das Setzen oder Löschen von Bits bewirkt und eben nicht nur ein anderer Name für einen "echten" AND oder OR-Befehl ist.
Marc V. schrieb im Beitrag #5558233: > Wie ein SBR Befehl Z-Flag setzen kann, ist mir schleierhaft. Indem du in einem Register mit Inhalt 0 auch nur 0 Bits setzt. SBR ist identisch mit ORI, mit Maske als Operand. Der einzig wirklich sinnvolle Einsatz von SBR wäre
-
Thread
Pixel setzen auf GLCD mit T6963c
Hi Der T6963 hat spezielle Befehle zum Setzen/Löschen von Bits. MfG Spess
Hi Bei mir so (ohne Adresse setzen): [avrasm] ; Punkt setzen ; in r17 Bitnummer set_bit: push r16 push r17 mov r16,r17
-
Thread
Open source Autoradio
dafür einsetzen, dass es qnutconf auch als binary irgendwo gibt. Ich kann es aktuell aber nur für 32bit win anbieten. Ich habe kein 64bit System.
(32 bit).
-
Thread
Besteht Interesse an einfacher Experimentierplatine fuer den Xmega128a1? Gesperrt
Das wusst ich nicht mit den 4 bit. Hätte eigentlich damit gerechnet, dass er 8 auch unterstützt. Man könnte natürlich die anderen 12 bit einfach auf 0 setzen, aber unschön ist das auch. War halt einfach so ne idee, weil der Digikey-Ram
Sebastian schrieb: > Das wusst ich nicht mit den 4 bit. Hätte eigentlich damit gerechnet, > dass er 8 auch unterstützt. Steht im Datenblatt :) > Man könnte natürlich die anderen 12 bit > einfach auf 0 setzen, aber unschön ist das auch. Einfach
-
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
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
Einfacher und billiger Webserver mit AtMega32
Hi, das ist ja komisch - anscheinend findet der Compiler die u.a. Makros zum Setzen (sbi) und Löschen (cbi) von Bits nicht. Keine Ahnung daran das liegt. Da das Compilieren nicht fehlerfrei war, gibt es auch keine HEX-Datei. Der einzige Unterschied ist, das ich 'avr-gcc (GCC)
Datenbereich, der word-, byte- und bitweise adressiert werden kann (sowohl beim Ausgeben, als auch beim Setzen von Werten). Adressierung: als Word: "wN": Word an 16bit-Adr. N als Byte: "bN": Byte an 8bit-Adr. N als Bit: "bN.M": Bit M von Byte an 8bit-Adr. N Tag-Format in LFO-Dateien: {wN:FORMAT}
-
Thread
8 bit, 16 bit mischung in struktur - 8 bit breiten speicher vorgaukeln
die struktur mittels uart-schnittstelle (8-bit) zu versenden. am einfachsten wäre das, wenn ich einen pointer (Uint8*) auf begin der struktur setze und die daten der reihe nach raussende. optimal geht das, wenn ich einen pointer auf struct_status_tx
err; // belegt bit 24..31 }struct_status_tx_8; // sizeof() liefert 4 Bytes, korrekt! typedef struct { Uint8 adr; // belegt bit 0..7 // bit 8..15 frei Uint16 sta; // belegt bit 16..31 Uint8
-
Thread
Mehrere Bits gleichzeitig ändern
In Assembler: Bits toggeln geht am einfachsten mit EXOR, sonst Setzen mit OR, Rücksetzen mit AND
In C: Bits toggeln geht am einfachsten mit ^, sonst Setzen mit |, Rücksetzen mit &
-
Thread
40 Bit Schieberegister verwalten
Naja, da die Schieberegister 8 Bit sind, würde ich vom Gefühl her die Bits als ein Array aus Bytes (uint8_t) verwalten. uint8_t LedData[5]; Dann würde ich mir Makros definieren, um einzelne Bits zu setzen/löschen: #define SET_BIT
08001512 cmp r3, #39 ; 0x27 08001514 bls.n 0x80014cc <Set74HCT595+16> (111) // Datenbit setzen (112) GPIO_WriteBit(HC595_CTRL,HC595_DS, (data >> 63)); __DMB(); // Bit anlegen 080014CC ldrd r3, r4, [r7] 080014D0 lsrs r5, r4, #31 080014D2 movs r6, #0 080014D4 uxtb r3,
-
Thread
8Bit PORT splitten
PORTD = cnt--; } else { PORTD = cnt++; } } [/c] Um nun PORTD 7-2 und PORTB 1-0 als 8Bit Ausgang mit dem jeweiligen Wert von cnt zu nutzen benötige ich immer zwei Operationen pro PORT: 1) Löschen der vorherigen Bits 2) Setzen der neuen Bits [c] // 6Bit on PORTD PORTD &= ~(0xFC
@Karsten K. (karsten42) >Um nun PORTD 7-2 und PORTB 1-0 als 8Bit Ausgang mit dem jeweiligen Wert >von cnt zu nutzen benötige ich immer zwei Operationen pro PORT: >1) Löschen der vorherigen Bits >2) Setzen der neuen Bits Niemand hindert dich, die Berechnung
-
Thread
Bit im Register setzten ohne andere Bits zuverändern.
Also hab ich das Richrig verstanden =| zum 1 setzten und &= zum 0 setzen?
. Mit ODER schaltet man bits ein. MIT Exklusiv-ODER invertiert man bits.
-
Thread
Netzwerkkarte mit RTL8019
eingefuegt werden, damit der alte Mega8-Code mit dem neuen avr-gcc funktioniert: #define cbi(sfr, bit) ((sfr) &= ~_BV(bit)) #define sbi(sfr, bit) ((sfr) |= _BV(bit)) #define bit_is_set(sfr, bit) ((sfr) & _BV(bit)) #define bit_is_clear(sfr, bit) (!((sfr) & _BV(bit))) #define loop_until_bit_is_set(sfr, bit) do { } while (bit_is_clear(sfr, bit)) #define loop_until_bit_is_clear(sfr, bit) do { } while (bit_is_set(sfr, bit)) Unter Linux muessen ausserdem alle Dateinamen, die Grossbuchstaben enthalten
-
Thread
AVR – Übers EEPROM und darüber hinaus…
, also alle 8 Bits auf 1 setzen, die Haltbarkeit nicht beeinflusst.
nur für komplette Bytes einen Sinn, auch wenn du die Bits (so du das willst) individuell auf 0 setzen kannst. In deiner Sichtweise kannst du also . Bit 0 auf 0 setzen (und hast damit dafür einen Zyklus „verbraucht“), . Bit 1 auf 0 setzen (dafür ein
-
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
flexibles Schalten von bits
Hallo Ich arbeite mit einem gcc-Compiler auf einem ARM7-Controller. Das Setzen und Löschen von Bits funktioniert einwandfrei. Trotzdem frage ich mich, ob es nicht noch eine flexiblere Lösung für das Problem gibt. Aktuell erfolgt das Setzen und Rücksetzen über: #define LED1
noch eine Ergänzung: du könntest dir ein Makro schreiben, um ein Bit zu setzen/löschen und diesem dann per define den Ausgang übergeben (also zb LED definieren auf PORTB bzw. PB0 und das dann dem Makro zum setzen/löschen geben
-
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
8Bit Timer/Counter 0
von 8 Bit Timer/Counter0 { PORTC=0; //PCO-> wird zu null->LED sollte angehen }
//ISR von 8 Bit Timer/Counter0 { PORTC=1; //PCO-> wird zu null->LED sollte aus gehen }
-
Thread
Buderus EMS-"Gateway" mit PIC18F / Sammelbestellung
ein Wert ist der gesetzt werden soll. Die drei Modes sind im selben Byte nur ein unterschiedliches Bit (Bit1, Bit2, Bit3) Den aktuellen Modus kann man mit 0B 90 3D 04 01 <Prüfsumme> abfragen Oder das Telegramm 3d ab Offset 00: 0B 90 3D 00 <Prüfsumme> Habe es selber noch nicht ausprobiert.
besten über Interrupt auf empfangene Daten reagieren. Wenn ein Break empfangen wurde ist das FERR-Bit in RCSTA gesetzt. Wenn mehrere Bytes im Buffer waren kann man nicht erkennen welches Bytes das Break war (gelöschtes STOP-Bit) Nach FERR-Bit wird wieder gelöscht nachdem man das Empfangsregister
-
Thread
Geschwindigkeit IO-Zugriff
Controller werden immer schneller getaktet - nur was kommt dabei an den IO-Pins davon an? Beispiel: Ein 8bit-AVR braucht 375ns um in einer Schleife einen Pin high und dann wieder low zu setzen. Bei einem Arm-Prozessor (32bit) der angeblich viel schneller sein soll sah ich im Netz ein Bild wo das Setzen/
Matthias W. schrieb im Beitrag #5339416: > Beispiel: Ein 8bit-AVR braucht 375ns um in einer Schleife einen Pin high > und dann wieder low zu setzen. > > Bei einem Arm-Prozessor (32bit) der angeblich viel schneller sein soll > sah ich im Netz ein Bild wo
-
Thread
Hilfe, Interrupt flags lassen sich mit 'typedef union' nicht einzeln löschen
abgelegt … } bit; uint32_t reg; } CAN_IR_Type canIrType; [/c] Auf diese weiße kann man einfach einzelne Bits mit [c]if(canIrType.RF0N == 1){...}[/c] abfragen oder mit [c]canIrType.RF1N = 0;[/c] setzen
A flag is cleared by writing a 1 to the corresponding bit field. Writing a 0 has no effect." Nur bietet C eben keine Möglichkeit das dem Compiler mitzuteilen, weshalb die "normalen" Bit-Setze-Operationen ("reg |= bitmask", bitfield) immer versuchen, die
-
Thread
Logamatic 2107 Schnittstelle
sollte hat die MC10/BC10 auch schön zu leiden. Soweit ich weiss reicht es einfach nur den Die Bits in den Registern zu entsprechend zu setzen. Das tauschen müsste aber auch gehen... Wenn überhaupt musst du die richtige Taktfrequenz eingeben und die Baudrate wird automatisch korrigiert. Soweit
Bit(bit=0) ändert toggelt sich beim CRC das vierte Bit(bit=3) bit1 -> bit4 bit2 -> bit5 bit3 -> bit6 bit4 -> bit7 und noch x x x x x x x x i 2 1 0|
-
Thread
zwei Bits beeinflussen - ich steh geradeauf dem Schlauch
Ich möchte mit meinem Atmel zwei PORT-Bits gleichzeitig beeinflussen (1 Bit setzen und 1 Bit zurücksetzen) ohne die anderen sechs Bits zu verändern. Ich weiß, dass ich mit &=~ ein Bit rücksetzen kann und mit |= eins setzen kann, aber wie
spess53 schrieb im Beitrag #2731749: >>Ich möchte mit meinem Atmel zwei PORT-Bits gleichzeitig beeinflussen (1 >>Bit setzen und 1 Bit zurücksetzen) ohne die anderen sechs Bits zu >>verändern. > > Das ist bei mir togglen. Ne, es ist nur dann /togglen/, wenn er weiß, dass das
-
Thread
xmega: Bit in Ram schreiben [ASM]
www.mikrocontroller.net/articles/Interrupt#Atomarer_Datenzugriff >Weiss jemand, wie und ob ich im Ram ein Bit setzen kann, ohne die >anderen zu beeinflussen? cli blub sei Alternativ kann man speziell beim Xmega die GPIOR0-15 nutzen, dort kann man jedes Bit atomar mit einem Befehl sbi/cbi setzen und
du andi benutzt um ein bit auf 1 zu setzen. Mit dem xmega kenne ich mich nicht aus, aber du kannst das atomare setzen eines bits im speicher im prinzip so realisieren: again: lds R1, mem mov R2, R1 ori R2, 0x01 ldi
-
Thread
Woran unterscheide ich 32/64Bit Systeme?
auffallen. Ausser du arbeitest mit Fiel > Speicher >3GB oder benutzt Programme die wirklich mit 64 Bit Zahlen > arbeiten. Braucht eine Rechtschreibprüfung >3GB RAM? Es gibt inzwischen keinen Grund mehr auf 32 Bit zu setzen. Diverse Linux Distributionen bieten inzwischen keinen x86 Build mehr
Hans schrieb im Beitrag #5346264: > Es gibt inzwischen keinen Grund mehr auf 32 Bit zu setzen. Das wollte der TO aber nicht wissen.
-
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
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
8Bit statt 10Bit ADC bei ATTiny13
mit 1 MHz (vermutlich auch noch ein Stück mehr) takten. Das ADLAR-Bit solltest Du dann auch setzen, dann brauchst Du nur ADCH auszulesen.
Oder wie gesagt ADLAR setzen. Dann findest du im High-Byte die oberne 8bit und im Low-Byte die 2 LSB.
-
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
Pins und Bits verknüpfen
PORTC5); Ausgabe = (PINC5 << 0) | (PINC4 << 1) | (PINC3 << 2) | (PINC2 << 3); //Ich will hier Bit 0-3 entsprechend der PINC's setzen [/code] Mit freundlichem Gruß Dietmar
So wie es Lothar schon beschrieben hat. Du willst damit ja bestimmte Bits eines Registers setzen/löschen. Zum Setzen schiebst du eine '1' an die gewünschte Stelle, z.B. [c]DDRC |= (1 << DDRC3)[/c] setzt das Bit DDRC3 (also Bit 3) im DDRC-Register
-
Thread
TWI Interrupt manuell setzen
Puffer, schreibe Länge, Adresse und Daten hinein - übergib den Zeiger auf den Puffer dem Interrupt - setze Startbit Und der Interrupt setzt irgendwann ein Ready-Flag, daß alles erledigt ist. Peter
eins nicht vergessen: Am Ende der Prozedur, die beim TWI-Interrupt aufgerufen wird, MUSS(!!!) das Bit TWINT im Register TWCR immer auf "Eins" gesetzt werden. Andernfalls bleibt der Interrupt inaktiv. Ciao, mare_crisium
-
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
4 Bit Zähler aus Flip-Flops
möchte eine Schaltung aus Flip Flops entwerfen die im binärsystem zählen kann. Ich brauche nur 4 Bits. Die Schaltung soll dann weiterzählen wenn sie einen Impuls bekommt. Eine preset Funktion wäre auch gut. Sonstige zusatzfunktionen brauche ich nicht. Mit Flip Flops kenne ich mich noch nicht so
die Sache mit Google ausprobiert. Tolles Ding kann ich dir sagen... http://www.google.de/search?q=4-bit+zähler Oder einfach mal bei Wikipedia vorbeischauen. Auch super... http://de.wikipedia.org/wiki/Synchronzähler
-
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
AVR-Mikrocontrollertechnik-Kursus in Assembler besprechung Gesperrt
Eselsbrücke für das H-Flag bei der Subtraktion, da dies einfacher zu erkennen ist, als wann ein Borgen von Bit3 _nicht_ erfolgte. In allen anderen Fällen erfolgte halt das Borgen von Bit3 und somit das setzen des H-Flags. Bernd_Stein
;Alle Bits im GPR R31 ruecksetzen ( loeschen ) ser r31 ;Alle Bits im GPR R31 wieder setzen sts $0020,r16 ;Alle Bits im I/O-Register TWBR setzen in r16,UCSRA
-
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
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
Library für EA-DOGM Grafikdisplays inkl. Font-Generator
benutze für die Ansteuerung des LCD ausschließlich den PORTB den ich vor der Display-Init auf Ausgang setze.
rechts, und dann irgendwann aus dem Bild raus. Jemand eine idee wie ich ihn wieder an den Anfang setze?
-
Thread
"Getting started" mit 8-Bit STM Controllern
ein kleines Thermostat gekauft, und aus Neugierde mal aufgemacht. In drinnen arbeitet ein kleiner 8-Bit stm8l052c6t6. http://www.mouser.com/ds/2/389/DM00057687-492223.pdf Laut Datenblatt habe ich jetzt auch schon herausgefunden, dass er sich per USART Programmieren lassen müsste, und dass die Pins
schneller und effizienter geht als sich Werte rauszupulen und auf den Uart zu schicken. Breakpoints zu setzen oder jederzeit bis in die register / Ram / EEprom zellen schauen zu knne ist wirklich schick. Das ist nicht nur für 'schlechte' Programmierer hilfreich.