-
Thread
PIC16F887 auf MC2V0 - I2C
*jetzt* nötig: Wenn du SDA auf '1' setzt, liest der PIC die Pegel am gesamten Port ein, ändert das bit und schreibt das gesamte Byte wieder zurück ins PORTx Register. Bei den Pegeln, liest er SCL als '1' und schreibt also wider 1 zurück. Und wenn er SCL auf '1' setzen sollte setzt er SDA damit auch auf
Ok. wow danke für den Tipp! Das hätte ich nicht selber gefunden. Werd mich gleich mal dran setzen. Der schlimmste fall wäre das ich immer nur ein Latch durchschalten darf. Das würde bedeuten ich muss vor jedem Bit, schauen, ob ich Einlesen oder Ausgeben will und die Latches K8/K9 entsprechen
-
Thread
Atmega328P Frequenzerzeugung
der Pin auf Ausgang konfiguriert ist, kann man in einem Taktzyklus den Pin toggeln, in dem man das Bit für den Input Port setzt. Jedes erneute setzen des Bits toggelt den Pin. Genaueres kann man im Manual nachlesen.
Veit D. schrieb im Beitrag #6488793: > den Pin toggeln, in dem man das Bit für den Input Port setzt. Jedes > erneute setzen des Bits toggelt den Pin. Genaueres kann man im Manual > nachlesen. Ach... da war was. Aber das Datenblatt spricht vom PINx-Register: [code]However
-
Thread
ATTiny 13 Soil Moisture Sensor ADC Lese Problem
wo es dann wohl funktionierte. Deshalb war mein Vorschlag die Refernz beim T13 auch auf Vcc zu setzen: clear REFS0 bit Um in der Routine nun den richtigen channel zu setzen müssen die MUX0:1 0 sein um den Wert channel richtig zu odern. Und wenn man nur die beiden MUX-Bits setzen will, dann geht
wo es dann wohl funktionierte. Deshalb war mein > Vorschlag die Refernz beim T13 auch auf Vcc zu setzen: clear REFS0 bit > > Um in der Routine nun den richtigen channel zu setzen müssen > die MUX0:1 0 sein um den Wert channel richtig zu odern. > Und wenn man nur die beiden MUX-Bits setzen will,
-
Thread
SPI zwischen zwei AtMega8
gesetzt wird. Erst wenn SS auf LOW gezogen ist kann die Übertragung starten. CPOL und CPHA sind Bits die ich setzen muss um die o.g. Modus einzustellen. Soweit ich das verstanden habe sieht es folgendermaßen aus. CPOL = 0 , CPHA = 0 : Bit wird bei steigender Taktflanke übertragen CPOL = 0 , CPHA
Daten (SPDR = '1'; while ( !(SPSR & (1<<SPIF)) ) ;) > Master: Warte, bis sicher ist, dass das letzte Bit beim Slave angekommen > ist > Master: Setze SS auf high MfG, Arno
-
Thread
Compare Match Interrupt Pins high und low setzen
Ja, so in etwa. Wenn du allerdings die COM bits löscht, dann wird wieder das Port register dominant. Es gibt mehrere Lösungen für das Problem: Wenn du die COM bits löscht, dann musst du das Port Register auf den gewünschten Wert setzen. Möglichst
mehr auftreten. Wenn es dich nicht stört, dass weitere OCs auftreten du aber möchtest, dass das bit dabei gesetzt bleibt kannst du auch einfach die COM bits so konfigurieren, dass sie das bit immer weiter setzen. Dann findet auch keine weitere Änderung mehr statt. Thor
-
Thread
Labornetzgerät - Fragen zum Schaltplan
wenn sie nicht galvanisch verbunden sind. Man müsste externe D/A-A/D Wandler auf jedes Netzteil setzen (was sich, weil 10 bit eher nicht ausreichen und mehr am uC eher gestört sind, sondern man 12 bit haben will, sowieso anbietet), und z.B. seriell mit Optokopplern verbinden, und hat dann gleich den
insofern ist das kein Zusatzaufwand. > Man müsste externe D/A-A/D Wandler auf jedes Netzteil setzen Oder je Kanal einen eigenen µC verwenden. Das sind ja nun wirklich nicht solche Wertgegenstände, als dass man da sparen müsste. > (was sich, weil 10 bit eher nicht ausreichen Wieso?
-
Thread
PWM - Breite von 0
Kommentar steht. Der Hintergrund: "TF2" ist *kein* Byte, dem du einen Wert zuweisen kannst. Es ist ein Bit im Register "IRCON", das du in diesem Falle rücksetzen mußt. Und das passiert mit IRCON &= ~(1<<TF2); Wenn du ein Bit in einem Register setzen willst, machst du das zum Beispiel mit T2CON |= (1<<
O-Pin für eine Blink-LED. Die Software konnte ihn immerhin direkt setzen oder löschen. Das ist aber nur ein einziger Pin am ganzen Prozessor. Der 8048 war der erste 8-bit Single-Chip-µC der Welt. Ich baute vor ein paar Jahren auch mal einen auf Lochraster auf, einfach aus
-
Thread
Sinus Referenz 100 kHz
einmal getestet und da war das Rauschen recht hoch, weiß aber nix genaues mehr. Aber wäre denn ein 14 Bit DAC überhaupt geeignet einen 16 Bit ADC zu testen?
Gatter. Einen schnellen Zähler gibt es, ich könnte also auf < 4 prüfen indem ich prüfe ob die höheren Bits alle 0 sind. Auf größer 4 zu prüfen wird etwas schwieriger. Daher dachte ich für das SCK_Enable eben an ein RS FF. Das setze ich wenn der Zähler den Wert 5 hat und resette es wenn der Zähler zurückgesetzt
-
Thread
DOGM162 Display funktioniert nur sporadisch
togglen hier soll kann ich dir auch nicht sagen, bei SPI wird die Übertragung nach den 8 übertragenen Bits abgeschlossen bzw. mit CS=H > void Disp_Command(int Data) > { > PORT_CSB &= ~(1 << PIN_CSB); > _delay_us(50); // warte auf Display > > // Command Mode vorbeireiten; setze RS low
durcheinander kommen könnte, wird da ein Bit verschluckt ist alles danach nur noch Bit-Brei.
-
Thread
ZX81 plus38 Clone
meines Computers, den ich damals mit Hilfe des ZX81 entwickelt habe und auf der noch die original 1kx4Bit RAMS meines ZX81 sitzen, da ich dort statt dessen ein 2kx8Bit RAM eingebaut hatte.
bits were the same. [/code]
-
Thread
Externer Oscillator / Configuration Bits
dsPIC33 wird an PIN 63 ein externer Quarz angeschlossen. Meine Frage ist: Muss ich das entsprechende Bit im TRIS Register auf Input setzen ? Im Datenblatt habe ich nur was von den OSCON bits gelesen. Vielen dank.
FOSCbits.POSCMD=0b01;//XT Crystal Nur komisch dass ich hier laut Datenblatt XT setzen muss für meine 8MHz, und bei den config bits wie ganz oben musste ich HS setzen. Ist das alles? Bzw erkennt der Compiler die 2 Register überhaupt nicht. Obwohl ich die entsprechende Datei vom PIC
-
Thread
Shift Register richtig auf Null setzen
Hi, ich möchte 20 MOSFETs über 3 74HC595 Shift Register schalten und mache mir gerade Gedanken über eine "saubere" Initialisierung. Bisher habe ich noch nicht viel mit den Teilen gemacht und wollte sichergehen, dass die mir später nicht willkürlich schalten. Bisher sind mir zwei mögliche Lösungen eingefallen: 1) Shift und Storage Clock gleichzeitig OUTPUT_ENABLE (OE) durch einen 10k Pullup deaktivieren. D.h. erst wenn durch den µc die Line auf LOW gesetzt wird, schalten die Shift Register durch. Davor sind die Ausgänge hochohmig. Problem ist nur, dass OE (soweit ich das gesehen habe) nur
-
Thread
USART RS485 Daten empfangen über ISR
Analyzer noch Oszilloskop? Es funktioniert jetzt, ich musste im "USART0.CTRLA" schon das richtige Bit setzen: [c] USART0.CTRLA = (0 << USART_RXCIE_bp) /* Receive Complete Interrupt */ | (0 << USART_TXCIE_bp) /* Transmit Complete Interrupt */ | (0 << USART_DREIE_bp)
immer noch 100x besser als gar keins zu haben. > ich musste im "USART0.CTRLA" schon das richtig Bit setzen: > USART0.CTRLA = ... > USART0.CTRLA |= ((0 << 0) | (1 << 1)); Wo ist da jetzt der Unterschied zu: > USART0.CTRLA = ... > | USART_RS485_EXT_gc; Welchen Wert hat USART_RS485
-
Thread
DS18B20 Temperaturberechnung
Mal eine dumme Frage zur Auflösung: Wenn ich z.B. nur 10 statt 12 bit Auflösung haben will, sind laut Datenblatt bit 1 und 0 undefined. Bedeutet das, daß ich dann bei der Temperaturberechnung diese bits vorher auf 0 setzen muß? Oder den gelesenen Wert um 2 nach rechts
trotzdem durch 16 teile, werte ich doch diese beiden bits mit aus oder nicht? Ich hätte bzw. habe bis jetzt auch gedacht, daß ich die undefinerten bits nach rechts rausshifte und den Teiler dann entsprechend der Wertigkeit setze: 12 bit: Teilen durch 16
-
Thread
einzene Bits prüfen ( if (bit) {.} )
weil C so hardwarenah ist, ist das so. Bei weitem nicht alle Mikroprozessoren haben Befehle zum Setzen, Löschen und Abfragen einzelner Bits per Bitnummer. Aber wohl jeder Prozessor der letzten 40 Jahre hat Befehle für bitweise Logikverknüpfungen und Schiebeoperationen. Deswegen hat man sich dafür
bitweisen Logikverknüpfungen sind wesentlich flexibler als Einzelbitbefehle, da man damit auch mehrere Bits gleichzeitig setzen, löschen oder abfragen kann. Und beliebig viele Operatoren konnten halt auch nicht implementiert werden, da dabei irgendwann die Sonderzeichen auf der Tastatur ausgehen ;-)
-
Thread
Alternative Firmware für Sparmatic Zero Heizungsthermostat
. Die Entwickler der Sparmatic-Geräte waren nicht so blauäugig, die LockBits nicht zu setzen. Der verwendete Controller ist kein M128 sondern ein M169PA. Da ist nichts pinkompatibel, zumal der M128 gar keinen LCD-Controller enthält.
im Beitrag #1922843: > Die Entwickler der Sparmatic-Geräte waren nicht so blauäugig, die > LockBits nicht zu setzen. Der verwendete Controller ist kein M128 > sondern ein M169PA. Da ist nichts pinkompatibel, zumal der M128 gar > keinen LCD-Controller enthält. Jupp, dass das nicht der gleiche
-
Thread
TDA 1543 und Atmega8
Übertragung nötig: CloCK auf HI WS auf LO ; Dummy links, nur ein Bit nötig: DATA-Pin setzen (oder nicht, egal) WS auf HI Clock auf LO Clock auf HI ; Daten rechts: DATA-PIN setzen (Bit 7) Clock auf LO Clock auf HI DATA-PIN setzen (Bit 6) Clock auf LO Clock auf HI ;usw. bis Bit 1: DATA-PIN setzen (Bit 1) Clock auf LO Clock auf HI ;Achtung, Extrawurst fürs unterste Bit: WS auf LO DATA-PIN setzen (Bit 0) Clock auf LO Clock auf HI ;Fertig
-
Thread
INT2 beide Flanken nutzen (ATmega8515 PE0)
; Setzen Bit out GIFR, akku oder sbi GIFR, INTF2 ; Setzen Bit Aber wie ich schon berichtet habe klappt das zwar beim AD-Wandler im ATmega16, nicht aber hier. Zu deiner
entsprechende Bitnamen bzw. Registername zu ersetzen, akku ist ein Hilfsregister aus {R16,...,R31} a) Setzen ; Setzen von Bit [NAME] in [REGISTER] ; alle anderen Bits bleiben unverändert in akku, [REGISTER] ; [REGISTER] lesen ori akku, (1<<[NAME]) ; Setzen Bit [
-
Thread
AVR, virtual port, power save
leo schrieb im Beitrag #6297690: > Und beim AVR-Assembler ein Opcode zum Bit-Setzen. Nö, der ist "SBI", bei "SBIT" meckert der Assembler.
Peter D. schrieb im Beitrag #6297701: > leo schrieb: >> Und beim AVR-Assembler ein Opcode zum Bit-Setzen. > > Nö, der ist "SBI", bei "SBIT" meckert der Assembler. Danke, ja - verwirrend ;-) leo
-
Thread
ATtiny Watchdog
gehört ein |= hin, ansonsten überschreibt man das Register komplett, und setzt nicht nur das eine Bit, was man setzen möchte. Ebenso sind die Klammern in Zeile 2 ohne Funktion. Das Tutorial ist doof.
gehört ein |= hin, ansonsten überschreibt man das > Register komplett, und setzt nicht nur das eine Bit, was man setzen > möchte. Ist in dem Fall aber völlig egal. WDCE muss lediglich gesetzt sein, wenn man die WDPx-Bits setzen muss und das ist da der Fall. Dass man dann zeitgleich WDCE löscht ist
-
Thread
80 Bit x 80 Bit auf dem AVR multiplizieren
Hi, aus einem kleinen Projekt die Problemstellung: 80 Bit mal 80 Bit = 80 Bit, auf einem AVR (klar, gehen unter Umständen Bits verloren, weil das Ergebnis nur 80 Bit breit ist). Meine Ansätze wären da gewesen: - Addierschleife -- Scherz, haha. - Schieben
80 Bit 16 Bit 81 Bit Gruß, Magnetus
-
Thread
Mit STEP 7 Brötchen verdienen
Ausserdem sind 800 Bits/us auch 50 Worte(16bits)/us, was heisst, dass bei einem 16-bit-Parallelbus dazu eine Frequenz von (rel. unproblematischen) 50 MHz nötig wären, bei 32-bit-Parallelbus wären's nur 25MHz. Auch 8-bit-Parallelbus
>ei einem 16-bit-Parallelbus dazu eine Frequenz von (rel. >unproblematischen) 50 MHz nötig wären, bei 32-bit-Parallelbus wären's >nur 25MHz. Auch 8-bit-Parallelbus mit 100MHz könnte man realisieren Tja, nur leider
-
Thread
STM32F103 GPIO
vor um Größenordnungen einfacher, um gerade mal einen Pin zu setzen. > ganz ohne Bank-Umschaltung (wie bei AVR's mit > 64 KiB > Speicher), Wer braucht schon soviel bei typischen 8-Bit Programmen... Und ja, bei größerem Speicherbedarf ist 32Bit ARM im Vorteil
GPIO-Einheit per Default ab Reset schon eingeschaltet, man muss nur noch Datenrichtung auf Ausgang setzen (ein Register, ein Bit pro Pin, genau wie AVR) und schon kann man anfangen zu blinken.
-
Thread
DMX steuerbaren RGB LED PAR oder Pinnspot selber bauen
Dominik S. schrieb im Beitrag #2750772: > Wenn das mit dern 12 PWM Ausgängen stimmt 8x 12-Bit (PSC) 2x 16-Bit (Timer 1) 2x 8-Bit (Timer 0), davon einer TxD
output pin for the PWM mode timer function." > Und im Kapitel "16-bit Timer/Counter1" lese ich "True 16-bit Design > (i.e., Allows 16-bit PWM)". Soweit ich das richtig mitbekommen habe, hat der ATtiny2313 aber nicht 4 16-Bit PWM Kanäle. Dem Datenblatt nach würde
-
Thread
Transistortester mit AVR Gesperrt
lcd-routines.h: [c] #define LCD_RS PD4 #define LCD_EN1 PD5 [/c] Und zum Invertieren der Bit-Reihenfolge musst du diesen Codeabschnitt in lcd-routines.c ändern (Zeile 28-39): [c] //Eigentliche LCD-Zugriffs-Funktion; 4-Bit-Modus void lcd_send(unsigned char data) { // oberes Nibble setzen
) - D6(13) PD2(4) - D5(12) PD3(5) - D4(11) My code: //Eigentliche LCD-Zugriffs-Funktion; 4-Bit-Modus void lcd_send(unsigned char data) { unsigned char swap[16] = {0x00,0x08,0x04,0x0C,0x02,0x0A,0x06,0x0E,0x01,0x09,0x05,0x0D,0x03,0x0B,0x07,0x0F}; // oberes Nibble setzen LCD_PORT = (LCD_PORT
-
Thread
STM32G474, bit banding
Was genau schreibst Du zum Umschalten des Pins in die Adresse 0x420082B0? Das sollte 1 bzw 0 zum Setzen/Löschen des entsprechenden Bits sein. Das hier kennst Du vermutlich: https://www.mikrocontroller.net/articles/ARM_Bitbanding
auch ganze Ports atomar manipulieren (ANL, ORL, XRL, INC, DEC). Der AVR kann dagegen nur einzelne Bits atomar setzen oder löschen.
-
Thread
LCD Busy Flag Abfrage im 8 Bit Modus - die zweite
Schleife verlassen wenn BF = 0 ist hast du BF mit 7 definiert, das Busy Flag ist jedoch auf Bit 7, und dieser Wert ist als Bit-Maske oder Wert 0x80 und nicht 7.
PORTD, RS sbi PORTD, RW br1: sbi PORTB, E nop in R16,PIND ;load the upper 4 bits cbi PORTB, E nop sbi PORTB, E nop ;no need to load the lower 4 bits cbi PORTB, E bst R16,7 ;load bit7 into T flag brts br1 ;wait until Busy flag is high
-
Thread
Mikrocontroller Einstieg
ging ja schnell. Es ist heute einigermassen trivial einen Controller auf eine Leiterplatte zu setzen. Kennst du eigentlich den Unterschied zwischen C++, C, (hier weitere Hochsprachen einsetzen) und Assembler? Was laesst dich also glauben, dass C++ das Seligmachende ist? Gerade die einfachen Bit
(eines Treiber ICs, eines Displays,...) man gezielt "nachmessen" oder ein bestimmtes Bit setzen möchte... Erst später wenn es um das eigentliche "Produkt" geht erkennt man die Vorteile solcher fertigen Softwaremodule, den verstecken von Details usw. Falls die jetzt schon verwirrt
-
Thread
Hilfe bei PIC Programmierung
ergeben, das funktioniert bei mir leider nicht, ich weis nicht was ich da falsch mache? Auch wenn ich Bit 0 und 1 setze ( interne/externe Tacktung ) komme ich nicht auf diesen Wert !?
Ich schätze, es ist allemal sicherer, in das Manual zum betreffenden PIC zu schauen und danach die Bits zu setzen, als herumzuorakeln, ob ein gesetztes Häkchen in einem Menü nun Bit low oder high zu bedeuten hat. W.S.
-
Thread
Tischmultimeter Selbstbau >= 5 1/2 Stellen
> Ich möchte mir gerne ein Multimeter bauen, Led Anzeigen sowie Nokia SW > Display mit DsPic (12bit ADC) sowie 22bit ADC. > Ziel ist es 6 1/2 digit, werde aber auch probieren ein 8 1/2 digit zu > machen > und zwar mit einem 12bit DAC Das ist nicht besonders schwierig. Nimm einen 7107 und setze
Harald Wilhelms schrieb im Beitrag #2299732: > Das ist nicht besonders schwierig. Nimm einen 7107 und setze 3...5 > LED-Anzeigen mit Nullen dahinter. :-) Witzbold, aber nicht schlecht. MaWin schrieb > Es gibt 24 bit Wandler, wie LTC2400, nicht mal so teuer. Ich habe lieber einen dual slope als einen
-
Thread
LCD-Display & Schwarze Balken
Genaue Daten kenne ich nicht. Ich weiß nur, dass es 2x16 und im 4 bit Betrieb ist...
vor mir auflösen :) Dienen diese einfach > dazu, um bestimmte Pins auf Eingang oder Ausgang zu setzen? Einfach ein Byte. Also 8 einzelne Bits zu einer größere logischen Einheit zusammengefasst. Man könnte auch Speicherzelle sage. Welche Funktion das Register hat ist aber dadurch nicht fetgelegt.
-
Thread
ATMEL billiger und leistungsfähiger als PIC
Pins gleichzeitg toggeln. Da streichen > dann die 8Bitter wiederum die Segel. Bei den ATXMegas (8 Bit) hat jeder Port sogar jeweils ein Register zum Setzen, Löschen und Togglen von Pins. Und bei neueren AVRs bewirkt ein Schreiben einer 1 auf ein, oder mehrere, Bit(s) auf das bei *allen* AVRs vorhandene
spess53 schrieb im Beitrag #2286463: > Schreiben einer 1 auf ein, oder mehrere, Bit(s) auf das bei *allen* AVRs > vorhandene PIN-Register ein Togglen der angesprochenen PINs. Da werden > eher Segel gehisst. Es gibt neben dem Setzen, Löschen und Toggeln einzelner Bits eine weitere
-
Thread
Hex Wert -> Dezimal an LCD ausgeben
miteinander kommunizieren können. Ich nenne dieses Register (eines der oberen, damit man "billig" Bits setzen und löschen kann, also r16...r23) meist "flags" oder "mode". Die 8 Bits können dann unterschiedliche Aufgaben signalisieren. Sie bekommen dann dementsprechende Namen. In der ISR wird das jeweilige
Hi Hannes... dann vergiss ich das mit dem 16 Bit Timer wieder. Also dann (fast) alles raus aus timer 0. Nur den Teiler erhöhen und wenn der Teiler auf 0 ist, ein Flag(register) setzen. Das mit der Tastenentprellung klingt auch gut. Ach Hannes
-
Thread
AVR DB - oder doch ein Compiler-Fehler?
Dein tick ist 16bit und dein ms_counter 32bit. Beim Draufspeichern schmeißt du die oberen Bits weg. Mach mal testweise eine 32bit tick Variable und schau obs noch vorkommt.
diese stets gültige Werte annehmen und sich dabei eine Häh? d.H. in deiner Welt darf man nur 8-Bit-Variablen verwenden, wenn man auf einem 8-Bit-AVR unterwegs ist? Es ist nunmal eine Hardware-Limitierung, dass der AVR nur 8 Bit auf einmal schreiben kann. Völlig egal, ob du den in ASM, in C++, oder
-
Thread
sizeof ergibt 2 für array mit 9 16bit werten
einiges zusammengekommen. Die +/-1 Geschichte in der Adresse hatte ich mir gedacht, um auch mit nem 16bit-Pointer 8bit Variablen ansprechen zu können.... dafür wäre dann wohl typcasting das richtige stichwort??
0xff // oberes byte x = (x & (~0xff<<0)) | ((wert << 0) & (0xff<<0)) // ersetes byte auf wert setzen x = (x & (~0xff<<8)) | ((wert << 8) & (0xff<<8)) // zweites byte auf wert setzen [/c]
-
Thread
THT im Hobbybereich, hat das noch Zukunft? Gesperrt
Spruch dient, zumindest in der SW-Entwickkung, allzu oft als Begründung für unnötiges Optimieren, für Bit-Gepfriemel, für obfuscated code.
akzeptierst offenbar immer noch nicht, dass andere für sich – auch im Hobby – oft andere Prämissen setzen als du.
-
Thread
Sharp GP2D02 Sensor auslesen mit CodeVisionAVR und einem AT90S8515
result <<= 1; //schiebs nach links if (VOUT) result |= 0x01; //setze das niedrigste bit, wenn VOUT high } VIN = 1; delay_ms(2); return result; anzeige(); } [/c] und ich schreibe in die anzeige() [c] void anzeige(void) { PORTA=0x55;
erst danach lesen result <<= 1; //schiebs nach links if (VOUT) result |= 0x01; //setze das niedrigste bit, wenn VOUT high VIN=passive;
-
Thread
Verilog for Schleife
Du kannst nicht einfach ein Bit setzen, wenn die Schleife fertig ist. Die Schleife wird zu kombinatorischer Logik. Die ist irgendwann fertig. Dann sagt dir dein Timing Analyzer später ob es in einen Taktzyklus passt (wenn du die richtigen
>ich möchte max 300 Werte durchsuchen beo 150Mhz Wieviele Bits hat ein Wert?
-
Thread
Bits nacheinander aus Maske lesen
ziehen. Ginge das dann einfacher wenn ich als Grundvorraussetzung den Pegel von SDA immer auf 0 setze und dann je nachdem welcher Bit in der Maske gesetzt ist, den Pegel auf 1 setze oder eben nicht?! Also so: [c] uint8_t Maske = BitMaske; //Damit BitMaske nicht "leer geschoben" wird
if(Maske & 0x80) //SDA: Prüfe ob Maskenbit 1 SDA_PORT |= (1<<SDA_PIN); //SDA: Setze Pin auf 1 wenn Maskenbit 1 else SDA_PORT &= ~(1<<SDA_PIN); //SDA: Setze Pin auf 0 wenn Maskenbit 0 [/code] Gruß
-
Thread
16bit Timer [MEGA8]
************************/ ISR(TIMER1_OVF_vect) { i++; // Zaehler erneut auf Startwert setzen TCNT1 = 0xF000; } [/C]
halten und stattdessen die eigentliche Arbeit in der Haupt > // Zaehler erneut auf Startwert setzen > TCNT1 = 0xF000; Das machst du ganz am Schluß. Damit verlierst du unter Umständen Timer-Ticks.
-
Thread
Wie funktioniert JTAG?
Schieberegister zusammengefasst werden. Wenn ich also z.B. 16 I/O-Ports hätte könne und müsste ich ein 16-Bit (2Byte) dort reinschieben um Daten zu setzen und auslesen um den Zustand zu ermitteln. Das wäre das Datenregister (DR genannt?). Um andere Dinge zu tun, bzw. überhaupt dem Chip (zu testenden Modul)
nach Ende der Operation dann ganz rechts) 1 => nächstes Bit Jetzt setze ich TMS wieder wie folgt: 1 => Der Shift-IR Zustand wurde beendet und in den Exit1-IR gewechselt. Zu dieser Zeit liegen die auf TDI eingeschobenen Bits noch im IR-Register, sind aber
-
Thread
Zugriff verweigert
Ralph B. schrieb im Beitrag #8063724: > Ich habe noch eine Reihe 16 Bit Programme weswegen ein 64Bit > Betriebssystem nicht in Frage kommt. Es gibt keine 32-Bit-Version von Windows 11. Es gibt zwar Hilfsmittel (Dosbox und andere) um 16-Bit-Programme ausfuehren zu
nebenbei. https://forum.classic-computing.de/forum/index.php?thread/29870-native-gw-basic-fuer-32bit-x86-und-64bit-x64/ ciao gustav
-
Thread
USB IR Remote Receiver (V-USB + IRMP)
Byte], Month[Byte], Year[Word]) HidD_SetFeature (schicke Daten zum AVR): ID4: (1 Byte, Boolean) setze PowerOn Funktion aktiv/inaktiv. ID5: (6 Bytes) setze/loesche trainierten IR-Code im EEProm. ID6: (1 Word) setze IR-Polling Frequenz.[/c] Um an die aktuellen IR-Code zu kommen muss das Feature
programmieren. ich habe die anleitung von portisch schritt für schritt befolgt. beim auslesen der fuse-bits schon das erste prob: anfangs hat er immer "missing device" gemeldet; nach ein paar mal "retry" hat er aber die bits ausgelesen. ich habe die bits richtig gesetzt und dann "write" geklickt. das hat
-
Thread
1-Bit Variable
[c] #define Bit0 0 #define Bit1 1 #define Bit2 2 #define Bit3 3 #define Bit4 4 #define Bit5 5 #define Bit6 6 #define Bit7 7 uint8_t Flags; ... Flags |= (1<<Bit0); Flags &= ~((1<<Bit2) | (1<<Bit4)); [/c]
-
Thread
Bitlogik - Bitmasken - universelle Zuweisung
asdf wMask | ? | ? | asdf wValue | ? | ? | Ergebnis |2.Bit im |2.Bit im | |Bitbereich |Bitbereich | |setzen,Bit1 |setzen,Bit4| Beim Ergebnis ist es ja in beiden Aufrufen ein anderes Bit. Aufruf 1 ist Bit 1 zu setzen. Aufruf
in die Tabelle einfuegen: Ergebnis |2.Bit im |2.Bit im | |Bitbereich |Bitbereich | |setzen,Bit1 |setzen,Bit4| | 0x02 | 0x10 | >3. Wert 0x01 (0. Bit soll 1 sein) >Ergebnis
-
Thread
Laufwerksbuschstaben zuweisen?
Hans schrieb im Beitrag #7783310: > - lade Dir die 32Bit Variante herunter und installiere sie. Damit die > 64Bit Variante erhalten bleibt in ein anderes Verzeichnis. Ich habe die 32/64-Bit-Variante vom TC installiert. Ich habe die 32 Bit.exe vom TC
Peter N. schrieb im Beitrag #7783481: > Ich habe die 32/64-Bit-Variante vom TC installiert. Ich habe die reine 32Bit Variante installiert und über diese dann auch das 32Bit Plugin installiert. Hast Du den TC im Verzeichnis "Program Files" oder "Program Files
-
Thread
Can Bus interface reagiert nicht. Was mache ich falsch?
, "CAN set CURVE_CONFIG (0x00B4) Bit 7 = 0 (0x0004), please power cycle NPB afterwards", ""); - platform: template id: bit7_enable name: Switch to Charger mode on_press: - canbus.send: canbus_id: can_mcp2515
danke, ich habe noch zwei "buttons" eingefügt zum EEPROM bit setzen in der SYSTEM_CONFIG: [code] - platform: template id: mw_eeprom_enable name: "${mw_name} enable writing to EEPROM (0x00C2)" on_press: - canbus.send: canbus_id
-
Thread
Port Pins mit Struct ansprechen
UNSETPIN(PORTA, LAMPE2); Hallo, SETPIN(PORTA, LAMPE1 & LAMPE2 & LAMPE3); wird kein einziges Bit setzen. 0x01 & 0x02 & 0x04 ist immer noch 0x00. mfg mf
schrieb im Beitrag #207610: >> #define SETPIN(port, pins) port |= pins > ... > wird kein einziges Bit setzen. > > 0x01 & 0x02 & 0x04 ist immer noch 0x00. > > mfg mf Mit LAMPE1 = LAMPE2 = LAMPE3 = 1; wäre das nicht passiert :-)
-
Thread
Mit was in die Mikrokontrollerwelt einsteigen?
. Das ist einfach super. Vorallem spricht für mich aber das schlechtere Debugging gegen z.b. die 8-Bit Atmegas. Will ich meinen Code auf Fehler analysieren, ist es sehr hilfreich, einfach einen Breakpoint in der Entwicklungsumgebung setzen zu können und durch mit dem Mauszeiger über die Variable fahren
Anforderung den idealen Chip aus. NXP hat schon festgestellt, dass es wirtschaftlicher ist, nur noch auf 32Bit zu setzen. Und ein Microchip FAE hat mir mal erzählt, dass der eigentliche 32Bit Kern sehr klein ist (Siliziumfläche) im Vergleich zur Flash und dem Platz den die PIN-Treiber benötigen. Und bezahlt
-
Thread
grafische Flüssigkristallanzeige schnell löschen
5227; i+=2) { P4OUT=0; CD_H; // (* C/D = H (ctrl) *) P5OUT &=~(BIT2 + BIT3); //WR = L; CE = L P5OUT=0x0F; //alles H P4OUT=d; CD_H; // (* C/D = H (ctrl) *) P5OUT &=~(BIT2 + BIT3); //WR = L; CE = L
//alles H P4OUT=0; CD_H; // (* C/D = H (ctrl) *) P5OUT &=~(BIT2 + BIT3); //WR = L; CE = L P5OUT=0x0F; //alles H P4OUT=d; CD_H; // (* C/D = H (ctrl) *) P5OUT &=~(BIT2 + BIT3); //WR = L; CE = L