-
Thread
STM32 USB Übertragungsproblem mit Code von S.F.
// Initialize system timer SysTick_Config(SystemCoreClock/1000); //[ALEX] SET_BIT(RCC->APB2ENR, RCC_APB2ENR_SYSCFGEN); while (!READ_BIT(RCC->APB2ENR, RCC_APB2ENR_SYSCFGEN)); //[ALEX] SET_BIT(RCC->APB1ENR, RCC_APB1ENR_PWREN); while (!READ_BIT(RCC->APB1ENR, RCC_APB1ENR_PWREN
Enumeration. Bei dir würde das so aussehen: [c] void SystemInit() { // GPIOA12 auf OpenDrain und Low setzen SET_BIT(RCC->APB2ENR, RCC_APB2ENR_IOPAEN); MODIFY_REG(GPIOA->CRH, GPIO_CRH_CNF12 + GPIO_CRH_MODE12, GPIO_CRH_CNF12_0 + GPIO_CRH_MODE12_1); WRITE_REG(GPIOA->BRR, GPIO_BRR_BR12); } int main
-
Thread
Blutzucker-Messgerät Hardware OLED Display
Graustufen? http://home.arcor.de/wehrsdorf/Oled-Display-Recycling.html hat ein tool, das macht aus aus 4bit bmp einen header, den du einbinden kannst wenn du wissen willst, wie du zu einem 4bit bmp kommst -> Paint (das was zu jedem Windows gehört) speichern unter 16bit-Bitmap. oder du suchst die eine
@Q9: an CS, DC, SCLK und die Fuse-Bits hast du gedacht?
-
Thread
AD-Wandler mittels SPI auslesen
Ich habe es jetzt so verstanden, dass ich nach dem Senden von SendByte CE0 erstmal wieder auf HIGH setzen muss (Figure 9 in dem Datasheet). Nach der Acquisition-Time von 1,5 Mikrosenkunden setze ich CS = LOW und bei der fallenden Flanke von SCLK wird das erste Bit empfangen. Kann ich eigentlich auch
Huch? Komische Umrechnung. Ich würde sowas machen wie (bits[1] << 8) + bits[0] oder so. Modulo Vorzeichen.
-
Thread
Tiefentladungsschutz mit Attiny und P-Kanal Fet
einem FP-Wert zu vergleichen, ist ungeschickt. Besser wäre es den Initialen threshhold Wert als 10-Bit ADC Wert abzulegen. Um den zu errechnen, kann man gerne FP verwenden, denn das läuft zur Compile-Zeit auf einem (vermutlich) 64-Bit-Mehrkerner.
Carl D. schrieb im Beitrag #6524660: > Und einen 10-Bit ADC-Wert in FP Volt umzurechnen, um sie dann wieder mit > einem FP-Wert zu vergleichen, ist ungeschickt. Besser wäre es den > Initialen threshhold Wert als 10-Bit ADC Wert abzulegen. Um den zu >
-
Thread
Bitmanipulation
Naja, geht zumindest nicht in einem Schritt, aber vielleicht so: - alle nicht zu verändernden Bits in Maske auf 1 setzen - X1 mit Maske UND verknüpfen - X1 mit Maske ODER verknüpfen
Ähmmm, nicht ganz, war zu schnell :-= - alle nicht zu verändernden Bits in Maske auf 1 setzen - X1 mit Maske UND verknüpfen - alle nicht zu verändernden Bits in Maske auf 0 setzen - X1 mit Maske ODER verknüpfen
-
Thread
10bit Signal auf 8 bit runter manipulieren
Hallo ich möchte darstellen, dass das Eingangssignal bei einer Bit Änderung, zum Beispiel von 10 Bit auf 8Bit oder 7 Bit schlechter wird. Zum Beispiel steuere ich mit den 10 Bit ein Winkel an. Wenn ich nun die 10 Bit auf 7 Bit reduiziere und auch die Min und Max Werte
Was du machen moechtest ist den Bereich beibehalten, dh die Grenzen so lassen, aber die hinteren N Bits auf Null setzen. Also 0b 11 0101 0110 --> 0b 11 0101 0000 von 10 auf 7 bit = 3 bit Nullen
-
Thread
MCU mit 24-Bit-SPI?
was auch immer. Was du mir gerade versuchst zu erzählen: Wenn das Eingangs-Schieberegister nur 8 Bit hat, kann ich da trotzdem 24 Bit drin empfangen, weil die überschüssigen 16 Bit ... ja bitte wo landen die denn? Und wieos soll nach 8 Bit Ruhe sein, wenn der Sender eben 24 Bit in einem Frame schickt
bei 24bit eben 3 mal, und am Ende hast du alle 24 bit.
-
Thread
C8051F020Dk Port4-7 aktivieren bzw. freischalten (SFR)?
da. > Denn habe ich auch das ObigeP74OUT |= (0<<2); auch probiert, gleiche Ergebnis. > Wenn du bits selektiv null setzen möchtest dann & verknüpfen: P74OUT&=0xf7; //setzt bit 3 null restlichen bleiben wie zuvor. Zum setzen von bits | verknüpfen: P74OUT|=0x08; //setzt bit 3 eins restlichen bleiben
flomann schrieb im Beitrag #3194131: > Wenn du bits selektiv null setzen möchtest dann & verknüpfen: > P74OUT&=0xf7; //setzt bit 3 null restlichen bleiben wie zuvor. > Zum setzen von bits | verknüpfen: > P74OUT|=0x08; //setzt bit 3 eins restlichen
-
Thread
If Schleife um Array Elemente zu vergleichen
A. S. schrieb im Beitrag #6251387: > aber die Logik ist vermutlich eine andere: Da BSRR 24 Bit ist, > möchte er sicher sein, dass auch wirklich alle 24 Bit 0 sind, und nicht > nur das Ergebnis ;-) Möglicherweise wollte er auch Bit 25 (Zählweise Bit 1 ist das niederwertigste) löschen und
smerti schrieb im Beitrag #6252038: > Weil es das korrespondierende Bit für mein ODR Bit ist und mit einer 0 > einfach keine Operation durchgeführt wird. Du setzt aber auch alle anderen 31 Bit auf 0.
-
Thread
PIC pragma config allgemeine Fragen
überhaupt Pragma verwenden um z.B. Oszillator > einzustellen? > Wiso kann ich nicht einfach dei SFR's setzen? Um die SFR zu setzen muss das Programm erst einmal loslaufen. Und damit das Programm losläuft muss der Oszillator ja erst einmal eingerichtet sein. (Alternativ zu den ConfigBits hätte der Hersteller
Tipp mal ein [Registername]bits. dann müsste eine Auswahl der einzelnen Bits kommen, die du setzen kannst. kontrollregister o.Ä. habe ich in C nicht gebraucht; das scheint der compiler selbst zu machen.
-
Thread
Neuer Controller, altes Programm: Fahler im Zeitkonitnuum
Kundenbindung. Nochmal was fachliches: ich habe ein Programm gefunden, das auflistet, welche Bits bezüglich der int oder ext Quarzfrage ich setzen kann. Da kommt aber meine 4MHz nicht drin vor! (AVR progtool) Warum ned?
Beitrag #1852057: > Nochmal was fachliches: ich habe ein Programm gefunden, das auflistet, > welche Bits bezüglich der int oder ext Quarzfrage ich setzen kann. Da > kommt aber meine 4MHz nicht drin vor! (AVR progtool) Warum ned? Datenblatt anschauen! Der obige Vorschlag sollte von 1 bis 16 MHz gehen
-
Thread
Unterschiede zwischen ARM und ATmega in der Programmierung
eigentlich immer auf mehrere verschiedene Arten auf Portpins zugreifen. Zumeist mittels W/O-Registern zum Setzen oder Löschen von Portpins. Bei einigen Typen gibt es neben dem traditionellen Zugriff auf die Ports Speicherbereiche, in denen jedes einzelne Portpin als ein 8, 16 oder 32 Bit Boolean ansprechbar
. Beim AVR sinds vermutlich ein paar Zeilen weniger, weil dessen Peripherie halt einfach weniger Bits hat, die man setzen kann. Aber ist das schlimm? Will man das überhaupt in Assembler programmieren? Zugriff auf Peripherie ist in ARM-Assembler immer etwas umständlicher, weil man die langen Adressen
-
Thread
expected ')' before '&=' token
_______________________________________________________________________________________ #define BitSetzen(Byte,Bit) ((Byte) |= ( 1 << (Bit))) // Makro für Bit setzen #define BitLoeschen(Byte,Bit) ((Byte) &= ~( 1 << (Bit))) // Makro für Bit löschen #define BitToggeln(Byte,Bit) ((Byte) ^= ( 1 << (Bit))) // Makro für Bit toggeln #define AusgangDefinieren(Byte,Bit) ((Byte) |= ( 1 << (Bit))) // Gleich wie Bit setzen, aber für die Lesbarkeit des Prog. #define EingangDefinieren(Byte,Bit
-
Thread
Power-down mit Taster
geschaltete LED inkl. Vorwiderstand // zwischen PB1 und Vcc DDRB |= (1 << PB1); // Bit setzen: Pin PB1 als Ausgang PORTB |= (1 << PB1); // Bit setzen: Ausgabe HIGH: LED aus (active-low) // Hardware: Im Ruhezustand offener Taster zwischen PB2 und GND DDRB &= ~(1 << PB2); /
1) { if(!(PINB & (1 << PINB2)) // gedrückt? { // ja => Bit löschen: Ausgabe LOW: LED an (active-low) PORTB &= ~(1 << PB1); } else { // nein => Bit setzen: Ausgabe HIGH: LED aus (active-low) PORTB |= (1 << PB1); }
-
Thread
bool[8] in uint8_t umwandeln
könntest Dein Array auch in einer Schleife durchlaufen und mittels Schiebeoperationen, die jeweiligen bits im Ausgabebyete setzen oder löschen
Dein Array auch in einer Schleife durchlaufen und mittels > Schiebeoperationen, die jeweiligen bits im Ausgabebyete setzen oder > löschen Dass das so geht war mir auch vorher klar, nur wurde dir Operation (mittlerweile geändert) jede Iteration meiner for(;;) Schleife durchlaufen, und ich hatte
-
Thread
Verständnisfrage zur Toleranz von R2R-Netzwerken
LSB können aus der Grabbelkiste sein, denn deren Toleranzen sind nebensächlich. Ein Beispiel: Bit 7 0.25% (MSB) Bit 6 0.5% Bit 5 1% Bit 4 2% Bit 3 4% Bit 2 8% Bit 1 16% Bit 0 32% (LSB) Nochwas: Wenn jemand sowas liest: "Ich weiß nicht, wo das Problem beim Lesen ist, aber ich habe
das Verstehen nicht klappt. Bei einem > R2R-netzwerk wirst du ja auch mehrere Pins hi oder lo setzen müssen. Das ist bereits gelöst. Die Baugruppe sendet 8 Bit Daten in Serie. > Wenn jemand sowas liest: "Ich weiß nicht, wo das Problem beim Lesen ist, > aber ich habe schon zweimal geschrieben
-
Thread
Kein Bild bei eigenem VGA
Wenn ich es umdrehe habe ich einen roten Balken und der Rest ist schwarz. Bei den Bits in der Mitte ist der Balken dann Lila und wenn ich alle Bits setze, ist da ebenfalls ein Violetter Balken. Was ich mich halt frage ist warum der Hintergrund keine andere Farbe hat...
>>> Wenn ich es umdrehe habe ich einen roten Balken und der Rest ist >>> schwarz. >>> Bei den Bits in der Mitte ist der Balken dann Lila und wenn ich alle >>> Bits setze, ist da ebenfalls ein Violetter Balken. >>> >>> Was ich mich halt frage ist warum der Hintergrund keine andere Farbe >>> hat
-
Thread
ATmega16: ADC-Multiplexing geht nicht
Hallo [c] #include <avr/io.h> #include <avr/sfr_defs.h> loop_until_bit_is_clear(ADCSRA, ADSC); [/c]
0x00 setzen, damit die internen Pullups wirklich deaktiviert sind... (wenn das wirklich Sinn macht)
-
Thread
Timer1 weckt nicht den PIC2LF1840 vom SLEEP()
der Hardware. Hier das Programm dazu: [c]program test4 sub procedure Interrupt() if (TMR1IF_bit) then TMR1IF_bit = 0 TMR1H = 0x0f TMR1L = 0x2C end if end sub sub procedure InitTimer1() T1CON = %10001101 TMR1IF_bit = 0 TMR1H
104 Leider in deinem Programm hast du einen Fehler. 104 das ist 0b01101000. Du hast zwar mit Bit 6-3 1101 4MHz HF Internal Oscillator gewählt aber durch Bit 1-0 hast du die Entscheidung an Configuration Word 1 übertragen: bit 1-0 SCS<1:0>: System Clock Select bits 1x = Internal oscillator
-
Thread
Nullen im Bitstring zählen
Der generelle Algorithmus um die Bits zu zählen wäre in etwa so: - Zählvariable auf 0 setzen - Vom Wert alle Bits bis auf das niederwertigste ausmaskieren (AND mit 1) - Ergebnis zur Zählvariable addieren - String nach rechts schieben
Ahnung von MIPS mit MARS, aber man könnte es bestimmt über das Carry lösen: 1. Zählvariable auf 0 setzen 2. Dummyvariable auf 0 setzen 3. String in Carry Schieben 4. Dummyvariable zu Zählvariable mit Carry addieren 5. zurück zu 3. bis alle 8 bits durch sind.
-
Thread
LCD E8504CZZ von Pollin und allgemein
erste Zeile sieht das also etwa so aus: - 79 4-Pixel-Blöcke reintakten per - Pixeldaten setzen - XCK setzen - XCK löschen - 80. 4-Pixel-Block setzen - FLM setzen - LOAD setzen - XCK setzen - XCK löschen - LOAD löschen - FLM löschen Schau Dir mal
das 'FLM setzen' einfach(tm) ganz an den Anfang
-
Thread
Strukturen mit memset initialisieren (C/C++)
Padding-Bits auf eine Trap-Representation setzen. Nachzulesen im C99-Standard.
irgendwelche > Padding-Bits auf eine Trap-Representation setzen. > > Nachzulesen im C99-Standard. Das ist natürlich prinzipiell richtig. Aber mal ehrlich: Im industriellen Bereich (also im wirklichen Leben von 99% aller
-
Thread
Externe Interrupts (Pin Change) mit Atmega 649A
PCINT12 und PCINT14 (Pins 14 und 16) aktivieren, alle anderen sollen nicht aktiv sein. Zuerst setze ich das PCINT1 Bit im EIMSK Register, damit die Interrupts PCINT8-PCINT15 aktiviert sind. Den globalen Interrupt enable führe ich mit sei() aus. Seite 64: Register EIFR, Bit 5: Wenn nun auf einen
Code): > [c] > EIFR |= (1<<PCIF1); > [/c] > Funktioniert aber nicht, warum? Weil du so das Bit löscht und nicht setzt. Diese Bits im Flag Register werden durch das Auftreten des zugehörigen Ereignisses gesetzt. Von der Hardware. Wenn du sie gewollte setzen willst, dann steht es dir frei selber
-
Thread
Sicheres Multiplexen?
Ich muss bei einer Schaltung multiplexing einsetzen, und zwar mittels 4x 8bit-Shiftreistern. Das Timing sieht wie folgt aus: "shiftOut32(val);" - Wert wird gesetzt "delayMicroseconds(150);" - 150uS warten "blankOutputs();" - 0 setzen aller Ausgänge "delayMicroseconds
Das rausschieben von 32 Bit dauert länger als 150uSek? Ok... dann schau dir mal die Funktion an, die die Bits raus schubst. Ca. 5 uSek nur um ein Bit zu schieben ist schon arg viel...
-
Thread
Keine ADC-Kanal Adressierung möglich ATMEGA8
Technik der Veroderns und VerANDens ist beim AVR gang und gäbe. Du kannst so in C gezielt einzelne Bits löschen und setzen, im Prinzip das, was die Assemblerbefehle CBI und SBI bzw. SBR und CBR auch machen. Zum Löschen eines Bits nimmst du die Komplementärfunktion in C. [c] ADCSRA &= ~(1<<ADFR);
Jetzt hab ichs! Die Auswahl der Kanäle erfolgt über über das Setzen der Bits im MUX Register. und über die 4 MUX´s kann ich alle 8 (wenn vorhanden) Kanäle anwählen. Kanal 5 : (1<<MUX2) | (1<<MUX0) Jetzt kanns weiter gehen. @ Karl Heinz: Das Datenblatt
-
Thread
OPV für Shunt-Messung (100A)
Aufbau im Rauschen und in der Temperaturdrift und dann bleiben von den 16 Bits grade noch 4 übrig. Damit kannst du den Strom in 100A/16 Bit = 6A/Bit Schritten auflösen. Ich lasse dich jetzt mental noch sehr viel Glück haben und nur 3 Bit im Rauschen verlieren, dann kannst du
Lothar M. schrieb im Beitrag #7698842: > 32768 Außerdem hat der 16 Bit.
-
Thread
ATTINY13 Interrupt INT0
Bits setzen" habe ich das vom Beispiel [c]PORTB |= ((1 << MEINBIT0) | (1 << MEINBIT2)); // setzt Bit 0 und 2 in PORTB auf "1" [/c] zumindest so abgeleitet. Danke, LG Stefan
http://www.mikrocontroller.net/articles/Bitmanipulation] nochmal zu > Gemüte geführt. Im Abschnitt "Bits setzen" habe ich das vom Beispiel Dann bitte jetzt noch den Abschnitt "Bits löschen" lesen, denn > ISC01=0 bedeutet, dass des Bit ISC01 gelöscht werden soll.
-
Thread
LCD-Modul SAMSUNG UG12D228AA von Pollin
demnächst mal bei Mouser bestellen ... da könnte ich ein paar von den Steckern mit auf die Bestellung setzen
dann so aus: [c]// Display Initialisieren S6B33B2_INIT(to_rgb565(255,255,255)); // X und Y setzen setXY(2,2); // Hintergrundfarbe setzen setBackColor(to_rgb565(255,255,255)); // Fordergrundfarbe setzen setFrontColor(to_rgb565(0,0,0)); // Einen Text Schreiben writeLn("LCD Init complete
-
Thread
CD-Uhr (HDD-Uhr) Ziffern nicht stabil "rollen", AVR Attiny2313
//als Ausgang setzen DDRD |= 1 << 5; // als Ausgang setzen hier hängt die LED dran DDRD &= ~1 << 3; // als Eingang setzen hier häng der Hall-Sensor dran PORTA |= (1 << 0); // Bits setzen PORTD |= (1 << 3); // Bits setzen lcd_init(); // Initialisierung des LCD wurde in lcd.h auf Port B gesetzt // internen clock vorteiler löschen CLKPR = 128; CLKPR = 0; // Wert darf nicht größer als 15 sein, sonst
-
Thread
Neue MCU APM32F103
FPU Register 1 (Status) 12: f000 0001 and.w r0, r0, #1 verunden mit 1, also das Busy bit angucken 16: 2800 cmp r0, #0 das busy bit mit 0 vergleichen und statusflags setzen 18: d0f9 beq.n e <sc_math_sin+0xe> branch equal, also wenn busybit == 0, dann
while ( (*FPU_CFGR & (1<<27)) == 0 ){}; [/c] Durch das while und auch durch Debug kann ich das setzen der Bits 3 bzw. 27 bestätigen.
-
Thread
[atmega328p] SPI-Setup als Master
Tom V. schrieb im Beitrag #3949003: > Nun habe ich das Problem, dass ich SS auf High setzen muss damit ich das > MSTR-Bit in SPCR setzen kann. Wenn ich ich das nicht mache, also die > ZeilePORTB = 0b00000100; auskommentiere, kann ich alle Bits in SPCR > setzen ausser das MSTR-Bit.
kann ich alle Bits in SPCR setzen ausser das MSTR-Bit. Ausgänge setzt man in DDRB.
-
Thread
LCD-Modul 4x20 - RE-Bit welcher anschluss?
So sollte es gehen. lcd_command(0x24); // RE-Bit Setzen (Funktion Set) lcd_command(0x09); // Ext. Funktion Set ( FW=0: 5-dot font width; BW=0: normal cursor; NW=1: 4-line display lcd_command(0x20); // RE- Bit wieder Zurück setzen; lcd_command(0x0C
Hab ganz vergessen zu erwähnen, das dass Beispiel für den 4 - Bit Modus gilt. lcd_command(0x24); // RE-Bit Setzen (Funktion Set) sets interface data length (DL=0:4-bit;
-
Thread
Platine bauen
sfr at 0xF8 Piic; // Piic = Port 5 > #define SDA 0 // Piic bit 0 = SDA > #define SCL 1 // Piic bit 1 = SCL > unsigned char adr_lcd = 0x74; // Adr. LCD[/c] > > Hast du schon eine Led zum blinken gebracht? ja habe. es blinkt
weil ich im datenblatt gelesen habe ,dass wenn ich mein display mit iic ansprechen möchte, dann setze Pin 11 auf GND.
-
Thread
Mikrocontroller
linke obere Eck des Zeichens zu liegen kommen soll) Zeichensatz[48][0] und dort das rechteste Bit: das ist 0 also wird an 12/15 kein Pixel gesetzt Zeichensatz[48][1] und dort das rechteste Bit: das ist 0 also wird an 13/15 kein Pixel gesetzt Zeichensatz[48][2] und dort das rechteste Bit: 0
bit von rechts: das ist 0 also wird an 16/16 kein Pixel gesetzt Naechste Zeile Zeichensatz[48][0] und dort das dritte bit von rechts: das ist 1 also wird an 12/17 ein Pixel gesetzt Zeichensatz[48
-
Thread
Interesse an einfach erweiterbarem Experimentierboard fuer den Xmega128a1?
machen und sperrige Teile nicht unter dem Add-On-Board plazieren, oder eben letzteres etwas hoeher setzen.
Sollte auch gehen, die CPLDs haben ja auch ,,richtiges'' JTAG. > Musst halt nur wissen, wie viele Bits die schieben (der AVR schiebt > 4 Bits pro AVR). Gut, das kann man ja im Tool entsprechend einstellen. Ich werd' das nochmal aus Xilinx-Sicht nachlesen.
-
Thread
Signal mit Timer erzeugen
Port invertieren anders schreiben. Gibt es nicht ne Möglichkeit ihn einfach auf HIGH oder LOW zu setzen...??
Erreichen des Endwertes definierten Pegel ausgeben (sbi oder cbi) und den Pointer auf Startwert setzen (ldi). In den übrigen Fällen (also nicht beim Telegrammende) wird der Port (aber nur das gewünschte Bit!) einfach invertiert. Das geschieht durch Einlesen (in) des Ports, exor mit Hilfsregister, in
-
Thread
ATmega8 und UART => Code bringt Einsteiger zum Verzweifeln
mir als ziemlicher bullshit. [c] void messung (void) { sbi (ADCSR, ADIF); //ADIF-Bit Setzen(Messzyklus starten) loop_until_bit_is_clear(ADCSR, ADIF); //ersten Messwert verwerfen sbi (ADCSR, ADIF); //ADIF-Bit Setzen(Messzyklus starten) loop_until_bit_is_clear
(uint8_t data) //sendet ein Byte über das Uart { while(bit_is_clear(UCSRA, UDRE)); //warten bis UART bereit ist zum senden UDR = data; //data ausgeben } //sendet einen String über das Uart void uart_puts(char *s) //setze den
-
Thread
Tacho über Reed und NE555 an Atmega32
@ He Gr (dare) >1. ein 16 bit Timer kann offensichtlich eine 16 Bit Variable überlaufen Logisch. >lassen. Zumindest resettet der Atmega jedes Mal, wenn ich den Inhalt von >Timer1 in eine uint16_t schreiben will. Da ist
Wenn ich den Inhalt vorher durch >10 teile gehts. Das ist Unsinn. >Geschwindigkeit auf 0 setzen? Bis zur nächsten sollte eigentlich die Nöö, einen Timeout einbauen. Wenn innerhalb von 500ms kein neuer Messwert kommt, DANN wird Null angezeigt. >ihr das machen? Ein 8 Bit Timer läuft mit höchstem
-
Thread
C++ für Mikrocontroller
Reference-Manual eines beliebigen ARM Cortex-Mx Controllers. Die Controller sind kaum komplexer als die gängigen 8Bit Mikrocontroller, allerdings kann die Peripherie oft mehr. Die Libraries braucht man ebenfalls nicht. Karl H. schrieb im Beitrag #4258930: >> Compiler-Schalter setzen um diese Vorteile zu nutzen:
irgendwie komplizierter empfindest obwohl da ebenfalls nur eine Handvoll Bits in einer Handvoll Registern zu setzen sind, Register und Bits deren Namen einem sogar schon irgendwie seltsam vertraut vorkommen sollten und (o Wunder) im Wesentlichen die vergleichbaren Funktionen
-
Thread
Frequenz messen, Korrelationsfolge?
du nur die PCIF-Bits im PCIF-Register überprüfen. Wenn eins oder mehrere 1 sind, haben Pins gewackelt. Die PCIF-Bits musst du danach durch Schreiben einer *1* wieder zurücksetzen. MfG Spess
achja, und bei Pegeländerung natürlich auch auf 0 setzen :D
-
Thread
Spannungsmessung mit PIC16F877A -->LCD-Anzeige
verwenden aber irgendwie komme ich damit nicht klar. Also in der FAQ steht ich muss erstmal die Bits im OPTION Register setzen, also ich hab eine Frequenz von 10MHz und möchte mit Prescaler 256 rechnen, damit komme ich auf ~38 Interrupts pro Sekunde. Aus der FAQ: [c]void t0_ini () { /
Setz folgenden Befehl nach dem InitTimer0: TMR0IE_bit = 1
-
Thread
UART: Break-Signal immer auch ein Framing-Error?
und Stop-Bit) dauert. Nebst dessen das die SW üblicherweise den Pegel des Stop-Bits gar nicht sehen kann (um das Stop-Bit an die SW zu reichen müsste man den RC-FIFO um ein weiteres Bit breiter machen und sowas
in PCs > basiert auf dem INS8250 oder dessen Nachfahren wie 16450 und kann den > Break-Zustand setzen und löschen Ja ich bezog mich da mehr auf Mikrocontroller (8051, AVR). Ich hab das Break auch noch nie benötigt. Dafür kann die PC-UART wiederum keine 9Bit, wie es bei RS-485 gerne benutzt wird
-
Thread
ATmega128 reagiert nach fusebit setzen nicht mehr
Hi leute! habe heute versucht einen Takt auf XTAL1 zu legen um die Bits neu zu setzen, was aber leider nicht glückte. ich denke ich kann ihn mal zu meinen ausschusssachen geben. danke für eure tipps. greetz dave
-
Thread
Mehrzeilige defines
gefunden. Also ich habe einerseits diese Deklarationen, welche mir einfch die I/O's entsprechend setzen: [C] #define Power_Relay_1 PORTA |= BIT1; \ PORTA |= BIT2; #define Maintain_Relay_1 PORTA
define Release_Shutter_2_Down Release_Relay_4 #define Status_Relay_4 ((PING&BIT2) != 0x00) [/C] Andererseits habe ich auch diese makros, um die entsprechenden (oben aufgeführten) I/O's zu setzen: [C] #define Power_Relay_Index if(Index == 0)
-
Thread
code funktioniert nicht
Fehler ist ... das du dich standhaft weigerst im Datenblatt nachzusehen in welchem Register das SPIF Bit beheimatet ist und dann eine korrekte Abfrage eines Bits in einem Register zu programmierern if( Register & ( 1 << BitNummer ) ) Bit ist gestzt else Bit ist nicht gesetzt
Ja. Aber "wo" ist das Bit?
-
Thread
Probleme Ausgänge eines Ports setzen Atmega8
Hallo zusammen, ich komme mir so langsam echt blöd vor. ich möchte eine Drehrichtungsumschaltung mittels H-Bridge realisieren eher gesagt will ich nur die vorhandene H-Bridge meines RN DualMotor mit meinem Atmega8 ansteuern. Immer wenn ich 4 Ausgänge des selben Ports verwende funktioniert das ganze nicht, wenn ich 2 von Port B und z.B. 2 von Port D benutze funktioniert es. Ich blicke da echt nicht durch. Anbei mal der code der nicht funktioniert aber die Pins benutzt die ich später gerne hätte. [c] DDRD =(1 <<PD0)|(1 <<PD1)|(1 <<PD2)|(1 <<PD3); PORTD = (1 << PD0)|(1 << PD1)|(1
-
Thread
Viele Fragen und ein kleiner Blog
[avrasm] ; RS232 Frame-Format: 8 Bit ldi Dummy1, (1<<USBS0)|(3<<UCSZ00) ; 8 Bit Daten kein Paraty, 1 Stopbit sts UCSR0C, Dummy1 [/avrasm] Braucht der 88 kein URSEL? (Ich hab nicht nachgesehen, ich frag nur)
UBRR_VAL) sts UBRR0H, Dummy1 ldi Dummy1, LOW(UBRR_VAL) sts UBRR0L, Dummy1 ; RS232 Frame-Format: 8 Bit ldi Dummy1, 1<<TXEN0 ; TX aktivieren sts UCSR0B, Dummy1 ldi Dummy1, (1<<USBS0)|(3<<UCSZ00) ; 8 Bit Daten kein Paraty, 1 Stopbit sts UCSR0C, Dummy1 [/avrasm]
-
Thread
DCF77 Auswertung (ein bisschen anders)
#5693361: > (M)ein GPS-Empfänger möchte schon bei gutem Wetter auf der Fensterbank > innen sein Bit "Stabile Zeit" nicht setzen. Kannst du das mal in NMEA0183 ausdrücken oder wo liest du so ein Bit bei einem GPS-Empfänger ab?
#5693717: >> (M)ein GPS-Empfänger möchte schon bei gutem Wetter auf der Fensterbank >> innen sein Bit "Stabile Zeit" nicht setzen. > Kannst du das mal in NMEA0183 ausdrücken oder wo liest du so ein Bit bei einem GPS-Empfänger ab? Lange ist's her ... ich suche jetzt nach und finde es im Datenblatt
-
Thread
Bitmanipulation in C# Programm (Visual Studio)
); // Setze das erste Bit } [/c] Kann man das ganze irgendwie casten auf 8Bit?
{ cmd &= (byte) ~(0x03); // Loesche die ersten beiden Bits cmd |= (byte) (0x02); // Setze das zweite Bit }[/c]
-
Thread
Attiny Programmierung
schreibst du etwas übers maskieren, aber nirgendwo, etwas darüber, dass diese für ein gezieltes Setzen und Löschen von Bits sind und dass für das Setzen eines Bits eine ODER Maske und das Löschen eine UND Maske verwendet wird und warum das so ist. Außerdem setzt du komplett die digitale Logik vorraus
von der Idee überzeugt, mit derartig komplexen Mikrocontrollern anzufangen. Ich habe nichts gegen 32bit, aber die Taktversorgung, der NVIC und die Peripherie sind schon erheblich komplexer, als herkömmliche 8bit Mikrocontroller. Ich habe das Fach vom Grund auf gelernt. Erst ein bisschen Elektronik