-
Thread
ATTiny85 maximalen internen Clock setzen?
PLL clock mit internen Takt verwenden willst, geht das nicht (nur) über die Fuses. Du mußt das PLLE Bit setzen.
clock mit internen Takt verwenden willst, > geht das nicht (nur) über die Fuses. Du mußt das PLLE Bit setzen. Das PLLE-Bit wird automatisch gesetzt bei entsprechendem Fuse-Low-Byte: "If PLL is selected as a system clock source the value for this bit is always 1"
-
Thread
portts in asm setzen
Shift-Taste offensichtlich kaputt. Zweitens ist die erste Methode nur dann sinnvoll, wenn mehrere Bits gesetzt werden sollen bzw. in diesem Fall, wenn alle anderen Bits in DDRD gelöscht werden sollen. sbi setzt in DDRD nur das betreffende Bit, während alle anderen Bits unverändert bleiben.
ist die grenze bei den einzelnen befehlen die ich benutze um den pin 5 vom portd als ausgang zu setzen?
-
Thread
AVR Fuse Bits im Programm setzen
Hallo, ist es möglich die Fuse Bits der AVRs im Programm zu setzen so wie man es z.B. bei den PICs machen kann, anstatt ein Programm zu Nutzen?
-
Thread
einzelnes Bit in PortX setzen??
Hi ich möchte in meinem Fall an portB3 eine LED an und ausschalten lassen. SBR und SBI gehen nicht, da wohl falsche Registerart. Geht es überhaupt?
-
Thread
IRMP - Infrared Multi Protocol Decoder
selbst. Ich verwende einen m168 mit 16MHz quarzgetaktet. Laut Protkoldetails im IRMP-Artikel setzen sich die Daten aus 13 Adress-Bits + 1 Repeat-Bit + 7 Daten-Bits + 1 unbekanntes Bit zusammen. Könnte es sein, dass es sich bei dem "unbekannten Bit" um die Parität handelt? Das würde zumindest
das Toggle-Bit (bei RC5) dafür auswertet, um das Repetition-Flag zu setzen, muss Dich als IRMP-Anwender nicht kümmern.
-
Thread
UART UBRR setzen ATMEGA
Hallo zusammen, ich hab mal wieder ne Frage. Da ich mich gerade mit UART beschäftige, habe ich mir das Tutorial "Der UART angesehen. Dabei ist mir ein Codeschnipsel aufgefallen den ich nicht kappiere. [c]UBRRH = UBRR_VAL >> 8; UBRRL = UBRR_VAL & 0xFF;[/c] Wenn ich das richtig verstanden habe und richtig gerechnet habe, müsste ein UBRR = 26 rauskommen. Die erste Zeile dieses Codes verstehe ich überhaupt nicht. In der zweiten Zeile werden alle Bits auf 1 gesetz, aber warum. Ich bin noch ein Anfänger in Sachen Mikrocontroller.
-
Thread
unterschiede beim setzen von registerinhalten
beispiel 1: c-quelltextausschnitt: DDRA = 0xff; //port a als ausgang PORTA = 0x04; //ein bit in port a auf 1 setzen beispiel 2: c-quelltextausschnitt: DDRA = 0xff; //port a als ausgang PORTA |0 (1 << 2); //ein bit in port a auf 1 setzen was ist der unterschied zwischen den
pille1990 wrote: > DDRA = 0xff; //port a als ausgang > PORTA = 0x04; //ein bit in port a auf 1 setzen Setzt PORTA.2=1 und alle anderen Bits von PORTA auf 0 > beispiel 2: > > DDRA = 0xff; //port a als ausgang > PORTA |= (1 << 2); //ein bit in port a auf 1 setzen
-
Thread
PIC32 TRIS Register setzen
Das Datenblatt weiss, wie nicht herausgefuehrte Bits zu setzen sind. Zu faul da mal nachzusehen?
derneue schrieb im Beitrag #5362100: > TRISA = 0b11111011111011 Ich würd die Bits, immer da wo sie gebraucht werden, einzeln setzen. Das macht das ganze besser lesbar. TRISAbits.TRISA0 = 1; Da bekommt man auch gleich einen Fehler, wenn bei dem Chip den man nutzt, das Bit nicht
-
Thread
AVR32UC3A Port setzen
? In einem anderen Quellcodebeispiel habe ich folgendes gefunden: > AVR32_GPIO.port[0].pmr0c = Bit(8) | Bit(7); //Function > AVR32_GPIO.port[0].pmr1c = Bit(8) | Bit(7); //0 = PWM. Im Datenblatt zum Eval-Board steht an Pin 19: PB19/PWM_PWM[0]/PM_GCLK[0]/EIM_SCAN[4]... allerdings passiert an
verodern. Beim start sind die meisten Register auf 0 gesetzt, und so musst du eigentlich nur die 1 setzen welche du brauchst. Wenn du doch ein Register hast welches du auf 0 setzen willst kannst du es mit einer oder und Invertierung machen. In dem Beispiel wird das 8bit auf 0 gesetzt. >AVR32_PWM.channel
-
Thread
einzelne bits lesen / setzen
abfragen mit einem Byte erschlagen. mein Problem ist nun, dass ich nicht wirklich weiss, wie ich ein Bit abfragen kann ohne grosse Rechenoperation und ohne die Bits zu schieben. Bits von null auf 1 unabhaengig von den anderen zu switchen funktioniert mit Byte^=0x0001, Byte^=0x0002, Byte^=0x0003 usw,
Danke fuer die Info hab die Bits manipuluiert! Setzen wie gehabt: "switch^=0x0008;" Lesen: "if ((switch & 0x0008) == 8 bzw 0)" nuja...doch einen ganzen KB hats in der HEX Datei erspart aber die Übersicht ist floeten gegangen
-
Thread
Turbo Pascal bits lesen/setzen
Hi ich versuche einzele bits auszulesen, bzw zu setzen. Was ich vorhabe: byte1:=byte1/8 byte2:=byte2/8 byte3:=byte3/64 ergebnissbyte.0:=byte1.0 ergebnissbyte.1:=byte1.1 ergebnissbyte.2:=byte1.2 ergebnissbyte.3:=byte1.0
DOOOOOOOCCCCCCHHHHHH! Ist doch kein Problem, kannst ja Funktionen erstellen: Procedure BitSet(var i: integer; b:integer); Begin i := i Or (1 Shl b); End; Procedure BitClear(VAR i:Integer; b:Integer); Begin i := i And (Not(1 Shl b)); End; (getestet, aber ohne Gewähr...)
-
Thread
CTC mit flag setzen, ohne interrupt
N'abend community, ich habe Atmel studio 7, arduino uno r3 board, atmega 328p mit 16mhz. Ich möchte ein 38khz signal mithilfe eines timers erstellen. Leider hat es nach vielem lesen und probieren geklappt. Nun verstehe ich die programmierung nicht. :D ich will durch das hochzählen bis 211 eine halbwelle erzeugen, pin toggeln und anschließend mit ausgeschaltetem pin hochzählen. Soweit klappt es. Nur verstehe ich nicht, warum die frequenz sich so stark ändert. Wenn ich ocr0a=210 eingebe, erhalte ich 18,94khz. bei 209 - garnichts. 208 - 7,692khz. 207 - 15,6khz 206 - 9,615khz Egal
-
Thread
Fuse Bits f. internen Quarz setzen?
Wie kann ich mit Bascom die Fuse Bits auf den internen Quarz umstellen? Habe das Gefühl, das der controller nicht läuft, weil der Quarz nicht schwingt. Testprogramm (Portpin High => Low => High im Sekundentakt) läuft auch nicht, auf dem LCD keine Ausgabe. Hardware habe ich jetzt mehrfach überprüft, da ist kein Fehler zu finden, habe aber leider auch kein Oszi hier um das mit dem Quarz zu prüfen, Prozessor ist ab i.O., lässt sich auf dem myAVR-Board problemlos programmieren!! Hätte gerne 4MHz internen Quarz, wie stelle ich das an? Habe in der Bascom-Hilfe leider nix gefunden, bei der Suche
-
Thread
AVR JTD setzen
Im Datenblatt des ATmeag324P auf Seite 274 steht. Das wenn ich das JTD Bit im MCUCR Register setzten will ich folgendes tuen. "The application software must write this bit to the desired value twice within four cycles to change its value." Nun versuch ich folgendes Optimierung ist natürlich ausgeschaltet. (Das JTD Bit ist Bit Nummer 7 im MCUSR Register deshalb 0x80) u8 temp; temp=MCUSR; temp=temp|0x80; MCUSR=temp; MCUSR=temp; MCUSR=temp; MCUSR=temp; Ich will damit erreichen dass ich die JTAG
-
Thread
Port, Pin auf 1 oder null setzen
bezeichnet hingegen einen einzelnen Portpin. Auf diesen kannst du nicht direkt zugreifen. Um ein Bit auf dem Port zu setzen kannst du z.B. folgende Anweisung verwenden: PORTA |= (1 << PA0); Dabei bleiben die restlichen Pins unberührt. Um ein Bit zu löschen nimmst du entsprechend PORTA &= ~(1 <<
ausschreiben, aber ich finde, daß es die Lesbarkeit etwas verbessert, vor allem wenn man mehr als ein Bit setzen will.)
-
Thread
globale variable durch interrupt routine setzen geht nicht
Tag, ich habe das Problem, dass ich wenn ich eine globale Variable durch eine Interrupt Routine setze dies nicht in einer if-Anweisung prüfen kann. Mein Programm läuft wie folgt ab: ich starte eine Funktion -start_measurement(); in dieser Funktion starte ich den ADC -ADCON1bits.ADON=1; der
So habs ausprobiert indem ich eine weitere globale Variable hinzugefügt hab. ADC_ended Diese setze ich in der ADC-ISR auf eins an den stellen wo ich auch measurement_done auf 0 oder 1 setze. in start_measurement() setze ich sie zu beginn auf 0 und überprüfe in der while-Schleife: while(ADCON1bits.ADON
-
Thread
STM32 CMSIS Register setzen problem
Markus M. schrieb im Beitrag #6570383: > #define SET_BIT(REG, BIT) ((REG) |= (BIT)) Da lauert für mich der Fehler, daß ich unter BIT eine Bit-Nummer verstehe, hier aber eine Bit-Maske erwartet wird. Für Setzen/Löschen eines Portpins eignet sich dieser
m.n. schrieb im Beitrag #6570507: > Markus M. schrieb im Beitrag #6570383: >> #define SET_BIT(REG, BIT) ((REG) |= (BIT)) > > Da lauert für mich der Fehler, daß ich unter BIT eine Bit-Nummer > verstehe, hier aber eine Bit-Maske erwartet wird. Für Setzen/Löschen > eines Portpins eignet
-
Thread
While(1) wird nach setzen des Timer-Interrupts nicht mehr aufgerufen
Hallo an alle! Ich besitze ein ATmega64A Board (Takt auf internen 8MHz RC-Oszillator gestellt), an dem ich ein paar Bus-Systeme auspobieren möchte. Gestern habe ich es das erste Mal in Betrieb genommen und jetzt ist ein äußerst merkwürdiger Fehler aufgetreten, vlt. findet ja eine von euch den Fehler... Ich habe folgenden code programmiert, der einen Timer-Interrupt auslöst (sicherheitshalber sind nicht verwendete Bits auf 0 gestetzt) und zugleich blinkt eine LED im 1s-Takt in der While(1)-Schleife: [c] #define F_CPU 8000000UL // define system clock with 8MHz #include <avr/io.h>
-
Thread
PORTA setzen und wieder zurücksetzten
Hallo zusammen, Ich habs jetzt hingekriegt des ich den µC (atmel Atmega128) programmieren kann . Jetzt wollt ich einfach mal zum test eine LED blinken lassen dafür hab ich einfach den PORTA = 0x01 gesetzt ne for Schleife reingemacht und wieder zurückgesetzt die LED blinkt zwar aber immer im gleichen Rythmus egal wie lang ich die for Schleife mach kann mir jemand sagen woran des liegt wäre super ! Vielen Dank schonmal ! Gruß Carsten
-
Thread
TOV0 in TIFR setzen...wie ?
Mal ein Beispiel: ldi ist 16 bit breit. 8 Bit davon werden schon mal für den zu ladenden Wert benötigt. Bei 32 Registern würde man für die Registernummer nochmals 5 Bit brauchen. Dann wären für den eigentlichen Befehl selbst nur noch 3 Bit übrig. Damit würde ldi aus dem gesamten "Befehlsraum" (16 bit = 65536 verschiedene mögliche Werte) alleine ein Achtel belegen. Und es gibt ja noch einige weitere Befehle mit Immediate (adi, subi, sbci
-
Thread
Port variabel setzen/löschen
Lösung um in AVR-Assembler folgendes zu machen: ldi r16,5 ;kann zwischen 0 und 7 sein (Port bit) ... sbi PORTB,r16 Mir ist schon klar, dass ich so etwas machen könnte: ldi r16,5 ;kann zwischen 0 und 7 sein (Port bit) ... cpi r16,5 brne weiter sbi PORTB,5 weiter: cpi r16,6
Hallo, ich glaube Manfred will ein einzelnes Bit setzen. Das zu setzende Bit steht in einer Variablen. ldi r16,0 ldi r17,5 sec Schleife: rol r16 dec r17 brne Schleife in r17, PORTB or r17. r16 out PORTB, r17 Gruss
-
Thread
Datenbreite eines Signals aus einer Generic setzen (VHDL)
red/softcore/mais2/rtl/device/i2c_master/I2C_master.vhd". clk_freq = 80000000 Found 1-bit register for signal <start_A_d1>. Found 3-bit register for signal <tickcounter>. Found 1-bit register for signal <tick_event>. Found 1-bit register for signal <SCL_falling>. Found 8-bit register for signal <SCL_counter>. Found 4-bit register for signal <bit_counter>. 80E6/10E6=8 0...7 Zählerwerte braucht 3 Signalleitungen Und die ISE kapiert es auch. Der Code sieht auch
-
Thread
bit_is_clear bit_is_set
Diese Makros sind aber nicht C-spezifisch und existieren soweit ich weiß in der avr-libc. Für setzen und löschen gibt es afaik keine Makros in der avr-libc. Da müsste man sich selber was schreiben: [c] #define set_bit(byte, bit) byte = byte | (1 << bit) #define clr_bit(byte, bit) byte = byte
#2843455: > ich wollte halt verstehen, warum bei clear (lösche) etwas auf AN geht > und bei set (setze) auf aus. The bit is clear. Zu deutsch: Das Bit ist gelöscht. The bit is set. Von to set, set, set. Das Bit ist gesetzt. Das mal zum Sprachverständnis. Warum ist das Bit Clear und die Lampe geht
-
Thread
fuse bist setzen?
hallo leute Ich habe eine Frage betreffend den fuse Bits, kann ich die erst beim Programm auf den mcu brennen einstellen oder kann ich die im C-Code aufrufen und setzen? Wenn ja wie ist der Befehl um die fuse Bits zu setzen? danke
Moin! Wenn es um AVRs geht, dann kannst du die Fuses nicht aus dem Programm heraus setzen. Das geht nur über den angesteckten Programmer. Aber ob du die Fuses setzt bevor oder nachdem du das Programm in das Flash geschrieben hast ist eigentlich egal. MfG
-
Thread
STM32 9.Bit in der UART setzen
Bit setzen für das erste zu sendende Byte und wie lese ich es wieder aus. Wie ich gelesen habe, ersetzt das 9te Bit dann das Parity Bit und ich kann entweder nur Parity oder nur das 9te Bit übertragen.
Seite 769 [code] Bits 8:0 DR[8:0]: Data value ... When transmitting with the parity enabled (PCE bit set to 1 in the USART_CR1 register), the value written in the MSB (bit 7 or bit 8 depending on the data length)
-
Thread
Bit in Vektor setzen / schieben
kann ich eine 1 an die Stelle n in einem Vektor schieben? Anders ausgedrückt: Ich will das n-te Bit in einem Vektor setzen. Ich wollte es mit sll machen, zweifle aber daran, dass das so klappt. Eine ander Möglichkeit wäre ein case, aber der ist hier doch furchtbar hässlch. MfG Mr.Green
Weil ich den Vektor vor lauter Bits nicht gesehen habe. Danke!
-
Thread
FUSE BITS ATMEGA richti setzen
Hallo Leute. Ich habe gerade einen Klemmer was das Setzen und Löschen der FUSE Bits in den ATMEGA's angeht. Wenn im Datenblatt steht z.B.: CKSEL3:0 1111 (1=unprogrammed, 0=programmed) muss ich dann im PONY PROG den Hacken setzen
articles/Pony-Prog_Tutorial : "Wo im Datenblatt eine 0 steht muss man in Ponyprog ein Häkchen setzen, bei einer 1 im Datenblatt das Häkchen löschen."
-
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
8051 UART 8bit und 9bit gleichzeitig
'high' setzen. dann koennte ich im sende interrupt den pin auf high setzen und mit einer nop schleife mind. fuer die laenge eines bits warten. somit haette ich dann also ein neuntes bit = stopbit. moeglicherweise
um das Senden von DMX und gleichzeitige empfangen von Midi Daten. Wenn ich den Uart jetzt in den 9bit Modus setze und dann was nach Sbuf schicke, so sendet der korrekt. Allerdings könnte ich ihn erst am Ende der Übertragung des Bytes wieder in 8bit zurück setzen, dort wird dann aber schon das nächste
-
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
Setzen der Fuse-Bits für den ATmega8535
Hallo, über das Setzen von Fuses ist hier und an anderer Stelle schon viel berichtet und diskutiert worden, dennoch finde ich mein Problem nicht gelöst: * mein ATMega8535 lässt sich problemlos mittels ISP über Ponyprog
die gewünschte 16 MHz-Frequenz, am XTAL1 anliegend. Da - wenn ich es richtig versteht - das Setzen der Fuse-Bits noch unter dem default eingestellten internen Oszillatortakt erfolgt, sollte der erst im Anschuß zu konnektierende Quarzoszillator ja eigentlich nicht das Problem darstellen, da Ponyprog
-
Thread
Bit in einem Byte setzen/rücksetzen (schnell und möglichst direkt) in c
[c] // Bit setzen: byte |= (1 << bit); // Bit löschen: byte &= ~(1 << bit); [/c]
danke für die Rückmeldung. Ich habe einen Grafikspeicher: uint8_t RAM[8]; nun möchte ich ein Bit darin setzen. void grafik_setze_pixel (uint8_t x, uint8_t y) { RAM[y&0x7]|=0x01<<(x&0x07); } Nun ist das ein variabler shift. Er wird doch jedes Mal in eine Schleife umgesetzt....oder?
-
Thread
ein Bit ansprechen
definieren, wenn zwei tasten gedrueckt sind alle LEDs an ;) Ach was is ASM schoen einfach, wenn es ums Bit schubsen geht ;) Gruss
den Taster dranne, der nach Masse geht ldi r16, 1 ;wenn Taster gedrückt, Temp.Reg auf 1 setzen out PortB, r16 ;auf LED-Port ausgeben rjmp Loop ;alles auf Anfang Wenn Du jetzt an PortD, Bit 0 den Taster drückst, müßte an PortB, Bit 0 die LED an bzw. aus gehen. Wenn Du den Taster
-
Thread
Suche ADC mit mindestens 24bit Auflösung (besser 32bit)
suchen soll? Gehe zum Distributor deines Vertrauens (z.B. Digikey) Lass dir alle ADCs anzeigen setze die Filtermaske "Anzahl der Bits" auf einen Wert von 24 bis 32 setze die Filtermaske "Datenschnittstelle" auf etwas, was SPI oder I2C beinhaltet. Wende die Filtermaske an. Bei mir werden dann
> Ich setze z.B. einen 24 Bit-ADC in einem > FMCW-Radar ein und erspare mir bzw. dem Kunden damit Aufwand für > Messbereichsumschaltungen. Die Genauigkeit ist dabei völlig irrelevant. Verwendest du die
-
Thread
STM32 Beste/Schönste Methode um Bits in Register zu setzen
Art nicht. Nehmen wir als einfaches Beispiel das USART Register CR1. Wenn ich nun das Bit 27 also das EOBIE Bit setzen will. Wie mache ich das am besten/leserlichsten? So? [c] USART1->CR1 = USART_CR1_EOBIE; [/c] Oder gibt es noch eine schönere Methode? Und was ist wenn ich ziemlich
Mir scheint, beim STM32 ist Bit-band mapping oder bit banding ziemlich uninteressant. * Für die GPIO-Ports ist das GPIOx_BSRR (bit set/reset Register) viel praktischer: man kann mit einem Befehl mehrere Bits setzen und löschen.
-
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
AVR-Bootloader mit Verschlüsselung
hatte vorher ne andere, die nicht funktioniert hat. >Man darf beim ersten Schreiben nicht die WDP-Bits anders setzen, dann >wirds ignoriert. Steht aber nirgends im Datenblatt. Hm das es ignoriert werden soll wusste ich auch nicht. In irgendeinem der Datenblätter steht aber das man die WDP Bits erst setzen sollte wenn man vorher das WDCE Bit einmalig gesetzt hat da ansonsten der WatchDog Prescaler beim Verkürzen der Zeitspanne schon vorzeitig auslössen könnte. >Den Rest des Codes habe ich noch nicht
-
Thread
4 Bit Addierer
Schon gesehen? https://answersexpress.com/how-build-your-own-discrete-4-bit-alu-43179
https://www.mikrocontroller.net/topic/63425?goto=new#504566 mein erster DDS mit vier 4-Bit-Volladdierern
-
Thread
C Makro, Bits aus verschiedenen Registern setzen
Transistoren die an 26 Pins eines AtMega2560 (Arduino Mega2560) angeschlossen sind. Jeweils einer ist fürs setzen und einer fürs Rücksetzen. Leider sind die Pins nicht schön der Reihe nach und auch über mehrere Ports verstreut. [c] /* [Arduino Pins connected to row transistors] SET ROW 0 = PA0 = 22
den passenden Port und das entsprechende Bit nimmt und setzt. Kann man sowas über ein PreProzessor Makro machen? Danke schon mal für eure Hilfe! Bouni
-
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
8-Bit Controller noch zeitgemäß?
Wir setzen je nach Projekt-Anforderungen 8-Bit 8051 z.B. EFM8 oder 32-Bit ARM z.B. LPC ein. Grade bei integriertem ADC DAC sind die 8051 noch immer besser wegen der robusteren Fertigung. Bei AVR gibt es aber
bit, 8 Data bits, n Stop bit 1: 1 Start bit, 9 Data bits, n Stop bit Note: The M bit must not be modified during a data transfer (both transmission and reception) [/code]
-
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
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
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
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
#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
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
CP/M auf ATmega88
verwenden? (Bekannte, gute Alternativen > setzen Z80 voraus) Ich denke diese Variante ist die flexibleste Lösung. > Hat überhaupt schon jemand die 8-Bit-Ram Variante nachgebaut, > und kann damit die RAM-Disk mal testen? Ich weiß noch nicht
der Uhr das 1Hz-Signal am Interupt-Ausgang (Pin 7) abgeschaltet (In der Routine "rtc_set", durch Setzen des "alarm enable" bits. Nach Powerup kann man das Signal aber auf jeden Fall messen (Pullup notwendig).
-
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
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?