-
Thread
Verbindung mit Component von Grafikentwurf zum VHDL
LPM_Counter und ein LPM_Compare sein, die so zurecht gebogen werden, dass die Busbreite stimmt (17 Bit für 100000) und beim Comparator das 17-Bit Eingangssignal mit einer Konstanten verglichen wird, siehe der 3. Screenshot (die ersten beiden sind aus Versehen angehängt, das konnte ich nicht rückgängig
schrieb im Beitrag #4021565: > Die If-Schleife ... gibt es nicht. Es gibt bestenfalls eine if-Abfrage.
-
Thread
serielle datenübertragung pc <> AVR
Volker Schulz schrieb: > Das ist ja schonmal gut. Kann man in C auch einen SWAP veranlassen? Das musst du ausprobieren. AUf Hochsprachenebene gibt es keine einzelne Operation, die einem SWAP entsprechen würde. Das geht nur mit einer Kombination. Von daher halte
Habe mal etwas zusammen getippt: [c] void itohex(uint8_t n, char *s) { //obere 4 Bit if ((n>>4)>9) s[0]=(n>>4)+55; else s[0]=(n>>4)+48; //untere 4 Bit if ((n&0x0F)>9) s[1]=(n&0x0F)+55; else
-
Thread
low-cost WiFi Chip ESP8266 Projekte mit dem Internet der Dinge (IoT)
habe ich auch schon nachgedacht. Das Problem besteht allerdings weniger darin, das Timing der einzelnen Bits richtig hinzubekommen (das geht schon irgendwie), sondern dass die Übertragung zu beliebigen Zeiten durch Interrupts unterbrochen werden kann. Unterstützt der SOC DMA? Habe ich noch nichts
habe ich auch schon nachgedacht. Das Problem besteht allerdings > weniger darin, das Timing der einzelnen Bits richtig hinzubekommen (das > geht schon irgendwie), sondern dass die Übertragung zu beliebigen Zeiten > durch Interrupts unterbrochen werden kann. Meine Annahme war, dass das in der von
-
Thread
Einführung des Hexadezimalsystems
Joseph, der Seifenopernstar von uC.net! Jäger des verlorenen Zahlensystems. Joseph und die letzte 8-Bit CPU.
noch addieren, multiplizieren oder dividieren können. Man muss nur wissen, an welchen Positionen einzelne Bits gesetzt oder gelöscht sind und wie man diese Bits logisch verknüpft.
-
Thread
PWM über serielle Schnittstelle
bricht aktuelle Eingabe ab: tmp_Zahl = -1; } } } ... [/c]
eigentlich ist das ziemlich simpel, wenn man ein bischen Übung in der Programmierung hat. Speziell einen einzelnen 8-Bit Wert per UART zu übertragen ist nicht wirklich Raketentechnik. Bei mehr Bytes bzw. wenn es sich jetzt um einen 16-Bit Wert handelt, wird das schon ein wenig schwieriger. Hast du dir denn
-
Thread
Datenverlust in EEPROM
das sollte hier nicht relevant sein). Auf dem Board verwende ich ein EEPROM von Microchip (via I2C) und als uC habe ich einen 8051er von SiLabs. Manchmal habe ich das Problem, dass sich Einstellungen, die im EEPROM abgelegt sind verändern. Grundsätzlich lese ich die Einstellungen immer dann,
[c] if ((Milliseconds - t_LastWritten) >= 15) [/c] Da sind schonmal 2 Fehler: 1. Da t_LastWritten nirgends geschrieben wird, läuft Deine Wartezeit nur einmal nach Programmstart ab. 2. Ich
-
Thread
ATMega328-basierter Sprach-Synthesizer für den CPC 464 - Schnelles Byte-weises Lesen mit dem 328?
wie [c] loop_until_bit_is_set(PIND, 2); //pull ready READY immediately DDRB |= 1; clearBit(PORTB, 0); pinb = PINB; pinc = PINC; .... [/c] dazu führen, dass pinb, pinc
: [c] do { pinb = PINB; pinc = PINC; } while (bit_is_clear(PIND, 2)); do { pinb = PINB;
-
Thread
Array mit 512 Bytes über Rs232 vom PC zum PIC
[c] #use rs232(baud=115200,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=9) [/c] bits=9 ?? wird da das Stoppbit mitgezählt ? oh was mir gerade noch auffällt ... [c] ... else {
Sascha Weber schrieb im Beitrag #1946859: > ?? int ist doch 16Bit Der Wertebereich ist glaub ich abhängig vom C-System bzw Compiler, oder?! In der Hilfe von meinem Compiler steht, dass int8 gleichwertig wie int ist, also nur 8 Bit > [c] > ADDR=(recB & 3) << 7
-
Thread
Drehgeber an Arduino, external interrupt ISR wird doppelt ausgeführt
c-hater schrieb im Beitrag #6812128: > Du musstest nun schon zugeben, dass es (also interruptbasierte Abfrage > von Quadraturencodern) prinzipiell funktioniert Falsch. c-hater schrieb im Beitrag
c-hater schrieb im Beitrag #6812128: > Du musstest nun schon zugeben, dass es (also interruptbasierte Abfrage > von Quadraturencodern) prinzipiell funktioniert Falsch. c-hater schrieb im Beitrag
-
Thread
Codierte Funkuebertragung (war: "Korrelation ist besser...")
identisch, also > deine Chirps (heisen diese Code nicht eigentlich Chips?), Chip heißen die einzelnen "Bits" des Codes, Chirp ist was anderes. > nur das sie 90 > Grad Phasenverschoben sind in ihrer Trägerfrequenz. Beide Korrelationen > stellt ja Lockin-Amplifier mit anschließender Integration
der Lock-In Amplifier und die Barker/GoldCodes sondern eben das optimierte und quasi parallele Abfragen der zueinander versetzten Codes, die Autokorrelation. Wenn ich dich richtig verstanden habe sendest du deinen 1024 Bit Code und musst diesen im Empfänger am besten in einem Rutsch so autokorrelieren
-
Thread
Funktion funktioniert nur einmal
stimmt immer nur der erste berechnete String - alles was danach kommt stimmt nicht mehr(ein paar Bits sind falsch). Wenn ich den µC resete, dann ist das Programm noch im Flash und ich bekomm wieder beim ersten Mal den richtigen Wert - alles was danach kommt ist wieder falsch. Ich würde ja gerne den
sizeof(string)) dauert etwas länger und schreibt über die komplette länge ein 0 rein. Ein String in C ist nicht wie in Pascal definiert. In C endet der String wenn eine 0 kommt, in Pascal wird die länge extra verwaltet was den vorteil hat das man auch eine 0 im String speichern kann und die längen abfrage
-
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
MC für IR-Fernsteuerung programmieren
wirklich weiter gebracht hat es mich auch nicht. Ich kenn mich leider absolut nicht mit Basic oder C aus, daher wird es schwer, irgend welche Bits auszulesen und weiterzuverarbeiten. Ich suche bereits seit 3 Tagen nach ner Art Funktion-Referenz oder Manual zu basic, leider vergebens. Denn selbst
hast Du ein gültiges Startbit erkannt. Danach eben die Datenbits messen und auswerten. Du mußt die einzelnen Bits selbst zu einem Byte zustammenbauen. Die notwendigen Kommandos heißen AND, OR und Shift. Markus
-
Thread
Mikrocontroller auslesen
Schreiber schrieb im Beitrag #4039001: > stimmt so nicht, man kann das Bit löschen ohne den Flash zu löschen: Wie geht das?
hiermit nachhole: Das das so einfach geht, bezweifle ich. Wie malt man denn schwarze Farbe auf einzelne Bits? Mit einem Schweineborsten-Pinsel? Schreiber schrieb im Beitrag #4046045: > Das ganze gibts als Komplettangebot von einigen Dienstleistern für viele > µCs zu erträglichen Konditionen (ab
-
Thread
PIC18f2550 i2c. Brauche dringend Hilfe (HDMM01)
stellen und brauche deshalb dringend Hilfe. Ich versuche die Daten des Magnetfeldsensors über i2c mit dem PIC18f2550 einzulesen aber kenne mich überhaupt nicht mit i2c aus. Im Datenblatt steht dass die Adresse des Bauteils 60H ist. Bit 0 für Messung, Bit 1 für SET und Bit 2 für Reset. Hier der
Funktionen mit drin. Kann ich nicht sagen. Ich benutze meine eigenen I2C Funktionen, daher kann ich da nicht mehr auskunft geben. Debugge es doch einfach mal im Einzelschritt. Wenns zeitliche Probleme sind bekommst du das dann raus. Oder einfach im Code das WCOL bit abfragen
-
Thread
Griffheizung mit Arduino Nano
[c] float temperature; [/c]
>= zyx)) [/c] Wobei xyz dein oberer Grenzwert und zyx der untere ist bei dem der Teil der If-Abfrage Abgearbeitet werden soll. z.B. zwischen 10 und 5 °C. Tu dir selber einen Gefallen und google die Befehle
-
Thread
Schalterabfrage in Bascom
0x01){ mach_kafeemaschine_an(); } Beim avr-gcc gibt es da eine schöne funktion die nennt sich bit_is_set. Ich mache das dann immer so if (bit_is_set(PINA,7){ druck_die_lösungen_für_meinen_mathe2_schein(); :-((( } Vieleicht mal von Basic weg?
&B00011000 'beides = Output=1,input=0 Portb = &B11100111 'PullUp Widerstände auf einzelne InputPins Portd = 255 'PullUp auf kompletten Port Abfrage einfach mit if Pinb.2 = 0 then ...... Sinnvoll ist hier auch die alias-Funktion zu verwenden, z. B.: Pin_jumper12
-
Thread
ADC funktioniert nicht
doMeasurement ist nicht deklariert :-) Außerdem: gibt es auf dem AVR wirklich keine Möglichkeit, einzelne Bits als Flags zu nutzen? Und ich finde [c]for(;;)[/c] irgendwie verwirrender als [c]while(1)[/c] auch wenn das 1 Tastendruck mehr ist. Dafür sind [c]return 0;[/c] _nach_ einer ENDLOSSCHLEIFE
int ist 16 Bit gross! Damit halst du dem armen 8-Bitter unnötige Mehrarbeit auf. ein [c] uint8_t doMeasurement; [/c] tuts völlig. >> Außerdem: gibt es auf dem AVR wirklich keine Möglichkeit, einzelne Bits
-
Thread
"Programm bleibt in der TIMER ISR hängen"
keine Auswirkung Programm bleibt weiterhin in der TIMER_ISR Programm: /* * Reaktion.c * * Created: 15.10.2013 09:01:04 * Author: E.C */ #include <avr/io.h> #include <avr/interrupt.h> #include <inttypes.h> #include "lcd.h" ISR(INT0_vect); ISR(TIMER0_OVF_vect); int
sind gesperrt während ein Interrupt ausgeführt wird EDIT: Das sei in deiner if(gedrueckt == 5) Abfrage auch... aus o.g. Grund Ist dein Taster Hardwareseitig entprellt?
-
Thread
Microcontroller-Sicherheit in MIL-Systemen durch FPGAs erhöhen
solcher registriert wird. Man kann natürlich alles mit CRC-Checks zukleistern, aber da irgendwo eine Abfrage in SW gemacht wird, ist sie teils für die Katz, wenn ein gekipptes Bit ein "true" suggeriert. Auch bei NIOS bin ich von der Komplexität her skeptisch. Bei einem 8051-Core sieht's schon anders aus
liegen, dann wird die Wahrscheinlichkeit sehr schnell sehr klein, dass genau gleichzeitig mehrere Bits (der selben Funktion) kippen, da ein einzelner Event nur lokal begrenzt aktiv ist. Ist natürlich ein aktiv diskutiertes Thema bei den kleiner werdenden Strukturgrössen. (Es gibt eigene Konferenzen
-
Thread
Wittig(welec) DSO W20xxA Open Source Firmware (Teil5)
erstmal deaktiviert. Die Nachrüstung soll aber noch erfolgen. Weiterhin will ich auch versuchen den C-Code Treiber so weit zu optimieren dass er an die Performance des Assemblertreibers heran kommt. Im Zweifelsfalle ist das C-Coding wartungsfreundlicher und besser lesbar. Gruß Hayo EDIT: in einzelnen
luigi schrieb im Beitrag #4118778: > Off topic: > Playing with R19 (reducing) and C11 (increasing) a bit can we improve HF > BW linearity ? No, that is the wrong step. The OP1177 and the back coupling with C11/R19 is only responsible for the DC part of the signal. To change HF linearity
-
Thread
TV Bild mit AVR
ein 16bit SPI Interface mit 8 Word FIFO hat, was erlaubt 128Pixel auf einmal zu schreiben (nennt sich SSP Interface). Pro Zeile muss der uC also nur 4x Werte nachliefern für ein komplettes 512x288 Bild (64x32
@Jan >Gratuliere, sie doch Klasse aus ! danke >Womit ist das realisiert ? C ? ASM ? in Assembler, ich glaube in C wäre es nicht so ohne weiteres möglich, das es teilweise auf jeden einzelnen 16-MHz-Takt ankommt. Bernhard
-
Thread
LCD Ansteuerung (EIGENE INIT)
der erfahrenste programmmierer bin. Soll heißen 'learning by doing'. Ich benutze MPLAB mit dem C18 Compiler. folgendermaßen sieht es nun bei mir aus. [c]void LCD_INIT(void){ LCD_RS = 0; LCD_RW = 0; LCD_EN = 0; DelayMS(15); PORTB = 0x30; //8-Bit
Byte, der Rest der ASM-Befehle im Datenblatt deines Controllers). Delay-Anweisung hast du ohnehin in C auch zur Verfügung und auf die Abfrage des BUSY-Flags kann man notfalls verzichten und ein Delay mit 1ms (oder weniger) einfügen.
-
Thread
genaue Zeitmessung (hohe Auflösung + Genauigkeit) STM32
Eingang starten und stoppen lässt), sich mit einem hochgenauen Oszillator ansteuern lässt und per SPI,I2C oder UART abfragen lässt? Ich habe schon einen TDC7200 ins Auge gefasst, aber dieser kann maximal 14mS messen (mit 2Mhz Quarz) und langsamer kann ich den nicht sinnvoll machen. Wie gesagt ich habe
erspart man sich für den Anfang das Layout und auch die derzeit völlig überzogenen Kosten für den einzelnen Controller. TIM2 und TIM5 sind 32 Bit breit und haben jeweils vier Capture-Eingänge. Das sollte für viele Spielereien reichen. https://www.digikey.de/product-detail/de/stmicroelectronics/NUCLEO-H743ZI2
-
Thread
ATMEGA8 - 2 analoge Signale einlesen (2-Ch AD-Wandler)
habe ich beim Lesen kapituliert. Ja, sorry für die schlechte Beschreibung. Ja die letzten vier Bits beziehen sich auf den Anschluss zum Poti. Also MUX0-MUX3. Und da alle vier Bits Null sind ist es ja der Anschluß ADC0 des µC. War für mich ne Bezeichnung wo ich das Kabel anzuschließen habe.
Deine SChreibweise wurde ja schon zur Genüge angesprochen. Zu noch einem Fehler (neben der Abfrage ob er fertig ist) [C] ADMUX |= 0b01100001; // Einlesen des Kanals 1 usw. [/C] und wie erwartest du, dass das ganz rechte 1 Bit (für Kanal 1) jemals wieder gelöscht wird? [C] ADMUX
-
Thread
Wert einer Speicheradresse auslesen
Hallo, was ist den das? [c]Int *[/c]
kommen und wohin sie gehen, ob SPS, GPIOs, RS485-Module, SD-Karte, Netzwerk usw. Um auf Werte oder einzelne Bits zuugreifen, werden nur Nummern für die Datei und die Adresse in der Datei gebraucht.
-
Thread
Poti -> RGB Farbrad
eines Regenbogen-Farbpickers zu kommen. Vielleicht hat jemand Rat (insb zur Umsetzung auf einem 8 Bit uC )? LG, doppio
Variablen ab. Und nur dann, wenn der count 0 ist, kopierst du sie auf die PWM Vergleichsregister um. [C] cli(); if( count == 0 ) { //setzen der neuen Farbe color[0] = temp[n + 2]; color[1] = temp[n + 1]; color[2] = temp[n ]; } ... [/C]
-
Thread
SPI: kein SCK bei Receive - Warum?
. Des weiteren habe ich das UserManual schon ausgiebig studiert, habe aber keine Lösung (irgendein Bit eines SPI-Registers o.ä.) gefunden. UserMan: http://www.infineon.com/dgdl/XC88xCLM_UM_v1_1.pdf?folderId=db3a304412b407950112b408e8c90004&fileId=db3a304412b407950112b40c53da0b0b ^^Kapitel 12.3 (ab
sind schon richtig zusammengeschaltet. ;) Der Slave hat definitiv eine SPI-Schnittstelle (kein I²C). Der µC-Receive Input (MISO) Pin 1.4 ist wie oben in der Konfig angegeben (P1_DIR |= 0x2D //BIT:0=Input,1=Output) als Input gesetzt. Trotzdem will der µC dort auch immer gleichzeitig auch Senden (was
-
Thread
Inhalt von FLAGS auf ungleicheit prüfen...
ich das so lösen: ;Vergleiche ob Carry != T sbcs C1 ; Springe, wenn C gesetzt brtc equal ; Springe, wenn T gelöscht C1: brts equal ; Springe, wenn T gesetzt notequal: ;- T != C equal: ;- T = C Grüße, André
@AVRli: C und T sind natürlich nur Beispielflags. Befehle sind bei anderen Flags natürlich entsprechend anzupassen. Wenn Du nur einzelne Bits in bestimmten Registern auf Gleichheit testen willst geht das auch
-
Thread
ADC logarithmieren mit Assembler und Tiny10
Die verdoppelt den Zahlenwert mit jeder Linksschiebung. So könnte man z.B. aus den 16 Stufen eines 4 Bit ADC eine 16 Bit Zahl von Null bis 32768 erhalten. Für feinere Stufen des 8 Bit ADC müsste man noch das zweithöchste Bit toggeln usw.
beiden letzten Werte liegen dann über 255 (wenn man 300s als max nimmt). Das kann man dann extra abfragen (ADC Wert >253) und das eine Bit im Ergebnis danach setzen. 50 Positionen bei einem solchen Trimmer einzustellen, muß man erst mal vormachen. Danke an alle für die Vorschläge. Ich denke nochmal
-
Thread
Videoausgabe
einen PAL Decoder (sind fertige Chips) welcher dir das ganze in ein FBAS Signal wandelt. Mit einem µC beschreibst du dann einfach nur noch den Speicher und schwups kannst du mit einem µC ein Bildsignal erzeugen. Schwer wird noch die syncronisation zwischen µC und CPLD was den Speicherzugriff angeht.
Zentrale verbunden, in der auch ein ATMEGA32 werkelt. Die Zentrale ist über einen RS485 Bus mit den einzelnen Sensoren/Aktoren verbunden. Über den Fernseher kann ich Rolläden hoch/runterfahren, Ölstand abfragen, Aussentemperatur etc. Ausserdem will ich mit der Fernbedienung über die Box meinen PC hoch
-
Thread
DCF77 ausgefallen
auch wenig. Zumindest verhindert das grob falsche Anzeigen wie "dann 26:82 Uhr", wenn mal zwei Bits fehlerhaft kommen. Die zwei oder drei Parity des DCF fangen leider nur ein einzelnes falsches Bit. > Dass DCF77 stundenlange > Ausfälle ohne Ersatzsender macht, habe ich nicht erwartet. Es stellt
mit voller Kraft weitertransportiert. Daneben steht eine selbstgebaute Funkuhr, die auch die einzelnen Bits auf LC-Display anzeigt, und da sind die ersten 14...15 Bits immer Null, wie schon vorher genannt, hat aber ja keinen Einfluss auf die Uhrzeit. Da sie Netzbetrieben ist, synchronisiert sie sich
-
Thread
STM32: To HAL or not to HAL
die mir auf Anhieb einfallen wo wir doch arg gekämpft haben: - EEproms mit 1Mbit bzw mit mehr als 10bit Adressraum lassen sich nicht besonders gut via I2C an den F0 anbinden. Das Funktioniert so nicht. Scheint aber mehr an der Hardware als an den Libs zu liegen. Da muss man schon reichlich in die Trickkiste
einer geschickteren Definition einfach überflüssig gewesen wäre: Auszug aus der HAL-Library: [c] /** * @brief Sets or clears the selected data port bit. * * @note This function uses GPIOx_BSRR register to allow atomic read/modify * accesses. In this way, there is no risk
-
Thread
FT232R Hardware Handshake Verständnisproblem
netzwerkkarten ausnutzen ohne Probleme. Ist zwar nicht wirklich vergleichbar aber deine 256000 bits/s sind auch nur 32kb/s - also nichts. Teste erst mal mit einer anderen Software, zur not einfach die CMD. cat COM1 > Datei.txt und schicke vom µC einfach das Alphabet rüber (unendlich oft).
Array und keine list. Byte[] buffer = new Byte[MAX_SIZE](); hier schon das nächste Problem: [c] this.port.ReadByte(); [/c] du liest jedes Byte einzeln!!!! Kein Wunder das es viel zu langsam ist. Der Overhead ist damit viel zu gross. Verwende lieber diese Funktion: http://msdn.microsoft.com
-
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
Hygrostat für Terrarium bauen
Serial.print(" %\t"); Serial.print("Temperature: "); Serial.print(t); Serial.println(" *C"); } } Mein Vorhaben müsste es jetzt natürlich sein, das Register zu verstehen und zu den Werten eine "über oder unter Schwellwert Abfrage" zu programmieren. Hier wäre z.B. wenn ich das richtig
return f; } } Serial.print("Read fail"); return NAN; } float DHT::convertCtoF(float c) { return c * 9 / 5 + 32; } Kann mir Jemand sagen was die einzelnen Befehle in der Verkettung zu bedeuten haben?
-
Thread
Was ist von refurbishten Festplatten zu halten?
Ebay kann ich seeehr empfehlen was HDDs angeht. Habe dort mal 10x 1TB SAS Platten gekauft. Jede einzelne kam in einer eigenen Verpackung direkt für 2,5" HDDs, jede Platte hatte einen eigenen Ausdruck der Daten und Sector Tests dabei und jede Platte hatte ihre eigenen QR Code für eine Online Abfrage.
kamen in einem Pappkarton, einzeln in Papierschlangen eingewickelt und einzeln in ESD-Tüten verschweißt. Die HDs sehen neu aus, also keine Gebrauchs-oder Staubspuren. Laut SMART sind die HDs ca. 2099 Tage gelaufen. Die HDs habe
-
Thread
ARM Eval Board gesucht
. I2C mit Audiodaten? Liegst du da richtig I2C hat 10kHz oder 400kHz Baudrate da sind allgemein eher nur Kontrollfunktionen möglich. Du meinst wahrscheinlich I2S. Falk Brunner schrieb im Beitrag #3276583
. >I2C mit Audiodaten? Liegst du da richtig I2C hat 10kHz oder 400kHz >Baudrate da sind allgemein eher nur Kontrollfunktionen möglich. >Du meinst wahrscheinlich I2S. Ja, Buchstabendreher ;-) Falk Brunner
-
Thread
Byterkennung UART
entsprechenden Werten für die Impulslängen beschrieben werden. Nun werden bei einem empfangenen Byte die einzelnen Bits auf 0 oder 1 verglichen. Ist das erste Bit 1 schreibe eine 30 in das Feld 3 das Array, ist das Bit 0 schreibe eine 20 rein....usw. >Kann ich diese Auswertung einfach zweimal hintereinander
STATE_LICHT1 ausführt. Dabei ist es egal, welchen Inhalt das zweite Byte besitzt weil ich darauf keine Abfrage mache. Es wird, egal was in dem Byte steht dieser case ausgeführt. Wenn ich jetzt aber den Inhalt des Bytes verwenden will, muss wieder eine Zuweisung von c auf z.B. den Servo erfolgen. Richtig
-
Thread
Signal abtasten---> speichern und auswerten
erkenne ich am eingang des MC dass es der anfang der Fram ist bzw das ende vom frame!!?? ich werde bit zu bit abfragen... inerhalb 869ns werde ich 10 abtastpunkte machen (analogwerte) diese werte werde ich vergleichen mit den werten die ich bei der signalspezifikation habe..bsp : nehme ein wert liegt
500ns, das währen grob 1,7 Takte je 10 Messwerte, das wird eng mit auswerten und speichern. Einzelne Bits zu speichern wird dich niht deutlich vorwärts bruingen um Platz zu sparen, da brauchst du ja dann noch eine Information um zu wissen welches Bit das mal war, sonst bringt dir der Wert ja gar
-
Thread
Ethernet Relais
Transistor und ein Relais. Ethernet ist aber eher eine Schnitt- stelle für Megabyte und nicht für ein einzelnes Bit. Und der Aufwand zur Übertragung ist etwa genauso gross; egal ob Du Megabyte oder nur eine Ein-Aus-Info überträgst. Gruss Harald
, Ethernet PHY, SPI/I2C/UART, GPIO. Alles in einem einzigen Chip. Einfacher und billiger und kleiner geht es nicht. fchk
-
Thread
Anfänger bittet um Unterstützung (PIC 12F629)
eines STM32Fxxx (für diejenigen, die meinen, 8-Bit wäre tot und heute nimmt man für egal was einen ARM). Norbert S. schrieb im Beitrag #5317232: > Ich würde Ihnen einen modernen pic18f empfehlen. Dazu den Pickit 3 und > dann alles in C programmieren
Ohne Zweifel werden 8bit-Controller in 100 Jahren nicht tot sein! Ich habe gerade 2 Projekte (Toaster-Controller und Multi-Timer) in C am laufen mit 6pin pic10lf322 and attiny10 beide 0.5KWorte mit 64 bzw. 32 Byte RAM.
-
Thread
Letzter Hilferuf AT91SAM7S - PWM oder PCK
direkte Hardwarezugriffe von der Programmlogik trennen Könnte dann so aussehen (ungetestet) [c] #define CLOCK_BIT (1 << 17) #define LED_BIT (1 << 18) void initClock(void) { AT91C_BASE_PIOA->PIO_PDR = CLOCK_BIT; // Configure PA17 to be driven by peripheral AT91C_BASE_PIOA->PIO_OER = CLOCK_BIT; // Configure PA17 as output AT91C_BASE_PIOA->PIO_PPUDR = CLOCK_BIT; // Disable pull-up on PA17 AT91C_BASE_PIOA->PIO_BSR = CLOCK_BIT; // Assign PA17 to peripheral B function AT91C_BASE_PMC
-
Thread
Wittig(welec) DSO W20xxA Open Source Firmware (Teil2) Gesperrt
ein Hinweis. Vielleicht wäre es sehr hilfreich, mal für alle Register die die Bedeutung der einzelnen Bits zu ermitteln. Ich finde das derzeit sehr unübersichtlich. Zusätzlich wird zum löschen der Bits die invertierte Darstellung verwendet.
nicht gefunden), ob seine SW mit einer bestimmten Hardware Version am besten funktioniert. Meine ist 8C7.0E (siehe Bild). Beim Lesen hier bin ich noch ueber 8C7.00, 8C7.0F, 8C7.0G, 8C7.0H und 8C7.0L gestolpert. Welche davon passt am besten zu Hayo's SW? Oder ist das egal? Schade, das sich die einzelnen
-
Thread
CMOS Sensor MT9P031
zeilenbasiert arbeiten kann (das ist zu 90% der Fall und gängige Praxis), dann benötigst Du 4 BlockRAMs (4x18kBit = 72kBit). Da kannst Du den XC3S50 (Xilinx), EP2C5 (Altera), EP3C5 (Altera), XP2-5 (Lattice) oder den ECP2-12 (Lattice) nehmen. Wenn Du kein zusätzliches Flash anschließen willst, dann wäre der XP2
MT9P031|12STC bezieht, ich habe aber einen MT9P031|12STM (M - wie monocrom). Kann ich einfach die 12 Bit als 12-Bit-Wort Helligkeitswert interpretieren? Viele Grüße! Marko
-
Thread
[AVR][ATMega328] UART Receive und Echo mit Fleury Lib
willkürlich gewählt). Ich sehe nirgens eine 33 im Echo, siehe Screenshot. Setze ich direkt, ohne if Abfrage alles auf 33 sieht es aus, wie im zweiten Screenshot. [c] /************************************************************************* Function: uart_putc() Purpose: write byte to ringbuffer
uart_getc(); } // Setze Flag "Neue Daten verfügbar" flagNewData = 1; } } [/c] Ich habe also - nachdem ich nochmal Peters Beispielprogramm durchforstet habe - den 16Bit Output aus uart_getc() verwendet, so konnte ich dann wieder prüfen, ob es sich um valide Daten handelt und
-
Thread
Digital oder Analog
würd das Signal als Strom übertragen. 4-20mA ist da so ein Standardsignal. Also bei dir 4mA vllt 0°C und 20mA 100°C oder so. Dann reichen 2 Adern, das Signal ist wenig störanfällig und 3 Meter sind absolut kein Problem. Musst mal ein wenig suchen, gibt es divere Schaltungen zu. Der "Sender" kann
einen Bus schalten kann. Jeder Sensor erhält eine Adresse und der Master kann sie der Reihe nach abfragen ( Pollen). Das entspannt die Kabelage enorm. SPI ist, ebenso wie I2C, ein Kurzstrecken-System. I2C kann man als so genanntes Power-I2C auch strecken und verlängern. Aber gerade SPI hat den Nachteil
-
Thread
Zeichenkette über UART empfangen
funktioniert es aber wenn ich auf einzelne Chars vergleiche z.B. ein kleines a: [c] if (strcmp (input_str, "Test") == 0) { PORTB &= ~(1 << PB1); //Led geht an zum Test // hier sollen
im Fehlerfalle auch einfach mal aus, was er versucht hat zu vergleichen. Z.B. so (untested): [c] static char * getline(char *buf, int size) { int i = 0; char c; // ignore status bits, UART_NO_DATA becomes '\0' assert(size > 0); // raw input - no echo, no line editing, truncate
-
Thread
#define 2 Ports auf ein define
Mach Makros, mit denen du die LEDn einzeln bedienen kannst: [c] #define LED0_PORT PORTD #define LED0_DDR DDRD #define LED0_PIN PIND #define LED0_PPIN PIN7 #define LED1_PORT PORTB #define LED1_DDR DDRB #define LED1_PIN PINB #
Die Bits einzeln ansprechen, nicht alle 8 zusammen: [c] #define LED_ON(n) if ((n) < 4) PORTB |= 1<<(n); else PORTD |= 1<<((n)-4) [/c] Keine Sorge wg. Code, bei konstantem n optimiert der Compiler die Abfrage
-
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