-
Thread
bits GELICHZEITIG setzen und löschen als Einzeiler?
. Bits setzen: #define BIT2 (2) . #define BIT5 (5) . . . FLAGS |= (1<<BIT5)|(BIT2) Bits löschen: FLAGS &= ~((1<<BIT5)|(1<<BIT2)) Soweit klar, muss man nur wissen und verstanden haben... Wenn ich jetzt BIT5 und BIT1 setzen will UND BIT2 und BIT3 löschen, (die restlichen sollen bleiben, wie sie sind) was mach ich denn dann?? FLAGS |= (1<<BIT5) | (1<<BIT1) FLAGS &= ~((1<<BIT3) |(1<<BIT2)) würde gehen
-
Thread
Programm zum Setzen von einzelnen Bits in C
Guten Tag, folgendes Progtramm zum Setzen von einzelnen Bits(für 8 Bit Register), habe ich soeben geschrieben. Ist dieses korrekt oder habe ich etwas übersehen? // setBit-Funktion #include<stdio.h> /*********************************
Byte ein per Variable übergebenes Bit zu setzen ist, lauern bereits Fußangeln: Nehmen wir an, daß gültige Werte für position von 0 bin 31 reichen und daß Positionen > 7 keinen Effekt haben sollen, da value nur über Bits 0...7 verfügt.
-
Thread
Frage zum Setzen von Fuse-Bits
Guten Tag Ich bin beim Programmieren mit AVR's noch ein Anfänger. Bis jetzt bin ich immer mit den standardmäßig eingestellten Taktfrequenzen ausgekommen. Jetzt habe ich die erste Schaltung bei der ich einen externen Takt benötige. Ich habe zwar dass Datenblatt gelesen, möchte aber nachfragen bevor ich mir meine Prozessoren verfuse. Ich verwende einen ATmega8 mit einem 16MHz Quarz und 2 22pF Kondensatoren. Zum Programmieren verwende ich einen Parallelport-Programmieradapter mit Treiberbaustein und als "Brenn"-Software verwende ich YAAP. Wenn ich die Standardfuseeinstellungen anschaue
-
Thread
Ausgang setzen
Hallo Bei einem Chip (habe keine genaueren Infos) befindet sich auf der Adresse 0x1000 ein Register wo die ersten 4 Bits Ausgänge und die letzten 4 Bits Eingänge sind. Wie kann ich die Ausgänge shiften? Das Problem ist wenn ich << verwende dann würde das ja auch die Eingänge beinflussen. So kann ich das ja nicht verwenden da ich das ganz Register beinflusse. [c]adresse = 0x1000; *adresse = 1<<x; [/c] MfG
-
Thread
Anfägerfrage zum setzen einzelner Bits
Hallo Forum, ich habe mich im GCC Tutorial schon zu dem Thema belesen, wie ich einzelne Bits in einem Byte setzen kann, das klappt auch alles ganz gut. Nun zu meiner Frage, angenommen ich habe 2 Integer int Eingang; int Ausgang; nun möchte ich das Bit 1 in Ausgang gleich Bit 4 in
quincy schrieb im Beitrag #2324577: > nun möchte ich das Bit 1 in Ausgang gleich Bit 4 in Eingang ist. wenn bit4 im eingang gesetzt ausgang bit 1 setzen ansonsten ausgang bit 1 löschen hilft das? :-)
-
Thread
ACI-Bit ohne interrupt setzen
Wiso möchtest du das Bit setzen ?
>>Wiso möchtest du das Bit setzen Solche Antwort habe ich befürchtet. Ich habe im Code so was loop_until_bit_is_set(ACSR, ACI) stehen, und will das ACI-Bit in einer Interrupt-Routine setzen, damit das Programm weiter läuft.
-
Thread
Setzen der Fuse-Bits automatisieren
Hallo liebe Mitstreiter, ich habe eher eine grundlegende Frage zum automatisierten Programmieren von AVRs. Dabei stellt sich als erstes natürlich die Frage, ob man die gewünschte Einstellung der Fuse-Bits (Clock-Quelle, JTAG ein/aus, usw.) irgendwie in einer Datei (z.B. Makefile?) ablegen kann und beim Programmieren des AVRs gleich mit übertragen an. Gibt es da sinnvolle Ansätze? Mfg Thomas
-
Thread
Setzen von einzelnen Bits
Weil hier gerade über das Setzen einzelner Bits in Registern gesprochen wird. Wie kann ich z.B. das Universalregister R3 der Registerbank 2 im Mikrocontroller 80C537 setzen? Das R3 besitzt ja die Adresse 13h. R3|=0x87;
-
Thread
Flanke erkennen, Signal setzen
std_logic; NE555: in std_logic; BOX: in std_logic; VALID: inout bit; BOXOUT: inout bit; alter_zustand: inout std_logic; RISE_BOX: inout std_logic; FALL_BOX: inout std_logic; START: out bit; CLK_HALBE: out std_logic;
BOX_FALL_OUTPUT: out std_logic; > mein LSB bei BOX_FALL_OUTPUT Das ist doch sowieso nur 1 Bit breit... :-/
-
Thread
Wie Lockbits setzen ?
Die Lockbits sind sowohl isp (seriell) als auch HV paralell setz-/löschbar. Das einzige Bit, welche sich nur parallel setzen läßt, ist das Bit zur ISP Freigabe.
Ist ganz problemlos möglich, du musst einfach nur die beiden Lock-Bits setzen. Danach ist ein Auslesen des Flash nicht mehr möglich.
-
Thread
PORT Dauerhaft setzen
: um jetzt ein bit in einer Variable zu setzen: 01000000 //Die Variable 00000100 //Deine zuvor erstellte Maske(manche Leute nennen das so) Und jetzt ODER verknüpfen "|" das doppelte "||" wäre nur eine Logische Verknüpfung
, um jetzt ein Bit in einer Variable zu setzen: 01000000 //Die Variable 00000100 //Deine zuvor erstellte Maske(manche Leute nennen das so) Und jetzt ODER verknüpfen "|" das doppelte "||" wäre nur eine Logische Verknüpfung
-
Thread
nur ein bit über bus setzen
hallo, ich will über eine Bus mit getrennter Adress und Datenleitungen nur ein bit setzen. Es müsste über den Bus bei den nicht benötigen datenbits ein don't care übertragen werden. Dass das in vhdl möglich ist weis ich, aber kann das dann auch synthetisiert werden? Welcher Zusand
-
Thread
setzen_löschen_kippen von Bits
Ich habe folgendes C-Programm geschrieben (setzen_kippen_löschen von Bits). Kann mir bitte jemand den Unterschied von setzen und kippen erklären. setzen (EXOR) 110 101 011 kippen(OR) 110 101 111 Richtig? [c] // setzen_loeschen_kippen #include<stdio.h> unsigned char setzen_loeschen_kippen(unsigned char, int, int); int main(void) { unsigned char data; int position; int operation; // ??? unsigned char fw; printf("Welchen HEX-Wert (8 Bit) wollen Sie bearbeiten
-
Thread
Bits beim Port setzen/löschen
Moin Ich möchte auf meinem STK500 auf Port-C alle Bits auf einen bestimmten Status setzen, also entweder high oder low. Bei dem Beispiel soll zuerst PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 1 0 0 1 1 0 0 1 und nach einer Sekunde: PC0 PC1
Wenn Du eh jeweils /alle/ Bits im Register manipulieren willst, dann kannste Dir den Kram mit den UND und ODER sparen und einfach das Bitmuster reinschreiben! [c] PORTC |= ((1 << PC0) | (1 << PC3) | (1 << PC4) | (1 << PC7));
-
Thread
PIC Register setzen
T1CON = 0xFF; wohl auch flach!? (========Frage 4 ==========) Kann mir einer die Funktion von dem Bit T1OSCEN erklären? Datenblatt S169: T1OSCEN:LP Oscillator Enable Control bit 1= Dedicated Timer1 oscillator circuit enabled 0= Dedicated Timer1 oscillator circuit disabled ========Frage 5 ====
Nein, Bit 0 ist auch bei PIC immer das niederwertigste (rechteste), und Bit 7 ist das MSB. Code zeigen! Benutzt Du irgendwelche analogen Eingänge? Wenn nicht, musst Du als erstes ANSELA auf 0 setzen, um
-
Thread
Fuse-Bit neu setzen
programmier ist. Der externe clock war vorher 5Mhz, jetzt es ist 10 Mhz und ich glaube, dass ich die Fuse-Bit neu rechnen. Kann jemanden mir zeigen, wie ich diese Fuse-Bit rechnen kann. vorher sollte ich die Fuses mit 5Mhz so setzen: avarice -c 0,1,0,4 --jtag /dev/ttyUSB0 -B 1000000 -W ff19e0 Danke
low-byte bei Deiner Ausgabe vertauscht sind. Bei Deiner Angabe sind die ersten Bytes die extended Fuse Bits ( z.B. beim tiny2313 ) Gruß Florian
-
Thread
Bits nach Maske setzen [C]
Hallo, Ich habe ein Problem mit dem setzen von Bits in C. Ich habe einen Wert und eine dazugehörige Maske beispielsweise: Wert: 0001 1101 1001 1110 Maske: 0000 0000 1111 0000 Dazu habe ich einen kleinen numerischen Wert der in die Maske passt. In diesem Fall wären das 4 Bit, demnach ein Zahlenwert von 0 - 15 der darin eingefügt werden soll. Ich kann nun also mit einem negierten AND diese Bits auf '0' setzen und hier nun meine Frage. Wie kann ich nun diesen kleinen Zahlenwert
-
Thread
Masken zu setzen/löschen von Bits
Ich habe im Zusammenhang mit dem GNU Compiler eine neue Art gelernt, einzelne Bits zu setzen. Ich nehme als Beispiel einmal das Setzen des Bit7: GNU-Methode: Testbyte |= (1<<7); meine übliche Methode:Testbyte |= 0x80; Nun meine Frage: ich bin der Meinung, dass beide Methoden
Es scheint also wie vermutet Geschmacksache zu sein, und das ist schön so. Also lösche ich Bit 5 weiter so, weil es für mich leichter lesbar ist: #define MASK_BIT5 0x20 /*in irgendeinem passenden Header-File*/ x &= ~MASK_BIT5 ; Viele Grüsse Harry
-
Thread
C Schleife um alle 8 Bits im Byte zu setzen
Hilfe, ich hab ein Brett vor'm Kopf. Ich will alle Bits setzen. Das Schieben im letzten Durchgang versaut's (0x7F statt 0xFF): [c] #include <stdio.h> #include <stdint.h> int main() { uint8_t c=0; for(uint8_t n = 0; n<8; n++){ c |= 0b10000000
Müssen die nacheinander gesetzt werden? verBITtert schrieb im Beitrag #6612559: > Ich will alle Bits setzen. In dem Fall mache ich das dann so: [c] c=0xff; [/c]
-
Thread
von LSB bis führendes bit auf 1 setzen.
einige taktzyklen um die niederen bits auf 1 zu legen.
'. Mit der richtigen Bedingung im if geht es aber auch ohne. Ergebnis siehe Anhang. Hier für 16 Bit. Für 256 einfach den Parameter hoch setzen. Synthesefähigkeit nicht geprüft. [c] module compare( din, dout ); parameter len = 16; // Inputs, Outputs
-
Thread
Fuses setzen
bau gerade ein Projekt nach und möchte nun die Fuses meines Mega8515 so wie auf dem Bild gezeigt setzen! Allerdings ist das Bild von PonyProg und ich möchte die Fuses mit dem Avr Studio setzen! Muss ich diese nun umdrehen oder passen die so?? Bin da vorsichtig, denn ich hab in meiner vergangenheit
Hab vielleicht einen Trick für dich: Merk und vergleiche die Bits nicht über "Bit ist 0" und "Bit ist 1" bzw. "Bit ist gesetzt" und "Bit ist nicht gesetzt". Vergleiche die lieber so, wie Atmel es sich gedacht hat: "Bit ist programmiert" und "Bit ist nicht programmiert
-
Thread
WINAVR Portpins setzen
Hi, ich versuche unter WINAVR einzelne Portpins zu setzen. Der Code der dabei raus kommt ist aber viel zu lang Aus PORTC |= 0x80; wird ldi r30, 0x35 ; 53 ldi r31, 0x00 ; 0 ld r24, Z ori r24, 0x80 ; 128 st Z, r24 Erwarten
8051-Bereich kenne ich das auch (Keil-Compiler). Obwohl die 8051-Derivate den Befehl "jb" "Jump if Bit gesetzt" kennen, Bits können in einem best. Bereich des Ram definiert werden, macht der Compiler immer ein "copy bit ins Carry" mit anschließendem "jump if Carry set" daraus. Egal in welcher Optimierungs-Stufe
-
Thread
PIC: Bits parallel setzen
Hallo, wieder mal ne Anfängerfrage (Info: es handelt sich um den PIC18F2450): wenn ich schreibe portd=0x01; werden doch alle d-Bits (also portd.7 bis portd.0) PARALLEL auf 00000001 gesetzt, richtig? Ich würde nun gerne nur portd.1 und portd.0 gleichzeitig setzten, also NICHT nach einnander durch: portd.1=0; portd.0=1; sondern durch eine portb= -Anweisung dabei aber alle anderen Bits (portd.7 bis portd.2) des d-Ports unangetastet lassen. Wie kann ich das syntaktisch lösen? THX for RE
-
Thread
Bit in Byte mit Schleife setzen/abfragen
Hallo, ich habe eine For-Schleife mit der ich je nach Status eines Arrays (ausgang _status[i]) ein Bit in der Variable (StatusPortx) setzen will. Leider klappt das nur für das erste Byte (StatusPort1) Kann mir einer sagen was ich da falsch mache? [c] uint8_t StatusPort1,StatusPort2,StatusPort3
mit Statusports[ Port / 8] |= 1<<( Port % 8) das Bit setzen. (oder so ähnlich)
-
Thread
port brav nach c Standard setzen
ich der Übersicht halber möglichst nur schöne, Namentlich eindeutige Funktionen stehen haben, kein Bit-geschiebe etc. Ich hänge jetzt an dem Punkt, wo ich an einem Port einige Ausgänge setzen will. Ich habe ein byte in dem die Soll-Zustände gespeichert werden (kommen an anderer Stelle über den uart)
vermeiden. z.B. was denkst was für ein datentyp kommt hier heraus? [c] unsigned char register_8bit = 0x10; unsigned short register_16bit = 0x00; register_16bit = ~(register_8bit); [/c] ??? Bei Cosmic C Compiler ist es z.B. so, dass der 8 Bit wert auf einen 16 bit Wert gecastet wird und
-
Thread
Setzen von Registern
die SPI-Schnittstelle als Master agieren soll. Wie schreibe ich das am besten, dass das passende Bit im Register UCA0CTL0 1 gesetzt wird bzw. bei Slave 0? Ich hoffe, ihr versteht, was ich meine:S
will jetzt aber nicht zwei solcher routinen haben, sondern nur eine, indem ich diesen Teil variabel setze. ABer ich habe keine Ahnung, wie ich das machen kann.
-
Thread
FSTRT bit beim 2313 setzen?
Hallo!! Würde gern das FSTRT fuse bit im At90S2313 setzen. Benutze PonyProg, damit geht es leider nicht. Menü bietet nur LOCK1 und LOCK2 bit an. Wie kann ich dieses Bit noch setzten ohne mir ein Kommerziellen Programmer zu kaufen
HI! Habe es mit Yaap versucht, Yaap stürtzt immer ab wenn ich den Lock Bit & Fuses menüpunkt öffnen will. Also geht auch nicht! Gibt es noch andere programmer tools? Brauche jetzt echt hilfe. Danke!
-
Thread
AVR/C: Bits in Register in einem Schritt löschen und andere setzen
Hallo, ich möchte gerne auf einem ATmega 328p im Register TCCR2B die Bits CS22 und CS20 setzen und die Bits CS21 und WGM22 löschen. Ich kann das in zwei Schritten mittels [c] TCCR2B |= ((1<<CS22|(1<<CS20)); TCCR2B &= ~((1<<WGM22)|(1<<CS21)); [/c] bewerkstelligen. Der
S. schrieb im Beitrag #4528449: > ich möchte gerne auf einem ATmega 328p im Register TCCR2B die Bits CS22 > und CS20 setzen und die Bits CS21 und WGM22 löschen. Oliver
-
Thread
8bit-Computing mit FPGA
Thomas T. schrieb im Beitrag #3827462: > 8bit-CPU 6809: X- und Y-Register sind 16 Bit breit. > 8bit-CPU Z80: HL-, IX- und IY-Register sind 16 Bit breit. Aber die beiden Akkus des 6809 und der Akku des Z80 sind nur 8bit breit. Also keine Widerlegung
LZ.A auf Position e4/e5/e6 wurden ersetzt durch NA.K ZO.K NA.A NA: Negiere arithmetisch, ZO: Setze Null. http://www.mikrocontroller.net/articles/8bit-CPU:_bo8
-
Thread
struct array in Flash setzen
Hi Ich habe derzeit eine struct die bisher 4 Byte groß ist, sich aber später verdoppeln bis vervierfachen wird. Außerdem wird diese so 30 mal benötigt. 16 * 30 = 480 Byte -> für den Mega8 verkraftbar, aber da diese alle Konstant sind, wäre es doch viel besser sie in den Flash zu verlagern. Da habe ich aber ein Problem: Ich habe eine Methode die die Struct initialisiert und die Werte setzt, aber wie mache ich das direkt, ich kann ja nicht die werte erst auf dem µC schreiben. Das ist die Struct: [c] typedef struct { uint16_t time; uint16_t bonus; } Game; [/c] Muss ich das
-
Thread
Bits an die richtige Stelle setzen
Hallo alle beisammen. Ich habe am PORTB eines ATmega8 8 LEDs. Diese sind leider Hardwaremäßig so angeordnet: LED0 - PB5 LED1 - PB4 LED2 - PB3 LED3 - PB2 LED4 - PB1 LED5 - PB0 LED6 - PB6 LED7 - PB7 Weiterhin habe ich eine 8 Bit Variable, in der steht, welche LED's an sein sollen. 0 = aus, 1 = an. Leider ist dabei Bit0 die LED1, Bit7 die LED7. Wie bekommt man es nun hin, das die richtige LED leuchtet? Das ich die Variable mit einer weiteren vergleichen muss, und evtl. etwas schieben muss, ist mir schon klar, nur verstehe ich noch nicht so ganz, mit welcher. Vergleichen
-
Thread
Fuse Bits korrekt setzen
Hallo, ich bin etwas eingeschüchtert von den vielen Warnungen beim setzen der Fuse Bits. Ich habe eine Atmega328 und einen externen 16 Mhz quartz. Diesen hab ich in Pin 9 und 10 gesteckt und von jedem Pin über einen 22pF Kondensator auf Masse. Im Anhang ein Screenshot
gewählt, nur ckdiv8 um nicht durch 8 zu teilen hab ich noch nicht auf 0 gesetzt. 1. Sind die Fuse Bits so korrekt? Um zu gucken, ob der Takt auch korrekt ist, wollte ich mit dem Oszi mal einen Port einfach high/low setzen in der while schleife hier erhalte ich 500 kHz das mit 8 multipliziert ergäbe
-
Thread
int byteweise setzen
jemand eine andere Möglichkeit nennen da ich die Schalter in einer Schleife sowohl abfragen als auch setzen oder löschen möchte im Voraus besten dank Wolfgang
Word ist) /hinter/ die anonyme Struktur! ??? Das "byte" ist doch hier anscheinend ein eigener 8-Bit Typ. Schon klar, dass er vergessen hat, hier überhaupt eine konkrete Variable zu definieren. Daher das "XXX" in meinem Post.
-
Thread
Register setzen
Hallo @ll ! Ich bin nicht mehr blutjunger Anfänger in Sachen avr c programmieren und hab auch Schon so einige Programme erstellt. Dennoch hab ich noch eine ganz wichtige GrundsatzFrage. Ich hab immer wieder Probleme mit der Schreibweise. Was ist eigentlich der Unterschied zwischen z.b. TCCR0B = (1<<COM1A1)|(1<<WGM11); und TCCR0B |= (1<<COM1A1)|(1<<WGM11); Ich verwende immer die 2te Schreibweise. In manchen c Programmen stehts aber auch anders. Wo liegt da der Unterschied ? Lg
-
Thread
Bascom Wert setzen
Moin Moin! Ich bin gerade dabei eine Uhr zu bauen und habe dafuer den Grundcode von Blackstrom verwendet! Nun möchte ich das zu bestimmten zeiten ein Gong ertönt. Das mach ich dann mit: If Frueh = 1 Or Mittag = 1 Then Relais = 1 Else Relais = 0 End If Frueh und Mittag wollte ich nun so binden: Dim Frueh As Bit Dim Mittag As Bit Frueh = Zh_stunde = 0 And Zl_stunde = 8 And Zh_minute = 5 And Zl_minute = 5 Mittag = Zh_stunde = 1 And Zl_stunde = 1 And Zh_minute = 3 And Zl_minute = 5 wenn ich die den kram mit der AND verknüpfung direkt in die If Then kopiere geht
-
Thread
Flag in BLOCK setzen und löschen?
gibt es eine ähnliche Möglichkeit, um für die Ausführungszeit > einer Funktion bestimmte Flags setzen und danach löschen (oder > umgekehrt) ? Ich nehme weiterhin an, es geht um C? In C++ einfach machbar (Stichwort: RAII).
Anderen) entworfenen Planer benutzen, dort gibt es Prioritäten und mit jeder Aufgabe wird noch eine 32bit-Variable gespeichert (nichts steht im Wege (außer Leistung), auch 64bit-Variable zu speichern). Dort wird das einfacher: wird eine Aufgabe, die SPI braucht, merken, daß SPI besetzt wird, dann stellt
-
Thread
ACSR - Bit7 setzen
Hallo, Ich habe ein Problem und bin ein wenig am verzweifeln. Es geht prinzipiell darum das Bit7 (ACD) des ACSR Registers zu setzen. Die Bedeutung dieses ist wohl: 1 -> Comperator aus 0 -> Comparator ein Initialwert des Bits ist 0. Ich würde nun gern das Bit setzen um den Comperator auszuschalten
deren Gelesen-haben man vor dem Absenden bestätigen muss... > Der Atmega weigert sich halt, das Bit auf 1 zu schalten. Und ich habe > keine Ahnung wieso... Wie sieht denn jetzt Deine Überprüfung aus? Ich befürchte, Du hast nicht verstanden, dass nicht das /Setzen/ des Bits falsch ist, sondern Deine
-
Thread
wie kann man variable Bits in C Code setzen?
Immer wieder stoße ich auf folgendes Problem. In einem Register möchte ich ein oder mehrere Bits setzen und den Rest unverändert lassen. Leider weiß ich nicht ob das jeweilige Bit eine 0 oder eins sein wird weil es z. B. aus einer Variablen kommt. Sonst könnte ich ja mit: x |= (1 << Bitnummer
Rest (Bit7:4) des Registers verändert wird. Hat da jemand eine Idee?
-
Thread
CKSEL-Bits mit PonyProg setzen
Moin. Ich will mein µC ( ATmega16 ) mit einem 16Mhz Quarz betreiben. Ich hab noch die 2 Ko's zu je 22pF rangelötet, wie es im Datenblatt beschrieben ist, und nun bei PonyProg die Fuse-Bits CKSEL 0-3 und das CKOPT-Bit gesetzt. Seit dem will der µC mit PonyProg nicht mehr reden. Könnte das am Quarz liegen, oder liegt das vielleicht an der Einstellung bei PonyProg? Der Haken bedeutet doch "programmed", oder?
-
Thread
Pin entsprechend eines Bits aus char setzen
Moin Leute, ich stehe hier auf dem Schlauch. Ich habe ein Konfigurations char der innerhalb einer for-Schleife an einen ADC übergeben werden soll. Ich habe also z.B.: 01100110 Dann möchte ich im ersten Durchlauf den entsprechenden Portpin auf Null setzten, im zweiten und dritten auf eins usw... Nur wie picke ich mir die Werte raus? Den umgekehrten Fall, einen Wert von einem Pin in einen char schieben habe ich kapiert, nur andersherum verstehe ich es nicht :-( Vielen Dank schonmal Dirk
-
Thread
ACME Bit lässt sich nich setzen
Hi, wie setzt man denn beim Atmega 168 das ACME Bit im ADCSRB Register für den Multiplexer zum Analogcomparator? Im Datenblatt steht: It is possible to select any of the ADC7..0 pins to replace the negative input to the Analog Comparator. The ADC
= (1<<ACME); steht sicherlich. Aber ich hatte aus verzweiflung schon prbiert gehabt, ob man das Bit löschen muss um es auf EINS zu setzen. Also auch mit: ADCSRB |= (1<<ACME); Funktioniert es nicht :(
-
Thread
parallel 8bit zu 16Bit/24bit Logik-IC?
Lösung für den TO ist vermutlich sowieso was anderes. also ich möchte unter anderem eine 8080 8/16Bit LCD Ansteuerung mit wenig Pins nutzen.. angenommen ich habe nur 6 Pins frei, das Controllereigene SPI kann nur 40Mhz, zuwenig Datenrate.. aber die GPIO kann mit 80Mhz Ports setzen.. Dann würde ich versuchen
Beitrag #6837663: > SPI kann nur 40Mhz, zuwenig Datenrate.. aber die GPIO kann mit 80Mhz > Ports setzen. 8080 mit 80 MHz her. Wohl auch nur im FPGA. Und was nützt ihm 80MHz Portzugriff, wenn er auch Handshake-Signale setzen muss 8bit Daten hin Clk high, Clk low, nächste 8 bit Daten hin, deren
-
Thread
uC C-Programmierung Port setzen
kompliziert. [code] a = .... neuer Wert a kriegt als ganzes einen neuen Wert a |= ( 1 << BitNr ); das Bit 'BitNr' wird gesetzt (auf 1) a &= ~( 1 << BitNr ); das Bit 'BitNr' wird gelöscht (auf 0) a |= ( 1 << BitNr1 ) | ( 1 << BitNr2 ) ... die Bits BitNr1, BitNr2 werden
Ja, außer BitManipulation...wozu brauchte ich das schon vorher? "PB1" ist typ char, oder? also die Bezeichnung? und um die zu setzen dann: DDRB |= ( 1 << PB1 ) - PB1 Output DDRB |= ( 0 << PB2 ) - PB2 Input
-
Thread
Mico32 4 Bit Pin setzen
ECP2 mit Mico32 Core. Ich möchte damit ein LCD ansteuern (2x16 Zeichen, mit HD44780 Controller, in 4 bit Modus), allerdings bekomme ich es nicht so richtig zum Laufen. Leitungen sehen folgendermaßen aus: [c] const char *DB47_GPIO_INSTANCE = "DB4_7"; //4 bit breit const char *E_GPIO_INSTANCE = "E
Hallo, Duke Scarring schrieb im Beitrag #2495865: > Du hast für jedes Bit/Pin eine eigene GPIO Instanz? ja, genau, ich dachte, dass es vielleicht bei der Zuweisung zu dem 4 bit breiten Datenport (DB4_7) Probleme gibt, deshalb hab ich das aufgedröselt. Vielen Dank Peter
-
Thread
Ausgänge setzen
PORTA7 auf Output. Es reicht auch aus, das einmal zu machen, ebenso wie das wdt_disable() und das Bit-setzen. Also etwa so: [c] wdt_disable(); DDRA = (0 << DDA0) | (0 << DDA1) | (0 << DDA2) | (0 << DDA3) | (0 << DDA4) | (0 << DDA5) | (1 << DDA6) | (1 << DDA7); PORTA = (1 << PORTA0)
| (1 << PORTA7); while(1); [/c] Du siehst, ich habe auch das |= weggenommen. Wenn Du alle Bits ansprichst, wäre das schon eine sehr spezielle Situation, in der man |= verwenden müsste. Wenn Du aber nur Bit6+7 verwenden willst, dann schreibst Du: [c] wdt_disable(); DDRA |= (1 << DDA6
-
Thread
#define soll gleichzeitig Setzen und Löschen
Moin! Frage vorweg: wie heisst das, was man durch ein #define definiert? Frage hinterher: ich habe am Atmega einen Demux angeschlossen, der 3 Adress-Eingänge besitzt, welche an den Atmega-Ports hängen. A0 A1 A2 Y 0 0 0 0 1 0 0 1 0 1 0 2 1 1 0 3 0 0 1 4 Nun möchte ich gern durch ein einfaches #define dmux_input_(0-4) machen, dass die entsprechende Bitmaske gesetzt wird. Ich kenne aber nur Maskierungen, bei denen gleichzeitig ein oder mehrere Bits gesetzt (bzw. gelöscht) werden, nicht aber gesetzt UND gelöscht. Wie tut Mann das?
-
Thread
AVR Register setzen
Hallo, ich verwende einen ATmega16U4 und möchte die ADC`s benutzen. Nun ist es so das in dem Register ADMUX Bit 0 ... 4 geändert wird und in dem Register ADCSRB NUR Bit 5. Die anderen Bit´s müssen unberührt bleiben. Um das ganze zu vereinfachen wollte ich nun ein #define machen. aber wie kann ich die beiden Register in einer zeile zusammenfassen?? #define ADMUX &= 0b00010000 | ADCSRB &= 0b00100000 Vielen Dank für alles hilfreiche
-
Thread
GLCD - Einzelnes Pixel setzen
nur ganze Segmente schreiben können. Bei meinem eingesetzten ist das so. Ich kann immer nur ganze 8-Bit schreiben. Möchte ich jetzt nur ein Bit davon setzen überschreibe ich zwangsläufig die alten Bits mit Nullen.
dem ST7565R keine einzelnen Bits mit SPI setzen UND weil ich nicht den kompletten Framebuffer im Speicher des uC halten wollte. Oliver
-
Thread
Lockbits per Software setzen
Programmstart eines Atmegas die Lockbits überprüfen und falls die nciht dem entsprechen, was ich brauche, setzen. [c] void check_lockbits() { #ifdef CHECK_LOCK_BITS if(boot_lock_fuse_bits_get(GET_LOCK_BITS) != 0xC0) { boot_lock_bits_set(0xC0); } #endif } [/c] Die Abfrage funktioniert
Hi • Bit 3 – BLBSET: Boot Lock Bit Set If this bit is written to one at the same time as SPMEN, the next SPM instruction within four clock cycles sets Boot Lock Bits, according to the data in R0. The data in
-
Thread
Bits in Vektor in Abh. eines Vektorwertes setzen
Ich habe einen Vektor "schalterausgang (63 downto 0)" und bekomme sequenzielle Befehle, um diese zu setzen. Die Nummer steht im Vektor "Schalternummer (5 downto 0)". Ich möchte also beim Code 001111 den Ausgang (15) setzen. Wie kann ich das generisch formulieren, ohne 64 cases schreiben zu müssen?