-
Thread
Thermometer mit ds18s20 und LED Annzeige
Hab es nun so versucht - etwas aufwendig aber es geht... Dim Digit0 As Bit 'Merker =0 wenn 1. Stelle =0 Dim Digit1 As Bit 'Tausenderstelle If Val(tempstr) = 0 Then 'Führende Null wegblenden If Digit = 0 Then : Portc.1 = 0 : Digit0 = 0
= 0 'C.2=Digit Transistor End If End If 'Zehnerstelle If Val(tempstr) = 0 Then 'Führende Null wegblenden If Digit = 2 And Digit1 = 0 Then : Portc.3 = 0 :Digit1 = 1 'C.3=
-
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
Rückwandbus mit I2C
Sicherheit kommt ja auch ein klein wenig auf die Implementierung an. Mit I2C und nur "ein paar bits pro Sekunde" kommt man schon ziemlich weit, jedenfalls viel weiter als ein Rückwandbus reicht. Normale I2C - Slaves haben kein Problem damit, wenn die Busgeschwindigkeit gedrosselt
daß sich alle Slaves melden müssen, > sehe ich da auch keinen Unsicherheitsfaktor. Das ist im I2C Standard sowieso schon drin. Wenn während der Addressierung der Slave nicht mit dem ACK bit antwortet, gilt das als Kommunikationsfehler. Wenn I2C sauber über mit GND getrennte Leitungen geführt wird
-
Thread
Protokoll Level zusammen mit Tasks, brauche hilfe
definiert wird). Und da bei RS485 alle Kommunikation sowieso vom Master initiert wird, ist diese Abfrage nicht so sinnvoll. Es würde eher auf einem Slave zutreffen. Aber auch da würde ich nicht auf das Parity-bit schalten.
alle Kommunikation sowieso vom Master initiert wird, >> ist diese Abfrage nicht so sinnvoll. Es würde eher auf einem Slave >> zutreffen. Aber auch da würde ich nicht auf das Parity-bit schalten. > > Das Protokoll soll unabhängig vom Master wie auch vom Slave > funktionieren
-
Thread
Fahrstuhlsimulation
1 einzelnes klitze kleines Bit 1=hoch fahren, 0=runterfahren.
null setzen)Mit einer If - Abfrage nachschauen ob noch ein höheres Bit gesetzt worden ist. Fahre dort hin ......... wenn nein dann fahre runter und so weiter ...... das sind doch wieder sooooo viele if abfragen! Wer weiß
-
Thread
Pointer Vergleich mit Konstante
usart_rx_read=usart_rx_buffer; } return temp; }//end RX_BYTE [/c] Die IF Abfrage soll also schauen wenn der ARRAY ende erreicht ist und den Zeiger zurücksetzen. Das klappt so bei beiden TX Zeigern und dem RX schreib Zeiger auch wunderbar Nur hier wird das
kaschiert es nur. Denn deine beiden Codestücke sind eben NICHT funktional identisch! Das eine ist ein 16-Bit Vergleich, das andere ein 8-Bit Vergleich. Hier [C] static uint8_t USART_RX_Byte(void){ uint8_t temp; // if(usart_rx_read == usart_rx_write){ //security checks if there is a byte
-
Thread
Spannung des Thermoelements verstärken
24bitter, mit zuschaltbarem Verstaerker. > Ist das nicht sehr teuer? ADS1118 (zwar "nur" ein 16-Bit ADC, dafür hat der interne Temperatursensor eine "Genauigkeit" von +-0.5 °C im Bereich von 0 °C - 70 °C) ~ 5 € bei Einzelstücken. MCP3424, 18-Bit, ~4 €, LTC2484, 24-Bit, interner Temp-Sensor, ~5 € und
Thermoelementen und wie diese gemessen werden können http://www.youtube.com/playlist?list=PL36A224E609F3F7C9
-
Thread
Drehgeber code
möchte die Pinbelegung ändern.Wie kann man das tun? Ausserdem verstehe Ich nicht was das hier soll: "C = Low" Ich vermute das ist das "Carry bit", aber ist es nötig ihn zu löschen?
werden. Wie Du siehst, geht es hier um einzelne Bits des alten und neuen Drehgeberstaus, die zu einem Index zusammengebastelt werden. Da wird das nichts, mal einfach "OldEncoderValue = 25" oder so zu schreiben... ;-) ...
-
Thread
Schleife durchlaufen und angezeigte Werte aktualisieren
Beenden bitte Enter druecken" schreiben? Wenn ich nun mit \n arbeite, schreibt er wieder jede Zeile einzeln untereinander. 2. Wie kann ich in der Schleife auf eine Tastatureingabe abfragen, OHNE dass er mich bei jedem Durchlauf danach fragt? Er soll einfach so oft die Schleife durchlaufen bis ich Enter
" ein mit [c] #include <windows.h> [/c] und dann kannst du mit [c] if(GetAsyncKeyState(VK_RETURN)) [/c] abfragen, ob Return gedrückt worden ist. Wenn du andere Tasten abfragen willst, kannst du nach "Virtual-Key
-
Thread
Besteht Interesse an einfacher Experimentierplatine fuer den Xmega128a1? Gesperrt
sollten (Zumindest lese ich > eure Posts so): Die Leitungen sind nicht angeschlossen, weil es ein 8bit-RAM ist, das EBI des ATxmega128a1 aber nur 4-bit RAM unterstuetzt. > Du solltest mal im Schaltplan mit dem Move-Befehl jedes Bauteil einzeln > anfassen und leicht verschieben. Kannst dann auch über
ich habe das eher so verstanden das für die 8-Bit Ram Lösung ein CPLD/FPGA zum Zerstückeln auf 4-Bit nötig wäre (um das komplett zu nutzen). Aber 8Bit Rams haben doch einfach 8 statt 4 Bänke, 4 Bits nicht zu nutzen sollte doch auch gehen? Ich habe
-
Thread
Relais ansprechen über schnittstelle?
ports verteilen. wie geht das? Mit [[Bitmanipulation]]. >macht ihr es über eine switch case abfrage? oder if? >if(Bitfolge=="110011010"){ >portA1 auf high >portA2 auf high usw....} Nö, man muss die Bits einzeln abfragen und reagieren, siehe Artikel oben. Mfg Falk
c] Aber auch das ist Unfug, denn es werden ja alle 8 Bits von PortA übertragen. Dann genügt auch [c] PORTA = byte1; [/c]
-
Thread
Byte verschieben und mit Eingang auffüllen.
eher selten effizient... wie wäre es damit das komplette Byte auf einmal zu negieren anstatt jedes Bit einzeln?
konkretisieren? > wie wäre es damit das komplette Byte auf einmal zu negieren > anstatt jedes Bit einzeln? Ja, das könnte eine Abkürzung sein.
-
Thread
Der C Standard und wegoptimierte Funktionen
eben das > einfache "&". Nun ja, daß ist mal wieder einer der klassischen Peter-Hacks. Wildes Bit-Geschubse, um am Ende eine Zeile Sourcecode zu sparen. Will man beide Funktionen ausführen, dann schreibt man das einfach hin: [c] bool bfoo = (foo() == 1); bool bbar = (bar() == 2); if
wenn man nicht genau weiß, ob die Funktion sicher ist oder nicht, muss man sie schlicht aus der Abfrage rausnehmen und als normale Funktion mit Rückgabewert behandeln, und dann diesen Rückgabewert auswerten. Man muss nicht jeden Wahnsinn den C bietet auch im echten Programmiererleben mitmachen. Huch
-
Thread
Physikalische Vorgänge in C bzw auf µC realisieren
verträgt. Das bieten aber nur einige µC auf wenigen IOs. > EDIT: ich würde keinen ARM-Cortex basierten uC nehmen, die haben bei > höheren Takten ein nicht mehr ganz so gut vorhersagbares Zeitverhalten > wie übliche 8Bit, durch unterschiedliche
kann man das Biteinschieben noch mit reinbekommen, kommt auf die Realisierung an. Also wirklich nur BIT Laden, Auf Timer warten, Pegel setzen, nächstes Bit holen usw. In der REstlichen Zeit läuft dann der gesamte andere Kram. CanBuffer abfragen, Datenaufbereitung usw. Wie gesagt alles kein Hexenwerk.
-
Thread
sd-Karte Elm Chan DMA
Interrupt startet die nächste DMA-Datenübertragung. Problem ist der Verbrauch von 8Portpins, um nur ein Bit abzufragen. Dafür könnte sowohl Datenübertragung wie auch Ready-Abfrage komplett per DMA laufen. Gibt es eine andere Möglichkeit, um über den Wert von sspxDR einen Interrupt auszulößen?
die Besonderheit beim Chan-Code ist, dass er den SSP-Fifo einsetzt. Da ich in der Regel das Bussy-Bit und nicht das Fifo-Empty-Bit abfrage, kann ich das Leeren des Fifo wahrscheinlich auch weglassen. Ebenso erschließt sich mir der Sinn des wechsels auf 16bit Modus nicht, da nur 8bit Werte eingelesen
-
Thread
Ansteuerung von ca. 1200 LED´s
Was meint ihr hierzu? Es ist ein I2C Bus-Expander. http://focus.ti.com/docs/prod/folders/print/pcf8575c.html Man könnte pro Turm so einen Chip nehmen und anschliessend noch Multiplexen. 16 Bit pro Turm ist nicht schlecht, zumal man
> Aber mal vorab; kann ich die Register so Softwaremäßig > Nummerrieren wie µC´s? Also Register1, Register2, usw. Die Registernamen sind völlig irrelevant. Aus Sicht der Software sind da z.B. 160 Bits hintereinander angereiht. Ob das 10 16bit-Register oder 20 8bit-Register sind
-
Thread
Was copy von DOS besser kann als cp von Linux
Das sollte eigentlich immer noch gehen. Abgeschafft wurde eigentlich nur die Unterstützung von 16 Bit Anwendungen für die 64 Bit Versionen von Windows Vista und aufwärts. Und viele historische *.com Dateien sind 16 Bit Anwendungen. *.com selbst dürfte aber nicht abgeschafft worden sein. Und wie
Keines der folgenden Schlüsselwörter geniesst autom. Vervollständigung... [c] c:> netsh wlan show profile MY_WLAN key=clear [/c] ------- Unter einem ordentlichen Linux mit bash/dash (vulgo: Desktop-Linux) bekommt man z.B. bei /ip show/ super Spickunterstützung und muss
-
Thread
NXP PCA8574 hat Phänomen mit 2 Adressen
/remote-8-bit-i-o-expander-for-ic-bus-with-interrupt:PCA8574_74A Controller: AVR128DB64 Ein Testprogramm Address-Scanner zeigt: [code] I2C Address Scanning... 7Bit 7Bit 8Bit I2C device found
Du stolperst über die 10-Bit Adressierung. https://en.wikipedia.org/wiki/I%C2%B2C#Reserved_addresses_in_7-bit_address_space
-
Thread
Arbeitet ihr lieber mit SPI oder I2C Bauteilen?
habe ich ein EA OLED mit SPI und I2C. Da kann man zwar immer SPI mit 8 Bit Worten machen, dafür muss nach dem ersten 8 Bit Wort (5 Einsen + R/C,W.. Bit) jedes Datenbyte auf zwei 8 Bit Worte aufteilen (je vier Bit). Grauenhaft, für DMA muss
wird geprüft, ob eine Sendeanforderung anliegt, d.h. das STA-Bit wurde gesetzt, aber der AVR hat sich intern verklemmt und sendet trotz freiem I2C-Bus kein Start. Die AT89C51 mit I2C sind ähnlich buggy, wie die AVRs. Da hat wohl die 8051-Abteilung von den AVRs
-
Thread
Drehimpulsgeber-Abfrage über Interrupts
1ms Tick) bekomme ich hohe Rundungsfehler und das hochzählen der "lcd_refresh" Variable (oder das abfragen der selbigen) fukntionieren nicht mehr richtig ... ich vermute das der Timer schneller überläuft als die Abfrage das erkennt ..... ich hatte vor den Timer0 für die abfrage der Werte des Drehimpulsgebers
und im Main, was schiefgehen muß, wenn der main-Zugriff nicht unter Interruptsperre erfolgt. 16Bit-Zugriffe sind aufm 8-Bitter grundsätzlich nicht atomar ! Und generell sind C-Statements erstmal nicht atomar. Schau Dir einfach mal das Assemblerlisting an, zu welchen Umständlichkeiten Du den
-
Thread
I2C-Signal SCL & SDA
, die Ansteuerung dort ist im Großen und Ganzen in ordnung. Aber dann sollte man auch nach jedem i2c_write() auch den Returnwert abfragen, denn dort steht das ACK-Bit drin. Und noch was als Anmerkung zur Library: Die Abfrage zum Clk-Stretching geht nur dann gut, wenn man keinen Watch-Dog aktiviert hat
Code wie folgt geändert: [c] i2c_start(Display+I2C_WRITE); i2c_write(0b10000000); // ControlByte i2c_write(0b11001000); // mode-set i2c_stop(); i2c_start(Display+I2C_WRITE)
-
Thread
Poti Wert zu PWM Signal verarbeiten
liegt vermutlich der Wurm. ADSC ist 1, solange die Messung durchgeführt wird. Also müsstest Du die Abfrage so machen: [C] while(ADCSRA & (1<<ADSC)) { } [/C]
(!(ADCSRA & (1<<ADIF))) // { // } // ADCSRA |= (1<<ADIF); // sensorWert3 = ADCW; } [/c] Sodass das ADIF Bit gesetzt (und damit gelöscht) wird und auch dieses abgefragt wurde. Das Flackern ist weg und die LED an PB1 ändert sich nicht mehr anch dem poti, wobei ich mir aber noch nicht
-
Thread
Datenübertragung über Relaiskontakte
an einem µC-Pin und kann die einzeln zuordnen. ;-) (Bin aber ziemlicher Programmier-Anfänger!!) Das (einmalige) Zuordnen ist aber schon eine anstrengende Aufgabe. Ich hab dazu Peltierelemente und ein passend gefrästes
...) Das hat den entscheidenden Vorteil, dass man z.B. einen einzelnen Sensor bequem tauschen kann, wenn er defekt ist. Man muss nur vorher in den neuen Sensor seine richtige Position speichern. Die Sensoren sind zudem auch unabhänig vom µC-Programm. D.h. ich kann
-
Thread
Daten über usart empfangen/ wann Datenende erreicht?
10 andere Arten ein, eine Prüfsumme zu bilden... :-o Zuerst solltest du wissen, /was/ die einzelnen Zeichen darstellen, dann kannst du besser raten. > Aber wenn ich bis 255 zähle dann gehts doch bei 256 wieder bei 0 los > oder? Ja, wenn du dich im 8-Bit-Zahlenraum bewegst...
Da fällt mir ein, kann ich hier nicht irgend ne Abfrage reinbauen? Also wenn kein Zeichen mehr kommt dann tu irgendwas?: [c] uint8_t usart_getc(void) { while (!(UCSRA & (1<<RXC))) // warten bis Zeichen verfuegbar ;
-
Thread
Uhr mit hilfe von Uhrenquarz
einem Infinieon Programm: Die Firma heißt "Infineon"... Schreib doch einfach, WAS du mit WELCHEM uC WIE machen willst. Du kopierst irgendwo irgendwelche Codezeilen zusammen und kapierst sie nicht... > später in der main kann ich in der while-Schleife dann so abfragen? Das kann man, wenn man sich
evtl. nicht mehr aus. > Einen Hardware-Vorteiler braucht man nicht, wenn man einen MC nimmt. Der uC /hat/ einen Hardwareteiler, so hatte ich das gemeint ;-) Und wenn 16 Bit nicht reichen, dann muß Software her... > ISR (TIMER1_OVF_vect) > { > sekunden++; Das geht wieder nur, wenn ein
-
Thread
Sende/Empfangsvorgang mittels nur 1St. µC
while(1) { // Anmerk.: for(;;) gefällt mir nicht so aufgabe_taste(); // Taste abfragen, ev. Befehl and B schicken aufgabe_daten_empfangen(); // Daten empfangen und ev. anzeigen aufgabe_daten_anzeigen(); // alternativ } } void aufgabe_taste(void) if !((P2IFG&BIT0
__delay_cycles(900); } } [/c]
-
Thread
EleLa - Elektronik Lagerverwaltung
Hallo Markus, folgende Situation: ich habe ein Bauteil definiert, Bezeichnung "C 10µF" Zu diesem gibt es 2 Typen mit diesen Bezeichnungen: "C 10µF 16V" und "C 10µF 16V Tantal". Wenn ich nun bei z.B. dem zweiten Type auf den Warenkorb klicke um das Bauteil in den Bestellvorschlag zu übernehmen, hätte ich eigentlich erwartet daß dort unter Bezeichnung nun "C 10µF 16V Tantal" steht. Stattdessen steht dort aber "C 10µF C 10µF 16V Tantal". Das heißt beide Bezeichnungen tauchen dort (ohne Trenner) auf. Soll das so sein? Falls ja, mache ich woanders was
-
Thread
XP: Checkdisk beim Boot
Das Dirty-Bit kann man via "fsutil" abfragen und setzen: [code] fsutil dirty query c: [/code] [code] fsutil dirty set c: [/code] ...zeigt fsutil an dass das Dirty-Bit gesetzt ist? Falls nicht: Setz es einfach
falsch ist, so what? Beschwere dich bei der Chip. > und beharrst darauf, daß auf WinME > keine 64-Bit-Emulation unter VMware möglich ist. Auf einem 32-Bit WinMe mit einem 32-Bit Prozessor wirst du wohl schwerlich eine 64-Bit Emulation hinbekommen. Woher soll der Proz. plötzlich 64-bit breite Register
-
Thread
C8051F020Dk Port4-7 aktivieren bzw. freischalten (SFR)?
bastelt, dann kann man die doch auch alle gleich behandel. "rrrrr" ;-) Auszug von SiLabs.com: [c] entity C8051F020 is generic(PHYSICAL_PIN_MAP: string := "TQFP_100"); port( P0_0 : INOUT BIT; ... P4_0 : INOUT BIT; P5_0 : INOUT BIT; ...analog bis P7 P0_1 : INOUT BIT; ...
. Read = 00b, Write = don’t care.R/WR/WRRR/WR/WR/WR/WReset ValueIE7IE6--IE7CFIE6CF--00000000Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0SFR Address:0xAD C8051F020/1/2/3 178 Rev. 1.4 Port Data register will cause the Port pin to be driven to GND, and a logic 1 will cause the Port pin to assume a high-impedance
-
Thread
USB zu LPT JTAG
mal paketorientiert ist und dadurch keine sinnvollen Datenraten herauskommen, wenn man versucht einzelne Bits zu übertragen. Ohne einen USB Controller, der direkt JTAG kann, wird das zu keinem brauchbaren Ergebnis führen. Die USB/LTP Adapter kann man für sowas geflissentlich vergessen.
paketorientiert ist und dadurch keine sinnvollen Datenraten > herauskommen, wenn man versucht einzelne Bits zu übertragen. USB arbeitet in einem Zeitraster von 1KHz, d.h. wenn du per Bitbanging am Parallelport einen Takt erzeugst und jedesmal den Zustand eines Pins abfragst, kommt bestenfalls ein
-
Thread
Schaltparameter Fernbedienung
Wenn ich das jetzt im Code richtig interpretiere ist es diese Stelle: [c] uart_putc(Data); //entsprechende Ausgänge setzen PORTB ^= BitMask; [/c] Um nun 1,5 sek. Pause zu haben und danach wieder abzuschalten kann man dann doch so erweitern: [c] uart_putc(Data); //entsprechende Ausgänge setzen PORTB ^= BitMask; _delay_ms(1500); PORTB ^= BitMask; [/c] Liege ich da richtig?
-
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
4 Bit Schieberegister fuer Motorumbau (Versuch)
Sprit immer genau da wo er hin soll... Jetzt brauch ich aber das passende Schieberegister. (Ein µC ist damit unterfordert) Gibt es ein 4 Bit Schieberegister, dass ich mit einem Eingang immer Weiterschalten kann und das evtl. auch immer auf einen Ausgang resetet (z.B. switche bei reset zu Ausgang
funktionieren, da bei einem Viertakter nur bei jeder zweiten Umdrehung eingespritzt wird. Da wäre ein 8bit Schieberegister schon besser geeignet wo dann jedes zweite bit einfach frei bleibt. (Oder eben nach nötiger Einspritzreihenfolge) Dabei bräuchte man nicht einmal ein Schieberegister. Ein 4017 dürfte
-
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
STM32F7 mit externem ADC - Geschwindigkeit und Durchsatz
> Geht das ernsthaft nicht mit einem > STM32F7 Cortex M7 ?! Doch, aber du darfst nicht jedes 16bit-Wort einzeln verarbeiten. In einer Schleife direkt einlesen sollte gehen, dann bleibt aber nicht mehr viel Rechenzeit für anderes. Hier sollte man darauf achten effizienten Code zu schreiben und die
. Macht auch Sinn. Niklas G. schrieb im Beitrag #5628173: > Doch, aber du darfst nicht jedes 16bit-Wort einzeln verarbeiten. In > einer Schleife direkt einlesen sollte gehen, dann bleibt aber nicht mehr > viel Rechenzeit für anderes. Hier sollte man darauf achten effizienten > Code zu schreiben
-
Thread
Verbrauchsanzeige für's Moped
in die Quere kommen kann bzw sollte. Den zweiten 8-Bit Timer kann man dann für andere Sachen verwursten, z.B. Taster abfragen oder sowas in der richtung, ist also noch Platz für mehr. Zum permanenten Speichern der Daten könntest du das EEPROM nehmen
wirklich gern verstehen, wie das > Programm der Hardware sagt, was sie zu tun hat... Das siehst du in C genausogut. letzten Endes ist es egal in welcher Sprache man welches Bit in welchem Konfigurationsregister setzt. Aber der C Compiler nimmt dir viele Routine-Aufgaben ab, um die du dich ansonsten selbst
-
Thread
Sekunden,Minuten zählen mit der Funktion Millis()
Überlauf } Wenn man meint, die loop() wäre zu schnell, kann man natürlich noch ein bisschen 32-Bit Multiplikation/Division einflechten. [/c]
Wenn man den Unsinn mal weiter spinnt, der Arduino hat schon einen 64 Bit Zähler, wenn gleich auf 2 Variablen aufgeteilt. Die kann man atomar auslesen und auswerten. wiring.c [c] // the prescaler is set so that timer0 ticks every 64 clock cycles, and the // the overflow
-
Thread
I2C Slave-Scan
Beim I2C gibts neben den normalen 7-Bit-Adressen auch welche mit 10-Bit. Hatt ich aber noch nie. Zudem muss die Schleife da nicht 2x durchlaufen werden, da nur ein Teil der 7-Bit-Adressen auf 10 Bit erweitert
: http://www.standardics.nxp.com/support/documents/i2c/pdf/i2c.bus.specification.pdf http://www.i2c-bus.org/ ist übrigens auch eine gute Quelle. In der Doku wird dem OP bestimmt der Teil über kurze (7 Bit) und lange (10 Bit) Adressen auffallen. Er
-
Thread
CanOpen Hack
nocheinmal, bitte entschuldige, ich habe PDO und SDO verwechselt(wieder mal). Mit SDOs kannst Du einzelne Werte abfragen, PDOs sind "häufige" Nachrichten die Hersteller-spezifisches Format haben. Was die einzelnen Bits in einem PDO bedeuten kann also nur der Hersteller oder Reverse-Engineering an den
Christopher B. schrieb im Beitrag #6749238: > Der PDO ist abgeschaltet. Lösch mal das 63.bit > [663][8][22 00 18 01 E3 01 00 40] du hast das Objekt gelesen RainerZufall24 schrieb im Beitrag #6749317: > ID 663 -> 43 00 18 01 E3 01 00 40 > AW:ID 5E3 -> 43 00 18 01 E3 01 00 C0
-
Thread
Hilfe Ladereglung Atmega16 Assembler
oO ... Bitte befasse Dich auch mit 16 Bit Zahlen auf einem 8 Bit µC. Dann verstehst Du was es mit SPH,SPL und high(), low() auf sich hat. Das untere Ende vom RAM interessiert den Stack bzw. den µC nicht. Wenn Du zuviel auf den Stack legst
ausgibt. Und auf die 5% Performance Verlust durch den C-Compiler ist gesch.....
-
Thread
Visual Studio C# Serielle Daten anzeigen /verstehe befehle nicht
Lars schrieb im Beitrag #4656066: > Finde ich allerdings nicht sooo toll. Ich würde die abfrage pollen ist > dann auch zu Linux kompatibel :) Sein Titel: Visual Studio C# Serielle Daten anzeigen /verstehe befehle nicht Merkste was? Ausserdem, den Serial Port pollen machen wirklich
und zwar mit [c] theSerialPort.DataReceived -= new serialDataReceivedEventHandler(DataReceived); theSerialPort.PinChanged -= new SerialPinChangedEventHandler(PinChanged); [/c] Mit der Switch Case Abfrage wird,
-
Thread
Honeywell Rondostat HR20E per AVR steuern und konfigurieren
könnte so aufgebaut sein, dass es mehrere Methoden anbietet, um unabhängig von der Vorgeschichte, einzelne Segmente anzusteuern. Das zurücksetzen eines Segmentes löscht dabei auch das Blinkflag DISPLAY_CLS(); // Löscht Displayspeicher -> alle Segmente aus. DISPLAY_TEXT("172C", FLASH_D1
and transmitter */ UCSR0B = (1<<RXEN0)|(1<<TXEN0); /* Set frame format: 8data, 2stop bit */ UCSR0C = (_BV(UCSZ00) | _BV(UCSZ01)); // Asynchron 8N1 ... Damit funktioniert dann die Compilation. Was mich nur wundert ist, warum es bei Euch keine Probleme gegeben hat
-
Thread
uart raspberry pi, warum neuer pointer zum senden?
technisch fast das Gleiche. Ehrlich gesagt weiß ich ich > nicht, wo genau der Unterschied ist > [c] > char* du = "Johannes"; > char ich[] = "Stefan"; > [/c] Du merkst den Unterschied, wenn du den Variablen Werte zuweisen willst oder per sizeof die Größe abfragst ;-) "du" ist der Name eines
die einzelnen Elemente zählen, oder?
-
Thread
Process wird kontinuierlich durchloffen - Altium LiveDesign Board
" wird. Z.B mit Bedingungen, dass der Process mit code_static nur ausgeführt wird, wenn das rechte Bit ungleich dem Mittleren, und der Process mit usignal nur ausgeführt wird, wenn das Mittlere ungleich dem Linken ist. Die einzelnen Bits werden dannin den Processen an der richtigen Stelle jeweils mit
Daher ist es zwingend notwendig, mit Takten zu arbeiten, damit die Zeitpunkt von Zuweisung und Abfrage klar definiert sind und die Inhalte stabil sind. Das ist völlig anders in C, wo alle Bits eines Worts immer gleichzeitig geschrieben und gelesen werden (weil die CPU getaktet ist). Ohne Takt passiert
-
Thread
Signal auswerten
> if (TCCR1B & (1<<UDRE0)) Was hat UDRE0 denn mit dem TCCR1B zu tun? Du musst schon das ICES1-Bit abfragen. Ich will jetzt auch nicht nachsehen, ob das UDRE0 zufällig an der selben Stelle steht wie das ICES1... > Startwert = ICR1L; > Startwert += (ICR1H<<8); Für sowas sind in der Lib 16-Bit-Register definiert. Also besser [C] Startwert = ICR1; [/C] Dann brauchste Dir keine Gedanken über die (wichtige) Reihenfolge beim Auslesen zu machen (die bei Dir aber stimmt...).
-
Thread
Lightweight WS2811/WS2812 Library
> sorry das verstehe ich grad noch nicht, ich meinte wie setze ich die > Farben, Helligkeiten einzelner LEDs im Array bevor set_leds aufrufe? Wie man halt Arrays in Ansi-C beschreibt: [c] struct cRGB led[16]; // array mit 16 leds reservieren led[0].r=255;led[0].g=00;led[0].b=0;
machen soll. Es gibt eine äußere und innere Schleife. Die äußere Schleife läuft von 8 bis 0 um die einzelnen Bit des Bytes zu ermitteln. Die innere Schliefe ermittelt den Wert des einzelnen Bits um entsprechend die Dauer der Ansteuerung des logischen Pins zu realisieren. Die äußere Schleife ist die „i“
-
Thread
VB2005-DLL einbinden
@Stefan "stefb" B. (stefan) Im Forum pc-Programmierung k8055 Digital ports einzeln ansteuern? Autor: Stefan "stefb" B. (stefan) Datum: 20.05.2007 10:14 bist du das? da wurde nur die Karte in C++ angesteuert ich will es in VB.2005 und habe noch niemanden gefunden
wrote: > @Stefan "stefb" B. (stefan) > > Im Forum > pc-Programmierung > k8055 Digital ports einzeln ansteuern? > > Autor: Stefan "stefb" B. (stefan) > Datum: 20.05.2007 10:14 > > > bist du das? > > da wurde nur die Karte in C++ angesteuert > ich will es in VB.2005 > und habe noch niemanden
-
Thread
Einfacher und billiger Webserver mit AtMega32
So, es ist soweit, Version 0.01 von 3c5x9.c zum Test! Im ZIP-File sind die Quelldateien zu finden. Es sind nur neue Files und die Dateien die sich gegenüber Ulrich Radig's "SourceCodeCPP_V1.38MMC.zip" verändert haben. Die einzelnen
Hallo Michael, man kann den I2C-Bus auch mit einem C Programm ansprechen. Ich habe das für die Microwire-Schnittstelle realisiert. (Das EEPROM auf der Schnittstellenkarte hat ein Microwireinterface, das über die Bits eines Registers
-
Thread
RGB LED mit nur einem POTI dimmen
unabhaengige Zahlenwerte benoetigt werden, kann man immer noch einen ADC nehmen und jeweils einen Teil der Bits einer der drei Zahlen zuordnen (z.B. bei einem 12-Bit ADC die obersten vier Bit als Rot, die mittlersten Bit als Gruen und die intersten 4 Bits als Blau). Die Probleme einer nichtlinearen Abhaengigkeit
Ach ja, kleiner Nachtrag. So kannst du auch leicht die vollen 24 bit Farbtiefe abfragen, da kannst du sogar die letzten 2 bit des 10bit ADC abschneiden. Damit wird das ganze noch einfacher und auch weniger anfällig gegen Störungen. (Programmteil zum einstellen der RGB
-
Thread
Modellierung und Implementierung reaktiver Systeme, Statecharts, UML, C, Diagramme, OO/nicht-OO
, setzt er ein Bit. Dieses Bit kannst Du zu beliebigen Zeitpunkten abfragen, z.B. so: [c] void check_ad() { if (!bit_in_ad_wandler_gesetzt()) return; ... } [/c] Oder die Entprellerei. Du entscheidest
Abläufe) und mit State Charts beschrieben (Zustände) Wohl gemerkt, alles "embedded" auf einem 8-bit Controller. Für alle die so etwas nur mit 32 Bit Controllern und C++, C# in Verbindung bringen können ... > Insbesondere muss man unterscheiden, ob die States natürlicherweise in > einer Funktion