-
Thread
Abstand zwischen zwei Flanken wird nicht korrekt ermittelt
beide Interrupts zeitgleich anliegen, wird daher zuerst INT0 > aufgerufen, so dass deine oberen 8bit von den Pseudo-16bit veraltet und > somit falsch sind. Ich habe jetzt im Timer-INT ebenfalls die anderen Interrupts gesperrt: [c] ISR(TIMER0_OVF_vect) { uint8_t tmp_sreg; tmp_sreg =
Identifizierung des Paketbeginns ist das völlig ausreichend. Und das LowByte kann ich für die Erkennung der einzelnen Bits nutzen, das passt vom Wertebereich her! TOP, vielen Dank für eure Hilfe! Viele Grüße Klaus P.S. Ich würde normalerweise auch einen 16-Bit-Timer für die Geschichte verwenden. Und auch
-
Thread
AVR Atmega ports register
Andererseits ist es einfacher und schneller einen Port abzufragen/auszugeben als jedes Bit einzeln. Für die Shift Register (74...) könnte ein Pin verwendet werden der ein Hardware Shift Register enthält (Spi,Uart,I2c) Das macht die Ein/Ausgabe weniger aufwendig.
nur bei 200mA wird aber wahrscheinlich aber größer werden. Bzgl. der Schnelligkeit der Input Abfrage: Über die direkte Abfrage der einzelnen Ports bzw Register an. (DDR, PORT, PIN) habe ich erheblich an Reduzierung der Zykluszeit gewonnen (Der Faktor lag fast im 8x fachen Bereich.) Ferner habe
-
Thread
Analoge Daten, wer kennt noch welche?
die primitivste Form der Fehlerkorrektur! Und ja, die Bibel war schon vor 2000 Jahren digital! Einzelne Zeichen aus einem endlichen Alphabet. Und endlicher Wortschatz. Damit sind nicht eventuelle Bilder gemeint!
Flusser "Krise der Linearität". Spontan keine andere Version gefunden: https://monoskop.org/images/c/cd/Flusser_Vilem_Krise_der_Linearitaet.pdf
-
Thread
CAN-Bus Management Senden/Empfangen
#6365789: > Sollten meine Daten vielleicht mehr werden bzw. die Erfordernis > eintreten, jede einzelne Nachricht bearbeiten zu wollen/müssen, müsste > ich mir also Gedanken über eine gute Implementierung eines Ringpuffers > machen. Dein CAN ist jetzt wie schnell? 100kBit/s? Licht- und Rolladen-Steuerung
lange Strecken, also muss die Datenrate eher niedrig angesetzt sein. Edit: bäh, überlesen, also 125kBit/s. Überlegt mal, wie lange eine einzelne Nachricht auf dem Bus unterwegs ist. Eine 1-Byte Botschaft mit 11 Bit Identifier ist schon mindestens 44 Bits lang. Das sind 352µs bei 125kBit/s, weniger
-
Thread
DS18B20 1-Wire Implementierung - Timing-Probleme
Ich bin nun an einem recht frustrierten Punkt: Ich kann zwar den internen 64-bit ROM-Code auslesen (bzw. das was mir der Logic-Analyzer anzeigt sieht gut aus) - allerdings werden einzelne Bits falsch eingelesen (obwohl im Logic Analyzer alle 1er Bits bzw. 0er Bits identisch aussehen
dir das Leben schwerer machst als nötig. Das einzig wirklich interessante Timing ist das eines einzelnen Bits.
-
Thread
Datenverarbeitung einer CSV Datei
ja so aus: Timestamp, SpannungSensor1,SpannungSensor2, ... Gibt es einen Weg (zum Beispiel in C#, bevorzugt aber im LabVIEW) diese Daten aus den Zeilen einzeln auszulesen. Also immer bis zum nächsten ","?
. Grafana als grafische Oberfläche auf. InfluxDB unterstützt auch die Datenkomprimierung bei der Abfrage oder um alte Daten zu packen. CSV kann man natürlich auch einfach in C# verarbeiten, Zeile lesen und mit split String Funktion in Teile zerlegen lassen. Nach Beispielen googlen dürfte reichlich
-
Thread
Genesys 2 (Xilinx Kintex 7): Audio-Codec Implementierung und Filteranbindung
ich also die Bits für A? Das Vorzeichen ist das MSB, also das Bit 6 aus Byte 0. Das kann man abfragen durch Maskierung, es hat den Wert 64. Wir machen also eine AND Verknüpfung: Byte_0 & 64. Ist das Bit 6 gesetzt
-bit input: A data input .B(B), // 18-bit input: B data input .C(C), // 48-bit input: C data input .CARRYIN(CARRYIN),
-
Thread
STM32F407 UART, PuTTY, USB to TTL FTDI adapter. Probleme
zusammen mit einem FTDI FT232RL Klon und PuTTY. Der Code ist sehr simpel: Es soll beim Starten des uC lediglich ein einzelnes Byte vom uC zum PC gesendet werden. Was ich jedoch aufm Terminal bekomme, ist nur Murks, und immer derselbe Murks unabhängig vom Byte, das gesendet werden soll. Anbei Code und
man die UART-Register sofort benutzen oder muss man dazwischen einige wenige Taktzyklen warten? [c]RCC->APB2ENR |= (1<<RCC_APB2ENR_USART1EN_Pos); USART1->BRR = 0xD03;[/c] Darf man ins DR schreiben ohne vorher das SR zu lesen? Normalerweise muss man immer erst das TXE-Flag abfragen? Und noch
-
Thread
Batteriewahl und Powermanagement
für Solar > verwenden? Li-Ion fällt ja dann raus. Seh' das nicht so binär mit dem Laden unter 0°C. Laut Datenblatt darfst du LG,Samsung,Sony Li+ Akkus bei 1°C schnell laden aber bei -1°C gar nicht mehr laden.. Ich hab mich für eine C/100 Ladung bis -10°C entschieden.
weiterhin die Last vom Akku trennen können. Entweder über einen Timer und einen MOSFET oder einen kleinen uC der dann auch Sensoren abfragen kann, einen MOSFET schaltet und dem ESP das Enable gibt. Wobei der kleine uC mit Sensoren dann auch dauerhaft Strom zieht. Weniger, klar, aber trotzdem mehr wie eine Lösung
-
Thread
Interrupt Flag
aufgetreten... } // Neue Flags abfragen flags = INTFLAGS; } while (flags != 0);[/c] Wenn während der Bearbeitung neue Interrupts auftreten, muss die ISR nicht verlassen und erneut betreten werden (langsam), sondern nur direkt die
, er kann die meisten Interruptbits nicht atomar löschen. D.h. liest man ein IO-Register, setzt einzelne Bits auf 0 und schreibt es wieder zurück, können in der Zwischenzeit eingetroffene Interrupts im selben IO-Register verloren gehen. Daher der Umweg, daß nur gesetzte Bits gelöscht werden, nicht gesetzte
-
Thread
arduino oder GCC Programmierung
5 millisec delay in between. delay(5); ich finde das so nach jedem Schreibvorgang besser [c] void voidMyI2C_EepromWaitReady(void) { Wire.setClock(I2C_CLOCK_LOW); // Wait until EEPROM gives ACK again. // this is a bit faster than the hardcoded 5 milli do { Wire.beginTransmission
schrieb im Beitrag #6339141: > ich finde das so nach jedem Schreibvorgang besser > void voidMyI2C_EepromWaitReady(void) { > Wire.setClock(I2C_CLOCK_LOW); > // Wait until EEPROM gives ACK again. > // this is a bit faster than the hardcoded 5 milli > do { > Wire.beginTransmission((
-
Thread
Ein Füllstandmesser auf Einperlungsbasis
/350mA) um die Magnetventile und andere 12V Lasten zu betätigen. Das spart viel begrenzten IO des uC. Der 74HC595 steuert den Schrittmotor, die Frontplatten LEDs und Tasten Scan. Eine TIMER2 geführte ISR erledigt das im Hintergrund ohne den normalen Programmablauf zu stören. Das uC Programm ist so geschrieben
guy.carpenter.id.au/gaugette/2012/02/16/using-the-switecx25-library/ Nachtrag: Auch das Datenblatt stammt von G.C.
-
Thread
Gefunden Oder: Material zum Nulltarif
Eine Magnetscheibe mit 8 mm-Loch an einer Stelle kann ein Datenretter wiederherstellen (bis auf die Bits im Loch natürlich). Eine deren Inhalt überschrieben wurde (format c: /u und dann mit mp3s vollkopieren) stellt niemand wieder her.
auskratzen, wenn ihr wüsstet, was "wir" hier alles an EDV Geräten in den Elektroschrott schmeißen. [c] wir = "\231ffentlicher Dienst"; [/c]
-
Thread
STM32 UART buffer rx
dazwischen gekommen ist? Mit sowas muß man doch bei einer seriellen Strippe zwischen dem PC und deinem µC auch rechnen. Normalerweise schreibt man sich einen Treiber für den UART, den man abfragen kann, ob er denn Empfangsdaten hat und der die empfangenen dann zeichenweise herausgibt. Dann ist es für
Mathias G. schrieb im Beitrag #6331322: Ganz schön verquer. Man braucht kein Array, wenn man nur einzelne Zeichen per HAL liest. Es gibt einen Adressoperator [c] #define BUFFER_SIZE 10 uint8_t empfangen[BUFFER_SIZE]; void USART1_IRQHandler(void) { char rx; HAL_UART_IRQHandler(&huart1);
-
Thread
PPS5330 Labor-Netzteil hack
newest 4-bit CPU core, SAM47 (Samsung Arrangeable Microcontrollers). With an up-to-896-dot LCD direct drive capability, flexible 8-bit and 16-bit timer/counters, and serial I/O interface, the S3C72P9 offers an
function and in pin configuration except that S3C72P9 have a 32,768 ×8-bit ROM, 1056×4-bit RAM, 12 common selectable and LCD contrast control function. OTP The S3C72P9 microcontroller is also available in OTP (One Time Programmable) version, S3P72P9
-
Thread
R&S Logiktastkopf f. HMO1002 vs. RTC1000
des Messgeraetes. Für Analogentwicklung mag das wichtig sein. Da würde ich mich dann eher nach 10-Bit-Geräten umschauen. Für eine SPI oder PWM, reichen auch 8 Bit Auflösung...
P.S.: Und dem TO ging es um die Logiktastköpfe, also 1-Bit Auflösung...
-
Thread
STM32 / Probleme mit Ringbuffer Implementierung
#6317823: > Beim Overflow macht der Zähler einen Sprung und überspringt Elemente. > > Z.B. index 8-bit, size=10: 250%10 = 0, ..., 255%10 = 5, 0%10 = 0 upps. Ach so, du darfst natuerlich nicht einfach weiterzaehlen und in den Overflow kommen. [c] index = ++index % size; [/c] leo
Es gibt µC die atomar nur 8 Bit lesen (das hier Entscheidende!) können -> Ja. Außerdem gibt es Fälle in denen man mehr als 8 Bit benötigen würden -> Ja. Wie oft hat man Fälle in denen beidens gleichzeitig zutrifft
-
Thread
Deep Learning in GPUs - Addierer oder MACs?
bei 1:26:47 eine schöne Aufstellung vom Energieverbrauch pro Rechenoperation. Integer: Add 8Bit: 0.03pJ Add 32Bit: 0.10pJ Mul 8Bit: 0.20pJ Mul 32Bit: 3.00pJ Floating Point: Add 16Bit: 0.40pJ Add 32Bit: 0.90pJ Mul 16Bit: 1.00pJ Mul 32Bit: 4.00pJ Wenn man jetzt mal annimmt, dass
5.000 TBps! (was kam noch gleich nach "Terra"?) Auf die GPUs übertragen heisst das, dass die einzelnen Blöckchen vorort mehr eigenes RAM brauchen also z.B. 128 parallel beschreibare 32-Bit-Register, die man kaskadieren oder parallelisieren kann, um 256Bit-Register zu haben und nochmal ein weiteres
-
Thread
Arbeitet ihr lieber mit SPI oder I2C Bauteilen?
habe ich ein EA OLED mit SPI und I2C. Da kann man zwar immer SPI mit 8 Bit Worten machen, dafür muss nach dem ersten 8 Bit Wort (5 Einsen + R/C,W.. Bit) jedes Datenbyte auf zwei 8 Bit Worte aufteilen (je vier Bit). Grauenhaft, für DMA muss
wird geprüft, ob eine Sendeanforderung anliegt, d.h. das STA-Bit wurde gesetzt, aber der AVR hat sich intern verklemmt und sendet trotz freiem I2C-Bus kein Start. Die AT89C51 mit I2C sind ähnlich buggy, wie die AVRs. Da hat wohl die 8051-Abteilung von den AVRs
-
Thread
Frage zur Tasterabfrage
Code wird der ganze PORT D Überprüft/ausgewertet/abgefragt. Ich würde gern wissen wie man ein einzelnes Bit aus PORT D überprüft/auswertet/abfragt. P.S. Wenn man den µC weg lässt wie du schreibst, nimmt man da vorzugsweise Leiterbahn oder eher Draht ?
Pull-up-Widerstände von etwa 20 kOhm nach High. Wenn die Taster geöffnet sind, erhält man so eine Eins, sind einzelne Taster geschlossen erhält man für diese eine Null. Das steht im Datenblatt des ATMega328 Prozessors. Statt den ganzen Port abzufragen, kann man auch einzelne Bits abfragen. Dazu einfach eine Beschreibung
-
Thread
Mit 3.3V Mikrocontroller 5V schalten
dann zu überlegen, ob man den tatsächlichen Ausgabestatus der Schieberegister ggfs. auch nochmal abfragen und damit gegenchecken könnte, um bei Nicht-Übereinstimmung des gesendeten Bit- bzw. LED/Relais-Patterns nochmal komplett alle Bits neu durchzuschicken...wie könnte man das lösen ? Also als grobe
> Da müsste man doch dann eigentlich andauernd in minimalen > Zeitintervallen neu den Zustand abfragen und alle 54 Bits (zzgl. ggfs. 2 > "Leer-Bits", um die 7x8 = 56 voll zu machen) für den ganzen > Schalterblock durchjagen und das "Ergebnis" auswerten, oder ? Ja. Dazu solltest das Timing abschätzen
-
Thread
Oszilloskop Einstellung SPI Protokoll
bin ein Hantek" das es in den Ohren klingelt. Dann geht es bestimmt auch noch was billiger als beim C.
sein? Irgendein Wichtigtuer hat mir doch hier erklaert SPI waere ein genauso definierter Bus wie I2C und 1Wire. :-D Ich kann nur empfehlen sich das genau auf dem Oszi anzuschauen und Bit fuer bit mit dem Datenblatt des ICs zu vergleichen. Ausserdem mindestens einmal richtig reinzoomen. Es gibt falsche
-
Thread
DOGM-204 Problem mit Steuercodes
= 0b0101_0111 ; (0x57) Booster on, Kontrast C5 und C4 .EQU DSP_INIT_CONTRAST = 0b0111_0010 ; (0x72) Kontrast C3:C0 .EQU DSP_INIT_FCTSET3 = 0b0011_1000 ; (0x38) Function Set, 8 Bit, RE=0, IS=0 .EQU DSP_INIT_DSP_ON = 0b0000_1100 ; (0x0C) Display on, Cursor off, blink off [/avrasm] Die einzelnen Zeichen werden in einen Buffer geschrieben und dann per Interruptroutine zeichenweise auf dem SPI ausgegeben. Wie gesagt, die Textausgabe
-
Thread
Roboter (Spielzeug) per Fernbedienung steuern.
/Zaehlregister vorladen mit FF zum Sofortstart sei(); // Set the I-bit in SREG /* --- loop --- */ while (1) { } return 0; } Kann mir bitte jemand helfen ?
das *BREAK* ; nicht am Ende der einzelnen CASE-Anweisung. Gruß Pucki
-
Thread
[Ada] Record Representation Clauses - Wert eines "Records" in einem Zug füllen?
zu unerfahren bin. Ich will einen Datentyp (eine "Record" 32Bit breit) erzeugen und beispielsweise als 4x8Bit Datentyp benutzen. Das geht ja (zumindest die erste meiner Anforderungen) seit mind. Ada95 über die "Record Representation Clauses". - Analog dazu in C
BYTE_4 at 0 range 24 .. 31; end record; [/VHDL] Wenn ich die Größe des Records abfrage, bekomme ich als Antwort 32 (Bit) zurück geliefert. Das geht also schon einmal :-) Jetzt würde ich aber diesen Record einen 32Bit Wert zuweisen. [VHDL] Dat: Data := 2#1010_1010_0101_0101_1010
-
Thread
LCD Busy Flag Abfrage im 8 Bit Modus - die zweite
ein LCD-Zugriff mit Delay durchgeführt (das geht ja laut TO) und danach noch einer per BusyFlag-Abfrage. Dann würde ich mir das ansehen. Ich vermute, das nach dem Ansteuern des Displays das Busyflag noch nicht gesetzt ist, aber der µC das bereits als nicht-mehr-gesetztes Flag auswertet und weiterläuft
ich das busy flag, damit ich im Betrieb "volle Kanne LCD" fahren kann. Verwende nobs zwischen den einzelnen Befehlen, die kannst du später Häppchenweise wieder raus nehmen und testen ob es immer noch funzt. 1. R/W lo schalten, dadurch geht das LCD auf Input. 2. den µC-Port auf Input schalten 3. nops
-
Thread
Welche CPU für Büro PC?
Peter D. schrieb im Beitrag #6286891: > Naja, bei 2GB muß man natürlich W10/32Bit installieren, dann geht das > auch. Soweit ich weiß gibt es das nicht mehr in 32bit.
Stefan ⛄ F. schrieb im Beitrag #6286894: > Soweit ich weiß gibt es das nicht mehr in 32bit. Das Media-Creation-Tool bietet 32 Bit noch an, ist wohl schlecht informiert das Ding.
-
Thread
Computersicherheit 2020
viel früher auf, die UAC Abfrage ist bei denen Gelb hervorgehoben. Ein Nachteil ist leider auch, dass die UAC Abfrage mit diesem Account ohne Abfrage des PW erfolgt. Das kann man manuell aber ändern. Wer es also richtig machen
davor, aber ziemlich umständlich. Einträge für alle müssen in folgendem Ordner angelegt werden: C:\ProgramData\Microsoft\Windows\Start Menu\Programs Für Einträge für einzelne geht das übrigens in: %AppData%\Roaming\Microsoft\Windows\Start Menu\Programs Was übrigens ebenfalls erschwert wird
-
Thread
GPS-Zeit in Millisekunden
von 0,01 ms... Tiny-µC + EM406A + Hühnerfutter < 50 EU.
vernünftigen Empfänger mit Dokumentation und benutzt die GPS-Zeit oder notfalls ein UTC-ist-gültig-Status-Bit. Ob der NMEA-Status die Info hergibt, steht im Handbuch. Im Zweifelsfall tut er das nicht.
-
Thread
Mikrocontroller Datenbank?
Was passiert eigentlich theoretisch in der Datenbankabfrage, wenn ich einen uC mit min. 1kB Speicher, min. 4 IOs und min. 1x 8bit-Timer benötige? Das ergibt dann 178324 Treffer von 178348 insgesamt. Welches Fabrikat wird dann vorrangig ausgespuckt bzw. empfohlen?
universal digital blocks (UDB), programmable to create any number of functions: • 8-, 16-, 24-, and 32-bit timers, counters, and PWMs • I2C, UART, SPI, I2S, LIN 2.0 interfaces • Cyclic redundancy check (CRC) • Pseudo random sequence (PRS) generators • Quadrature decoders • Gate-level logic functions
-
Thread
avr-gcc-10 - "volatile deprecated [-Wvolatile]" Warnungen
aber einfach nur lästig, zum (in der Hardware häufig mal > notwendigen) Setzen eines einfachen Bits statt > > [c]FOOREG |= BIT;[/c] > > dann > > [c]volatile_store(&FOOREG, volatile_load(&FOOREG) | BIT);[/c] > > schreiben zu müssen – den wirklichen Mehrwert davon müsste mir erstmal >
/avr-libc/user-manual/group__avr__sfr.html [c] #define bit_is_set (sfr, bit) (_SFR_BYTE(sfr) & _BV(bit)) #define bit_is_clear (sfr, bit) (!(_SFR_BYTE(sfr) & _BV(bit))) [/c]
-
Thread
Visual Basic 6 und Directx7/8
Möglichkeiten die man hat. Aber , ich sag immer , jeder so wie er am glücklichsten ist , sado-maso mit "C" , "C++" , "ASM" , Python , ect. , ...... oder easy in Basic :-)
Als alter VB6ler bin ich irgendwann bei C#.NET gestrandet und möchte es nicht mehr eintauschen. Klar, die Umstellung dauert, aber irgendwann merkt man, dass man auch ohne den ganzen Prosa gut lesbare Programme schreiben kann.
-
Thread
5 NTC messen mit arduino
("Ohm "); Serial.print("Temperature0: "); Serial.print(0); Serial.println("C"); Vo = analogRead(ThermistorPin1); R1 = R11 * (1023.0 / Vo - 1.0); logR1 = log(R1); T1 = (1.0 / (c1 + c2 * logR1 + c3 * logR1 * logR1 * logR1)); T1 = T1 - 273.15; Serial.print("Widerstand1
mit bis zu 4 Module https://www.ebay.de/itm/ADS1115-Module-ADC-16-Bit-I2C-4-Channel-for-Battery-monitor-Temperature-Measure/153269223068 hat er bis 16 ADC Kanäle & kann die I2C RTC nutzen
-
Thread
Anforderungen Laptop zum Programmieren
#6253931: > Das wichtigste wäre eine Dockingstation Docking-Stations sind out. Wenn schon USB-C mit entsprechendem Bildschirm. Aber das ist alles Luxus. 3-4 Stecker einzeln reinstöpseln ist so gerade noch schaffbar. Oliver S. schrieb im Beitrag #6253931: > Wenns dann wirklich mal um "große
spielen willst hat das irgend eine relevanz, mein Haupt-Rechner ist 12 Jahre alt und damit mache ich C/C++, C#, Python, Java, Assembler.... Projekte - egal was du vor hast du wirst definitiv nicht schneller oder besser oder richtiger programmieren lernen wenn du eine fette Kiste hast
-
Thread
1 Wire manche Teilnehmer antworten nicht
DS18B20 daran hängen. Aktuell habe ich 6 Sensoren in Verwendung. Alle Sensoren lassen sich einzeln angeschlossen abfragen. Dabei funktioniert es einzeln auch mit den Sensoren, die über eine lange Leitung angeschlossen sind. Mehrere im Verbund funktionieren auch, jedoch nicht alle im Verbund.
ob mit oder ohne 4,7kOhm Pullup gleiches Ergebnis. Source Code ist mit angehängt. in der "hmi.c" ist die Funktion Owaf_StateMachine die wichtigste, welche die Abfrage der einzelnen Sensoren hintereinander durchführt. owaf.c ist die "Bib"
-
Thread
Steuereinheit eines Dartautomaten
Wenn getroffen dann if (bI[x][y] == 0) { WurfSchicken(x, y); } } } [/c] somit würde ich immer alles empfangen, jedoch ist es random welcher dieser 4 Pins gerade auf LOW ist.
[c] int masterLines = 8; //Change here to the number of lines of your Master Layer int slaveLines = 8; //Change here to the number of lines of your Slave Layer int matrixMaster[] = {13, 12, 11, 10, 9
-
Thread
el Last für einzelne Li Zelle
Batteriekapazitäten auf < 5% genau zu erfassen, ist doch mehr, als ausreichend. 16-Bit-DAC, Konstantstromquelle braucht es nicht: Passender Leistungs-R, Logic-Level-NFET und der übliche 10-Bit-ADC im Standard-µC reichen aus. - Ein guter Logic-Level-NFET schließt den Stromkreis
jeweilige Gerät und Nutzerverhalten simulieren, um aussagekräftig zu sein. Ansonsten kannst du dir die 16 Bit sparen, dann würde schon 8 Bit mehr als ausreichend sein.
-
Thread
Unterschied?
stellt eine logische UND Verknüpfung dar https://www.mikrocontroller.net/articles/Logische_Verkn%C3%BCpfungen und zwar bitweise (je 'Bit-Stelle').
Handwerkszeug, das *mußt* du lernen. Oder du läßt das mit dem Programmieren. Lies den Abschnitt über C Operatoren in deinem bevorzugten C-Buch (oder https://de.wikibooks.org/wiki/C-Programmierung:_Ausdrücke_und_Operatoren). Speziell zu den Bit-Operatoren, die hier gebraucht werden, hat auch das hiesige
-
Thread
Mint 19 Cinnamon.auweia.
Linuxmint.com <--- da musst du hin! Dann Mate 32 bit oder 64 bit Clara?
Sag, brauchst du wirklich die 32-bit-Version oder ist der Rechner soo uralt?
-
Thread
Entprellen (kein AVR) Gesperrt
ich habe in einem Buch folgene Rountine zum Entprellen gefunden [c] int i, byteport, oldbyteport; while(1) { byteport = P1IN; // lese Port ein if(byteport != oldbyteport) { // hat sich etwas verändert? if(byteport & BIT2) {
ohne zusätzlichen Register mit 2 Befehlen einzelne Bits entnehmen und wo anders wieder einfügen. Mit AND, n*SHIFT, OR wäre das komplizierter. Und wie gesagt, GCC weiß das. Aber klar 8051 nennt sich ja auch "Bit-Manipulationsprogramm-Maschine".
-
Thread
Ermitteln ob Zeit zwischen zwei Uhrzeiten ist
Mit den paar Float-Operationen wird man bei angemessener Aufrufhäufigkeit trotzdem selbst einen 8-Bit µC nicht wirklich fordern können. Allenfalls einer Leere im Flash lässt sich damit wirkungsvoll entgegen treten.
[c]if (h == 22){ stop = 1; } if (h == 7){ stop = 0; }[/c]
-
Thread
Sekunden-Task mit CTC-Timer (Atmega88)
PINx Register schreibt. Mit C hat das gar nichts zu tun. Aber wenn du schreibst "PIND |= 1" dann liest du das PIN Register (also den aktuellen Zustand des Portes) ein, setzt das Bit 0 auf 1 und schreibst das Ergebnis zurück. Das
Stefan ⛄ F. schrieb im Beitrag #6212285: > Wenn flag_gesetzt volatile und 8bit ist, dann ja. Ist es. Danke! Dann liegt's doch am Quarz. Aber warum müssen es 8 Bit sein?
-
Thread
-
Thread
Ansteuerung eines Schrittmotors mit 2 Endschaltern
Schrittmotor läuft nicht einfach los und fährt dann bis zu einem Endschalter. Ein Schrittmotor muss jeden einzelnen Schritt gesagt bekommen und die Anzahl der Schritte bestimmt den Fahrweg. Da braucht man keinen Endschalter. Es reicht eine Referenzmarke, an der sich der µC orientieren kann. Alles andere ist Schrittzählerei
läuft nicht einfach los > und fährt dann bis zu einem Endschalter. Ein Schrittmotor muss jeden > einzelnen Schritt gesagt bekommen und die Anzahl der Schritte bestimmt > den Fahrweg. Da braucht man keinen Endschalter. Es reicht eine > Referenzmarke, an der sich der µC orientieren kann. Nunja und
-
Thread
Neue MCU APM32F103
9 für sinus 8: 4610 mov r0, r2 jetzt wird r2 nach r0 kopiert a: 60c1 str r1, [r0, #12] jetzt wird der floatwert in ein memory mapped FPU Register geschrieben Weil das 32Bit register sind: 12/4 -> Register 3 -> Op1 der FPU c: bf00 nop
3)) == 0 ){}; *FPU_CFGR = *FPU_CFGR | (1<<27); 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
Oszilloskopröhre gegen LCD ersetzen
nicht mehr erforderlich sind: Analogtechnik: gute Kenntnisse Digitaltechnik: gute Kenntnisse in uC und DSP's programmieren Grüße Hochfrequenz
aus) abdigitalisieren und anzeigen, wo der TEK analog mehrere Millionen wfm/s schafft und jede einzelne davon taghell anzeigt, stelle ich mir schon als aufwendige Aufgabe vor. Was darf's denn so sein? 8 Bit? 12 Bit? 16 Bit? 20 Bit?
-
Thread
FPGA überfüllt -> Brauche Hilfe bei der Optimierung.
: Ich halte mir aktuell nur noch eine einzelne Row als Register (18 x 16-Bit Wert). Am Ende einer Row speichere ich dieses in ein DP-RAM. Nun setz eich ein Flag welches dazu führt, dass eine andere Logik das DP-RAM asliest und per SPI weiterleitet. Das RAM muss demnach auch 288x16Bit Werte halten können. Damit die Zuordnung stimmt, muss beim Auslesen aus dem RAM ein Adressdekoder/Multiplexer aufgebaut werden. Das RAM hätte ich als 288x16Bit organisation realisiert. Nun muss
-
Thread
Switch Case und Character
> > Ich würde die 8 Bit für das Muster ja einfach in einem uint8_t speichern > statt in einem Array aus char. Zumal man diese 8Bit als Konstante auch so schreiben kann: [c]muster = 0b01101001;[/c] Und damit optisch jedes einzelne Bit sehen kann;