-
Thread
Interrupt-/Timing- Verhalten bei Flugsteuerrung
Der einzige Interrupt ist nun der, welcher das Summensignal vom Empfänger bearbeitet, bzw. die einzelnen Bestandteile der Kanäle abspeichert. Das Auslesen der Sensoren über I2C wird in der main() gemacht. Ich hätte es gerne umgesetzt, wie von Karl Heinz beschrieben. Denn diese Lösung wäre zwar nicht unbedingt die einfachere, aber dafür die transparentere Lösung, was die Übersicht der einzelnen Timings angeht, gewesen. Aber aus welchen Gründen auch immer dauerte das Auslesen über I2C für einen Sensor dann doch mal annähernd 1ms und somit gab es Situationen in denen der andere Interrupt
-
Thread
Handling von Meldungen
Merk dir doch wer die Meldung ausgelöst hat, statt wieviele Auslöser es gab. Ordne einfach einzelne Bits in deiner Variable einzelnen Auslösern zu. Dann hast du kein Problem mit Doppelmeldungen und kannst jederzeit Feststellen woher die Meldung kommt. Du musst dann nur bei der Anzeige selber zählen
zurückziehen kannst du mit needsVentilation=needsVentilation & ~MSG_VENTILATION_REASON_HUMID einzelne Gründe abfragen mit doesItStink=meedsVentilation & MSG_VENTILATION_REASON_STINK abfragen ob überhaupt gelüftet werden muss einfach indem du needsVentilation auf > 0 prüfst. Die Zuordnumg musst
-
Thread
UART-Zeichenempfang wenn ISR gesperrt ist, möglich?
Schnittstelle) die nächsten Daten senden, ehe der Pin erneut wechselt. Mega328p hat in UCSR0A einen bit (RxC0), den kann man zwischendurch mal gemutlich abfragen, anstatt mit ISR zu arbeiten, etwa so: [c] Byt2WS2812: ... ;*** DataPin fur WS2812 auf High, bit holen (shift) 7 Takte
; 1 ret ;=========== ; 6 / 6 Takte [/c] Das sind 6 Takte zusatzlich, bei 328p mit 16MHz brauchst du zwischen 16 und 24 Takte fur einen bit beim WS2812-Bitbanging (20 Takte +/- 4 Takte), da kann man sogar zwischen den einzelnen bits
-
Thread
Tastaturmatrix Entprellen
Schiebeoperation mir so überlegt... 1. COL0 auf Masse und die ROW einlesen -> 1 schieben, das sind dann die Bits 1 bis Bit 4 von der Variable val 2. CLO1 auf Masse und die ROW einlesen -> 4 schieben -> das sind dann die Bits 5 bis Bit 9 von der Variable Val 3. CLO2 auf Masse und die ROW einlesen -> 9 schieben -> das sind dann die Bits 10 bis Bit 14 von der Variable Val Wenn ich in meiner Funktion nur eine Spalte auslese - z.B. so [c] static uint16_t keyscan(void) { uint16_t val; DDRC &= ~(ROW0 |
-
Thread
3x4 Matrixtastatur-Ansteuerung mit MiniModul 537
Spalten abzufragen, ob sich dort eine gedrückte taste befindet, und falls ja, anschließend die einzelnen Zeilen abzufragen um die genaue Lage und somit die taste zu ermitteln. Bisher ist es mir nur gelungen die Abfrage jeder einzelnen Taste zu bilden. Die oben genannte Struktur ist klar, jedoch
kann. Der unter dem Link aufgeführte Code ist für das MiniModul 537 und dem damit verbundenem 8-Bit Controller Infineon SAB 80C537 verwendbar ? Viele Grüße
-
Thread
Fragen zu AVR C
nach GND verbunden. Jedes Segment hat quasi seinen eigenen Transistor und die werden durch die einzelnen uC Pins gesteuert. Die Anzeigetechnik ist Multiplexing, der uC ist ein Attiny2313. Ich hab 2 konkrete Fragen zum avr-C, folgende Situation: 1) Ich wollte Taster per Interrupt einsetzen. Dazu
reseted. Dann hab ich die Loesung ohne Interrupts wie im Anhang verwendet mit der direkten PIN abfrage. 2) Ich wollte die 7Segmentanzeige an und ausmachen wollen per Taster. Also hab ich in meiner Pinabfrage folgenden Code ausprobiert, hier mal als Ausschnitt ausm Kopf zusammengereimt: [c] int
-
Thread
An alle Logiker
[c]> return x-b < a-b;[/c] Das sind aber immer noch 3 32-Bit Operationen (2 falls a und b zur Compilezeit bekannt sind). Aber besser gehts wohl nicht. Übrigens ist das GCCs Methode, um zu testen,
Kann man die Logik der Abfrage nicht umkehren? [c] return !((x >= a && x >= b) || (x < a && x < b)); [/c] (Not yet tested)
-
Thread
Heim Automatisierungswahn Gesperrt
den Start-Knopf intuitiv. SmartPhones, das sind die Dinge mit den Multicore ARMs, die in Java, C++ oder Objective-C programmiert sind. Von bösen Resourcenverschwendern.
auch über kürzere Waschprogramme Du hast keine Ahnung von Wäsche waschen! Bei 40 oder gar 30 °C überleben Milben lustig. Es braucht da mindestens 60°C und Weißwaschmittel, mindestens. Hast du schon mal Putzlappen, Scheuertücher oder Autoölklamotten mit 40°C gewaschen? Die stinken da wie vorher
-
Thread
Kryptographie
for(x=0; x<=strlen(array); x++) > > Das muss bestimmt 'x < strlen(array)' sein. Und damit diese Abfrage auch > funktioniert soll 'array' nach dem Einlesen auch mit einem \0 > abgeschlossen werden. Der Aufruf von strlen ist so oder so unnötig: [c]x = 0; while(array[x] != '\0'){ /* ... */
0] ); return 1; } char* password = argv[1]; n = strlen( argv[1] ); while( ( c = getchar() ) != EOF ){ if( (unsigned char)c >= ' ' ){ c = c ^ ( password[i] & 0x0F ); if( ++i >= n ) i = 0; } if( c == '\n' ) i = 0; putchar( c );
-
Thread
ws2812 und andere zeitkritische Sachen
kannst Interrupts verwenden. > Das Assembler nötig wäre, ist Quatsch. Ist es nicht. Es mag auch in C gerade noch so gehen, dann bleibt aber ganz sicher nicht mehr sehr viel Rechenzeit über. Es ist nämlich so, dass in ein SPI-Byte nur maximal die Info für 2,66... WS2812-Bits passt, weil nämlich jedes WS2812-Bit zu mindestens 3 SPI-Bits verwurstet werden muss, wobei die Bitrate 800kHz/3=267kBit/s beträgt. Die Interrupts erfolgen also mit 267/8=33kHz. Und wenn der ganze C-Overhead bei ISRs 33.000mal pro Sekunde
-
Thread
Aquariumsteuerung - LED über ein Taster Ein und Aus
: ; hier wird nun die LED eingeschaltet cbi PORTD,4 ; Ausgang rücksetzen ldi r18,0x00 ; Bit für LEDOFF rücksetzten Ich hätte eine Idee wie man das über einen Taster realisieren könnte. Wenn ich zum Beispiel den Zustand der LEDs abfragen könnte. Dann könnte ich sagen wenn die LED an ist
rjmp pb2islow pb2ishigh: nop ; PB ist high, dann gehts hier weiter [/pre] abfragen.
-
Thread
Servomotor steuern - C Routine von dieser Seite
Was genau machst du hier? Eine art Convertierung? [c] actServo = line[1] - '0'; [/c]
Mit deiner Abfrage klappt es nicht. Ohne klappt es 1 x und dann nicht wieder. [c] if( haveLine ) { // } [/c]
-
Thread
Assembler wieder auf dem Weg nach vorn Gesperrt
ankommen, dann würde ich niemals mehr mit 8-Bit uC und Assembler anfangen.
' wo C gegenüber ASM klare Vorteile hat, auch auf 8bit.
-
Thread
flex fuer Mikrocontroller
@Olaf: laß dich bloß hier nicht mit flex/bison erwischen. Einigen hier ist schon ein C-Compiler suspekt. Und dann noch diese Tools aus der shell-Welt. Hexenwerk! ;-)
http://stackoverflow.com/questions/2245962/is-there-an-alternative-for-flex-bison-that-is-usable-on-8-bit-embedded-systems
-
Thread
Kann man folgenden Code platzsparender schreiben
Datentype nur > einmal im ROM ist. Korrekt. Ich sehe hier jedoch zwei Multiplikationsroutinen: 16 Bit signed: [c]values[1] * 10; values[2] * 100; values[3] * 1000; values[4] * 10000;[/c] 32 Bit signed: [c]values[5] * 100000; values[6] * 1000000; values[7] * 10000000;[/c] Insbesondere diese
Dann bleibt da > nämlich "FTW = f * k" stehen, und das ist eine Laufzeitmultiplikation. Weil [c](frequency * 4294967296) / 125000000UL;[/c] nicht immer das gleiche Ergebnis wie [c]frequency * (4294967296 / 125000000UL);[/c] liefert. Die Idee von Uwe ist, die 64 Bit Operationen durch 32 Bit
-
Thread
DS18B20-Temperatur Vergleich Problem
in this scope ../../../../Downloads/1wire/1WIRE.C:31: error: 'sei' was not declared in this scope ../../../../Downloads/1wire/1WIRE.C: In function 'unsigned char w1_bit_io(unsigned char)': ../../../../Downloads/1wire/1WIRE.C:41: error: 'cli' was not
funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT UART.o -MF dep/UART.o.d -c ../../../../Downloads/1wire/UART.c avr-gcc -mmcu=atmega16a -Wl,-Map=ProjektTemP.map 1WIRE.o DELAY.o MAIN.o TEMPMEAS.o TIMEBASE.o UART.o -o ProjektTemP.elf 1WIRE.o: In function `w1_bit_io': C:
-
Thread
C - Banknoten Check vereinfachen möglich?
Geschwindigkeit (als diese Funktionen entstanden hat man noch Taktzyklen gezählt). Man konnte so seine Abfragen nach Häufigkeit sortieren und EOF kam dann (da es "in" jeder Datei ja nur einmal vorkommt) ganz nach hinten. Außerdem war "Text" nur 7 bit so dass das signed/unsigned char Problem auf keinem Radar
static size_t elements = sizeof kennungen / sizeof kennungen[0]; // = 24 [/c] Die Variable kennungen ist also ein Array, desswen Elemente wiederum Arrays mit jeweils 3 Chars sind. Möglich wäre auch ein Array von Zeigern, die auf die einzelnen Strings zeigen: [c]
-
Thread
Nibbler 4 Bit Computer replica
c 0 -gui Target Vendor: LATTICE Target Device: LCMXO2-256HCTQFP100 Target Performance: 4 Mapper: xo2c00, version: Diamond (64-bit) 3.5.1.302 Mapped on: 11/05/15 07:58:09 Design
keine 32 Bit CPU. Es gab noch Weiterentwicklungen AM2903 (Multiplikation, Interface für externe Register), AM29C101 16 Bit kaskadierbar, AM29116 16 Bit nicht kaskadierbar. Ein Beispiel ist auch eine 8Bit CPU
-
Thread
Heizungssteuerung mit 25 TempSensoren, 14 Ventilen und 6 Pumpen
Schon überlegt wie du die 25 Sensoren abfragst?
Hubert G. schrieb im Beitrag #4330885: > Schon überlegt wie du die 25 Sensoren abfragst? Das Abfragen der Sensoren wird schon irgendwie klappen. Mir wird noch gar nicht klar, wie die Messwerte der 25 Sensoren in die Entscheidung für die Steuerung der Ventile/Pumpen eingehen. Irgendwie
-
Thread
Umfrage: welche IR-Protokolle nutzt ihr mit IRMP?
habe nach wie vor nur /eine/ Funktion die ich aus dem Timer-Interrupt aufrufen muß und das API zur Abfrage ist auch immer noch das gleiche. Und wieder ist das superpraktisch. Und IMHO viel besser als jetzt zwei handoptimierte Protokolldecoder einzeln zu programmieren, einzeln in den Timer-Interrupt
Vorteil von IRMP/IRSND ist, dass der auf mehreren Mikrocontrollerfamilien laufende Code hier auf µC.net zum Download bereitsteht. Dagegen stehen MOBYs und c-haters "Lösungen" in den Sternen - wer lange Arme hat, mag danach greifen.
-
Thread
Combinatorical Loop Found
end if; -- if sDspCsN = '0' and sDspRwN = '0' then end if; -- if rising_edge(iSysClkC) end process; [/vhdl] Die Case Anweisung weist die Daten einzelnen Registern zu. Hat sie keinen Treffer, wird das sAccessViolationWr Flag gesetzt. Anschließend kommt eine For Loop, die weitere
'0' then -- write access end if; -- if rising_edge(iSysClkC) end process; [/vhdl]
-
Thread
Richtigen Datenbus gesucht
Problem: Der Datenbus ist nicht das Problem des TE. Bei 1m kann man so ziemlich alles nehmen. I2C geht, SPI geht, RS232, RS485, CAN, Ethernet was man will. Aber DANN fangen die Probleme doch erst an. DANN kommt das Protokoll. Und danach die "Intelligenz" in den einzelnen Modulen. Wer hier aber schon
nicht. Bringe ich jetzt die Auswerteelektronik räumlich zu dem Sensor hin und setzte danach einen uC hin der nur sagt Anschlag Ja/Nein kann ich diesen Sensor beliebig ersetzen, ohne dass ich irgend etwas an der SW, bzw, an der Auswertehardware im System selbst ändern muss. > Ein einzelner Raspi
-
Thread
C - Funktion von Strlen verstehen
bit set (so the byte was less than 0x80). Finally, by ANDing these two sub-expressions the result is the high bits set where the bytes in v were zero, since the high bits set due to a value greater than
++) n++; return n; } [/c]
-
Thread
Grundlegende Architekturüberlegung - Bitte um Hilfe
Einheiten: Nun ging es um die "dummen" Einheiten in jedem Raum. Hier wollte ich gerne AVR/ATMEL µC einsetzen, da ich zum einen hier schon Anwendungen programmiert habe (Arduino Nano und auf einem Atmel Entwicklerboard) und mir die C Programmierung als Softwareentwickler geläufig ist. Außerdem laß
Befehle, da hier das RS232 Protokoll eingesetzt würde, sondern ich müsste die Schnittstelle quasi Bit für Bit verarbeiten und die empfangenen Pakete in deren Bestandteile z.B. Adresse, Länge, Funktionscode, Daten, CRC aufsplitten und verarbeiten. Beim Senden müssten die auf die Schnittstelle geschickten
-
Thread
Virtual Comport mit 250 Hz unter Win7 auslesen
ohne Timer. Einfach in > einer schleife. Ich vermute mal selbst dabei kommst du nicht auf 250 > Abfrage/s. Hierbei könnte man USB mit seiner Latenz ein Problem > darstellen. > > [c] > while(true) { > Send("FETCh\n"); > Read( ... ) > } > [/c > > > Gibt es keine Möglichkeit dem Gerät
die es spielt überhaupt keine Rolle ob hier Echtzeit vorhanden ist oder nicht. jeden Wert einzeln abfragen geht einfach nicht schneller!
-
Thread
Zufallszahl bei Start des Mikrocontrollers
nicht verwendet wird. Dann hast du ein anderes Problem: Alle uC müssen unterschiedlich lange warten, bis sie versuchen, ihre Nummer mitzuteilen. DAS wiederum kann man per fester aber individueller Konstante machen, also eine 16 bit Zahl und der uC wartet so viele
Die kann man einzeln durchgehen und abfragen. Das ist zeitlich noch kein Fiasko. Aber: in beiden Fällen müssen die Sensoren (oder Slaves) fixe Adressen haben.
-
Thread
Timingproblem mit Onewire und STM32
den Anschlusspins. 2. Die Temperaturwandlungsroutine scheint nicht fertig zu werden. HAbe die Abfrage in Zeile 118 von der Zählvariable getrennt [c]while (GPIO_ReadInputDataBit(port,used_pin)){[/c] Dort kommt er nicht mehr raus.
"us_tick" während der Abarbeitung etwas beobachtet. Aufgefallen ist mir der folgende Abschnitt: [c]uint8_t ds1820_re_bit(GPIO_TypeDef * port, uint16_t used_pin){ uint8_t rebit; GPIO_WriteBit(port,used_pin,DISABLE); // Pull low Delay_us(OW_Delay_A);
-
Thread
Auswertung "schneller" Inkrementalgeber
7 Bit Zähler nehmen und die vordersten beiden Bits wieder in den Graycode überführen. Oder gleich einen Graycode-Vorteiler verwenden. Dann käme der eingesetze uC locker zum Auswerten und könnte auch noch
Das ist ja auch Blendercode, der vortäuschen soll, kurz und schnell zu sein. Ohne permanente ext. Abfrage läuft der 8 Bit Wert schnell über und verfälscht den Zählerstand. Hier reicht allein eine Encoderdrehung. Inkrementaldecoder müssen eigenständig im Hintergrund ohne Fehler bei der Zählung laufen
-
Thread
5x5x5 LED -Cube: Bauteile
Projekt ein LED Cube bauen und mich so langsam an Mikrocontroller wagen, ich hab schon Erfahrung in C und C++, aber Mikrocontroller hab ich bisher noch nicht programmiert. Zuerst wollte ich euch aber fragen, ob ihr mir einen Mikrocontroller empfehlen könnt (den man mit C programmieren kann) und der
Integralrechnung steht doch auch das Einmaleins. ;) -> Eine LED blinken lassen. -> Einen Taster abfragen und die LED schalten (Entprellung) -> Schieberegister 595 mit 8 LEDs dran - erst einzeln blinken, dann mal damit kleine Animationen erstellen, Multiplex und SPI (oder gar Bitbang) üben. Dabei
-
Thread
Quellcode: DMX Empfänger Modul für ATxMega
Weil heute Freitag ist, quick und dirty eine DMX512 Empfangsrountine für ATxMega µC. Wer will kann das ganze noch besser absichern und mehr Abfragen zur Gültigkeit der Daten einbauen. Aber Empfangen klappt auch so schonmal. Jetzt müsste ihr nur noch was mit den Daten machen. [c]/
OSC.STATUS & OSC_PLLRDY_bm)); //Disable register protection for 4 clocks CCP = CCP_IOREG_gc; //Set Bit 2:0 for PLL as clock source CLK.CTRL = CLK_SCLKSEL_PLL_gc; } void UART_init(void){ // Pin from USARTC0 TxD C3 set to input PORTC.DIRCLR = PIN6_bm; // Asynchronous Modus USARTC1.CTRLC
-
Thread
Problem mit Visual Studio 2015 bei einem CLR Projekt
Du nutzt, lax gesagt, die Microsoft Variante von Java. Du benutzt die Sprache C++/CLR und nicht C++. Das sind generell zwei unterschiedliche Sprachen! "Javascript to Java is like Ham to Hamster!" Deine "IPCuser.c" ist aber ein C Projekt (wgegen Dateiendung). Deswegen musst du
C Projekt wird.
-
Thread
Interrupts mit Arduino DUE
Karl M. schrieb im Beitrag #4283688: > deinen Atmel AVR µC Der Arduino Due ist ein SAM3X8E, ein Cortex-M3 Jannus schrieb im Beitrag #4283607: > Ein einzelner Interrupt ist nicht so das problem. Angenommen ich möchte > an mehreren Pins Interrupts generieren
über die Funktion digitalPinToInterrupt() dem Interrupt zuordnen bzw. beim Due nur 0 übergeben. [c]attachInterrupt(digitalPinToInterrupt(pin), ISR, mode);[/c] https://www.arduino.cc/en/Reference/AttachInterrupt p.s. Ich weiss, das Manual zu lesen ist uncool
-
Thread
Entprellen mit Sam µC
Wo ist das Problem? Das ist doch plain C, also direkt portierbar. Und der Interrupthandler kommt in den SysTick mit rein. Der einzige Unterschied ist, daß ein Port wohl nicht 8bit, sondern 16 oder 32Bit breit sein wird, also die Typen entsprechend
: mitte,links,rechts,oben,unten,1,2,3 // PA4, PA11, PA16, PD25, PA15, PA22, PA21, PA24[/c] Ist das so richtig? z.B. zweiter Eintrag: PA11 ist der 12. Pin, also somit das 12. Bit am PortA. 12 = 0x0C . Diesen möchte ich im selbst gebastelten button_register am zweiten Bit setzen. Muss ich
-
Artikel
Entwicklungsboard mit PIC
werden. I2C Interface Board. I2C Modul Wenn MSSP im I2C Modus ist, wird die I2C Interface Platine benötigt. Entsprechende MCU Pins RC3 und RC4 sollen dann mit I2C-Input beschaltet werden. Über I2C Protokoll können
mit 8 LED , Serial-to-Parallel Wandler mit 4x4 Tastatur und ein Temperatursensor. Zugang zu den einzelnen Bauelementen erfolgt über verschiedene Adressen der Peripherie. Damit werden die Kollisionen vermieden. HW-Adressen der I2C Peripherie Comm-Modul. RS-232& USB Modul Peripherie- Com-Modul ermöglicht
-
Thread
Schulprojekt: Roboter - Energieproblem
dauerbelastung betreiben (Spitzenstrom 1.2A). Schau mal unter https://www.mikrocontroller.net/articles/H-Br%C3%BCcken_%C3%9Cbersicht nach.
was anderem, weswegen du in der Arduino-Community schon viel besser aufgehoben bist. Zwischen den einzelnen Boards gibt es nur marginale Unterschiede. Sowieso ist der "Arduino-Mischmasch" viel einfacher als reines C. Hier käme jetzt wieder langes blablabla, was an Arduino alles schlecht ist, und mit Sicherheit
-
Thread
Wie Assembler ISR in C integrieren ?
Grundtakt, damit der durch die "Stützstellen" nicht gnadenlos einbricht. Ich denke zur Zeit an ein 8Bit R2R Netzwerk als DAC. Wie gesagt, ich möchte erstmal versuchen was mit nur einem µC so möglich ist. Vielleicht reicht es mir aus, vielleicht auch nicht. Werde ich dann sehen.
Grundtakt, damit der durch die "Stützstellen" nicht > gnadenlos einbricht. Ich denke zur Zeit an ein 8Bit R2R Netzwerk als > DAC. Wie gesagt, ich möchte erstmal versuchen was mit nur einem µC so > möglich ist. Vielleicht reicht es mir aus, vielleicht auch nicht. Werde > ich dann sehen. ich lese
-
Thread
Raspberry und Triac - wie ansteuern
OS die Tasks handhabt (Echtzeit-OS sind voraussagbare OS). Hier würde ich wirklich auf einen einzelnen Controller (z.B. 8-Bit reicht hier föllig) wechseln und diesen dann in ASM oder C Programmieren. Das ist wohl einen Aufwand von knapp 4h (für dich).
Ran09 schrieb im Beitrag #4271394: > Ich würde dann wahrscheinlich doch versuchen, das ganze in C zu > schreiben. Geht auch: http://www.forum-raspberrypi.de/Thread-sensor-signal-per-interrupt-abfragen
-
Thread
c++ Rechnen bis Ganzzahl ausgegeben wird
im Voraus > Razeradio^^ Hallo, unter der Annahme, dass die eigentliche Formel 82*(a^8-a^4)/(b*c*d) heisst, ist ein Ergebnis a=2, b=12, c=20 und d=41. Die Abfrage nach einem ganzzahligen Ergebnis kann man auch damit erreichen, indem man den Teil vor dem Bruchstrich rechnet (X als ganze Zahl)
Beitrag #4268309: > https://gmplib.org/ Es gibt etwa 3 Milliarden Lösungen (Permutationen von b, c und d nicht mitgezählt), an die man mit gewöhnlicher 64-Bit-Arithmetik herankommt.
-
Thread
ATmega8 ADC-Durchschnittsberechnung
zu signalisieren: Mach mal Und wenn der ADC fertig ist, dann zieht er das Bit wieder auf 0 zurück. Deshalb [c] ADCSRA |= (1<<ADSC); // mach mal while (ADCSRA & (1<<ADSC) ) { // ich warte solange, bis du fertig bist } [/c] > Mein ADC lief ursprünglich
(Timer0 - 8bit), 1 für meine Zählung der Arbeitstage (Timer1 - 16bit) und ein Universaltimer (Timer2 -8 bit) der immer 10 ms läuft. Ich baue mir daraus eben dann meine gewünschte Zeit. Vernküft ist damit [c]
-
Thread
Frequenzanzeige Spektrumanalyzer
: >> ( wenn auch mit nicht so hohen Anforderungen ). > > Dann achte darauf, daß er auch mit 64-Bit 'double'-Werten rechnet. > Viel Erfolg! werde ich ihm sagen. Er programmiert nur in Bascom. Assembler und C kann er nicht. Ralph Berres
jetzt nochmal berichten, wie das Projekt ausgegangen ist. Nach dem ich vor ein paar Wochen die Abfrage der Frequenzeinstellpotis grob und fein mit einen 12 Bit ADC realisiert hatte, wurde dann ein Unterprogramm entwickelt, welches beim drehen von einer der beiden Frequenzpotis eine Frequenz anzeigt
-
Thread
"Clean Code" in C für Mikrocontroller
allerdings übersiehst: Du kannst die Ebene, bei der aufgefangen wird, sehr komfortabel wählen. Bei C must Du Deinen Funktionsabbruch auf allen Ebenen einzeln implementieren, bist Du bei der Ebene angekommen bist, bei denen Deine Fehlerbehandlung greifen soll. Das sauber zu implementieren hat mich schon
allerdings übersiehst: Du > kannst die Ebene, bei der aufgefangen wird, sehr komfortabel wählen. Bei > C must Du Deinen Funktionsabbruch auf allen Ebenen einzeln > implementieren, bist Du bei der Ebene angekommen bist, bei denen Deine > Fehlerbehandlung greifen soll. Das sauber zu implementieren hat
-
Thread
simpler µC ADC2UART
Hallo zusammen, ich suche einen µC mit folgenden Spezifikationen und wollte fragen, was ihr mir empfehlen würdet: -mindestens 10 ADC channels @>=12bit -mindestens 1 UART port -halbwegs anständige ADC quali (muss jetzt nich auf AD
wichtig ist die GARANTIERTE Reaktion im vorgegebenen Zeitraster. Ansonsten kenne ich keinen µC mit 10 parallel arbeitenden ADCs. Mir fallen da z.B. 10 MCP3201 (12 Bit) an einem Mega8 ein. Am µC erfordert das 2 Pins zum Ansteuern und 10 zum Auslesen. Und eine halbwegs autonom arbeitende USART
-
Thread
Flashplatzbedarf 32Bit zu 8Bit Microcontroller
einen 32Bit Microcontroller, wieviel Flashbedarf hat das Programm dann? Wird beim 32Bit µC mehr Flash verbraucht da Befehle nun 32Bit lang sind?
> Wird beim 32Bit µC mehr Flash verbraucht da Befehle nun 32Bit lang sind? Im Prinzip ja. Allerdings versuchen die Hersteller das zu optimieren. In der Praxis ist es bedeutungslos weil 32Bit Controller deutlich mehr
-
Thread
Die / Maskrom
damit den einzelnen ( wie nennt man das Einzelteil? )SoC / IC oder dergleichen Kann man solche "Einbrennungen" ( mir fehlt der Fachbegriff dafür ) später an einer Stelle des Fertigunsprozesses einer "corrigere" Routine
Die UID in einem µC wird meistens über ein (E)(E)PROM realisiert.
-
Thread
C versus Assembler->Performance Gesperrt
RxDCommandWriteMemGetFirstLengthByte(uint8_t receivedByte); void RxDCommandWriteMemGetSecondLengthByte(uint8_t receivedByte); [/c] kannst man das nicht eine packen und mitgeben welches Byte man haben will? [c] void PS2ReceiveBit0(); void PS2ReceiveBit1(); void PS2ReceiveBit2(); void PS2ReceiveBit3(); void PS2ReceiveBit4
MOVC A,@A+DPTR, JMP @A+DTPR hab ich sehr oft benötigt. Und Bitlogik ging auch sehr einfach mit MOV C,bit, ORL C,(/)bit, MOV bit,C, CPL bit, JBC usw. Ich fands genial, was der Herr Keil da geleistet hat. Meine Assemblerprogramme waren durchweg länger, als später in C geschrieben. Und das Funktionen
-
Thread
Akku-Verbrauchsanzeige für Bootsmotoren
schalte auf low/high - springe dorthin (rjmp ...) - verschiebe Bit x nach links/rechts (lsl ...) Das ist durch die Assembler-Befehle für mich nachvollziehbar. Aber in C ist das einfach nur kryptisch für mich. Hast du eine gute Dokumentation, wo das nachvollziehbar
dorthin (rjmp ...): nimmt man in C nicht, da hat man Schleifen, for, while verschiebe Bit x nach links/rechts (lsl ...): wert = wert<<x; oder wert = wert>>x;
-
Thread
Notfunk aktuell
passt aber alles rein) -> https://www.amazon.de/gp/aw/d/B06VVLY9W6/ref=mp_s_a_1_37?__mk_de_DE=%C3%85M%C3%85Z%C3%95%C3%91&qid=1525553417&sr=8-37-spons&pi=AC_SX236_SY340_QL65&keywords=x+case+koffer&psc=1 Für reisen und notsituationen sind die sehr gut geeignet. Da kanns auch mal anfangen zu
je Sekunde, maximum 6,667 Zeichen je Sekunde, oder das doppelte bei 100 baud/sec. Baudod ist 7.5bits je Zeichen.
-
Thread
Eingänge einlesen und per Shift register ausgeben
Beitrag #4236704: > Vielleicht hat jemand einen Tipp wie man das am geschicktesten löst? Mit einem µC der genug IOs hat, sodass du auf die SR (Schieberegister) verzichten kannst. Wenn das nicht geht: Hang die Eingänge an die unteren 8 bit eines Ports, und sende dann an die SR: [c] while(1) { sendByte
Ausgang einen Taster (oder halt Schalter). Dann in der Schleife oder im Interrupt einfach immer ein Bit durchschieben. Auf der anderen Tasterseite alle gemeinsam auf eine Leitung schalten; am µC-Pin dazu den Pulldown aktivieren und vielleicht noch einen 1kOhm-Widerstand zwischen die Leitung und µC-Pin