-
Thread
Ampelsteuerung mit 80C552 und µvision3 in Assembler
nein. So funktioniert das nicht. Was soll das sein "wenn 20h.0 nicht 0 ist" Ich kenn zwar deinen µC überhaupt nicht, aber das würde mich schwer wundern, wenn man sich bei einem jnz auf ein Bit eines Ports beziehen könnte Ein jnz wertet üblicherweise die Statusflags aus, die ein vorhergehender Befehl
Hallo! Beim 8051 ist 20h im internen RAM bit-adressierbar. Es dient also als Flag. Je nach Assembler kann man das aber nicht so schreiben. Es ist nämlich an der Bitadresse Null. Der Assemblerbefehl lautet also JNB 0h, marke (JumpNoBit
-
Thread
ARM7 mit VIC und Spurious Interrupts
per Software der Vektor abgefragt (und damit die Bits). Wenn aus diesem Modell etwas werden soll, dann muss das IRQ-Request-Bit im VIC "sticky" sein, d.h. es wird mit einlaufendem IRQ sofort gesetzt und bleibt dies so lange, bis der Handler es explizit
"Na klar, ich möchte beiden Problemen vorbeugen, da ich auch mal das I-Bit und das F-Bit verändern möchte." Darfst du ja auch, Du darfst auch beide abschalten wie es dir beliebt. Wenn du es allerdings einrichten kannst, nie beide zusammen mit dem selben MSR-Befehl abzuschalten
-
Thread
Signalwechsel ATMeg
die Austastung und setz sich nach weiteren Y Takten zurück, geht so was? Die Umschlatung der einzelnen Frequenzen will ich lösen in dem ich die Werte für ICR1, Ocr1A, OCR2 als Variable definiere, Tasten abfrage und die Variale beim dücken der Taste entsprechend übergebe. Das ist aber erts der näschte
Hallo mue_c liest Du noch mit? ich komm nicht weiter.
-
Thread
ADC Prescaler ändern Controllino
beschrieben wie das geht. Also habe ich folgenden Code eingefügt der aber scheinbar garnichts macht: [c] // set prescale to 16 sbi(ADCSRA, ADPS2); cbi(ADCSRA, ADPS1); cbi(ADCSRA, ADPS0); [/c] Ich habe einfach gemessen wie lange 1000 analog reads brauchen (millis davor und danach
PS @ufuf: Dein Code geht - danke dafür. Daraus kann ich aber auch nur entnehmen, dass man ein paar bits setzen muss um den prescaler zu ändern. Aso werde ich mal weitersuchen.
-
Thread
DIP-Schalter an ATmega8515
desto trotz: Pins einzeln abfragen ist Basisfertigkeit. Das muss sitzen (mit einem großen MUSS)
wie kommst du auf die merkwürdige Idee, PD0 wäre eine /Variable/? Um den Zustand der Pins an Port C abzufragen, liest man das PINC Register. Und schaut dann, ob in diesem 8-Bit Wert (aka unsigned char) das Bit mit der Nummer PC0 gesetzt ist: [c] if (PINC & (1<<PC0)) { return 1; } else {
-
Thread
schneller Optokoppler gesucht (3V RS-232, Reichelt?)
aber wenn's doch mal vorkommt, dann sollte nicht gleich alles abrauchen. Alternative wäre nach I2C-Isolatoren suchen und I2C benutzen - falls man mit denen kein UART-Signal übertragen kann.
Einschränkungen auch Balancing in einem einzigen IC (wofür sie aber wieder eine Steuerung durch einen µC brauchen) - aber bei Überwachung nur einer einzelnen Zelle (oder einer Parallelschaltung vieler), brauche ich das nicht bzw. kann ich das auch alleine machen wenn ich sowieso einen Steuer-Controller
-
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
Betty als Modellbau-Oszi
/drawing/fb1bit -DDRIVER_DRAWING -I./driver/graphic/ssd1854 -DDRIVER_GRAPHIC -DDRIVER_GRAPHIC_BACKLIGHT -I./platform/lpc2220 -I./platform/lpc2220/lpc2220_lib -c -o driver/drawing/fb1bit/drawing.o driver/drawing/fb1bit/drawing.c driver/drawing/fb1bit/drawing.c:25:1: warning: initialization from incompatible pointer type driver/drawing/fb1bit/drawing.c:25:1: warning: initialization from incompatible pointer type driver/drawing
-
Thread
CRC Fehlerkorrektur -> Lookuptable
Bei 113950 Baud habe ich aktuelle eine Fehlerrate von 50% ohne korrektur. Die Fehler liegen in einzelnen geflippten Bits. Fazit: original Softwareserial ist nicht so schlecht wie es im Netz immer behauptet wird. Aber sie ist natürlich viel schwächer als die Hardwareserial, klar! Für mich
..3 Mikrocontroller für einen > "simplen" BLDC Controller Wenn interessiert es, ob da 2 oder 6 uC werkeln? Ich habe es erst neulich irgendwo im Forum geschrieben: Wir nehmen MEGAs(328P) für Abfrage der verschiedenen Sensoren sowie Steuern der Aktoren und STM32 als Master macht die notwendigen
-
Thread
MINI-SPS mit AVR od. ARM
AVR oder PIC als Untergrenze herangezogen werden sollte, oder ob man sich nicht gleich auf mind. 16-Bit als Untergrenze einigt. Eine Überlegung wäre auch ob man nicht sowas wie den R8C/13 der dem nächsten Elektor-Heft beiliegt als gemeinsame (Referenz-)Entwicklungs-Plattform verwendet und parallel
Verfügung stellen möchtest oder doch? @mahlerp: Beschränkt man sich bei der Diskussion mal auf das µC Board bzw. einfachen IEC Code, dann braucht man auch nicht wirklich viel Speicher. Einen S5 Code kann man schon im Tiny laufen lassen, da man nur einen 1-bit Speicher für die Binären Opcodes und 2 Bytes
-
Thread
Gruppen Flags unterscheiden
Hallo Ich arbeite mit einem uC STM32F072C8T6 und bin gerade dabei mir die Funktion eines TSC näher anzusehen. Ich lese auf S 317 im Reference Manual: Bits 23:16 GxS: Analog I/O group x status These bits are set by hardware when
müssen demnach 3 Interrupts kommen. Aber das kann ich ja mal testen. > Das waeren insgesamt 3 Abfragen. Wo ist das Problem? > Es geht doch nur darum, ob das jeweile Flag GSx gesetzt ist, oder? Ja es ging mir darum, ob du das auch so verstehst wie ich. Ich frage im Interrupt die GxS bits einzeln
-
Thread
Eigene SoC-Software vor Duplizierung schützen
. Zwischenfrage: Kann man das Flash so nutzen, dass der Kunde seine Kunden-APP drin hat (also SoC-Software + eingebaute SoC-FPGA-firmware) und parallel meine beiden Versionen, also SoC-FPGA-firmware + allgemeine SW? ... also für den Fall, dass das SoC das ermöglicht (siehe die Einschränkung von
bietet zuviele Angriffsmoglichkeiten. Benutze das eeprom. Z.b. 256 byte. Das sind 8x 32byte oder 256 bit 32 byte für user ID(30 für ID, 1 für checksum, 1 für Rest checksum), 4 byte für unix-time, 4byte für Option, 2byte für Version. 16bit für auth, 16 bit checksum, 4byte system ID. Dann kommen auth
-
Thread
Einstieg in C
vielleicht zu Weihnachten mit Controllern anfangen kann. Was zum Teufel soll das debuggen bei Visual C mit der Controllerwelt zu tun haben? Bits setzen und löschen, Inputs abfragen und Interrupts kommen da ja wohl selten vor... Leider hat Dominik nicht geschrieben welche Controller er programmieren
welcher Programmiersprache man das bewerkstelligt, ist fast schon Nebensache. Die Register für die einzelnen Funktionen sind im jeweiligen Controller- Datenblatt aufgeführt. Ich würde mir ein einfaches C-Buch für PC (z.B. "C Programmierung mit einfachen Beispielen" von Jürgen Wolf) besorgen, mal die
-
Thread
LED Matrix und 4 Gewinnt
for Schleifen machen. Wo ich mir allerdings absolut nicht sicher bin, ist bei folgender Syntax: [c] Port_Zeile &= ~(1<<z); [/c] Wenn z=0 ist, dann steht da: [c] Port_Zeile &= ~(1<<0); [/c] Nimmt er dann vorm Port_Zeile das 0.Bit - also PB0?
also hier [C] Port_Zeile &= ~(bitMasks[ isrZeile ]); } [/C] wodurch du die Möglichkiet kriegst, die boolsche Negierung auch gleich noch mit ins Array reinzuziehen. [C] uint8_t bitMasks[] = { ~0x01, ~0x02
-
Thread
KEYPRESS.COM
nächsten seite "keypress" eingeben. Dan rechte Maustaste auf den Link, Eigenschaften, und bei Ziel " /mnt/c/wsl/keypress.sh" hinzufügen, danach sollte da "C:\Windows\System32\bash.exe /mnt/c/wsl/keypress.sh" stehen. Nun den Link in den Path verschieben, (z.B. nach C:\Windows). Jetzt kannst du das Script verwenden, einfach eine CMD öffnen, und "keypress.lnk a b c" eingeben.
-
Thread
Druck und Höhensensor MPL3115a2
Ja das Problem war, dass ich beim zusammensetzen des 12 Bit Registers die einzelnen Bytes auf long int casten musste. Ohne casten gab es halt immer einen Überlauf bei der Berechnung, was zu einem Fehlerhaften Ergebnis führte. [c] 338 // Druck
mal so lange dauert bis der Sensor abschmiert. Hi Marcel, leider verliere ich auch bei 10kHz I2C-SCL nach einigen Minuten die Verbindung (1 Abfrage/s. Da du oben für 'altitude' einen 'int' angegeben hast, nehme ich an, dass du dein Programm auf einem PC und nicht auf einem AVR laufen lässt. Ich
-
Thread
PTC-Widerstand mit Mikrocontroller nachbilden
Peter D. schrieb im Beitrag #7573955: > 64 Stufen (6 Bit) sollten für eine Heizung reichen. Ich würde auf 3 Bit und 8 Stufen tippen. Wenn man die Stufen geschickt wählt, kann man damit immerhin von -15°C bis 20°C in 5K Schritten abdecken. Und arg viel mehr
Mann könnte auch z.B. ein X9C102 (siehe https://cdn-reichelt.de/documents/datenblatt/A200/X9C104_SO.pdf) verwenden. 5V Versorgung durch ein DC-DC isolieren, ebenso die UP/Down Signale
-
Thread
AVR-Programmer-Software für standalone FT232R
Verfügung stellen. Bei bedarf würde ich auch gerne an dem Projekt mitwirken, .net programmiere ich in C#. Hast du das Projekt in VB oder c# realisiert? Wie oben schon angedeutet würde ich das ganze evtl erstmal als StandAlone zum laufen bringen und anschließen in AVRStudio integrieren. Weiter könnte
@Umpa Lumpa Weil mich jede Abfrage eines Busystatus mindestens 0,1 Sekunde kostet und damit alles wieder sehr langsam wird. LG Christof Rieger
-
Thread
Reichelt: 2-Kanal Farb-DSO für 350€ :)
Oszilloskope sind keine Präzisionsinstrumente. Zur Bildschirmauflösung: Dieses Gejammer von Ralph ist l-ä-c-h-e-r-l-i-c-h. Diese Dinger haben allesamt 8-Bit Wandler. Ob dir das Oszilloskop frei erfundene Zwischenwerte beim Verbinden benachbarter Punkte malt, damit es schöner aussieht, oder du eine Stufe siehst
Ich hab seit drei Tagen auch ein UT2042C. Aber ich finde keinen Treiber für den PC um die Signale abzurufen. Kennt da einen was? Der Hersteller meint den dürfen sie nicht einzeln raus geben.
-
Thread
R8C13 Programmierung
irgendwas mit i gibt es in C nicht. Es gibt 2 Möglichkeiten: - Den Port mit einem Struct in ein Bitarray zerlegen. - Den gesamten Port einlesen und einzelne Bits markieren: if (p1&(1<<i)) Schau mal auf http://www.m16c.de/
studiert habe, kommt der interne daten speicher wohl eher nicht in frage. ich werde mich mit einem 24C01 beschäftigen, da ich dort auch einzelne bytes lesen und schreiben kann, ohne vorher ganze seiten löschen zu müssen.
-
Thread
AVR Interrupt-Verhalten
gesetzt, Welcher Zähler? Es gibt auf dem AVR keinen derartigen Zähler. Ein Ereignis setzt ein Bit und wenn Interrupts zugelassen sind, triggert dieses gesetzte Bit letzten Endes den Aufruf der zugehörigen ISR. Die Reihenfolge in der diese Bits ausgewertet werden beginnt jedesmal wieder von vorne
beeindrucken, dass dein mit 4Ghz getakteter PC (unter Windows) ab und zu ein Päuschen einlegt. Auf deinem µC bist du alleine auf dem nackten Silizium. Da gibt es kein Betriebssystem oder einen Virenchecker oder Abfragen von Mails oder einfach nur Speicher aufräumen, welches dir Rechenzeit unter dem Hintern
-
Thread
5 Zeiten mit ICP messen -> Problem mit den Timerwerten (ATmega8 und C)
solltest du _auswerten_ (abfragen), um die RS485 wieder auf Empfang schalten zu können. Das Bit wird (vom Controller) gesetzt, sobald das letzte Bit den Puffer verlassen hat und kein neues im UDR steht. Soviel zum Quelltext.
STK500-Besitzer schrieb: [c] UCSRA|=(1<<TXC); // vorangegangene Übertragung ist zu Ende [/c] > Du brichst von dir aus die Übertragung ab? Nein, er löscht das Flag. > TXC solltest du _auswerten_ (abfragen),
-
Thread
AVR und C++ - ein Versuch
if (check.isHigh()) led.setLow(); else led.setHigh(); } } [/c] Die einzelnen Pin-Anweisungen sind jetzt in C und C++ identisch (auch in der lss-Datei. Für mich eine Basis, den Rest daran anzupassen :)
interruptsPerSecond) { if (!ticker) { ticker = this; // only the first call shall setup the 16bit timer! setupTimer(interruptsPerSecond); } }; [/c]
-
Thread
Interrupt Unterschiede beim 8-Bit Timer vom Atmega 128
Option dadurch offen gehalten, dass eben jedes einzelne Bit seinen eigenen symbolischen Namen hat. Und die lange Variante würde eben auch diesen Fall problemlos abdecken, deine hingegen würde dann Mist bauen.
hat sich diese Option dadurch offen gehalten, > dass eben jedes einzelne Bit seinen eigenen symbolischen Namen hat. > > Und die lange Variante würde eben auch diesen Fall problemlos abdecken, > deine hingegen würde dann Mist bauen. Ja, das ist mir bekannt. Dafür
-
Thread
SPI Anfang Oszi
SPI1C1 = 0x50; schreibst du dann SPI1C1 = (1 << Bit6) | (1 << Bit4); Kannst natürlich auch "SPI1C1 = (1 << 6) | (1 << 4);" schreiben. Das kommt aufs gleiche raus. Aber das mit Bitx zu schreiben, finde
es hier so heißen: > SPI1C1 = (1 << Bit6) | (1 << Bit4); > > oder so: > > SPI1C1 |= (1 << Bit6) | (1 << Bit4); > > Ich würde sagen Letzteres, da die Oder-Verknüpfung angewendet werden > muss. Nach Reset sollte das Register
-
Thread
Wird heutzutage auch im Komsumerbereich auf Bitflips geachtet und sicherer programmiert?
Problem ... Z.B. durch natürliche Hintergrundstrahlung. > Insb eine Fehlerkorrektur in einem einzelnen > Register bringt dir gar nichts - dann kippt halt ein anderes Bit. Um das zu vermeiden genau dafür wäre die Fehlerkorrektur ja dann da. Der Wert würde mehrere Bits einnehmen, das wäre nicht
Hast Du dafür auch Belege? SRAM kann man überhaupt nicht vergleichen mit DRAM. Ich hab mal einem AT89C2051 >10s die VCC kurzgeschlossen, der SRAM war noch komplett erhalten. Ich wollte über den SRAM eine Kaltstart/Warmstart Erkennung programmieren, da der AT89C2051 keine Bits zur Erkennung der Resetquelle
-
Thread
Foucaultsches Pendel
hoch, dass dies keine Rolle spielt? Du unterschätzt massiv die Geschwindigkeit der Teile. Dein µC kann die Eingangsschieberegister so schnell abfragen, dass sich zwischen 2 Abfragen das Pendel um keinen ganzen Millimeter bewegen kann. Wahrscheinlich noch nicht einmal einen Zehntelmillimeter.
Wäre es jetzt overkill hier PCF8574 (oder die 16-Bit SMD-Variante PCF8575) vorzuschlagen? Sind I2C Expander und können aber auch einen Interrupt auslösen bei Änderung. Meine Idee: 3 PCF8574 in "Input mode" schalten, sprich die Ports auf H setzen. Über
-
Thread
Zeigt her Eure Kunstwerke! Gesperrt Bilder
Ralf Greinert schrieb: > TPIC6C595 gibt es aber leider nicht als DIL ... doch! TPIC6C595 *N* http://de.farnell.com/texas-instruments/tpic6c595n/8bit-shift-register/dp/1470497
Mal was ganz kleines ... SOT-23-6 auf DIL Adapter Es handelt sich um einen MCP3421 18-Bit AD mit I2C
-
Thread
Entwicklung eines RAM mit Interface - Probleme mit der Synthese/Impl.
zwischen C2000 und FPGA als synchron betrachten. Kein Einsynchronisieren nötig, keine Latches, wenige übersichtliche Constraints, nur ein einzelner Quarzoszillator auf der Leiterplatte. Marcel schrieb im Beitrag
Schluss zu sein) nicht erreichbar sein. Man sollte da nicht so optimistisch sein. Wir reden hier vom C2000 EMIF im 16bit ASRAM-Betrieb. Hier hat das netterweise jemand theoretisch durchgerechnet: http://e2e.ti.com/support/microcontrollers/c2000/f/171/t/704812?TMS320F28379D-Theoretical-maximum-read-and-write-speed-of-the-EMIF-connected-to-ASRAM
-
Thread
Max(a,b) möglichst effizient
h := b; end if; if (h>c) then m <= h; else m <= c; end if; end process; -- Macro Statistics -- # Comparators : 3 -- 32-bit comparator greater : 3 -- # Multiplexers : 1 -- 32-bit 4-to-1 multiplexer : 1 -- Maximum combinational path delay: 12.886ns -- Number of Slices 80 process (a,b,c) begin if (a>b) then if (a>c) then m <= a; else
-
Thread
Hausbus auf Ethernet über UDP Broadcast
Philipp C. schrieb im Beitrag #3037893: > Wie realisierst Du bei Dir die Kommunikation? Sprichst Du einzelne > Knoten direkt per IP an und baust eine TCP Verbindung auf? Und hast Du > da dann ein spezielles
fehlerhafte Daten. Die Daten sollten somit immer validiert werden. zB: habe ich vor einer Minute 22C gemessen können es jetzt nicht -20C sein!
-
Thread
Atmel ist unter "Profis" nicht gerade beliebt - Warum?
|= (1 << LEDBIT); /* setzt Bit 4 an PortB auf 1 */ _delay_ms(200); PORTB &= ~(1 << LEDBIT); /* loescht Bit 4 an PortB */ } return (0); } [/c] Und das wird daraus: [avrasm] 0000004a <main>: #define LEDBIT
brne .-4 ; 0x64 <main+0x1a> _delay_ms(200); PORTB &= ~(1 << LEDBIT); /* loescht Bit 4 an PortB */ 68: c4 98 cbi 0x18, 4 ; 24 6a: f5 cf rjmp .-22 ; 0x56 <main+0xc> 0000006c <_exit>: 6c: ff cf rjmp .-2 ; 0x6c <_exit> [/avrasm]
-
Thread
Timing Multiplexen
Ich lade nachher ein Foto hoch, bin derzeit noch auf Arbeit. Die Abfragen in der ISR sind für eine Uhr. Es soll letzendlich eine Binäruhr werden. So wie ich jetzt multiplexe möchte ich es auch lassen, da die latch(es?) 4 bit groß sind.
nebeneinander liegende LED. Die können nur entweder ein oder aus sein. D.h. von einem uint8_t kann jedes Bit wunderbar eine LED abdecken. Daher definier ich: uint8_t ledMatrix[4]; 4 Bytes. In jedem Byte sind die unteren 6 Bit für jeweils 1 LED zuständig. [C] uint8_t ledMatrix[4]; uint8_t actLine
-
Thread
Seqentiell oder parallel
prozess ist der ablauf sequentiell oder paralellel? angenommen ich programmieren 2 Undgatter a UND b = c x UND y = z werden diese parallel synthetisiert oder sequentiell? wenn abghängigkeiten bestehen ist es klar dass sie seqentiell sind: a UND b = c c UND y = z mfg
()-Abfrage ignoriert. Bei der steigenden Flanke werden dann die vorherigen Werte (a,b,c,l,m,n) zu neuen Werten berechnet (a,l,z). Der obige Prozess ist dann in der Hardware exakt gleich mit [vhdl] process
-
Thread
stm32 HAL UART Receive_IT(.) sendet nur 1 Byte
Daten über die HAL_UART_Receive_IT() Funktion zu empfangen. Leider kommt im Speicher nur das erste Bit an welches versende. Hier der Quellcode: In der main.c: uint8_t a = 0; char docklight[10]; int main(void){ while(1){ HAL_UART_Receive_IT(&huart3,&docklight,strlen(docklight));
In der _*_it.c brauchst du nichts zu ändern. Füge im die main.c die Funktion HAL_UART_RxCpltCallback ein. In dieser kommt jedes Zeichen einzeln an und du kannst auf Zeilenende auswerten oder einen Puffer mit einer
-
Thread
erst programmieren, dann schalten
benötigt somit nur - 1x Daten-Ausgang - 1x Clock - 1x Latchen und die Daten werden so seriell vom µC ausgegeben bis alle 104 Bits gesendet wurden und dann ein mal gelatcht und die 104 Ausgänge werden geschrieben.
send(schieberegister1) send(schieberegister2) ... LE=1 LE=0 }[/code] Ich würde in µC für jedes Schieberegister eine Variable erstellen, die mit 0 initialisiert wird und abhängig von der Schalterposition in diesen Variablen einzelne bits Setzen und löschen. Am ende jeden Schleifendurchlaufs
-
Thread
USB RFID Tag Leser
Hallo, hier gibt's einen RFID Tag Leser, der 64 Bit 125 kHz Tags ausliest und die darin gespeicherten Daten (40 Bit "netto") über die USB Schnittstelle ausgibt. - Auf der Platine integrierte PCB Antenne - RFID Reader Chip EM 4095 - µC ATMega 16,
Hat jemand schon mal den Fehler gahabt: LED leuchtet immer grün, es scheint, er hängt sich in der [c] em4095_read_tag(tag) [/c] im [c] do { if (bit_is_set(TIFR, TOV0)) { timeout--; TIFR |= 1<<TOV0; //Clear Overflow Flag } } while ((!flag) && (timeout > 0)); [/c]
-
Thread
7-Seg Pins ansteuern
viel einfacher, wenn Du Dir das chinesische Verilog-Beispiel genau anschaust: Hier wird ein 16 Bit-Zähler benutzt, von denen Bit 15, 14 und Bit 13 für deine CASE-Abfrage verwendet werden können. Du lässt diesen 16 Bit-Zähler einfach mit dem 50MHz-Takt hochzählen. Die unteren 13 Bit vom Zähler "takten" dann bei jedem Überlauf dieses 13 Bit-Zählers (Bit 12 bis Bit 0) den 3 Bit-Zähler (Bit 15 bis Bit 13). Das heisst, Du hast automatisch einen Vorteiler von 2 hoch 13, also von 8192. Dadurch zählt dann dein Zähler für die CASE-Abfrage mit
-
Thread
TWI: Quartz notwendig?
Stück notwendig? So aufwendig (auch im Sinne von Prozessortakten) ist es nun auch wieder nicht, den 8 Bit-Wert für die Ausgabe am Schluss auf zwei IO-Ports aufzuteilen (z.B. Bits 0-5 auf PB0-PB5 und Bits 6 und 7 auf PC0 und PC1, dann ist das schnell erledigt: PORTB = (PORTB&0xC0)|(tmp&0x3f); PORTC = (PORTC
Hallo, zur ursprüngleichen Frage zurück. TWI / I2C ist eine Synchrone Datenübertragung. Solange Du die Minimalabständer der Zustandsänderungen der einzelnen Signale zueinaner einhälst, ist das Timing ziemlich unwichtig. Gruß Tom
-
Thread
Logic Element (LE) programmieren
Ich bin neu in Sachen FPGA Programmierung - ich habe nur Kenntnisse im allgemeinen Programmieren - C, C++, Java etc. Da ich eine leistungsfähige Plattform brauche habe ich mir ein Developer Board von Altera besorgt - mit Cyclone II FPGA. Diesen möchte ich nun programmieren - Tutorials erfolgreich
Nachbar-Pixel zugreifen, indem du bei IMG_IN den Index rauf oder runterzählst. Und das FlipFlop als einzelne architecture zu implementieren, kannst du dir so auch sparen, da die FF über die if-Abfrage im process automatisch generiert werden. Denke nicht in einer einzelnen Zelle, die mit ihren Nachbarn kommuniziert
-
Thread
Video Format Converter - FPGA
Ramon F. schrieb im Beitrag #2936197: > Jetz fällt mir aber auf, das ich pro Taktzyklus 18 Bit Input habe aber > nur 16 Bit Input für den Speicher habe. Wie sieht's mit einer Reduktion auf 5:6:5 aus? Würde Dir vielleicht 'ne Menge Kopfweh ersparen...
Dir auch mal den Schaltplan vom Xilinx SP605 anschauen (xtp067.pdf). Dort wird ein Chrontel CH7301C verwendet. Duke
-
Thread
Zum verrueckt werden: DSP TMS320F28335 von texas instruments
[c] //Init: Uint16 A0,A1,A2,A3,A4,B0,B1,B2,B3,B4; AdcRegs.ADCTRL1.bit.RESET=1; InitAdc(); AdcRegs.ADCTRL1.all = 0; AdcRegs.ADCTRL1.bit.ACQ_PS = 4; AdcRegs.ADCTRL3.bit.SMODE_SEL
event bit 7-4 0000: reserved bit 3 0: INTEN, 0 = disable interrupt bit 2-0 000: INTSEL, don't care */ [/c] in der ISR: [c] A0 = AdcMirror.ADCRESULT0
-
Thread
ATmega via LAN / Telnet ansprechen?
vorzugsweise in C. Grüße AVRli...
kann, das war ein guter Hinweis! Lies dir erst mal in Ruhe das Datenblatt durch. Da sind zu den einzelnen Funktionen ausreichend (Pseudo-)C Beispiele drin. Etwas Literatur über Ethernet kann auch nicht schaden. MfG Spess
-
Thread
Anfänger in C und welcher PIC (evtl. uno32) ist geeignet ?
deswegen ist deine Bekanntheit mit PIC16x auch kein Argument dafür, bei Microchip zu bleiben. C ist überall C. Außerdem haben PIC24 (16 Bit) außer dem Namensbestandteil PIC genau gar nichts mit den 8-Bit PICs zu tun. Und die 32-Bit PIC sind in Wirklichkeit MIPS Cores. > Das Kurzzeit-Ziel: Dem
Beitrag #3922524: > Be Ti schrieb im Beitrag #3922415: > >> Das Langzeit-Ziel ist PIC24 mit 16 bit, weil die 16 >> bit-Berechnungen da am besten aufgehoben sein werden ... >> Das Ganze dann in C > > Mit Verlaub, aber das ist Unsinn. Wenn du in C programmierst, dann macht > der C-Compiler die
-
Thread
[C] binäre Darstellung von double -Zahlen
die Adresse um 1 erhöht wird. Würdest Du [c] double *pD = &dWert; [/c] machen, dann würde *pD einen Double liefern und bei pD++ die Adresse (in den meisten Fällen) um 8 erhöht werden. Du könntest auch [c] union { double d; unsigned char u[8]; } wert; wert.d = 1.2345; [/c] machen und dann mit [c] wert.u[0] ... wert.u[8] [/c] die einzelnen Bytes abfragen. Dadurch überlässt Du dem Compiler die Pointer-Geschichte.
-
Thread
GNUBLIN www.gnublin.org
Treiber sendet nur für die *letzte* message, die ihm übergeben wird das STOP bit. Wenn ich ein I2C write/read Kommando [code]root@gnublin:~$ i2cget -y 1 0x48 1 b[/code] an den Treiber schicke, werden 2 Linux I2C messages an i2c_pnx_xfer() übergeben. Die erste enthält das I2C
ob der I2C pnx Treiber richtig arbeitet. Wenn die I2C engine mal im Nirwana ist, kann dieser sie bis jetzt leider nicht zurückholen. Mein workaround im Moment ist, nach jeder message ein STOP bit zu senden.
-
Thread
Wofür Propeller von Parallax ?
und Gruppen von 4 Pins haben je einen eigenen Spannungsversorgungspin erhalten, so dass man diese einzeln entkoppeln kann. Trotzdem erreicht der ADC "nur" eine Genauigkeit von etwa 13.5 Bits für absolute Spannungsmessungen. Für dynamische Signale, wie Audio, geht die Auflösung aber bis 18 Bits. --
c-hater schrieb im Beitrag #6528065: >> Während ein Prozessor z.B. über die Schnittstelle Daten einliest, kann >> ein zweiter parallel schon anfangen die Daten in einzelne Datensätze zu >> zerlegen
-
Thread
was spricht eigentlich gegen die xmega? Gesperrt
altes Modell, den würde ich heute bei einer neuen Schaltung nicht mehr einsetzen wollen. Ein 8-Bit AVR kann natürlich 16Bit verarbeiten. Wenn man damit allerdings in Assembler rechnen will, dann wird das etwas kniffliger, daher besser die Hochsprache C nehmen. Bei einem 16 oder 32Bit µC kann man
glatt übersehen. Das ist doch mist, da braucht man wieder einen Spannungsregler ( 12V => 5V = 16-Bit ADC => 3,3V = µC ). Bernd_Stein
-
Thread
Wozu übertrieben schnelle Microcontroller?
ja soviel "natürlicher" wäre, > längst durchgesetzt haben. Das ist so wie mit den > dummen 32vs.8Bit Prognosen: Lächerlich! An vielen Stellen, vor allem z.B. auf dem PC hat sie sich durchgesetzt. Python, C++, C#, Java und noch viele mehr - alle dort gängigen Sprachen sind primär oder sogar vollständig
*** [Makefile:69: build/src/test_01_blink.o] Fehler 1 [/code] Bei anderen Controllern mit PORT C (z.B. HCS08) gibt es kein PORTC Register. *portpin_set_output(PORT_C, 8);* Würde entweder PTC8 auf Output setzen oder PTC0, wenn Port C nur 8 Bits breit ist. Da die Pin-Nummer ja eine Variable