-
Thread
Codeschloss 5-stellig -- machbar und welcher ATM?
könntest als gültige codes zum beispiel primzahlen nehmen, dann brauchst du keinen speicher für die einzelnen kunden pins
hier nicht solche Fragen. Peter S. schrieb im Beitrag #4234374: > ich bin noch recht neu in der µC-Welt.
-
Thread
PC Programmierung auf unterster Ebene
Hier im Forum gibt es doch einen Thread über das z180 Modul. Alternativ gab es in der c't mal eine Serie über die x86 Chips wie Keyboard-Controller usw. Auch einen x86 Einplatinencomputer gab es da.
grundlegende) Programmiertechniken ganz gut selber erarbeiten, indem man sich verfügbare Sourcecodes (auch in C, OO C, oder Pascal) anschaut. 64 Bit Programmierung ist nicht sehr viel anderes als 16 Bit Programmierung, nur eben mit ein paar Änderungen. Was man auch noch braucht, wäre das ein oder andere (aktuell
-
Thread
Zwei LED unabhängig voneinander mit nur einem µC Ausgang ansteuern - geht das?
Hallo Frank, ach noch eine Idee, ich würde einen attiny85 als Slavre µC nehmen und ihn über den Master µC steuern. Einfach ist die Verwendung einer Software Uart mit 8,none,1. Wenn einem 7 Bit PWM Auflösung reichen kann man über Bit 7 die LED adressieren und die Bit
schalten, um das zu erreichen. Karl M. schrieb im Beitrag #4226456: > wie viele Zustände man kann 1 Bit darstellen ? > Genau 2. Stimmt. Und wieviel Zustände kann der Ausgang eines µC annehmen? Genau 3. Da sollte sich also etwas machen lassen. Wenn man die LEDs im Zeitmultiplex ansteuert, sogar
-
Thread
Statemachine Anfängerfrage
= TagNacht; DaWeg_old = DaWeg; } [/c]
Vorgänger hat doch echt sequenziell abgearbeitet und so Zeit vertrödelt, war aber auf dem CBM (6502 8-bit 32KB Ram 1 MHz) :) Am µC mache ich es ja so, im IRQ wird gezählt lcd_upd-- wann 330ms um sind wenn 0 LCD refresh, im loop ist es ja egal wann genau der stattfindet, nur wenn er erfolgt ist wird lcd_upd
-
Artikel
FAQ
double-Operationen durchgeführt werden. Wohl kann es aber sein, dass double und float dieselbe Anzahl an Bits benutzen. Damit reduziert sich eine double Operation effektiv auf eine float Operation. (Anmerkung: mit dem C99-Standard hat sich dieses geändert. Dort gibt es dann auch echte float Operationen) Hat
Programmes geschieht in mehrerern Schritten: Compilieren: zunächst werden alle Einzelteile (jede *.c Datei) für sich compiliert. Dabei ensteht aus jeder c-Datei eine sogenannte Object-Datei, in der bereits der Maschinencode für die im c-File programmierten Funktionen enthalten ist Linken: die einzelnen
-
Thread
Frage zum Frequenzmultiplex bei Modulation Gesperrt
schiebt einen Schwingkreis in Wobblermanier über den interessierenden >> Frequenzbereich. >> >> C rechnet. >> >> Allen drei wird jetzt eine steile Flanke vorgesetzt. >> Die Fragerei geht dahin was die einzelnen Typen anzeigen, erstmal ob sie >> Gleiches anzeigen und dann ob alle was anzeigen.
Kurt B. schrieb im Beitrag #4257094: > Nimm jeden einzelnen Buchstaben/Satz/Abschnitt der dort steht und setze > ihn her. > Dann bereden wir jeden einzelnen Buchstaben.... A...Arroganz B...Besserwisser C...Chaot (nicht j.T.) D... **** ...
-
Thread
Magnetic Encoder mit 10 Mhz auswerten
von ca. 10 MHz erforderlich (4x Quadrature Decoding). Die aktuelle Position möchte ich mit 10 kHz abfragen. In diesem Beitrag wurde eine Lösung mit 9 Takten für einen einzelnen Encoder vorgestellt: http://www.mikrocontroller.net/topic/328856?goto=3595805#3595805 (letzter Beitrag). Das wären dann 90
Zulu schrieb im Beitrag #4216770: > 10 kHz * 16bit sind 160kbit/sec. Reicht Dir tatsächlich ein 16 Bit Zähler? Ich nehme immer 32 Bit, wenn es um Weggeber geht. Bei kontinuierlicher Übertragung und mit passendem Protokoll kann man allerdings auch
-
Thread
C-Code optimieren (passt nicht in Attiny2313) :( Gesperrt
selten einfach nur int nehmen willst, sondern du willst spezifisch sein. Insbesondere willst du 8-Bit Integer benutzen wo es auch immer geht. zb hier [c] void ausgabe_display_temp(int zeile, int hv, int lv) { .... [/c] die Funktion wird so aufgerufen [c] .... ausgabe_display_temp
. Dann seh ich da 'dead code' [c] .... TWI_targetSlaveAddress = DS1621_int; messageBuf[0] = (TWI_targetSlaveAddress<<TWI_ADR_BITS) | (FALSE<<TWI_READ_BIT); messageBuf[1] = 0xAA; temp = USI_TWI_Start_Transceiver_With_Data
-
Thread
AVR PORTE ansprechen wie genau?
kurz nocheinmal eine Frage: Wenn ich z.b. Schreibe: uint_8t data; data=PINC; und dann abfragen will ob Bit PC7 zum Zeitpunkt beim kopieren in dummy gesetzt war, geht das dann folgendermaßen? if(data & 0b10000000) Oder habe ich da irgendwo den Denkfehler? Ich vermute an der Stelle meinen
@Johannes (Gast) >und dann abfragen will ob Bit PC7 zum Zeitpunkt beim kopieren in dummy >gesetzt war, geht das dann folgendermaßen? >if(data & 0b10000000) Ja. >Oder habe ich da irgendwo den Denkfehler? Nein. >Ich
-
Thread
Bit-Banging UNI/O-Bus EEPROM mit Arduino-Uno [Fehlschlag]
} // Set bus pin to input // Set pinState global to Input delayMicroseconds(TE / 2); // Half-Bit-Period Serial.println(digitalRead(BUSPIN)); // Read SAK delayMicroseconds(TE / 2); // Half-Bit-Period } [/c]
(digitalRead(BUSPIN)); // Read SAK delayMicroseconds(TE / 2); // Half-Bit-Period [/c] das klappt aber so nicht. Theoretisch (wenn die Anweisungen mehr oder weniger in 0 Zeit ablaufen würden), hättest du dich mit dem delay auf genau die Umschaltflanke 'positioniert'.
-
Thread
SD-Card schreiben auf Arduino due mit Atmel-Studio
die wohl auch nicht für einen einfachen SPI-Bus der SD-Karte vorgesehen. Ein voller Anschluß mit 4 Bit Breite geht bei mir nicht, da schon viele Ports vergeben sind. Also habe ich die Blbliotheken vom LPCXpresso genommen, genauer gesagt die Files ff.c und mmc.c. ff.c ist unverändert übernommen worden
Echtzeit ablaufen muß. Die Register sind in der Doku zwar vollständig beschrieben, die Funktion der einzelnen Bit und Bitfelder aber nur ziemlich knapp, so daß Fragen offen bleiben. Seltsamerweise hat der I2C-Bus auf Anhieb richtig funktioniert (da hängen mehrere Slaves dran und alle lassen sich problemlos
-
Thread
Taschenrechner: ATmega1284p - 15x 7-Segmentdisplay
int96.html > > In Modulus(..) befindet sich die Routine zur Division von CInt96. Also das da: [c] Remainder.Zero(); for (int i=0; i<96; i++) { Remainder += tempDividend.GetBit(i); BOOL bBit = (Remainder >= tempDivisor); Quotient.SetBit(i, bBit); if (bBit
res = temp; } add >>= 1; // shift right the 'additional' bit } return res; }[/c]
-
Thread
canbus mit SN65HVD230D und FlexCan
sizeof(sysData.b)); CANbus.write(msg); delay(3); msg.id = 0x102; msg.len = sizeof(sysData.c); memcpy(msg.buf, &sysData.c, sizeof(sysData.c)); CANbus.write(msg); delay(3); msg.id = 0x103; msg.len = sizeof(sysData.d); memcpy(msg.buf, &sysData.d, sizeof(sysData.d)); CANbus.write
>>> verstehe was ihr alle eigentlich meint, >>> umsetzen kann ich das dann schon ... >> >> >> [c] >> void v_SendMessage() > [...] >> [/c] oh man ... c ist schon eine tolle sprache, arrays nur mit werten gleichen types, über structs kann man nicht iterieren ... na hauptsache der compiler
-
Thread
Unterprogramm Aufruf ohne Rücksprung
PORTB &= ~(1<<PB1); } else if (ADC<=(HoldStrom-Deadband)){ PORTB |= (1<<PB1); } } [/c]
Interrupts. Interrupts sind ja gerade dafür erfunden worden, die Pollerei zu vermeiden. Die Abfrage im Hauptprogramm ohne die Verwendung von Interrupts sieht so aus: [c] if(TIFR & 1<<OCF1A) { // Timer-Flag gesetzt? stromregel(); TIFR |= 1<<OCF1A; // Timer-Flag löschen }
-
Thread
SPI 16-Bit Problem
hier etwas beim Senden und/oder Auslesen falsch. Meine Slave Konfiguration sieht wie folgt aus: [c] void spi_config_slave() { P1SEL = BIT1 + BIT2 + BIT4 + BIT5; P1SEL2 = BIT1 + BIT2 + BIT4 + BIT5; UCA0CTL1 = UCSWRST; // **Put state machine in reset**
Und gewöhn dich daran, dass in C weniger oft mehr ist [c] while ((IFG2 & UCA0TXIFG) == 1); [/c] Ich habb keine Ahnung ob das UCA0TXIFG Bit so angeordnet ist, dass sich nach Ausmaskierung eine 1 ergibt, wenn
-
Thread
Zeitverzögerung von 800ms einbauen (Assembler)
man Bits einzeln ändern kann, und nicht das komplette Portregister überschreiben muss.
wenns > erst im nächsten Projekt ist. Aber dann hat man sich bis dahin schon > gemerkt, dass man Bits einzeln ändern kann, und nicht das komplette > Portregister überschreiben muss. s.o. foo schrieb im Beitrag #4181456: > Also für auf high setzen würde ich auch nicht 0<<LED in den Port > schieben
-
Thread
So Zeitgenau messen wie möglich über ein I2C-Datenbussystem
der geringen Übertragungswege, Robustheit, Einfachheit und der ausreichenden Geschwindigkeit den I2C-Datenbus benutzen möchte. Ein Master bildet das zentrale Element und mehrere Slaves (es ist davon auszugehen, das es bis zu 40 werden) sind an diesem angeschlossen. Die Slaves sind wieder einzelne
Ich würde auch nicht I2C benutzen. Wenn Du es differentiell machst, dann hast Du gleich 4 Leitungen und trotzdem noch nicht alle I2C-Fallstricke behoben. Für mich wäre es jedenfalls de Horror, in einem 40-Teilnehmer-System denjenigen
-
Thread
Welchen Controller für C++ Programmierung? Gesperrt
zum Thema "Theoretisches Geplänkel": Ich habs extra für die ausprobiert: Meinen One Wire DS18B20 C-Code hab ich in nich mal 1/4 Stunde von PIC24 (16bit CPU) nach PIC18 (8bit CPU) portiert.
ressourcenfressenden Abstraktion-Layern Ressourcenfressenden muss er aber nicht sein, der im oben genannten One Wire C-Code braucht genau 1 ASM Befehl pro IO Zugriff. > Einfach Geht schon, implementier mal eine 32bit Division in ASM. In C dauert das keine 5 Sekunden. > effektiv, flexibel, sparsam In welcher Beziehung
-
Thread
COM-Port, FT232 Kommunikation mit Integer?
Peter schrieb im Beitrag #4170575: > Klappt wunderbar, > allerdings wird jede Zahl einzeln als String geschickt, das ist nicht > besonders effizient. das würde aber kaum etwas ändern. Deine Übertragung ist so langsam, weil du jeden Wert einzeln abfragst. Damit bringt es fast nichts,
Hex-Digits + \n): > 38400 / 10 / 5 = 768 Hz nein kann man nicht. Es kommt ja noch die zeit für die Abfrage dazu. Dann kommt auch noch die Verbartungszeit auf beiden Seiten dazu weil es scheinbar ein synchrones Protokoll ist. PC -> µC "b1\n" 3byte µC verarbeitet ? ms µC -> PC 1234\n 5byte
-
Thread
C-Programmieren: Spiel Robots
mehr einfach nur ein Strassenname und eine Hasunummer übergeben, sondern eine komplette Adrdesse [c] void printAddress( struct Adresse Ort) { ... [c] und da die Funktion eine komplette Adresse mit allem drum und dran erhält, brauch ich dann in der Argumentschnittstelle nicht mehr alles einzeln
Eingabe ) ) { x_ziel += DeltaX[Eingabe - '0']; y_ziel += DeltaY[Eingabe - '0']; } ... [/c] die auch noch auf einen möglichen Geschwindigkeitsvorteil im Bereich einzelner Taktzyklen zu untersuchen wäre. Durch Zusammenfassen der Deltas in ein struct könnte man eventuell noch weitere einzelne
-
Thread
STM32 I2C Probleme
_7bit; I2C_InitStruct.I2C_Timing = 0x00201D2B; I2C_Init(I2C2, &I2C_InitStruct); // init I2C2 // enable I2C2 I2C_Init(I2C2, &I2C_InitStruct); I2C_Cmd(I2C2, ENABLE); RCC_AHBPeriphClockCmd
mein STM32 tatsächlich ein I2C-Signal aussendet. Da die Bibliothek so abstrakt ist, kann ich nicht nachvollziehen welche genauen Signale überhaupt versendet werden, und wie ich einzelne Bits schicke etc. Ich arbeite auch nicht
-
Thread
MPD steuern und auslesen mit libmpdclient
Könnte mir wer hier einen einfachen Code in C bereit stellen, der einen Linux Shell Befehl an die Console abgibt und den Rückgabewert einließt? [c] [root@alarmpi mpd]# mpc -f "%artist%" [/c] [c] Fall Out Boy [playing] #4/24 1:42/3:52
} else printf("File konnte nicht geoeffnet werden\n"); printf("<\n%s>\n", Buffer); }[/c] Das Problem scheint zu sein, dass hier nur die letzte Zeile ausgelesen wird, bzw. übergeben wird. Leider kann ich mit mpc nicht einzelne Zeilen ausgeben, die letzten beiden kommen immer, egal welches
-
Thread
Programmierung einer Laufschrift
können, wenn du µC programmieren willst. Ist eh immer das gleiche Prinzip: mit einem UND und geeigneter Maske erzwingt man Bits auf 0. Mit einem ODER und geeigneter Maske erzwingt man Bits auf 1 zb [c] leds[0]
musst du schon sehen können. > Warum werden die Bits im MSB so plötzlich gelöscht? weil du bei [c] i = j; [/c] alle Bits von i zugewiesen haben willst! ist i ein long Wert und j ein int, dann willst du den kompletten i überschrieben haben.
-
Thread
Möchte IoT-Erfahrung aufbauen
Hallo allerseits, kurz zu mir: Einige Erfahrung in uC sind vorhanden, Board Design und Routing ebenfalls, einigermaßen zielführende C-Kenntnisse ebenso. Was ich aber noch NIE gemacht habe: 1.) Webprogrammierung in jedweder Facette 2.) IoT Letztenendes
/schlechte Fehlerbehandlung, ...). Es gibt einen Compiler, der normalen Brainfuck-Code in einen C-Formatstring umsetzt. Wenn also der Code irgendwo ein schlecht ausgewürfeltes printf() macht, hast du direkt Remote Code Execution. > Wenn ich User/Passwort abfrage, ... ... landest du ganz schnell
-
Thread
Spartan 3AN RAM schreiben und lesen über RS232
ich nur einzelne definierte Einträge aus dem Array abfrage (weil er mir dann beim synthetisieren den Rest wegoptimiert). Ich würde allerdings gerne abhängig von einem anderen Signal Einträge aus diesem Array abfragen
Stattdessen gibt es ein "Schlüsselloch" namens Adress- und Datenbus, über das man immer nur ein par einzelne Bits des gesamten RAM ansprechen kan...
-
Thread
Trivial-FTP: Lesen dauert sehr lange bei falscher IP-Adresse
Rainer Reusch schrieb im Beitrag #4152057: > In einem Klasse-C-Netz wären das 254 Threads. Das wäre sogar noch machbar. Umm... Klasse C? Wie war das nochmal mit CIDR? Deine Software sollte auf allerhand Präfixe ungleich /24 gefasst sein und entsprechend IPs ableiten
Indy) nicht richtig läuft, kann man besser das Problem angehen. Vielleicht kann dir das noch helfen:[c] TIdLogDebug is an implementation of the ancestor class TIdLogBase, and extends the framework for logging information about Indy communication components.[/c] > Die Eigenschaft ReceiveTimeout ist
-
Thread
CAN-Error zählen
wozu ich eigentlich die anzahl der Fehler haben möchte. Ist es überhaupt möglich, die anzahl der einzelnen Fehler (Acknowledge-Fehler, Form-Fehler und Bit-Fehler) zu ermitteln? Laut datenblatt The CAN module will detect the following transmission errors: • Acknowledge Error • Form Error • Bit Error
einmal einen Fehler haben, der den error counter um 8 erhöht. Auch unter sich (Acknowledge-, Form-, Bit-Fehler lassen sich nciht unterscheiden) Hinterher wollte ich eigentlich, dass bei eingehender NAchricht die Anzahl der einzelnen Fehler raussende.
-
Thread
Switch-Case Anweisung für Events
volatile extern uint32_t Taskregister; [/c] Nun ist die Idee dahinter natürlich, dass die einzelnen Flags an unterschiedlichen Positionen und auch durch unterschiedliche externe Ereignisse gesetzt werden können. Das funktioniert auch soweit
[c] if( Taskregister | FLAG_MEASURE ) { // ... } if( Taskregister | FLAG_EVALUATE ) { // ... } if ... [/c]
-
Thread
Akku-Lader mit Datenbank
ja auch, wenn der Barcode-Scanner mal nicht will. Ich denke nun an einen 3-stelligen Hex-Code (12 Bits) für bis zu 4096 Akkus. Ich habe gerade festgestellt, dass es 64 Zeichen gibt, die mit dem AliExpress-Teil trotz deutscher Tastatur mit Code128 korrekt übermittelt werden. Also hat man 6 Bits pro
, da ich sie in der Bastelkiste habe: https://github.com/TorstenC/Notizblog/wiki/Mikrocontroller … natürlich zuzüglich ESP8266.
-
Thread
can sendevorgang abbrechen
__((interrupt, no_auto_psv)) _T1Interrupt(void) { LATBbits.LATB0 = 1; // Turn on LED D3 C1TX0B1 = 0x0001; // data - attendance check C1TX0CONbits.TXREQ = 1; //Start to send while (C1TX0CONbits.TXREQ == 1) {} //TXREQ reset automatically, when the transmission completes LATBbits.LATB0
dann über einen Time-Out erkennen, dass die Nachrichten nicht mehr gesendet werden) oder sie aber einzeln abfragen. Dabei sollten aber zusätzlich noch die verschiedenen Fehlerflags beim Sender abgeprüft werden, um das beobachtete "Hängen" zu vermeiden. Die abgefragten Empfänger müssen dann ihre Anwesenheit
-
Thread
Etwas professioneller arbeiten.
empfehlen, insbesondere wenn die Aktivitäten im Hobbybereich bleiben sollen. Da würde ich mir das C Gerümpel, Make Files usw. nicht antun. http://avr.myluna.de/doku.php?id=de:about
durchs Datenblatt, lese mir die Anmerkungen zu den einzelnen Bits durch, überlege mir, welche Takteinstellungen ich nun konkret brauche und wie dafür die Bits dargestellt werden. Dann habe ich irgendwann das Lowfuse-Byte zusammen, da kann ich dann auch
-
Thread
Ein Bit setzten
weniger Instructions braucht, aber so ist es etwas > weniger Tipparbeit. Bzw. wenn man weiß, dass das Bit sowieso 0 ist kann > man sich das löschen des Bits auch sparen. Die Variante vom TE als auch deine funktionieren aber nicht. Project HC schrieb im Beitrag #4118416: [c] > if(ACSR & (1 << ACO)
da fehlt aber auch die abfrage des ACSR, oder bewerkstelligt bascom die auf magische weise von alleine? aber stimmt, der direkte zugriff auf einzelne bits macht es erheblich übersichtlicher
-
Thread
Zugriff auf Ports über einen Pointer od Ähnlichem für PIC18F (nicht Bit Addressierbar)
Wenn man sich den Funktionsaufruf bei jeder Abfrage sparen will, falls es so viele sind dass sie bei der Laufzeit ins Gewicht fallen, könnte man die getInput() auch inlinen lassen oder man versucht es so: [c] // Untested #define INPUT_PIN (*
port_ptr = &PORTD; bitmask = 1 << 5; } if(port_ptr == NULL) return; //... // Abfrage dann mit if(INPUT_PIN) //... [/c]
-
Thread
Kam Reset durch Watchdog
mal so: [c] uint8_t buffer = MCUCSR; if(buffer & (1 << WDRF)) IsWatchdogReset = 1; [/c]
Watchdog Reset schrieb im Beitrag #4115699: > [c] > int main () { > // Gab es einen Watchdog-Reset? > if (IsWatchdogReset) { > [/c] Wo setzt Du denn IsWatchdogReset? Ich sehe in main() lediglich die Abfrage der Variable. Deine Funktion wdt_init
-
Thread
Funktionsrumpf für Interrupt und neu setzen von Interrupt Vectoren
gelinkt. Indem ich eine Struktur über die Interrupt Vektoren gelegt habe, kann ich diese jetzt einzeln und Gezielt abfragen und gegeben falls überschreiben. Nur da kommt das nächste Problem! Wie bekomme ich den Compiler dazu eine Beliebige Funktion mit dem Funktionsrumpf eines Interrupts zu versehen
festgelegt das ich #define mit einem Underline beginne Strukturen mit einem 's', Klassen mit einem 'c', Pointer mit einem 'p' usw... Ich benutze diese Technik in CFC ebenfalls 'B_' für BOOL 'P_' für Puls, 'PW_' für gepulste Bits in einem Datenword...
-
Thread
Invertierter Taster - Wie Code anpassen?
Ok, danke euch zwei! Ich probier das heute abend mal aus. @Thomas: wären dann für die einzelnen Taster die Abfrage [c]( PIND & (0<<PIND0)[/c] korrekt?
> Ok, danke euch zwei! Ich probier das heute abend mal aus. > > @Thomas: wären dann für die einzelnen Taster die Abfrage [c]( PIND & > (0<<PIND0)[/c] korrekt? Nein, "0<<PIND0" gibt immer 0, statt das BIT für den jeweiligen Taster auszumaskieren.
-
Thread
Dublette in unsortiertem Array feststellen
wenn der Wertebereich überschaubar ist, könnte man eine bit-Array anlegen. Und beim durchlaufen das Bit für den Wert auf 1 setzen. Wenn es schon 1 ist, dann doppelt. das sollte dann linear schnell sein.
mit 100 Elementen von Typ unsigned char. Ist also nur ein Byte pro Array-Eintrag. aus 8-Bit eine 16-Bit "Prüfsumme" zu berechnen ist zwar einfach und kollisionsfrei möglich, macht die Sache aber nicht wirklich schneller.
-
Thread
Effizente Mittelwertberechnung über 24bit (3x8Byte) ADC daten
4 Samples. Derzeit (noch ohne mittelwert) hole ich mir die 24bit SPI daten aus dem uint8_t buffer noch einzeln und schiebe sie zusammen in eins der 32bit register des µC. Natürlich ist mittelwert berechnen da einfach, nur: Wenn die daten über Bluetooth rausgehen
naiver Ansatz: a+b=c [ergebnis 32bit] c = c>>1 [Mittelwert von 2 Werten: 2^1 ] wie soll es denn schneller gehen? Und Bitverschiebeaktionen gehen ganz ohne Division.
-
Thread
RGB Led mit Musik steuern
mit fastFFT auf dem Atmel wohl auch geht, aber meine fastFFT Versuche unter C liegen min. 2 Jahrzehnte zurück.
Die Farbinfos kommen per 8-Bit-PWM. Beim Arduino also ein einfaches analogWrite(PIN_R, curRedValue); analogWrite(PIN_G, curGreenValue); analogWrite(PIN_B, curBlueValue);
-
Thread
UV-Laserdrucker II
Sein Ausgangsstrom variiert mit dem Abstand zum Aluminium der Halterung. Den Verlauf der mit dem µC gemessenen Spannung in 10 Bit hänge ich als steps.pdf an. Zum Beginn messe ich die Spannung vom Sensor, liegt die über 300 Digits, fahre ich 10 mm nach rechts. Anschließend bzw. sonst fahre ich
welches auf 10.000 dpi analog x 32 bit gerechnet war ist im Rasterprozess auf 5080dpi 2c reduziert worden. Die Focusebene ist noch nicht 100 prozentig, da kämpfe ich ich im Moment, bei den Energien kann man kein CCD an den Zielort zur
-
Thread
Interrupts mit Atmel Studio für SAM3X8E (Arduino Due)
du hier *keine* getrennten Interrupts zum senden und empfangen! Das heisst du musst in der ISR abfragen, was jetzt den IRQ ausgeloest hat. [c] void USART1_Handler(void) { uint32_t irq_status = USART1->US_CSR; if( irq_status & empfangs_interrupt_bit_maske) { } if( irq_status &
Beitrag #4105717: > Was nicht funktioniert, ist auf diese Weise eine Interruptroutine für > einen einzelnen Portpin, Das gibt es so auch nicht fuer einen einzelnen Pin. Du nimmst den Handler fuer den Port, und dann musst du abfragen welcher Pin den IRQ ausgeloest hat. [c] void PIOC_Handler(void) {
-
Thread
Dumme Frage zum "C" mit AVR's
(1 << PB1); } [/c] Damit sind zumindest die einzelnen Bits auf einem Port unabhängig und können nicht durch race conditions "kaputt gehen". Greifst du natürlich auf einen Pin sowohl im Interrupt, als auch im Hauptprogramm
www.mikrocontroller.net/topic/340330?goto=new#3744804 Ist auch schön logisch zu bedienen: Pin auf '1' setzen: [c] BF_PORTB.portb3 = 1;[/c] Pin auf '0' setzen: [c] BF_PORTB.portb3 = 0;[/c] Pin toggeln: [c] BF_PORTB.portb3 ^= 1;[/c] Pin auf '1' abfragen: [c] if(BF_PINB.pinb3)[/c] Pin auf '0' abfragen
-
Thread
Zufallsmuster
http://de.wikipedia.org/wiki/Linear_r%C3%BCckgekoppeltes_Schieberegister :-) so haben es die Alten gemacht
-Ein 8 Bit Schieberegister für die Spalten mit nur einer getzetn 1 auf sich selbst zurücgekoppelt. -Ein 8 Bit Schieberegister für die Zeilen mit nur einer getzetn 0 auf sich selbst zurücgekoppelt. -Zwei unabhängige
-
Thread
24 bit signed data in 32 bit int (ARM SAMS4) und das sparsam über UART
[/c] Bezüglich der Abfrage des Vorzeichenbits des MSB der 24bit daten ergibt sich bei mir allerdings ein Fragezeichen. Im Post oben prüft holger (hier übertragen auf mein Beispiel) bit D7 vom MSB (bei mir in buffer[0]) und setzt daraufhin bits 31:24 zu 1 und castet danach die uint32 auf eine int32. [c] if(buffer[0]& 0x80) temp |= 0xFF000000; int32_t temp2 = (int32_t)temp; [/c] Wenn ich nun aber die obersten 8 bit einer signed 32bit
-
Thread
#MAKROS zusammenfassen
Hallo, wie kann Makros zusammenfassen dass es bei der unteren Abfrage nicht zu Problemen kommt, wegen fehlenden { } bzw. gesetzter { } #define MAKRO1(x) setBit(x); sendBit(1); if(i == 1) MAKRO(4); else MAKRO(5); else if(i == 2) { do(); di(); MAKRO(0);}
#define MAKRO1(x) {setBit(x); sendBit(1);}
-
Thread
W5100 LAN - UDP Verbindung ?
? Im Zusammenhang von IP und Networking nie gehört. Du schreibst in die IP-Adressregister mit [c] spi_write16(0x0500 + 0x000C, 192); [/c] Was soll das 16? Die IP-Adressregister sind aber 4 einzelne 8-Bit Register .... .... verstehe ich nicht .... ich weiss gar nicht wie man über SPI 16
verwenden. Zähle von 0-3 > Du schreibst in die IP-Adressregister mit > spi_write16(0x0500 + 0x000C, 192); > Was soll das 16? Ja das ist natürlich quatsch, Danke! > ich weiss gar nicht wie man > über SPI 16 Bit auf einmal schreiben kann, das Protokoll > hier ist per se nur auf 8 Bit ausgelegt
-
Thread
Uhr wie im Ham Yard Hotel in London Gesperrt
auch schon am überlegen ob dass mein nächstes Projekt wäre. Was spricht eigentlich dagegen die einzelnen "Uhrwerke" mit einem Shiftregister anzusteuern? Für jeden (VID28-05) werden somit 2 Ausgänge (1. Bit = Impuls; 2. Bit = Richtung) von einem Schieberegister benötigt(z.b. http://www.reichelt.de/74HC
zuverlässiger beschleuligen zu können und weniger Geräusche zu erzeugen, wie Kai-Uwe oben schrieb. 16-Bit-Schieberegister ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ Im MCP23S17^^ ist ein 16-Bit Schieberegister. Man könnte auch zwei 74HC595 kaskadieren um auf 16 Bit zu kommen. Mit 100Ω-Vorwiderständen zwischen Motor und