-
Thread
STM32F103: EEPROM Abstürze abfangen
is enabled by default when -mcpu=cortex-m3 is specified. @Christian wenn du den GCC benutzt setze mal -mcpu=cortex-m3 Das bewirkt machmal Wunder bei der HW SPI und dem busy Bit;-)
Hans-Georg L. schrieb im Beitrag #5176282: > wenn du den GCC benutzt setze mal -mcpu=cortex-m3 > > Das bewirkt machmal Wunder bei der HW SPI und dem busy Bit;-
-
Thread
LM75 mit MSP430F1611
keinen Sinn. Teilweise kommen auch nur Hieroglyphen. nach dem Datenblatt von dem LM75 wird eine 9 Bit breite Zahl ausgegeben. Teilt der LM75 diese automatisch in zwei 8 Bit Signale auf und schickt die? Dann müsste das eine Bit (high) ja immer Null anzeigen solange ich einen positiven Temperaturwert
Markus S. schrieb im Beitrag #1961244: > nach dem Datenblatt von dem LM75 wird eine 9 Bit breite Zahl ausgegeben. > Teilt der LM75 diese automatisch in zwei 8 Bit Signale auf und schickt > die? Ja > Dann müsste das eine Bit (high) ja immer Null anzeigen solange ich > einen positiven
-
Thread
128x64 Grafikdisplay von Pollin
Ergebnis ist dann, dass das erste Pixel links oben aus ist, das zweite ist an, usw. Für das Pixel setzen/löschen unterstützt der T6963 noch einen eigenen Befehl. Dazu musst du ebenfalls den Adresspointer des Displays auf die 8-Bit-Speicherstelle setzen, indem sich das Pixel befindet, das du steuern willst
Home Adress setzen lcd_send_data(); // Auf 0200H setzen LCD_DATA = 0x02; lcd_send_data(); LCD_CMD = 0x42; lcd_send_cmd(); LCD_DATA = 0x15; // Grafik
-
Thread
Hilfe bei der Programmierung eines Adventskalenders
#6606715: > Wohl kaum, mit einem 32 KḱHz Takt kann man die unmöglich ansteuern. 24 LEDs, ein 24-bit Schieberregister, der 2313 darf mit einer Periode von 24 h takten ...
Danke für die Antworten schon mal. Das heisst aber wie schon gefragt: Den Oszi integrieren, Fuses setzen und dann kann ich den Rest im Prgramm machen.
-
Thread
Windows 8 potthäßlich
die es 64-Bit Treiber gibt, spricht nichts gegen 64-Bit OS. Ich habe anfangs grundsätzlich die 64-Bit Version installiert. Aber dann kramten doch noch viele Leute Drucker, Scanner oder sonstige Geräte hervor, für die nur 32Bit-Treiber existieren -> lange Gesichter. Daher Kommando zurück, auf Firmenrechner installiere ich grundsätzlich wieder die 32-Bit-Version, auf privaten nur nach Wunsch 64-Bit. 2. die Softwareproblematik
-
Thread
LockBits ATmega1284P
Hallo, ich möchte folgende Funktion der LockBits realisieren: Das Auslesen bzw. das Verifizieren des Speichers von meinem ATmega1284P soll von außen nicht möglich sein. Deshalb setze ich die LockBits LB2 und LB1 auf 0. Ich lese die Lockbits
Andreas H. schrieb im Beitrag #2570600: > Hallo, > > ich möchte folgende Funktion der LockBits realisieren: > > Das Auslesen bzw. das Verifizieren des Speichers von meinem ATmega1284P > soll von außen nicht möglich sein. > > Deshalb setze ich die LockBits LB2 und LB1 auf 0. Ich lese die
-
Thread
Lohnt es sich heute noch PH (Phillips)-Schraubendreher zu kaufen?
Nichts neues im Dokument. Nur Torx-Bits halten auch nicht nicht ewig wenn übermäßig Kraft übertragen wird. Entweder ist dann das Bit kaputt oder der Schraubenkopf ab.
Und prallen dann eben förmlich Welten aufeinander. > Manche Leute nehmen statt normalen Torx-Bits auch spezielle Bits für > Torx-Spax-Schrauben. Weit über 99% der Menschheit, die den Namen Spax für Schrauben/Schraubern/Bits überhaupt kennen, verbinden das automatisch mit PZ Schraubköpfen, was
-
Thread
PWM über 2 Potis
Anwendung brauchst. Schau dir die verschiedenen Möglichkeiten im Datenblatt an. Und wenn du 10Bit ADC Werte hast dein Timer aber mit 16Bit läuft kannst du die ADC Werte einfach um 6 Stellen nach links schieben oder du addierst 64 Messungen zu einem 16Bit Wert zusammen und hast da gleich eine Mittelung
der ADC's wirst du mit viel Glück 8 nutzbare Bits aus dem ADC erhalten. Die beiden Lowbits werden soviel springen das du diese glatt vergessen kannst. ==> nutzbar 8 Bit ==> 256 Bits Auflösung für beide Potis. Erhöht die Schrittweite auf 4 µs
-
Thread
Schieberegister HC595_Verständnislückchen
brennen voneinander trenne, dann klappt es nicht. 2. Kann man das Schieberegister komplett auf 0 setzen? Oder muss ich jedesmal 8 0-bits durchschieben? Mit Reset klappt es nicht. Ich hoffe das war verständlich :) Vielen Dank
>2. Kann man das Schieberegister komplett auf 0 setzen? Oder muss ich >jedesmal 8 0-bits durchschieben? Mit Reset klappt es nicht. Pin 10 (beim DIL-16)
-
Thread
STM32F1 Verständnis mit Registerbits
: "The HSEBYP bit can be written only if the HSE oscillator is disabled"? Widerspricht sich das nicht irgendwie? Und sollte ich dieses Bit setzen, wenn ich einen externen Quarz verwende oder ist das üblicherweise überflüssig
the HSE oscillator is disabled"? Widerspricht sich das > nicht irgendwie? Und sollte ich dieses Bit setzen, wenn ich einen > externen Quarz verwende oder ist das üblicherweise überflüssig, wenn man > sowieso den internen Takt deaktiviert? (S. 131, Ref. Man.) Häh? HSEBYP musst Du setzen,
-
Thread
Byte verbittet sich das Verbitten
gern bereit etwas Etabliertes zu verwenden. Meinst Du Boolscher AND-Operator a´la Registerbits setzen? Kenn ich. Aber wie überträgt Mann das auf die Aubfrage von Bits einer char- variablen?
gern bereit etwas Etabliertes zu verwenden. Meinst Du Boolscher > AND-Operator a´la Registerbits setzen? nicht setzen. Ein Bit wir dmit einer ODER Operation gesetzt. Mit einem UND kann man Bits löschen (also gezielt auf 0 setzen). Man kann daher ein UND dazu benutzen, alle nicht interessierenden
-
Thread
Bus per MISO MOSI
Fall muss das letzte Modul angesprochen werden. Das Datenpaket besteht nun z.B. aus: - 4x Start-Bit - 6x Bit für vertikale Adresse - 8x Bit für horizontale Adresse - 4x Bit für Prüfsumme - 4x Stop-Bit __________ 26 Bit (also 26 Takte je Datenpaket). Ich rechne nun mit 40 Takte, um Zeit für das
Fall muss das letzte Modul angesprochen werden. > Das Datenpaket besteht nun z.B. aus: > - 4x Start-Bit > - 6x Bit für vertikale Adresse > - 8x Bit für horizontale Adresse > - 4x Bit für Prüfsumme > - 4x Stop-Bit Besser: Alles in Bytes (je 1 Byte für Command, Zeile, Spalte, Wert, Checksum). Das
-
Thread
BCM flackert beim dimmen
bit 4 = 4351 Taktzyklen bit 5 = 8449 Taktzyklen bit 6 = 16639 Taktzyklen bit 7 = 33025 Taktzyklen Muss jetzt gehen, werde später etwas genauer durch deinen Code gehen. Vielleicht kommt da
Man muß die Bitzeiten aufsteigend ausgeben und nach dem Setzen der höchstwertigen Bitzeit das komplette Bitmuster updaten. Dann können nicht mitten drin falsche Bits entstehen. Das Main muß allerdings auch immer komplette Bitmuster erzeugen, ehe sie dann der
-
Thread
ISR Aussetzer durch Volatile-Variablen-Polling ?
einer Variable in einer interrupt routine und in main. s.o. > -Spielt es eine Rolle ob es ein 8-Bit oder >8-Bit Variable ist? Ja, der Zugriff muss atomar erfolgen. Dies ist bei AVR8 nur für 8-Bit primitiven DT gegeben. > -Müssen wir an dieser Stelle zwischen den AVR-GCC Versionen > unterscheiden
gelesen oder geschrieben werden kann (atomar gelesen/geschrieben werden kann). Beispiele: Beim AVR 8 Bit, beim ARM Cortex-M3 32 Bit, beim SPARC V8 32 Bit. Auch der Z80 mit 8 Bit :) Zweite Bedingung, die CPU/Compiler macht kein reordering an den relevanten Stellen, was ich bei diesen "einfachen" Maschinen
-
Thread
LCD alternativ anschließen
= temp1; LCD_PORT &= ~(1 << LCD_RS); // Register Select auf "Transfering Instruction Data" setzen temp1 = (temp1 >> 4) & 0x0F; // Oberes Nibble holen + Maskieren LCD_PORT = (LCD_PORT & 0xF0) | swap_nibble(temp1); // Daten Bits setzen LCD_enable(); temp2 = temp2 & 0x0F; // unteres
& 0xF0) | swap_nibble(temp2); // Daten Bits setzen LCD_enable(); _delay_us(42); } [/c]
-
Thread
Neue AVR-Tiny Generation, neue B-ATMegas, neue Entwicklungstools
>8-Bit bleibt für den Bastler das Mittel der Wahl in allen Projekten, die >keine 32 Bit Power benötigen. Nö, man kann auch die 8Bit Aufgaben mit 32Bit Power bewältigen.
Anomalie findet sich im unteren OSCCAL-Einstellbereich: Beim Weiterzählen ist die Taktänderung beim Setzen von Bit0 immer wesentlich kleiner als beim Rücksetzen. Für die Genauigkeit ist natürlich eine Verringerung der Abhängigkeit von Versorgungsspannung- und mehr noch von der Temperatur zwingend. Beides
-
Thread
Peripheral size 16bit
immer grad auch das was im Manual drin steht zu verstehen. Wenn das Peripheral size vom ADC immer 16bit ist und das PSIZE daher 16 bit lang (bits -> 01) ist, was muss ich dann im Register DMA_CPARx laut Punkt 1 unten tun? Ich meine, klar, dass ich eine Adresse angeben muss, aber in welchem Bereich kann
DMA_CCRx register 6. Activate the channel by setting the ENABLE bit in the DMA_CCRx register.
-
Thread
Attiny85 nach flashen nicht mehr erkannt, usbasp, OS X, avrdude
DDRB = (1 << PB1); // Endlosschleife for (;;) { PORTB |= (1 << PB1); // bit im Portregister auf 1 setzen => LED leuchtet _delay_ms(200); // eine halbe Sekunde warten PORTB &= ~(1 << PB1); // bit im Portregister auf 0 setzen => LED aus
richtig verstanden habe. Und mit dem -tuF Befehl kann man per "sck 1000" die Geschwindigkeit runter setzen und oder mit z.B. -B 4 dann neue Fuses setzen nach dem Löschen. Morgen kommt der neue/andere Programmer, der hat hoffentlich ne neue Firmware. Dann probier ich zum einen das Flashen von neuen Attiny's
-
Thread
Lichterkette auf Timer umbauen
) {} // Aufruffrequenz 0,25 Hz void zeit_abwarten() { MCUCR = BIT(SE) + BIT(SM1); // Power-Down wählen sleep_cpu(); // und stoppen bis WDT aufweckt } int main(void) { volatile uint16_t n; CLKPR = 0x80; CLKPR = 0x8; // Vorteiler
CPU-Takt = 31,25 kHz DDRB = 0x1f; // alle Pins als Ausgang und auf GND WDTCR = BIT(WDIE) | BIT(WDP3); // Watchdog-Intervall auf 4 s per Interrupt sei(); // ISR zulassen while(1) { PORTB |= 0x10; // PB4 Setzen n = PRO_STUNDE
-
Thread
AVR: Bit-Abfragen und -Zuweisungen an einzelnem Port
das 1 Bit zuätzlich setzen und dann das so manipulierte Byte wieder insd DDRB zurückschreiben. Der Effekt ist, dass bereits bestehende Bits in DDRB (die du so verschämt mit XXXXXX bezeichnet hast) garantiert
willst du haben! Du möchtest dich davon befreien, dass du dir merken musst, wie die restlichen XXXXXX Bits gerade stehen, wenn du das Bit 0 auf 1 setzen willst. Denn solche Dinge sind ansonsten sehr fehleranfällig. Heute weißt du noch, dass du bei DDRB = 0b00000001; die höherwertigen Bits alle auf
-
Thread
STM32G474, SPI2 läßt sich nicht einschalten
Jogibär PS: Bin auch kein Fan von HAL Ist ein ODER nicht richtig? Du willst doch zusätzlich ein Bit setzen? 0x40 ist schon Bit Nr. 6
mit SET_BIT(pSpi->CR1, (1 << SPI_CR1_SPE_Pos)); tatsächlich setzen!!! Wenn ich dagegen erst das CR2-Register beschreibe und dann die Konfiguration von CR1 und das Einschalten des SPI-Devices mittels einer
-
Thread
STM32 Shift operationen
Ja, aber es erfüllt seinen Zweck. Der Code, der hinten 'rauskommt, ist i.d.R. effektiver, als ein Bit im Register mit "Register |= Bitmask" zu setzen. Und letzteres ist nicht so einfach als "atomic" machbar. Wenn Ironie heißen soll, daß die Lösung sch**** ist, dann schlag halt 'was besseres vor!
noch 2 Fehler: [code] logwriter.cpp(68): error: #18: expected a ")" return val & (T { 1 } << bit) ? bit : log2 (val, bit-1); logwriter.cpp(68): error: #29: expected an expression return val & (T { 1 } << bit) ? bit : log2 (val, bit-1); [/code] Niklas G. schrieb im Beitrag #5591264:
-
Thread
Bits bzw Lampen an
// (7) /* wird nie erreicht */ return 0; // (8) } [/c] nun setze ich doch PORTB = 0b11111110;, d.h. das PB0 steht auf Masse, PORTB = 0b111111110; bedeudet doch dann PB0 = + und PB1=Masse, PORTB = 0b11111011; -> PB2 = Masse alles andere vcc. Liege ich hier falsch
Pfeiffy schrieb im Beitrag #4981351: > nun setze ich doch > PORTB = 0b11111110;, d.h. das PB0 steht auf Masse, > PORTB = 0b111111110; bedeudet doch dann PB0 = + und PB1=Masse, das sind 9 Bits und es ist falsch; Du meinst wohl PORTB = 0b11111101
-
Thread
Attiny25 Interrupt wird (selten) ingnoriert
man etwa auf sowas: Ok, hast Recht, so gehts. Warum man aber für die CTC-Funktion eines der PWM-Bits setzen muss, obwohl es extra ein CTC-Bit gibt, erschliesst sich mir nicht direkt und ist auch nicht besonders logisch. Egal, jetzt gehts, war sowieso eine Ausnahme, dass ich den "besseren" T1 als schnöde
H.Joachim S. schrieb im Beitrag #5865596: > Warum man aber für die CTC-Funktion eines der PWM-Bits setzen muss, > obwohl es extra ein CTC-Bit gibt, erschliesst sich mir nicht direkt und > ist auch nicht besonders logisch. Da gebe ich dir sowas von vollkommen Recht, das glaubst du garnicht.
-
Thread
AD-Wandler 8 bit
oder das ADLAR Bit setzen und die hast direkt die 8 Bit im ADCH Register stehen ohne schieben oder teilen zu müssen.
Thomas O. schrieb im Beitrag #2257749: > oder das ADLAR Bit setzen und die hast direkt die 8 Bit im ADCH Register > stehen ohne schieben oder teilen zu müssen. Ja, wer auf den Link klickt, bekommt das auch raus... ;-)
-
Thread
Grundsatzfrage zu mehreren Interrupts im Programm
>OK - das löst das Problem wenn ich beim Start der Interupt-Routine A das >I-Bit lösche und am Ende wieder setze. Gelöscht wird das I-Bit im SREG automatisch durch die Interrupt-Logik des Controllers, in dem Moment, wo ein Interrupt gehandelt wird. Das Setzen des I-Bits obliegt
AVRFan wrote: >>OK - das löst das Problem wenn ich beim Start der Interupt-Routine A das >>I-Bit lösche und am Ende wieder setze. > > Gelöscht wird das I-Bit im SREG automatisch durch die Interrupt-Logik > des Controllers, in dem Moment, wo ein Interrupt gehandelt wird. Das > Setzen des I-Bits
-
Thread
GPIO schalten
jetzt einen anderen GPIO als CS verwenden will. Wie gesagt: 1. verwende irgendeinen Pin als SS# und setze den auf low 2. starte einen SPI-Transfer und ignoriere den dort spezifizierten SPI-Pin 3. setze den irgendeinen SS# Pin wieder auf high Fertig. Denke über jeden der 3 Schritte sorgfältig nach.
oder wie kann ich z.B meinen MISO Anschluss von Gpio 9 auf z. B GPIO22 setzen
-
Thread
PIC32 Oscillator Mode
mit der zaubertastenkombination [stgr]+[F] und "FNOSC" wurde mir das hier angezeigt: bit 2-0 FNOSC<2:0>: Oscillator Selection bits 000 = Fast RC Oscillator (FRC) 001 = Fast RC Oscillator with divide-by-N with PLL module (FRCDIV+PLL) 010 = Primary Oscillator (XT, HS, EC) (1) 011 = Primary
verwendet und dadurch das Taktsiganl einspeisst. Also muss ich ihn für ein 8MHz quarz auf XT setzen? vielen Dank für die Antworten!
-
Thread
Induktiver Positionssensor - Fragen dazu
in 1024 gleiche Teile geteilt. Beispiel: wenn die Referenzspannung 2,048V beträgt, so macht jedes Bit Deines ADC genau 2,048V/1024bit = 2mV/Bit aus. Und wenn die Referenzspannung 1,1V beträgt, so macht jedes Bit halt 1,1V/1024bit = 1,0742mV aus. Das bedeutet aber auch: Du kannst (wenn Du keinen
aus, wieviel Schritte 4% bei einem 16-Bit Wandler sind und wieviel Bits das entspricht - dann weißt Du direkt, wieviele Bits Du (vom LSB aus zählend) in die Tonne treten kannst. Will sagen: 16-Bit Auflösung heißt noch lange nicht 16-Bit
-
Thread
µC Wahl für meine Dipmlomarbeit
Takte zähle die ich bekomme, dann hätt ichs ja schon oder nicht? Bei maximal 60 Zähnen wäre doch 6bit ausreichend. das hat ja nichts mit den 25ns zu tun. Nur die Geschwindigkeit würde doch die 25ns beeinflussen können. Schließlich meine ich mit den 6bit nur die anzahl der Zähne die der Zähler drauf
> das "Rechteck" Signal aus wie ne Rampe ;-). Hast recht, aber ich könnte doch einen Trigger setzen. Wenn man sich das SIgnal anschaut, kann man ja sehen, dass es ziemlich gut auf Null bleibt bis der Nulldurchgang kommt. Ich könnte einen Trigger auf 0,1 Volt setzen also bräuchte ich nicht bis zur
-
Thread
LCD DISPLAY FLACKERT
Hallo, Kim schrieb im Beitrag #4157768: > ich benutze den 4-Bit-Modus und habe DB4...DB7 vom LCD-Display mit > RG6...RG9 am Controller verbunden. Wenn Du im 4 Bit Modus bist, muss Du am Display die Eingänge 0...3 auch auf Masse legen, sonst kann es an diesen
(letzten 4 Befehle) schicke ich immer zuerst die oberen 4 bits und daraufhin die unteren 4 bits (0x28: zuerst 0x02 dann 0x08) nach dem senden warte ich 45us. Dann ist das Display fertig initialisert. Folgend schicke ich 0x0F, damit ich den Cursor an der ersten
-
Thread
Assembler wo sind eigentlich diese ganzen Genies??
mir waren Mikrokontrolleranwendungen meistens sehr zeitkritisch. Da kann man um z.B. einen Port zu setzen, nicht noch "Abstraktionsschichten" drüberbasteln. Um ein Bit an einen Port zu schreiben, kann man sich oft diesen Arduino-Müll nicht erlauben: [c] void digitalWrite(uint8_t pin, uint8_t val) {
waren Mikrokontrolleranwendungen meistens sehr zeitkritisch. Da > kann man um z.B. einen Port zu setzen, nicht noch > "Abstraktionsschichten" drüberbasteln. > Um ein Bit an einen Port zu schreiben, kann man sich oft diesen > Arduino-Müll nicht erlauben:void digitalWrite(uint8_t pin, uint8_t val)
-
Thread
Zwei bis drei Fehler im Programmcode
interpretiert werden. Das sollte aber mindestens eine Warnung vom Compiler geben! Der Vorschlag, das I-Bit in SREG von Hand zu setzen, ist nicht gut.
Verhalten führen kann. Deswegen: Johann L. schrieb im Beitrag #3632352: > Der Vorschlag, das I-Bit in SREG von Hand zu setzen, ist nicht gut. Dafür hat Atmel den Controllern extra 2 Befehle spendiert, die in einem Zyklus abgehandelt werden. Man sollte Anfängern nicht solche Vorschläge machen
-
Thread
UV-Laserdrucker
low-Impulse der gewünschten Frequenz. Habe jetzt kurzerhand meinen ATTINY2313 auf ganz doof gestellt: Bit setzen, Bit löschen, 16 NOP's, relativer Sprung zum Bit setzen. Die damit erzeugte Impulsform (bei 20 MHz) führt zu einer stabilen (ganz wenig Jitter) Drehzahl knapp unterhalb des gewünschten Bereichs
Dieter Frohnapfel schrieb im Beitrag #4088036: > Die 32-Bit-Version für den Zähler habe ich auch schon angedacht - da > muss ich aber auch 32-Bit-Werte liefern und verarbeiten können (in > vertretbaren Intervallen). Mit einer 8-Bit-CPU AT... kann ich da wenig
-
Thread
Watchdog Reset Fehler
wdh.h auf manuellen weg. > > Ohne WDCE? naja muss man testen. Aus dem Datenblatt: > This bit is used in timed sequences for changing WDE and prescaler bits. > To clear the WDE bit, > and/or change the prescaler bits, WDCE must be set. prescaler wird ja nicht gesetzt.
Wenn ich ein Haken in WDTON setze ist die LED nach wie vor dauerhaft aus.
-
Thread
RTC(Overflow-Int.) und Output-Compare Int. mit einem Timer
Timer nur das macht. ------|Ovfl|------|Ovfl|------|Ovfl|------ Kann ich dann einfach das OC-Bit setzen/löschen, oder muss ich da iwas beachten? Grüße Marcel
Marcel schrieb im Beitrag #1755702: > Kann ich dann einfach das OC-Bit setzen/löschen, oder muss ich da iwas > beachten? Genauer gesagt, kann ich ohne den Timer anzuhalten: TIMSK2 &= ~(OCIE2A); bzw. TIMSK2 &= ~(OCIE2A); schreiben? (Das TOIE2-Bit ist
-
Thread
STM32: Bitbanding für Arrays?
gut aus, probiere ich mal aus! ee_fat [index / entrySize] = (ee_fat [index / entrySize] & ~(1 << bit)) | (value << bit); Nicht ganz einfach zu verstehen... erst Bit löschen mit & ~(.. , dann das neue mit ODER danach einmaskieren? Geht das hier auch noch eleganter? [c] /* Bit setzen */ LED_BitStream |= (uint64_t)(1ull << pos ); /* 1 Bit evtl. blinken lassen */ if (blink) /* Setze korrespondierende Position im Blink Stream */ LED_BitStatus |= (uint64
-
Thread
Wie einen 1-Bit Speicher realisieren
Bevor man da ein bistabiles Relais einbaut, kann man das Bit auch einfach in ein FRAM schreiben - da würde man dann eben "einige" Bits verschenken.
nicht?) rumfliegen hat, dürfte ein 1-Bit-Kernspeicher diesen Preis unterbieten.
-
Thread
Menü programmieren
springen */ break; case 2: /* Ventil */ if(T_UP) {AUF=1; P5OUT &=~BIT5;} else {AUF=0; P5OUT |= BIT5;} if(T_DOWN) {ZU=1; P3OUT &=~BIT0; if(ADC12MEM3 > 100) {hub=1;}} else {ZU=0; P3OUT |= BIT0;} break;
Zeilen müssen etwa so angepaßt werden. [c] #define KEY_PIN P2IN #define KEY0 BIT7 #define KEY1 BIT6 #define KEY2 BIT5 #define ALL_KEYS (KEY0 | KEY1 | KEY2) #define REPEAT_MASK (KEY1 | KEY2) // repeat: key1, key2 get_key_press(KEY0)
-
Thread
ATtiny, Prescaler für Timer0 syncronisieren
Worten erklären, wie man den Vorteiler für Timer/Counter0 eines ATtiny13 zurücksetzt? Erst TSM-Bit setzen, dann PSR10 setzen und danach TSM-Bit wieder löschen oder geht das auch in einem Rutsch? Danke im Vorraus! Michael
Zählstand fest. Nur das Bit PSR10 zu setzen bringt doch keine wirkliche Synchronisation oder ? Zum richtigen Synchronisieren muß ich also erst das Bit TSM setzen und danach das Bit PSR10 oder ? Wenn ich nun nach der oben
-
Thread
WinAVR Fehlermeldung: Error: number must be positive and less than 32
, das geht nicht. Und selbst wenn es prinzipiell gehen würde, wäre es nicht das Gleiche, wie das Setzen eines Bits.
das geht nicht. Und selbst wenn es prinzipiell gehen würde, wäre > es nicht das Gleiche, wie das Setzen eines Bits. Ja, gleich zwei Fehler ;) Ich tippe mal auf: in r0, SPCR ori r0, (1<<SPE) out SPCR, r0
-
Thread
Zeichnen eines Punktes mit LCD_Plot_Point
─ ┴────┴ ─ ─ ─ ┴────┴────┘ [/pre] Um ein einzelnes Pixel an einer beliebigen x-y-Position zu setzen, muss in ydots genau 1 Bit an der gewünschten y-Position gesetzt sein. Um zu verhindern, dass beim Schreiben dieses Bitmusters die vertikal benachbarten Pixel gelöscht werden, muss das bestehende
Yalu X. schrieb im Beitrag #5935034: > Um ein einzelnes Pixel an einer beliebigen x-y-Position zu setzen, muss > in ydots genau 1 Bit an der gewünschten y-Position gesetzt sein. Um zu > verhindern, dass beim Schreiben dieses Bitmusters die vertikal > benachbarten Pixel gelöscht werden, muss das bestehende
-
Thread
ATMEGA 32 Port als Eingang und als Ausgang
Tutorial (http://www.mikrocontroller.net/articles/AVR-Tutorial:_LCD) habe ich gelesen, dass man durch Setzen oder nicht setzen von RW unter anderem das Busy Flag auslesen kann. Das kommt ja, wenn man das LCD im 8bit betrieb laufen lässt auf Port7 des LCD. Ich würde das LCD auch gerne im 8bit Modus laufen
kommen: void lcd_command( uint8_t data ) { LCD_ADD_PORT &= ~(1<<LCD_RS); // RS auf 0 setzen LCD_ADD_PORT &= ~(1<<LCD_RW); // RW auf 0 setzen LCD_DDR = 0b11111111; lcd_out( data ); // Bits Senden LCD_DDR = 0b00000000; LCD_ADD_PORT |= (1<<LCD_RW);
-
Thread
Simple software UART, sieht jemand den Fehler?
(parity oder stopbit) { //if(ucBitCount == 0) //{ // OCR0A = TIMER_VALUE; //Timing auf ein ganzes bit setzen //} if(ucBitCount < 8) //Wir lesen nun die Bits ein { if(RX_PIN)
setzen mit: OCR0A = TIMER_VALUE * 2; Dann muss ich auch folgenden Code einsetzen: [c] if(ucBitCount == 0) { OCR0A = TIMER_VALUE; //Timing auf ein ganzes bit setzen }
-
Thread
Verzweifelt keine Anzeige am LCD
dran um diesen Codeteil zu verstehen. sbi PORT_LCDen,LCDen cbi PORT_LCDd7,LCDd7 ;Bit 7 löschen sbrc tmp0,3------> Bit3 ; Den nächsten Befehl überspringen wenn bit3=0 sbi PORT_LCDd7,LCDd7 ;Bit 7 setzen cbi PORT_LCDd6,LCDd6 ; Bit 6 löschen sbrc tmp0,2------->Bit2 ;den nächsten Befehl überspringen wenn bit2=0 sbi PORT_LCDd6,LCDd6 ;Bit sechs setzen cbi PORT_LCDd5,LCDd5 sbrc tmp0,1--------------------------->Bit1 sbi PORT_LCDd5
-
Thread
AD5292: reagiert nicht auf SPI
Albert C. schrieb im Beitrag #4520728: > Das erste Bild ist > das Kommando 0x700 (setzen des Schleifers). Das zweite das Kommando > 0x1802 (Setzen der Schreibaktivierung, natürlich nicht in dieser > Reihenfolge ausgeführt). Vielleicht einfach mal das ausführen was im Datenblatt steht
ich würde wie folgt proggen: SCK ist Low REST auf High Sync auf Low Datum anlegen (Bit) SCK toggeln nächstes Datum SCK toggeln wenn alle bits raus dann Sync auf High setzen evtl. mach es mal zu Fuss ( Software SPI ) ist ja nur Pin wackeln. ICh muss mal schauen ich habe mal was
-
Thread
notwendige ADC Auflösung bei bekanntem Rauschen
Steffen schrieb im Beitrag #4959958: > ich am Ende ggf. den 16bit Wandler einsetze oder ein paar Euro spare und > auf zB 14bit gehe. Nimm 16.
Das ist doch keine Diskussionsgrundlage. Es ist ja in Stückzahl nicht unwahrscheinlich, dass man 14bit Wandler sehr sehr viel günstiger bekommt als 16bit (ggf. einfach weil die 14bit schon in großer Stückzahl gekauft werden, die 16bit aber nicht). Dann braucht es schon mehr als ein Bauchgefühl um zu
-
Thread
Tester gesucht für FPGA-Projekt
Zum Setzen der Blockmarken siehe http://www.mikrocontroller.net/topic/297603#3276101
Beitrag #3276354: > PS: Vergiss nicht vor Rückkehr in die Seite C > den Cursor an den Textanfang zu setzen. Jetzt geht alles etwas durcheinander, deshalb nochmal: Vor =MPRO den Cursor an den Textanfang setzen, Vor =ENDM den Cursor unter den Quelltext setzen.
-
Thread
STM32F730R8T6 top P/L, crashkurs fragen
loslaufen); oder bitte kurz beschreiben welche signale benötigt werden 2. Wie JTAGEN und welche fuses setzen, damit er auf 216mhz mit internem osc losläuft? 3. Oder geht dies beim STM32 direkt über den USB (programieren und debug fuses setzen)? 4 Wie am einfachsten programieren und debuggen? 5.
Beitrag #6007239: > Habe gerade den STM32H743ZIT6U von der H serie gefunden. Dieser hat nen > 16Bit ADCs welche ansonsten je ca 5 usd kosten separat. Ja schon, aber die 16Bit da rauszuholen ist nicht einfach. Die CPU streut da tlw rein, für 16Bit musste auch schon beim layout aufpassen. In einem
-
Thread
PIC programmable Bits
funktioniert hat... Leider habe ich mich nun aber etwas zu früh gefreut. Ich kann zwar so einige Config Bits setzen, aber komischerweise nicht alle. __CONFIG(FOSC_INTOSC); __CONFIG(FCMEN_OFF); funktioniert. Sobald ich aber noch einen weiteren __CONFIG() Befehl dazu schreibe, bekomme ich eine Fehlermeldung
CONFIG-Pragmas angeben, wie der µC CONFIG-Wörter hat, steht auch im Datenblatt (siehe oben). Die Bits, die zu einem Word gehören, werden mit "&" verkettet, siehe oben oder als Bitfolge o.ä. angegeben.