-
Thread
Kippen Bits in Registern zufällig?
auch bei jahrelanger Laufzeit nicht vor? Zum Beispiel: [avrasm]ldi r16, 20; für schnelles Setzen im Interrupt main: ;... rjmp main interrupt: ;... sts Atimeout, r16 ;spart einen Zyklus für das Setzen der Konstante ;... reti[/avrasm] Hier könnte ein Bitkippen in r16 für eine
www.altera.com/en_US/pdfs/literature/wp/wp-01179-ecc-embedded.pdf kurz Zusammenfassung: Ein einzelnes Bit wird wahrscheinlich in deiner Lebzeit nie kippen. Wenn man aber zig milliarden Bits hat (4GB -> 32 milliarden Bits), kommt man plötzlich in den Bereich von Monaten, bis mal eins kippt. Und spätestens
-
Thread
FT800 / FT810 Library
ja auch über das REG_SWIZZLE unterstützt wird. Schaltbild ist im Anhang. Da das Display ein 18-bit Display (6bit/Farbe) ist, setze ich zudem in der Init noch das Register REG_OUTBITS: [c] EVE_memWrite16(REG_OUTBITS, 0x01B6); [/c] Die 0x1B6 entsprechen für jede Farbkomponente 0b110 = 6. Bin mir
kommen daher, wie schon gesagt, dass ich einfach die HAL lib Aufrufe benutzt habe, auch für das setzen der CS bit hi/lo , was ja jeweils in mindestens ein zwei Subroutinen verzweigt und daher ....dauert. mit etwas mehr Zeit für das Ganze, würde ich erstmal die CS-bit setzen mit einem direkten write
-
Thread
PIN4.1 setzen
Hallo liebe Forumsmitglieder, ich möchte an PIN4 das Bit1 auf 1 setzen, wenn eine Bedingung erfüllt ist. Ist diese Bedingung nicht erfüllt, so soll BIT1 auf 0 gesetzt werden. Wie mache ich das? Mein Beispiel: [c] if(x >= y){ P4SEL
Tobias schrieb im Beitrag #2550595: > ich möchte an PIN4 das Bit1 auf 1 setzen Du möchtest die Bits aufeinander setzen? Dafür benötigst Du einen Stack. Gruß Jobst
-
Thread
128 Bit Risc
man pathrecords. Der pathrecord von 8528817511 ist 18,144594,937356,598024 was die höchste in 64 bit darstellbare unsigned integer ist. Und da scheitern z.b. Vpaddq xmm1,xmm2,xmm3 oder vpmuludq xmm1,xmm2,xmm3 bzw. machen was anderes als erwünscht und setzen keine Flags. Der Intel Prozessor muss
Du "-I ..\gmp\include\ -L ..\gmp\lib\" auch weglassen >> und entsprechende Enviroment-Variablen setzen. > > Also "Hans" hat auf seinem Linux lt. > Beitrag "Re: 128 Bit Risc" > "g++ -Ofast collatz.cpp -o collatz -lgmp" zum Compilieren benutzt - > u.U. wird der Include-Suchpfad und der Library-Suchpfad
-
Thread
Videosignalgenerator, 16bit-Programmierung
ah sehr schön und was für WGM-Flags muss man dann setzen?
#2780240: > a ein Bild aus 625 Zeilen besteht ist der Counter für die > Zeilenschleife mehr als 8 Bit groß. Deshalb muss ich wohl mit 16 bit > rechnen was ich im nachfolgenden codeschnipsel wohl versucht habe. Nicht zwingend. Du kannst auch die 8-Bit Counter Überläufe zählen. Inwieweit das Sinn
-
Thread
Bits in einem Array beschreiben.
das einfachste ist doch einfach jedes Bit einzeln zu setzen. Schreibe ein funktion SetBit(pos, wert). diese sollte recht einfach umsetzbar sein. Dann gehst du einfach den wert bit für bit durch.
Setzen eines Bits ist gar kein Problem. Die eigentliche Schwierigkeit ist, in welchem Schema SetBit aufgerufen werden muss.
-
Thread
EleLa - Elektronik Lagerverwaltung ab V1.2.11A26
Nun eine ganze Reihe von EleLa's zum Test. V2.0.12423. - Windows 32 Bit - Windows 64 Bit, SQLite DLL mit 64 Bit ist mit im ZIP. - Linux 32 Bit - Linux 64 Bit Neu kann in der INI-Datei der Parameter [Programm] Caption= mit dem Code %DB% versehen werden, dann wird
@Stefan Ja. Bei der Win64 Bit Version wird auch die MySQL DLL als 64 Bit Variante benötigt. Da die DLL 32 Bit ist, meckert EleLa dass die DLL nicht vorhanden ist. Die 32 Bit EXE findet somit die DLL. Kannst Du mir die gesicherte
-
Thread
gdb breakpoint setzen
serial_qemit () (gdb) [/code] (Anm.: daß ich jetzt versucht hatte, auf 0x08003a56 einen BP zu setzen, war ein zusätzlicher Versuch. Ursprünglich hatte ich versucht, den BP auf 0x3a56 bzw. 0x3a57 zu setzen.)
-e sollte aber eigentlich trotzdem klappen. Alternativ kannst du den PC auch im GDB direkt setzen: [pre] (gdb) set $pc=Reset [/pre] Wofür brauchst du denn überhaupt das .bin-File?
-
Thread
Ports und Pins über Funktion setzen
; // Bit 0 für Adresse 5 WORD A6:1; // Bit 1 für Adresse 6 WORD A7:1; // Bit 2 für Adresse 7 WORD A8:1; // Bit 3 für Adresse 8 WORD A9:1; // Bit 0 für Adresse 9 WORD A10:1; // Bit 1 für Adresse 10 WORD A11:1; // Bit 2 für Adresse 11 WORD A12:1; // Bit 3 für Adresse 12 WORD A13:1; // Bit 3 für Adresse 13 // Die verbleibenden 3 Bits
-
Thread
Jedes n-te bit im vektor setzen
meiner Frage. Ich habe ein std_logic_vector(0 to 1024) und eine Zahl n. Ich möchte nun jedes n-te bit im Vektor auf 1 setzen. Dazu habe ich folgenden Code: p : process (go_bit) --go_bit wird einen clock lang auf 1 gesetzt als startsignal begin if go_bit = '1' then for i in 0 to (1024-n)/n
Ich habe ein std_logic_vector(0 to 1024) und eine Zahl n. Also hat der Vektor eine Länge von 1025 Bits. Du gibst aber nur 1024 Bits aus: > Nun, bei der Ausgabe kriege ich 1024 x 0. Seis drum. > Ich habe ein std_logic_vector(0 to 1024) und eine Zahl n. Woher kommt die "n"? Ist die Zahl zur Laufzeit
-
Thread
Fusebits setzen
Hallo, mit avrdude lassen sich auch Fuse bits setzen. Ich habe hier einen Atmega48-20AU (TQFP) und möchte den Clockdivider von 8 rausnehmen, damit ich ihn mit den vollen 8 Mhz betreiben kann. Dazu habe ich folgendes in die Konsole getippt:
-
Thread
Atmel: Register setzen und rücksetzen
Hallo zusammen, ich habe eine Frage bezüglich der Register. Im Moment programmiere ich auf einem ATtiny eine LED-Dimmung. Hier gibts das Problem, das ganz aus ja nicht realisiert werden kann mit OCR =0x00 - ein peak bleibt ja. Ich habe dass jetzt so programmiert, dass bei "Licht aus" die PWM abgeschaltet wird und der Port ein normaler I/O ist. Bei Einschalten der LED findet dann wieder eine PWM statt. Timer ist bereits initialisiert (Hier Beispiel Timer 0) PWM einschalten ganz normal: TCCR0A = (1<<COM0A1) Aber wie schalte ich in ähnlicher Schreibweise die PWM aus? Bisher helfe ich mir so:
-
Thread
variable zwischen zwei werten setzen
Hallo, gibt es irgend einen Befehl, mit dem ich eine Variable zwischen zwei werten setzen kann? 10<=x<=20 also x gebe ich als input. Wenn dieser kleiner gleich 10 ist, soll x=10 sein. Ist x>20, soll x=20 sein. Ist x=12, soll x=12 bleiben. bisher habe ihc es so [code] if(x<=10) x
festzustellen, daß der Wert, der sich aus der Summe der long int ergibt, vom Wertebereich immer in 16 Bit paßt und kann auch deswegen nicht entsprechend optimieren. Danke für die Erklärung. Und jetzt gebe ich den gekaperten Thread auch wieder zurück. Wo ist der TO?
-
Thread
Bit-Maskierung 32bit
Hallo Forum! Ich hab mal eine Frage zur Maskierung von Bits. Das ist bestimmt ganz einfach, aber ich bin einfach nicht sicher, also: Ich habe eine 32bit-Variable. Aus dieser möchte ich eine bestimmte Anzahl Bits von einer Bieliebigen Stelle an maskieren und
unsigned char y; y = (x & (0x2F << 6)) >> 6; // ^ Auf Bit 0 verschieben // ^ Ab Bit 6 // ^^^^ 6Bits Sollte es nicht 0x3F << 6 sein für 6 bits? Oder irre ich mich?
-
Thread
ATMega nach der setzen der FUSEs geht nicht mehr
! Heute wollte ich eine neue Platine mit einem ATMega8 testen. Als erstes sollte ich die FUSE-Bits setzen und das habe ich gemacht. Ich habe ein 16MHz-Quarz und habe dann E0 (low) und C9 (high) gesetzt. Nachdem ich es gemacht habe, geht der ATMega8 nicht mehr. Ich kann weder neue FUSE-Bits setzen
XTAL1 und OSCSEL" in oben angesprochenem dt. Manual -> die beiden Jumper XTAL1 und OSCSEL passend setzen sollte helfen. HTH
-
Thread
Bit-Manipulationen
zu setzen oder Löschen. P1OUT (Logische operation) -> Bit2 des Registers soll 1 sein wenn das Bit im Datenwort eins ist und 0 sein wenn das bit im Datenwort 0 ist. gibt es da eine Möglichkeit?
Brunner schrieb im Beitrag #3213556: > Geht mal rein logisch nicht, du MUSST zwischen löschen und setzen > unterscheiden. Türlich geht das. Beispiel für Pin 0: temp = port & ~1; loop port = temp | bits & 1; bits >>= 1;
-
Thread
#define-Pinnamen beim Setzen von Pins
connections */ #define HD44780_RS A, 6 #define HD44780_RW A, 4 #define HD44780_E A, 5 /* The data bits have to be in ascending order. */ #define HD44780_D4 A, 0 [/c] Implementierung: [c] /* Hilfsmakros */ #define GLUE(a, b) a##b /* single-bit macros, used for control bits */ #define SET
#define LED_DDR DDRA #define LED_PORT PORTA #define LED_PIN PC2 ... // Richtung setzen: LED_DDR |= 1 << LED_PIN; // Ausgang setzen: LED_PORT |= 1 << LED_PIN; // Ausgang löschen: LED_PORT &= ~( 1 << LED_PIN ); [/c] Um das prägnanter zu schreiben, muß man schon etwas in die
-
Thread
CLKDIV8 programmiertechnsich setzen, nicht manuell
Hi, ich möchte gern den CLKDIV8 standardmäßig über Code ausschalten, hab die avr/fuse.h eingebunden und finde auch das Flag CKDIV8. Versteh nur nicht, wie ich das disablen, oder in diesem Fall enablen soll. Weiß jemand Rat? Mfg
-
Thread
PWM-Pin von AVR deaktivieren
kurzfristige 0 Setzen der WGM Bits keine Auswirkungen hat) Löscht man hingegen nur die beiden tatsächlich zuständigen COM Bits bei Bedarf, ist der Rest trivial.
TCCR0A = (1<<6) als 'setze das bit Nr.6 auf Log.1' interpretieren, dementsprechend sollte: TCCR0A = (0<<6) = 'setze das bit Nr.6 auf Null' heissen. Dank der enormen Zahl der wohlmeinenden C-Experten habe ich endlich
-
Thread
verändern von Bits
dann Bit 0 setzen aber achtung. Wenn du aufgrund der bits springen willst, zB. mit SBRC flags,... kannst du den Namen nicht verwenden , da man da explizit das Bit angeben muss und keine maske. Würde also
Hi... Zurück zur Frage. Du wolltest einzelne Bits im Register setzen/löschen, ohne die anderen zu beeinflussen. Dazu fällt mir erstmal SBR/CBR ein (oder ANDI/ORI). Das geht, wie oben schon erwähnt nur in den obreren Registern. Wenn du den Bits (
-
Thread
XMEGA setzen der Register funktioniert nicht?!
Hallo Leute, ich habe den Sprung zum XMEGA gewagt. Jetzt kämpfe ich gerade mit der Initialisierung des ADCs. Leider werden die (vermutlich) gesetzten Bits in den ADC-Register im IO-Viewer nicht angezeigt. Die Anzeige funktioniert im Simulator nicht und auch nicht auf der Hardware über PDI. Zum Beispiel: ADCA.CTRLB = ADC_RESOLUTION_12BIT_gc; ADCA.REFCTRL = ADC_REFSEL_INT1V_gc; ADCA.PRESCALER = 0x03; Die Bits werden einfach nicht gesetzt oder nur nicht angezeigt?! Verliere langsam echt die Lust an dem XMega. Vielen Dank für Eure Hilfe. VG, Michael Atmel-Studio:
-
Thread
Tasten setzen aus
Erst zeitweilig, jetzt beständig erzeugen einzelne Tasten am PC keine Reaktion mehr. Egal ob ich den PC mit PS2- oder USB-2+3-Tastaturen, unter Linux oder Windows7 Sp1 64Bit, betreibe. Treiber Erneuerung brachte keine Besserung. Alle Virenscans blieben erfolglos. Bildschirmtastatur unter Windows funktioniert einwandfrei. Netzteil hat ausreichend Reserve. Tasten die nicht gehen sind: Tab, 5/%, t/T, g/G, b/B Wer weiß qualifizierten Rat?
-
Thread
Projekt: SerialComCNC Serielles Frontend für CNC GRBL mit ATMega
crystal it is about 2.1%. With asynchronous communications the timing is restarted on every start bit, so it is only cumulative across the 10 bits (start, 8 bits, and stop), giving a max of about 19% on the stop bit (9 x 2.1%). You can theoretically get away with as much as 5% error per bit (+/-45%
P.S. Nutze Win10/64bit
-
Thread
Bits in Register setzten (Schreibweise)
Beitrag versuchst. Jim M. schrieb im Beitrag #7338041: > Einige µC kennen nämlich Befehle zum Setzen/Löschen einzelner Bits. Das > beschreibt Dir ein Grundlagenbuch eher nicht. Der Compiler setzt diese Befehle ein! Ob mit, oder ohne Buch.
Klasse! Die Fans entlarven sich wieder selbst. Was für eine Dreckssprache, bei der das Setzen von Bits in Registern mit dem Würfelbecher funtioniert...
-
Thread
Bit Verknüpfung
, hi8(RAMEND) out SPH, r16 cbi DDRB,0 ;Port B.0 Input (cbi = setze bit 0,0) sbi PORTB,0 ;Port B.0 PullUp (SBI = setze bit 0, 1) cbi DDRB,1 ;Port B.1 Input (cbi = setze bit 0,0) sbi PORTB,1 ;Port B.1
Sam700 schrieb im Beitrag #2101580: > cbi DDRB,0 ;Port B.0 Input (cbi = setze bit 0,0) > sbi PORTB,0 ;Port B.0 PullUp (SBI = setze bit 0, 1) > cbi DDRB,1 ;Port B.1 Input (cbi = setze bit 0,0) > sbi PORTB,1 ;Port
-
Thread
LCD Controller für 640x480 LCD mit mega8515
50% Tastverhältnis. Die Software ist ziemlich stark kaputt optimiert, vor allem da von UART mit 9bit auf parallel mit 9bit (LPT), von parallel auf UART mit 8bit (FT232) und von UART mit 8bit auf parallel mit 8bit (FT245) umgestellt wurde... Wenn du den Code nicht verstehst, beschreib mal genau die
ablegen und es aus diesem mit der entsprechenden Datenrate auslesen. Da das Display die Daten in 8bit Häppchen bekommt, RGB aber 3Bit sind und somit in einem 8bit Paket nur 2 2/3 RGB Pakete unterbringen lassen, wiederholt sich die Zuordnung RGB zu den Bits in den 8bit Paketen erst nach 3 Takten. Daher
-
Thread
Lock Bits beim AVR richtig setzen
gefunden, deshalb frag ich hier mal nach. Kein mir einer sagen, welche Bits ich setzen muss, um zu verhindern, dass mein Flash-Speicher ausgelesen wird? Grüße Funky
Bits. Aber auslesen kannst du einen "gelockten" AVR nicht. MFG Falk
-
Thread
Retro Fieber: Z80 oder 68000 ?
definiert. Da das STI das einzige Z80 Bauteil ist böte sich demzufolge an, die frei definierbaren Bits auf 0 zu setzen. Langsam wird es interessant :-)
oben nicht mehr ändern kann, weil der nächste Beitrag kommt hier meine Vorstellung: I = 0x80 setzen, d.h. MSB = 0 STI Vektorregister auf 0, diese 3 Bits da drin STI löst Interrupt 3 aus und legt "0+3" auf den Bus, also 3 Z80 baut zusammen: I + "3" und landet bei 0x80 + (3 * 2Bytes) = 0x86
-
Thread
Wie Register setzen lpc1768
einfacher. es geht aber auch bei den Stucturen immer darum, in dem Register 0x2009C020 bestimmte Bits zu setzen.
0x00020000; oder anders geschrieben LPC_GPIO1->FIODIR = LPC_GPIO1->FIODIR | 0x00020000; Das Bit setzt im Richtungsregister FIODIR (Eingang/Ausgang) von GPIO-Port 1 eine '1'. Das Pin wird damit zum Ausgang.
-
Thread
Ports setzen beim ARM7
auch gar nicht nötig - Du musst im IOSET-Register nur die zu setzenden Bits setzen und im IOCLR die zu löschenden Bits setzen. Andere Bits werden davon nicht beeinflusst. #define IO1PIN (*(volatile unsigned long *)0xe0028010) #define IO1SET (*(volatile unsigned long *
volatile unsigned long *)0xe0028018) #define IO1CLR (*(volatile unsigned long *)0xe002801c) //Bit 16 setzen IO1SET = 0x10000; //Bit 16 löschen IO1CLR = 0x10000; // Deinen Zähler auf Bits 16..23 ausgeben IO1SET = (i & 0xFF) << 16; IO1CLR = (~(i & 0xFF)) << 16;
-
Thread
bascom: Timer-Prescaler mit einer Variablen setzen? Gesperrt
Hallo Joco, via Bascon geht das nicht. Aber Bascom macht nichts anderes als die entsprechenden Bits im Timer-Control-Register zu setzten. Es hindert Dich niemand daran die Bits selbst zu setzen, bzw. zu modifizieren. Welche Bits in welchem Register das sind mußt Du aus der Doku Deines Atmel raussuchen
Frequenzzähler den Prescaler des Timer1 im Programm mehrfach ändern. Mit welchen Befehlen in Bascom setze ich die Bits im TCCR0 Register??? Kann ich wie peter geschreiben hat einfach TCCR1 = X schreiben (in Bascom)??? Wenn ja sind die anderen 5 Bits in dem Register auch für was gut oder sind die
-
Thread
PIC register setzen
Moin ich setze normalerweise Portregister in der Form PORTC= 0b00100101; wie schaut es aber mit 7bit Registern wie bei Port A aus? Kann ich einfach schreinen PORTA= 0b0101010; ?
Nein, da mußt du auch einen 8bit Wert setzen, wenn der Pin nicht implementiert ist, ist der Wert egal, nur wenn du den Wert liest, ist da entweder immer 0 oder immer 1, Datenblatt hilft.
-
Thread
Display mit Touchscreen bei Pollin?
Könnte evtl schon helfen... Hab ja bis jetzt immer 8bit ( 0xFF), also einen Strich auf entsprechender Höhe, aber sobald ich einzelne Bits setze und beim nächsten ADC Durchgang mit LSR das nächste Bit setzen will, bis alle 8bits nacheinander geschrieben wurden
setze bit2 in Register XY ; Touch misst > st Z(ADCwahl), xy > Schwellenaktionen wie bekannt > adsc > adif > Abbruch: > reti > > ADC-ISR: > ld XY, z(ADCwahl) > auswerten bit1
-
Thread
uC für 0,20€ CH552 / CH554 von WCH Billig Micro mit USB Funktion, Chip vorstellung
Nun vielleicht nicht direkt passend zum SPI Programmiermodus aber es ist > mir heute gelungen das Bit15 im Config Word zu setzen (Code_Protect) > ebenso wie Bit13 und Bit12. Diese Bits waren bisher bei mir gelöscht. > Ans Bootloader Bit hab ich mich nicht rangetraut da dies entgültige > wäre.
das Bit gelöscht ist. Lt Datenblatt ist das Bit bBOOT_LOAD readonly tatsächlich kann ich das Bit aber wieder setzen zumindest funktioniert das bei deaktivierten Bootloader. Das Verhalten ist ein Weg wie
-
Thread
Bascom 7 Pins eines Ports setzen
Was bewirkt das Setzen des Bits überhaupt wenn der Pin als Eingang Konfiguriert ist?
etwas anders aus. Der TO hat allerdings keinen Controllertyp angegeben. > Was bewirkt das Setzen des Bits überhaupt wenn der Pin als Eingang > konfiguriert ist? Die Frage ist damit beantwortet. Das steht alles auch im Datenblatt des Controllers ...
-
Thread
PortPins setzen und halten, Rotation
Hallo Gemeinde. Ich komme im Moment gar nicht weiter. Device 8051 Sprache C Ich möchte die 8 Pins eines Ports schalten. Jedes gesetzte Pin soll gehalten bleiben. Bspl. Alle Pins sind auf Low. Es wird ein Pin auf High gesetzt. z.B. Pin 5 Danach sollen automatisch die höherwertigen Pins (6 und 7) nacheinander gesetzt werden. Ist Pin 7 erreicht soll es bei Pin 0 weitergehen, bis wieder Pin 5 erreicht wird. Dabei sollen die durchlaufenen Pins auf High bleiben. Ist Pin 5 erreicht geht der ganze Port auf Low und es geht von vorn los. Quasi wie eine Rotation, oder so. :o) Hat jemand
-
Thread
Fuses im Source-Code setzen?
Hallo erstmal! Ich muß leider widersprechen. Meines Wissens kann man zumindest die Lock-Bit-Fuses aus dem Bootloader heraus setzen. Dort muß ja der geschützte Flash neu beschrieben werden. Siehe auch Figure 9 (ganz unten) auf Seite 15 im AVR230. //======================================
Lock bits sind (offiziell) keine Fuses. ;-) (*) Ja, die BLBs (boot lock bits) kann man aus dem Bootloader heraus setzen (aber nicht löschen, wie alle Fuses). Das ist übrigens eine prima Schieß-dir-ins-Knie-Falle
-
Thread
Wer hat Erfahrung mit HAP?
(Bit 6 - 7) #define COHALI // Logischer Eingang (Bit 8 - 8) #define COHAAI // Analoger Eingang (Bit 9 - 9) #define COHADIDS1820 // Dallas Digitales Thermometer
(Bit 13 - 13) //#define COHADG 2 // siehe oben (Bit 14 - 15) //#define COHAGUI // Bedienoberfläche (Bit 16 - 16) #define COHAAS // Autonome Steuerung
-
Thread
Pin auf high setzen MKL26
eigentlich schon alles. * SCGC5 Bit setzen zum Einschalten * PCR-Register für den jeweiligen Pin konfigurieren (dort befindet sich alternate-mux, evtl Interrupt, drive-strength, pullup) Kapitel 11.5.1 (PORT->PCR) * Ein-Ausgang konfigurieren
, alle bits die 0 sind bewirken nichts, alle die 1 sind bewirken setzen oder löschen. Es gibt auch noch ein PTOR Register zum Toggeln. Anstelle von PTA, PTB, PTC, PTD, PTE zum Setzen und Lesen in obigen Beispielen
-
Thread
Assembler wieder auf dem Weg nach vorn Gesperrt
Ralf G. schrieb im Beitrag #4362278: > 32-Bit-Zahl Ist keine typische 8bit MSR Anwendung :-/
le x. schrieb im Beitrag #4381932: > um eine 16-Bit-Signed Multiplikation Das ist doch aber keine typische 8bit MSR Anwendung.
-
Thread
Strukt auf einen Pointer aus einem Strukt setzen
Ich alloziieren Speicher mit malloc. Den erhaltenen Pointer speicher ich in einem Strukt ab. [c] typedef struct { uint8_t ID; uint8_t Typ; uint8_t* Addr; } uGUI_str_ID; //.... uGUI_ObjectID[ID_Counter].Addr = malloc(uGUI_def_ObjSize[ObjectType]*sizeof(uint8_t)); [/c] Nun möchte ich an einer anderen Stelle, ein Strukt an dieser Speicherstelle initialisieren. Dies habe ich wie folgt versucht: [c] //Struct Instanz erstellen struct uGUI_str_button *info; info = &uGUI_ObjectID[objectID].Addr; [/c] Doch so wie oben funktioniert es laut Debugger nicht.
-
Thread
Cursor setzen LCD Display
CURSOR_ON mit in die OpenXLCD rein, so hab ich in der 3. Zeile alles Kästchen. OpenXLCD(FOUR_BIT & LINES_5X7 ); Zeile 1 und 2 while( BusyXLCD() ) { } Delay1KTCYx(75); OpenXLCD_2(FOUR_BIT & LINES_5X7 & CURSOR_ON ); Zeile 3 und 4 while( BusyXLCD_2() ) { } Kann mir jemand einen Tip geben
Daniel EGAL schrieb im Beitrag #4110616: > (FOUR_BIT & LINES_5X7 & CURSOR_ON ); Bist Du Dir sicher, das Du das mit & und nicht mit | verknüpfen mußt? Kenne das von den AVRs so.
-
Thread
ATmega32 einzelne Pins setzen und abfragen
Bits abfragen, setzen bzw. löschen. Colin v.H. schrieb im Beitrag #2731202: > Port-A ist als Eingang geschaltet. Nun läuft im µC eine Schleife ab, die > nur unterbrochen werden soll, wenn Pin 5 an
Bitmanipulation (siehe > https://www.mikrocontroller.net/articles/Bitmanipulation) problemlos > einzelne Bits abfragen, setzen bzw. löschen. ist das nicht ein wiederspruch in sich? der atmel kann sowohl einen Port als auch ein Bit eines Ports ändern.
-
Thread
STM32 für Einsteiger - der Artikel zum Krieg (µC Wahl)
Beitrag #3504761: > Außerdem würde ich erwarten, dass die Chinesen demnächst mit einem > kleinen 32-Bit-Kern nachziehen, womöglich sogar binärkompatibel zum ARM. Die scheinen auf MIPS zu setzen ...
sieht es komplizierter aus, weil es eben so mega viele Register gibt und man teilweise auch zwei Bits pro Register setzen kann. Z.B. GPIOC ->MODER |= (1<<16); um Pin 8 auf output zu setzen ist doch auf den ersten Blick nicht unbedingt logisch ;-) Ich frage mich gerade, ob ich für ein kleines Projekt
-
Thread
STM32 - Bit im Register setzen oder löschen
Hallo, ich arbeite mich gerade etwas in den USB eines STM32 ein. Dabei sind auch Interrupt Register zu bearbeiten. Folgendes sagt das Datenblatt dazu: >>To avoid spurious clearing of some bits, it is recommended to clear them >>with a load instruction where all bits which must not be altered are >>written with 1, and all bits to be cleared are written with ‘0 (these bits >>can only be cleared by software). Read-modify-write cycles should be >>avoided because between the read and the write operations another bit >>could be set by the hardware and the next write will clear it before
-
Thread
Priorität von Interrupt setzen
Hallo, ich habe ein kleines Programm gechrieben, in dem ich zwei Interrupt(senden und empfangen über UART) aktiviert habe.Jetzt will ich dass das Empfang eine höhe Priorität hat,dh wenn gleichzeitig Senden bzw Empfangenaktion sich treffen, soll zuesrt die Empfangenaktion gearbeitet. thomas
-
Thread
Bit 7 im I/O Register setzen
zusammen, seltsamer weise meckert der Assembler vom AVR-Studio bei diesem Befehl. sbi CLKPR,CLKPCE ;Bit 7 im Clock Prescaler setzen Das I/O Register CLKPR befindet sich ja an Adresse $26. Das Bit CLKPCE ist ja in der .lst oder auch .inc Datei mit 7 angegeben. Die sytax zum Befehl lautet SBI
-
Thread
Lock Bits ATMega64 richtig setzen
Hallo. Ich möchte meine Firmware in meinem ATMega 64 vor dem Auslesen schützen. Dazu müßte ich LB1 und LB2 prorammieren. In meiner Firmware kann der Flash während der Laufzeit beschrieben und gelöscht werden. Auch über die RS485 kann der Flash durch die Verwendung des Bootloaders ausgelsen und überschrieben werden. Ist dies nach dem Setzen von LB1 und LB2 auch noch möglich? Danke
-
Thread
Rechenproblem 10Bit nach 9Bit
#3995050: > ich bekomme über den ADC einen Wert von 0 - 1023 rein. Diesen möchte ich > als 9 Bit *signed* darstellen. 9<10. D.h.: du wirst Information abwerfen müssen, um dein Ziel zu erreichen, nämlich genau ein Bit. Also einfach eins nach rechts schieben (ergibt einen Bereich zwischen
2er-Komplement ist es allgemein üblich, daß der Bereich im Negativen einen Wert mehr enthält. z.B. 16-Bit int: -32768 .. 0 .. 32767. Bei dieser Darstellung ist das oberste Bit das Vorzeichen-Bit, ist es gesetzt, ist die Zahl negativ. Bei der 0 ist es nicht gesetzt, die 0 wird also den positiven Zahlen zugeordnet
-
Thread
Bits effektiv umsortieren in C
hier: http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=102296 Da werden 4 Bits eines Bytes auf 4 verschiedene Leitungen ausgegeben. Das läßt sich leicht auch für Eingänge umschreiben. Testen und Setzen ist effektiver als Schieben. Peter
schrieb im Beitrag #2496354: > Wenn du Assembler nicht scheust: Mit den Befehlen bld und bst ist ein > Bit in 2 Takten an einer beliebigen Stelle in einem beliebigen Register. Ist genau gleich schnell, wie testen des Pins und setzen des Zielbits. Allerdings macht der AVR-GCC einige unnütze Befehle, wenn