-
Thread
ATMEGA128: Interruptflag löschen durch setzen?
Habe mich eben 5 Stunden von der Input capture unit des ATMEGA128 foppen lassen, bis ich im Datasheet folgende Zeilen las: [pre]"• Bit 5 – ICF1: Timer/Counter1, Input Capture Flag This flag is set when a capture event occurs on the ICP1 pin."[/pre] OK, dann wird also der Interrupt vom GESETZTEM Flag ausgelöst, sofern freigegeben. Weiter: [pre]"........ICF1 is automatically cleared when the Input Capture Interrupt vector is executed."[/pre] Durch Einsprung in den Int.Handler wird das Flag also automatisch gelöscht. OK, weiter: [pre]" Alternatively, ICF1 can be cleared by writing a
-
Thread
Ganz kurz - Die richtige Art ein Bit zu setzen
So ... Langsam blick ichs nimmer ... Welches ist denn nun die richtige Art ein Bit eines Ports zu setzen (am Beispiel eines atmega8). Sagen wir ich will an PORT D, das 0te Bit auf 1 setzen .. Wie mache ich das .. cbi und sbi ist ja veraltet (lt. Doku), und loop_until_bit_is_set
nicht, kann mir jemand erklären was der Unterschied ist: 1. TIMSK = _BV(TOIE0); //ich dachte ich setze das bit (=1)? 2. TIMSK |= _BV(TICIE1); //bit löschen (=0) ? 3. TIMSK &= _BV(TICIE1); //was passiert jetzt? 4. TIMSK = _BV(TOIE0); ist das gleiche wie TIMSK = (1<<TOIE0); ???
-
Thread
Wird ein Interrupt gespeichert?
Dieter F. schrieb im Beitrag #5182185: > ein Bit kann man nur setzen oder löschen - > ob mehrfach oder einfach spielt keine Rolle. Und genau das verstehst du nicht. Du mischst Aktion (= Bit setzen) mit Reaktion (= Bit ist gesetzt). Wenn du eine Tasse voll Wasser hast (= Bit ist gesetzt) kann du in diese Tasse eine weitere Tasse Wasser kippen (= Bit setzen). Die Tasse ist dann immer noch voller Wasser (= Bit ist immer noch gesetzt), das ändert aber nichts daran, dass du
-
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
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
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
STM32: Bit am Pin setzen mit AF?
Meine Frage: Kann man vielleicht auch mit dem Alternate Function Mode ein Bit einfach nur setzten? Die Zeit in der das Bit einfach nur gesetzt ist leider nicht immer dieselbe. -----...---__--__--__--__...
Dann Konfiguriere direkt auf PWM , also alternativen mode. Für den Pin zu setzen/löschen brauchst du dann nur PWM = 100 % oder gleich 0% setzen.
-
Thread
BLB-Bits zur laufzeit setzen (ATmega64)
Hallo Zusammen! was mache ich denn nun wieder falsch: der Aufruf #include <avr/io.h> #include <avr/ina90.h> #include <avr/interrupt.h> #include <avr/signal.h> #include <avr/pgmspace.h> #include <avr/boot.h> #include <avr/eeprom.h> char bits; bits =....; boot_lock_bits_set(bits); resultiert in wüsten Beschimpfungen des Compilers an meine Code: 'BLB01' undeclared (first use in this function) 'BLB02' undeclared (first use in this function) 'BLB11' undeclared (first use in this function) 'BLB12' undeclared (first use in this function) muss ich denn noch mehr AVR-Header
-
Thread
Atmega EEPROM auf nicht veränderbar setzen
, kannst Du die Kalibrierungsdaten in den Flash-Speicher schreiben und das entsprechende Lockbit setzen.
kannst Du die Kalibrierungsdaten in den > Flash-Speicher schreiben und das entsprechende Lockbit setzen. Da habe ich leider keine Platz mehr.
-
Thread
Nachfolger für ATMega gesucht
denen auch ein AVR. Der STM32 z.B. hat bei den GPIO: - zuschaltbare PullUp/Down Widerstände - Setz-/Clear Register um einzelne Bits zu ändern, ohne dass ein Read-Modify-Write nötig ist (-> Threadsicher / Interruptsicher) - Matrix um einige Peripherie-Funktion auf unterschiedliche GPIO Pins legen
zuschaltbare PullUp/Down Widerstände Haben andere auch, auch der AVR, wenn gleich nur Pull Up. > - Setz-/Clear Register um einzelne Bits zu ändern, ohne dass ein > Read-Modify-Write nötig ist (-> Threadsicher / Interruptsicher) Ist gut, aber historisch eher ein Workaround für den eher langsamen IO-Zugriff
-
Thread
Probleme mit mehr als 8 Bit rausschreiben
Hallo! Hab ein Problem mit meinem Mikrocontroller. Ich kann ganz normal 8 Bit rausschreiben über die SPI, hab das Ganze über einen Logikanalysator aufgenommen und ausgewertet. Bei dem Versuch, 16 Bit über die SPI rauszuschreiben, schreibt der Mikrocontroller trotzdem nur 8 Bit
Nachtrag: Zitat aus dem Datenblatt: "The AD5291/AD5292 shift register is 16 bits wide (see Figure 2). The 16-bit input word consists of two unused bits (set to 0), followed by four control bits, and 10 RDAC data bits."
-
Thread
24Bit RGB zu 16Bit wandeln
die ganze Zeit klar zu machen. Mal eine anderer Ansatz: Stellt Euch vor, das Ganze müsste auf 1 Bit pro Farbe gekürzt werden. Wie würdet Ihr runden? Oder doch einfach nur alle Werte ab 128 auf 1 setzen und darunter auf 0? Falk: Wo kommen die Punkte in 'dockland_16_bit_rounding.png' her?
Hier mal ein Converter der 24bit bmp in 16bit für AVR macht. Grüße Steffen
-
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
24 bit signed in einer 32bit variablen?
Setze einfach die höchsten 8 Bit ([31:24]) gleich Bit 23 (also dem MSB von [23:0]). Dank Zweierkomplement klappt das :) Grüße, Martin
also -8 als Zahl darstellen will [code] 0000 XXXX S0000000000000000001000 (X = egal, S = Sign Bit) Bit 23 = 1 bedeutet dann wohl negative Zahl. 0000 XXXX 10000000000000000001000 [/code] Martin B. schrieb im Beitrag #3076116: > Setze einfach die höchsten 8 Bit ([31:24]) gleich Bit 23 (also
-
Thread
12Bit DAC als 8Bit DAC verwenden
"Wenn ich die unteren 4 Bit nicht beschalten bzw. 0 oder 1 setze dann komme ich enteweder nicht auf den Maximalen ausgangswert oder nicht auf den minimalen Wert." Keine Angst, das passt schon... rechne Dir einfach mal aus was
"Wenn ich die unteren 4 Bit nicht beschalten bzw. 0 oder 1 setze dann komme ich enteweder nicht auf den Maximalen ausgangswert oder nicht auf den minimalen Wert." Du kommst schon auf den max. Spannungswert, nur der ist nicht
-
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
-
Thread
Was ist aus dem Thread der MeteoData geworden? Gesperrt
Ich vermute, dass C immer unterschiedlich ausfallen, da K immer anders ist. Wenn sich die 40 Bit wirklich aus C und E zusammen setzen und E durch eine Paritäts-Matrix gewonnen wird müßten sich die 40 Bit mindestens um 3 Bit unterscheiden (ein geändertes Bit in C und folglich 2 geänderte Bits in
Bit geschoben wird und ne 1 rausfällt wird nen XOR mit dem Generatorpolynom gemacht. Wenn ich nun das letzte Bit von 0 auf 1 setze und die CRC von dem Original Telegramm habe (letztes Bit 0), kann ich
-
Thread
Bit Manipulation
Hallo zusammen, ich bin C-Anfänger und möchte gerne geziehlt ein DDR-Register mit einer Variablen setzen oder löschen. Dabei dürfen bestimmte Bits im DDR-Register nicht verändert werden. zB. DDRA= 0x11100000b Variable A = 0x00001100b Ergebis: DDRA = 0x11101100b wenn Variable A nun 0x00000001
richtig ausgedrückt. doch, aber es sollte doch klar sein: - aktuellen Status auslesen - alle Bits, die verändert werden dürfen, auf Null setzen - mit deiner Variablen verodern
-
Thread
Bit von Port einlesen
wieso send? Ich denke send repräsentiert deinen Eingangsport, von dem du das Bit abgreifst? Wieso I_O auf 0 oder 1 setzen? > SCLK =1; //Sobald SCLK aug high ist liest der empfänger > IC > wait(); > SCLK = 0; > } Ein paar Dinge allgemeinerer Natur
falsche Routine kopiert:) ) for (i=1;i<=8;i++){ if (I_O) send |= (1<<7); //Bit 7 von send setzen else send &= ~(1<<7); //Bit 7 von send löschen send = send >>1; //rechts verschieben wait(); SCLK =1; wait(); SCLK =0; }
-
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
Benötige Hilfe beim programmieren eines Microkontrollers!
Bescheid was man machen muss. PDIP Gehäusepin 9 wäre PB.6 [c] DDRB |= (1<<DDB6); // PB6 Ausgang, Bit setzen PORTB |= (1<<PB6); // PB6 einschalten, Bit setzen PORTB &= ~(1<<PB6); // PB6 ausschalten, Bit löschen [/c] Eigentlich ganz simpel oder :-) Edit: Binärschreibweise würde ich mir
vordefiniert sind: Veit D. schrieb im Beitrag #5659105: > DDRB |= (1<<DDB6); // PB6 Ausgang, Bit setzen > PORTB |= (1<<PB6); // PB6 einschalten, Bit setzen > PORTB &= ~(1<<PB6); // PB6 ausschalten, Bit löschen Phil P. schrieb im Beitrag #5658952: > möchte nur klarstellen in welche >
-
Thread
ADSC im ADCSR setzen
einen atmega16 included und möchte ne Single A/D Conversation starten. Dazu möchte ich das ADSC-Bit im ADCSR (ADC Status Register) setzen. Laut Beispielen / anderen Threads wird das ADCSR wie ein I/O Port behandelt. Doch die Port-Befehle funktionieren nicht. Beispiel: SBR temp,ADSC OUT ADCSR,temp
-
Thread
CAN-Bibliothek für den at90CAN128 und das AVRStudio
alter Thread, habe aber dazu eine Frage: Kann ich mit dem AT90CAN128 irgendwie das Reservierte Bit im Controllfeld auf Dominant setzen ? Also: Bit: Request Bit: IDE BIT: Reserviert <<<---- das hier Bit: DL3 usw. Habe da einen AT90CAN128 mit der oberen Lib (Mischung
probier mal das Bit 0 oder 1 im CANIDT4 Register zu setzen
-
Thread
Pin setzen / rücksetzen
cleart den Pin eines Ports??? Und wie muss ich einen Port konfigurieren für folgende Befehle? bit_is_set(PORTC, PINC2); bit_is_clear(PORTC, PINC2); Und letzte Frage: Wenn ich ein paar Pins eines Ports für Output nutze und ein paar Pins als Input, wie muss ich diesen Konfigurieren? Z.B. verwende
diesen so ein: >outp(0xff,DDRC); Korrekt >und die einzelnen Pins kann ich folgendermaßen setzen: >led = 4; //z.B. 1 für die 1. LED oder 4 für die 3. LED >outp(~led, PORTC); mit diesem Befehl würdest du alle Pins an Port C auf high setzen, bis auf Pin 2, da ~led = ~4 = ~00000100 = 11111011
-
Thread
C; AVR: Eingänge und Ausgänge setzen
PORTD |= (0xFF) [/c] Ist dies korrekt? Bei Abfragen bekomme ich jedesmal Fehler, sprich, die Bits sind nicht so wie sie sein sollen.
zotti schrieb im Beitrag #1764577: > Bei Abfragen bekomme ich jedesmal Fehler, sprich, die Bits sind nicht so > wie sie sein sollen. Woran erkennst du das? Vielleicht liegt das Problem ja in der /Fehlererkennung/?
-
Thread
C - Bit eines Bytes beschreiben
); // Bit auf 1 setzen x &= ~( 1 << Bitnummer ); // Bit auf 0 setzen > Könnt Ihr mir sagen, wie es einfacher geht. Was gefällt dir daran nicht?
Bitnummern kann man sich auch definieren. Ungefähr so... [c] #define BITF (1<<15) ... ... #define BIT8 (1<<8) #define BIT7 (1<<7) #define BIT6 (1<<6) ... ... #define BIT0 (1<<0) [/c] ...sieht das dann beim MSP430 aus, weil der ja eine 16Bit-Maschine ist. Beispiel für Bit 3 und 4... setzen
-
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
Bootloader-lockbits im ATmega64 zur laufzeit setzen
werden müsste. jedenfalls kann man an die boot_lock_bits_set()-Funktion übergeben was man will, die Lockbits bleiben auf 1 (also ungesetzt) kleben, bzw fallen sogar ungewollt auf 1 zurück. Die LB1 und 2 Bits dagegen kann man schön verändern! habe
Und kann man die Bits hin- und zurück setzen ? Wenn man sie wieder rücksetzen kann, sind sie sinnlos. Die heißen ja deshalb Lockbits, weil sie den Inhalt gegen fremde Augen sperren (=lock) sollen. Ein Rücksetzen außer
-
Thread
Mini-Farbdisplay (+mehr) für 1 Euro
Funktionen besser als eine mit zusätzlichem > Parameter, wie im Datenblatt? Es ändert sich ja nur ein Bit.. Ich würde sagen es ist egal. Die Dritte Möglichkeit wäre A0 jeweils vor dem Aufruf der write Funktion direkt passen zu setzen. > Können /RESET und RD vom Display fest verdrahtet werden oder
meinen Kollegen ob ich den hier posten darf. Nur so zur Info, der Code läuft zurzeit auf einer 32bit mcu. Ist aber kein Problem auch auf einem 8bit hinzubekommen. Zum ätzen, die Polygone waren eigentlich nicht aktive, doch ich hatte Probleme mit dem setzen der Masse Fläche, und dann hat der mir
-
Thread
Zusammenfügen von 2 mal 8 bit zu einem 16 bit Wert funktioniert nicht richtig
yupper=255; //ylower=255; y=((int16_t)yupper<<8)|ylower; // Aus 2 8bit ein 16bit ocr[1]=y; Die "Symptome" sehen so aus: -Setze ich yupper und oder ylower selber wie im Kommentar oben als Beispiel mit jeweils 255 sieht das auf dem Oszi so aus wie
interessant: 2.41.2 Overlay-Technik > ... Seite 124f Wenn das wirklich meint: Byte-Komponenten setzen und lesen einer 16-Bit Variablen aus der Union, dann entsorg das Buch zum Altpapier. Der C-Standard sichert nur zu, die zuletzt geschriebene Komponente einer Union auch wieder auszulesen. Alle anderen
-
Thread
Atmel ist unter "Profis" nicht gerade beliebt - Warum?
Die Automobilindustrie setz fast ausschließlich auf HC12/Super12 (z.B. Body-Computer), die Einspritzung MPC5xx oder TriCore 32-Bit, ABS/ESP hat oft zweimal ARM7-Core, Battery-Sensor ARM7-Clone, NEC850 (Body-Computer, Servolenkung
Was mich an den AVRs etwas stört ist die Tatsache, daß man die Fuse-Bits explizit setzen muß. Beim PIC ist das Teil des Hex-Files und dadurch deutlich einfacher handhabbar. Allerdings hat hier jemand PonyPorg Script erwähnt. Vielleicht sollte ich mal herausfinden, ob man
-
Thread
Definition von 2 Bit in einem 8bit Register
Zunächst ein Makro um aus einem gegebenem Bit die entsprechende Zahl zu machen: #define BIT(x) (1<<x) Nun kann man ein Bit SETZEN: a |= BIT(y); // setzt das Bit Nr y in der Variable a und natürlich auch löschen: a &= ~BIT(y);
setzen dieser Bits ein paar Bit-Operationen notwendig sind, die einem bei einem Bitfeld der Compiler 'under the hood' macht.
-
Thread
IAR Compiler , Bit in Register setzen (ST ARM)
probier mal, statt USART1EN die echte bit-Position(0..7)? in dem Register, wo es sich befinden sollte, einzutragen. Wenn es dann geht, kennt der Compiler den Namen für die bit-Position nicht. Habe aber von ARMs weiter keine Ahnung.
Poject -> Options -> General Options -> System -> Häkchen bei "Enable bit definitions in I/O-Include files"
-
Thread
Fuse und Lock Bits
noch etwas durcheinander (Fuses "setzen", etc.). Ich zitiere mal den entsprechenden PonyProg-Dialog (trotz den komischen Englischs sicherlich verständlich): [x] Checked items means programmed (bit = 0) [ ] UnChecked items means unprogrammed (bit = 1)
-
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
bidirektionale RS232 Funkbrücke mit RFM12
Benedikt K. wrote: > Bei Integration stehen auch nur die Bits als 1 oder 0 im Datenblatt. Hmm - das riecht nach Bugs im Chip oder undokumentierten Features. Einfach mal anders setzen und schauen, was passiert? ;) Ich frage mich auch die ganze Zeit schon,
Bit Setzen Befehl übersetzt.
-
Thread
Nur 1 Bit mit SPI
When the pin is forced by the SPI to be an input, the pull-up can still be controlled by the PORTB5 bit. So könnte es also ohne Abschaltung der SPI gehen: Ich nehme mal an, das SCK im Ruhezustand low ist: - PortB Bit 5 setzen // Pull Up setzen - DDRB Bit 5 rücksetzen // damit wird der PullUp
pin is forced > by the SPI to be an input, the pull-up can still be controlled by the > PORTB5 bit. > > So könnte es also ohne Abschaltung der SPI gehen: > > Ich nehme mal an, das SCK im Ruhezustand low ist: > - PortB Bit 5 setzen // Pull Up setzen > - DDRB Bit 5 rücksetzen // damit wird
-
Thread
Buch AVR von Günter Schmitt durcharbeiten
Dieter F. schrieb im Beitrag #4953598: > Mit Vorzeichen kann ein Bit nur -128 bis +127 darstellen. -200 gibt es > nicht (in einem Bit). ein Bit? Meinst Du nicht eher ein Byte?
Hi, falls das des Rätsels Lösung ist: Zitat: "...die Pseudobefehle cbr und sbr löschen bzw. setzen Bits in einem Arbeitsregister. Sie adressieren keine Bitpositionen wie sbi und cbi, sondern enthalten konstante Masken., die mit einer 1 die zu verändernde Bitposition angeben..." "...Bitoperationen
-
Thread
avrdude fuses setzen mit usbasp
Hallo, ich habe bisher immer ponyprog genutzt und habe nun einen usbasp. Funktioniert alles Prima jedoch habe ich probleme mit den fusebits. Zunächst mal, kann ich die low und high bits wie folgt schreiben: avrdude -c PROGRAMMER -P PORT -p PART -U lfuse:w:0xFF:m -U hfuse:w:0xD9:m Da ich einen mega168 nutze, gibt es aber noch die extended fuses und noch die lock bits. Genau diese müsste ich nun beschreiben. Kann mir vielleicht jemand sagen ob es mit usb asp geht und wie es geht? Achja, vielleicht weiß ja auch noch jemand, warum die lockbits bei der palmavr website nicht angezeigt
-
Thread
Display (HD4478099) zeigt nur Kästchen
diesen Init-Code gebastelt: WaitMs(20); // Warte erstmal 20 ms PORTC = 0b00001101; // Setze ENABLE, DB4 und DB5 auf 1 (8-Bit Modus) WaitMs(10); // Warte 10 ms PORTC = 0b00001101; // Setze ENABLE, DB4 und DB5 auf 1 (8-Bit Modus) WaitMs(5); // Warte 5 ms PORTC = 0b00001101; // Setze ENABLE, DB4 und DB5 auf 1 (8-Bit Modus) WaitMs(5); // Warte 5 ms PORTC = 0b00001001; // Setze ENABLE, DB4 und DB5 auf 1 (4-Bit Modus) Ist der denn so weit in Ordnung? Mein Problem
-
Thread
AVR Ports setzen Gesperrt
einzelne Bits setzen und rücksetzen? Ich arbeite mit AVR Studio 4.14 und WINAVR. Gruß Matze
Also diese Art einen Pin zu setzen ist mir unter WinAVR eigentlich gänzlich unbekannt. Normal funktionierts so: [c]PORTB |= (1 << PB6); // Setzen PORTB &= ~(1 << PB6); // Rücksetzen[/c] MfG Marius
-
Thread
PIC12F675 brauche Hilfe
GPIO.B2 = 1; //Ausgang auf High Time=HighTime; //Timer auf High Pulslänge setzen TMR1H=(65536-Time)/256; //Highbyte setzen TMR1L=(65536-Time)%256; //Lowbyte setzen T1IF_bit=0; //Timer1 Interrupt Flag löschen Ausgang=1; //
=(65536-Time)/256; //Highbyte setzen TMR1L=(65536-Time)%256; //Lowbyte setzen T1IF_bit=0; //Timer1 interrupt Flag löschen Ausgang=0; //Status auf 0 } }
-
Thread
Nur bestimmte Bits verändern?
einmal musst du das Portbit auf 0 setzen und ein anderes mal musst du es auf 1 setzen, je nachdem welchen Wert das korrespondierende Bit in der Variablen hat. Wenn du dich dann zu dieser Erkentnis durchgerungen hast, was hindert dich an if( Bit in Variable == 0 ) lösche das Portbit else setze das Portbit und für das andere Bit in der Variablen demenstprechend gleich. Das ist die einfache kanonische Variante. Da bei dir
-
Thread
C++ auf einem MC, wie geht das?
bitte eine Antwort auf die Frage des TO. Nur am Rande: er hatte nicht gefragt, ob und wie man ein Bit in Assembler setzen kann.
VM leben. Ein Embedded Programierer würde dafür eher pro Port ein Byte reservieren und dort ein Bit für jeden belegten Pin setzen.
-
Thread
Bit shift - bei 10bit?
down counter wärs kein Problem, oder du könntest die anschlüsse extern multiplexen(z.B. mit nem 16-Bit multiplexer), dann bräuchtest du nur noch die 4-bits anzulegen. Solch ein Up/down counter wäre z.B. cmos ic 4510 ..Und ein 10-Bit Multiplexer(4-eingänge, 10 ausgänge, also genau richtig)z.B.
die Befehle ror und rol. Beispiel: clc ; Carry-Flag auf 0 setzen ror highbyte ; links wird das Carry (0) reingeschoben, ; das rausgefallene Bit wird im Carry gespeichert ror lowbyte ; das Carry wird links reingeschoben, das
-
Thread
Wie 8-Bit Zähler sicher auslesen?
CummingsSNUG2008Boston_CDC.pdf Andere Variante: Graycode-Counter nehmen. Da ändert sich pro Zählschritt nur ein Bit. Im Zweifelsfall hast du einen Fehler von +-1 Bit.
und den Zählerstand des Counters im Mikrocontroller kontinuierlich ausgeben. > Man könnte die 8 Bit 256 mal lesen Der 74HC393 ist ein dualer 4-Bit Counter, kein 8-Bit Counter.
-
Thread
PPS5330 Labor-Netzteil hack
Habe gerade gesehen das man Usoll auch auf 16Bit setzen kann. Das spart ein wenig Prozessor Ressourcen ;)
SOFT_SPI_MOSI_DDR |=(1<<SOFT_SPI_MOSI_BIT); SOFT_SPI_CLK_DDR |=(1<<SOFT_SPI_CLK_BIT); // MOSI und CLK auf HIGH setzen SOFT_SPI_MOSI_PORT|=(1<<SOFT_SPI_MOSI_BIT); SOFT_SPI_CLK_PORT |=(1<<SOFT_SPI_CLK_BIT); // MISO
-
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
XAPP380 / Dynamische Bits zusammen setzen
Hallo, ich würde gerne 16 Eingangssignale freiwählbar in ein 8 Bit Register schreiben. Nach einigem suchen hab ich die XAPP380 von Xilinx gefunden, aber es ist ein bisschen zu aufgebläht. Die Selektierten Bits müssten auch von LSB nach MSB sortiert werden. Hier ein Beispiel Eingang: Bit 0 = 1 Bit 1 = 0 Bit 2 = 1 Bit 3 = 1 Bit 4 = 1 Bit 5 = 0 Bit 6 = 1 Bit 7 = 1 Bit 8 = 1 Bit 9 = 0 Bit 10 = 1 Bit 11 = 1 Bit 12 = 1 Bit 13 = 0 Bit 14 = 1 Bit 15 = 1 Selektierregister : Bit 11, Bit 13, Bit 14, Bit 15 werden ausgewählt
-
Thread
Einzelne Bits der ATtiny45 Register mit BASCOM setzen
angenehmen Spielraum von 21kHz bis 28kHz. Durchgerechnet ist auch schon alles, ich muss nur noch die Bits in den entsprechenden Registern setzen. Jetzt habe ich gelesen, dass in Bascom nicht mehr erforderlich ist, als eine Anweisung wie: [code]WGM02 = 0[/code] Braucht der Compiler tatsächlich keine Unterweisung
auch fehleranfällig, mach's besser so: [code]TCCR0A = Bits(COM0A1, COM0A0, COM0B1, COM0B0, WGM01, WGM00)[/code] Ob Du die richtigen Bits für die gewünschte Funktion setzt, hab' ich dabei nicht überprüft.