-
Thread
Heatronic 3 Adapter (Junkers Heizung) fuer Raspberry Pi
perl test.pl /tmp/ht_binlog.log | grep 'a1 00 ff' Ergibt 00 00 22 00 10 00 90 a1 ff 00 01 00 0c dd 00 a1 10 ff 00 00 0c 02 dc 00 90 00 21 00 a1 00 ff 00 00 0c 02 03 64 01 2c 22 b9 00 a1 00 2a 00 32 00 Hinten ist das ein gültiges telegramm? a1 00 ff 00 00 0c 02 03 64 01 2c 22 b9 00 Müsste
wohl so in etwa stimmen). > dieser Wert hat bei mir in > beiden Heizkreisen einen offset von +5°C (Bsp.: Sollvorlauf am CW400 ist > 27°C ausgelsen werden 32°C) Dies ist etwas komisch. Nicht der Offset an sich sondern, das die ausgelesenen Werte=32°C um 5°C GRÖSSER sind. Wenn diese Werte von den
-
Thread
MSP430 Gleitkommazahl in Flash speichern
// Clear WRT bit FCTL3 = FWKEY + LOCK; // Set LOCK bit } [/c]
bit FCTL3 = FWKEY + LOCK; // Set LOCK bit } [/c] Übrigens - was sind eigentlich Compilerdirektiven?
-
Thread
AVR-C Analog Read
Nicht irgendein Programm von irgendeiner Website, sondern dein konkretes Programm, welches auf deinem µC läuft.
Hausaufgaben gemacht hast, und in Theorie und Praxis (vor allen Dingen Praxis) gelernt hast, wie man einzelne Bits auf 1 bzw. auf 0 setzt, bzw. dass man 0 Bits nicht explizit setzen muss, wenn man sowieso dem Register als ganzes etwas zuweist.
-
Thread
ATtiny88 funktioniert nur mit Analyzer. Warum?
da, damit die Kondensatorindustrie > auch etwas verdient! Die haben eine Funktion! Oder sollen C4 und C3 die Blockkondensatoren darstellen? In dem Fall, und wenn die baulich an den µC-Pins sitzen, nehm ich alles zurück und behaupte das Gegenteil.
& QTLIB_BURST_AGAIN; [/c] im status_flag das Bit QTLIB_BURST_AGAIN gelöscht sein. status_flag kommt von hier [c] status_flag = qt_measure_sensors( current_time_ms_touch ); [/c] d.h. in der Funktion würde ich
-
Thread
Atmega stürzt ab, bleibt hängen
aktivem Warten implementieren, sondern dafür einen Ausgabepuffer und Timerinterrupt verwenden. c) statt cli() ... sei() immer ATOMIC_BLOCK(RESTORESTATE) verwenden. Macht in deinem Code jetzt keinen Unterschied, aber das ist ein extrem guter Kandidat zum Selbstabschießen. Gruss, Heinz
die mir ins Auge sticht ist: char bufferString[60]; sprintf(bufferString,"%c%#3x>%#2.2x>%#2.2x>%#2.2x %#2.2x %#2.2x %#2.2x %#2.2x %#2.2x %#2.2x %#2.2x%c",2,LesezeigerCAN->id,LesezeigerCAN->rtr,LesezeigerCAN->length, LesezeigerCAN->data[0], LesezeigerCAN->data[1], LesezeigerCAN
-
Thread
Auf Bit array zugreifen
@ Peter Zz (bastelboy) >Ich benötige für einen Ringbuffer in C ein 1024 Bit langes Bitarray. >Die Abfrage, Setzen, Löschen müssen sehr schnell sein. Du hast mal sicher NICHT 1024 einzelne Statusbist, sondern eher ein Array mti Daten für LEDs etc., die schnell
); } void writeOne() { buffer[writeIndex] |= bitMask; incrementToNextBit(); } [/C]
-
Thread
Temperatursensor
unterschiede, bzw. Vor- und Nachteile? Für den DS18B20 wird laut Datenblatt die Genauigkeit von 0.5°C nur im Temperaturbereich -10°C .. +85°C garantiert, auch wenn der mit etwas verminderter Genauigkeit den Bereich -55°C bis +125°C abdeckt. Ansonsten ist er extrem handlich und pflegeleicht.
Steffen schrieb im Beitrag #3426227: > Wenn ich morgen zu > Hause bin, kann ich das mal in 10 oder 11bit Auflösung testen. Da soll > es bis 187 bis 375ms dauern. Hab es eben getestet, habe den Sensor in 11bit Auflösung abgefragt, als Zeit hab ich 400ms gewählt. Der hat bei jeder Abfrage einen anderen
-
Thread
c-code Schneller in Assembler? Gesperrt
Alternative. Algorithmisch läßt sich halt in der Regel mehr rausholen als durch Mikrooptimierungen an einzelnen if-Abfragen oder Inkrementierungen. Demont schrieb im Beitrag #3420688: > mir fehlen 3µS für eine Passende sync :/ > Ohne diese Abfrage geht es, mit 5 dieser If Abfragen klappt es auch > nur mit der 6 Dauert es zu lange :/ Mit welcher Taktrate läuft der µC denn? Bei den eingebauten 8 Mhz z.B. wären 3 µs ja 24 Taktzyklen. Es wäre etwas verwunderlich, wenn eine einzelne if-Abfrage mit Inkrementierung so viel brauchen würde, vor allem, wenn durch die vorherigen
-
Thread
DAB+ Modul KeyStone 8650
die Größe des Headers die für mich von Interesse sind. Die 7 Bytes teilen sich wie folgt auf: [c] 28 bits 13 bits 6 bits 9 bits body size header size content type content subtype b55 b28 b27 b15 b14 b9 b8 b0 [/c] Zuerst habe ich versucht die *body size
weiteren Parametern weiter. Hinter dem Parameter b001100 -> ContentName geht's weiter mit D0 0A [c] 11 <- 7 or 15 bits DataFieldLengt Indicator 010000 <- ParamId: "MimeType"(Tabelle 2 - Seite 34) 0 <- Ext 0 = 7 bits DataFieldLengt Indicator 0001010 <- 10 Bytes DataField [/c] -
-
Thread
Mikrokontroller interner Speicherzugriff
Arbeit, lass das raus. Stichworte genügen völlig, und das haben die Kollegen auch schon genannt: I2C, SPI, 1-Wire etc. Das ist für Dich belanglos. (die Wörter kennen, schadet nicht!) Unbedingt wissen musst Du, wie die parallele Abfrage eines Speichers funktioniert. Auch die wortbreite, also 8-
jeden Speichertyp gibt es seriell oder parallel - es gibt parallele Speicher mit meistens 8 oder 16 Bit Breite - es gibt serielle Schnittstellen wie SPI, I2C oder 1-wire - parallele Speicher benötigen Kontroll-Leitungen (lesen, schreiben, enable) - die "Breite" serieller Speicher ist ohne Belang, da
-
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
STM32F4 Taster
SystemInit(); initApplication(); do{ if (GPIOA->IDR & 0x0001) { GPIO_ResetBits(GPIOD,GPIO_Pin_15); } else { GPIO_SetBits(GPIOD,GPIO_Pin_15); } } while (1); return 0; }[/c] Keine Vermutung ist, das irgendetwas mit GPIOA->IDR & 0x0001 falsch
Hallo 12V DC, hier Auszug aus Code: [c] if (GPIOA->IDR & 0x0001) { debug_printf("PIN PD15 ON\n"); GPIO_SetBits(GPIOD,GPIO_Pin_15); } else { debug_printf("PIN PD15 OFF\n"); GPIO_ResetBits(
-
Thread
Probleme mit Aufgabe für Bitoperationen
unsigned char Status = 0; ... [/c] hast du bereits die Speicherfläche für 8 Bit. Die Zuweisung von 0 sorgt einfach nur dafür, dass an dieser Stelle alle 8 Bits gezielt auf 0 sind. Du musst sie nur noch gezielt einzelne Bits auf 1
einiges weitergeholfen. Eine Frage habe ich aber noch: Wenn wir zunächst den Char "Lampen" mit [c]unsigned char lampen=255;[/c] angeben, sollte es sich doch um Byte handeln und nur die Stellen der einzelnen Bits. Sprich die 255 ergeben sich aus 128,64,32,16,8,4,2,1 der einzelnen Bits die addiert
-
Thread
STM32F0 Discovery und UART1
USART_InitStruct.USART_WordLength = USART_WordLength_8b; // we want the data frame size to be 8 bits (standard) USART_InitStruct.USART_StopBits = USART_StopBits_1; // we want 1 stop bit (standard) USART_InitStruct.USART_Parity = USART_Parity_No; // we don't want a parity bit (standard) USART_InitStruct.USART_HardwareFlowControl
angeschlossen hast. Frage: Hast Du - die Jumper SB20 und SB21 entfernt - die Kondensatoren C16 und C15 eingesetzt - die Jumper R24 und R25 eingesetzt?
-
Thread
Maximale Entfernung/Kabellänge TasterPotis zu µC
spendieren, um den Eingangsstom des Portpins zu begrenzen - auch wenn es nur der Entladestrom von C2 beim Abschalten des µC ist. Gruß Dietrich
verwenden. D.h., jeder verdrillte Adernpaar, bspw. eines CAT-5/7 Kabels, wird über einen Port des AM26C31 (Sender) /AM26C32 (Empfänger) am uC angeschlossen. Ist sehr störsicher, da RS422 eine LVD Schnittstelle ist. Ein AM26C31/32 hat vier Sender bzw. Empfänger. Damit habe ich schon Strecken bis 50m
-
Thread
Include Datei "richtig" benutzen
_INT (TIMSK0 &= ~(1<<OCIE0A)) #endif /* TIMER_H_ */ [/c] timer.c [c] #include <avr/io.h> #include <avr/interrupt.h> #include "timer.h" void timer0_init(void) { // 1ms - 8bit uint8_t sreg = SREG; // Save SREG because we have to restore the
, an denen du den aktuellen time_coutn abfrägst. [c] uint8_t getTimerEvent(timer_event* timerEvent) { int16_t timeDiff = 0; uint8_t tmp_result = 0; timeDiff = timerEvent->timeExpired - getTimeCount(); ... [/c] auf die Art hast
-
Thread
Warum ich Pointer für immer hassen werde!
2; } [/c] Dieser Funktion übergibst du direkt dein Array (nicht den extra Pointer drauf). [c] func(TestMatrix1); [/c]
http://openbook.galileocomputing.de/c_von_a_bis_z/014_c_dyn_speicherverwaltung_011.htm
-
Thread
PIC Interrupt Probleme
; PIR1bits.ADIF = 0; ADCON0bits.GO_DONE = 1; } return; }[/c] wenn ich nun das ADC-Interruptenablebit setze, und das einlesen in der Polling-Schleife auskommentier, funktioniert nichts mehr
im Interrupt auch gar nicht abfragen, wenn der IRQ ausgelöst wird ist auch dieses Bit auf 0.
-
Thread
FM Radio Modul RDA5807M
freqL = (freq_tmp&3)<<6; // Shift channel selection for matching register 0x03 i2c_start_wait(FM+I2C_WRITE); i2c_write(0x03); i2c_write(freqH); // write frequency into bits 15:6, set tune bit i2c_write(freqL + 0x10); i2c_stop(); } [/c] EDIT
freqL = (freq_tmp&3)<<6; // Shift channel selection for matching register 0x03 i2c_start_wait(FM+I2C_WRITE); i2c_write(0x03); i2c_write(freqH); // write frequency into bits 15:6, set tune bit i2c_write(freqL + 0x10); i2c_stop(); } [/c] Danke
-
Thread
Positionserkennung Rollladen
Eventuell könnte man auch die einzelnen Lamellen der Rolladen mitzählen. Funkt. vllt. mittels einer Lichtschranke oder mit einem Positionsschalter mit Rolle.
Logitech-M-S69-klassik-Kugel-Maus-3-Tasten-Wheel-Mouse-PS-2-Stecker-PC-Laptop-/141052765446?pt=DE_Computing_M%C3%A4use_Trackballs_Touchpads&hash=item20d7666506 Die alten Kugelmäuse hatten doch 2 davon (X/Y)
-
Thread
74HC138 Adressen
4 Bit Mit Hexadezimalstelle meinst Du C,8,0,0,0 also 5 Stellen entsprechen die nicht 20 Bit? Wie kommst Du auf 24 Bit? wo stecken die anderen 4 Bit? @Yalu: Du hast mir sehr einleuchtend das rübergebracht
> Ich möchte es verstehen, daher rückgefragt: > Pro HexStelle 4 Bit > Mit Hexadezimalstelle meinst Du C,8,0,0,0 > also 5 Stellen > entsprechen die nicht 20 Bit? > Wie kommst Du auf 24 Bit? wo stecken die anderen 4 Bit? ich muss mir schnell die Antwort selber
-
Thread
Spannungsindikator mit Bargraph-LED realisieren_02
Hi. Jeder Akku soll einzeln angezeigt werden, deswegen benötige ich dann für 2 Akkus auch 20 statt nur 10 Pin für die Graphen. Jetzt aber ein schönes Problem: Hier erst einmal der einfache Programmablauf [c] Config
darfst da nicht mehr als 5V drauf geben! Wenn du da mit 12V drauf fährst, dann ruinierst du den µC!
-
Thread
Zwei Programme zusamenfügen - über Präprozessor?
geschafft die Interrupt-Vektoren so zuverändern, dass ich die Programme an verschiedene Stellen im µC laden kann und die Interrups trotzden funktionieren? Eigentlich gibt es ja nur die Bits zum Umschalten der Vektoren auf den Bootsektor.... So wollte ich das Problem ursprünglich lösen, aber leider bin
André C. schrieb im Beitrag #3376820: > Oder hat es jemand schonmal geschafft die Interrupt-Vektoren so > zuverändern, dass ich die Programme an verschiedene Stellen im µC laden > kann und die Interrups
-
Thread
STM32: Timer-ISR löst 2x aus - Fehler im Flag-Reset bei Optimierung O3
schrieb im Beitrag #3373217: > Ja, den Do-What-I-Mean-Not-What-I-Say Compiler hätten viele gerne. C ist > halt seit jeher andersrum konzipiert. :-) Ich frage mich was das mit C und dem Compiler zu tun hat. Das selbe würde dir im Assembler passieren. Der Hersteller der CPU und nicht ARM steht vor
es nicht hinein, dass der Compiler bestimmte Register "erkennt" und für die anderen Code generiert. C/C++ ist eben kein Rundum-Sorglos-Paket, und das ist auch gut so. Wenn du das willst schau dir mal http://www.stm32java.com/ an ...
-
Thread
1 Bit AD-Wandlung - Erhöhung der Auflösung durch oversampling
first measurement was A and the second measurement was B, the value must be exactly (A+B)/2 or for two bit, (A+B+C+D)/4. You cannot get detail from nothing. It's like in those movies where they "enhance" a blurry photo and are able to reproduce the entire page of text from 4x4 pixel area. Dem ist eigentlich
[c] Das mit den 1 Bit Wandler scheint zu funktionieren. Ich habe das mal simuliert. #include <stdio.h> #include <stdlib.h> void main(void) { double Umess,URnd,UOut,UVer; int i;
-
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
2x 4bit auf einen Port ausgeben
ausgegeben. All das funktioniert auch super. Jedoch schaffe ich es nicht, beide Stellen, also Zehner (4bit) und Einer (4bit) an einem einzelnen Port auszugeben. Ich gebe im Moment die Zehner bei P3 und die Einer bei P1 raus. P3 benötige ich allerdings für etwas anderes. Wie bekomme ich beide Zahlen auf
if( haveError ) P3 = 0x0E; else P3 = 0x00; ... [/c] hat es eigentlich einen speziellen Grund, dass du laufend auf immer wieder noch blödere Formatierungen verfällst, wie du die { - } bzw. einzelne Statements anordnen kannst? Gewöhn es dir an [
-
Thread
XMEGA A4U USB
at the end of this file to avoid compile error #include "udi_cdc_conf.h" #include "usb_handle.h"[/c] Callbacks: [c] volatile bool main_b_cdc_enable = false; void usb_handle_suspend_action(void) { } void usb_handle_resume_action(void) { } bool usb_handle_cdc_enable() {
Callback-Funktionen gar nicht erst angesprungen. Die Callback-Funktionen habe ich einfach in main.c unten angehängt. VG, Michael
-
Thread
Symmetrischer, einstellbarer DC-DC Converter
gewünscht. Vernünftig. > Natürlich kann man die Mittelstellung des Reglers mit einem OP > abfragen und dann wieder verarbeiten, aber ich möchte den Aufwand > gering halten. Deswegen der schon mehrfach vorgeschlagene µC. Der kann das Fahrpoti abfragen, dessen Mittelstellung detektieren, die
zunächst mit Techniken die ich beherrsche oder noch verstehe. Das Stellpult meiner Anlage ist µC gesteuert. Die Steuerung hat seinerzeit unser µC-Papst -der den 16 bit µC,später den 32 bit µC für industrielle Anwendungen entwickelt hatte, mit Intel konnten wir für PC-Anwendungen nicht mithalten
-
Thread
Projekt: Virtuelle Instrumente an serielle Schnittstelle
3 von einander anhängige Messwerte können so dargestellt werden. Dann wäre das doch nur ein einzelner Punkt im Koordinaten System !? Also müsste der µC mehre Koordinaten setzten. Ich denke das ist dann doch schon eher Spielerei ;) MFG Renixor
Serial-Measurement-Programme an verschiedene uCs verteilen?... Man könnte sie einzeln am Comport programmieren, falls das Programm im uC-Flash gespeichert wird) Der Nachteil von Variante A ist, dass viele Netzwerksockets genutzt werden. Eine Umsetzung auf ein anderes Protokoll,
-
Thread
Tasten abfragen am ATTINY13 mit Assembler
ausgeben [/code] oder benutze, wie die meisten, die für Bitoperationen vorgesehenen Befehle zum Bit-setzen, Bit-löschen, Bit-abfragen [[AVR-Tutorial]]
[/c] Das ganze Bit-Rumgewurstel macht dann der Compiler für Dich.
-
Thread
Verständnis zu RS-485
Stefan schrieb im Beitrag #3349007: > Wenn Du nicht mehr als 8 Bits zur Adressierung verwendest Wozu sollte man das tun? "Offiziell" sind nur 32 Teilnehmer möglich, auch inoffiziell wird es schwierig, mehr als 100 zu betreiben. Also reichen 8 Bit. Eine Möglichkeit
Teilnehmer möglich, > auch inoffiziell wird es schwierig, mehr als 100 zu betreiben. Also > reichen 8 Bit. Nö. Es gibt auch 1/8load-Transceiver. Funktioniert zuverlässig. Schon mit >200 Teilnehmern aufgebaut. Aber 8Bit-Adresse reicht trotzdem.
-
Thread
Input Capture Register steuern
ICES1)) > ... > if (TCCR1B &= ~(1<<ICES1)) Falls es noch niemandem aufgefallen ist: Die if-Abfrage ist generell Müll. Denn die Bedingung ist eigentlich gar keine Bedingung sondern ein Bit-Setzen/-Rücksetzen-Befehl. Da sollte man sich nochmal Gedanken machen, wie man einzelne Bits abfragt...
Marius Wensing schrieb im Beitrag #3350472: > Falls es noch niemandem aufgefallen ist: Die if-Abfrage ist generell > Müll. Denn die Bedingung ist eigentlich gar keine Bedingung sondern ein > Bit-Setzen/-Rücksetzen-Befehl. Da sollte man sich nochmal Gedanken > machen, wie man einzelne Bits abfragt
-
Thread
Protokoll für Kommandos an den MC selber schreiben
(*data); data++; } } [/c]
dann auch das CRC Polynom > erhöhen? > Den Link hab ich mir schon durchgelesen, aber wie ich das in C schreibe > ist mir noch ein Rätsel... Die einfachste Prüfsumme wäre via XOR, lies mal das z.B.: http://www.cs.umd.edu/class/sum2003/cmsc311/Notes/BitOp/xor.html Und hier für Arduino: http://timzaman.wordpress.com
-
Thread
Tastenenprellung Deluxe P. Dannegger
Ah, ok - 16 Bit Ich seh schon, du weißt hier ja ans Period Register zu [C] TCC0.PER = (uint8_t)(int16_t)-(F_CPU / 1024 * 1e-3 -1 + 0.5); // preload for 1ms [/C] ja, das geht aber so nicht. Zum einen
zählst einfach die Sekunden und die ISR Aufrufhäufigkeit ist dann 1/1000 davon. So kannst du auch einzelne Millisekunden noch gut unterscheiden. Aber gerade am Anfang ist es wichtig, alles und jedes zu überprüfen. Vor allen Dingen dann, wenn der Code ursprünglich gar nicht für deinen µC-Typ geschrieben
-
Thread
Kegelbahn Wurfergebnisse in PC übertragen
Möglichkeit die sogenannten Fallzahlschalter auszuwerten. Habe mir auch schon Gedanken gemacht wie die Bits sein könnten die übertragen werden müssen. Zum Beispiel so: Bit 1 und 2 für die Bahn entsprechen: 00=Bahn1 01=Bahn2 10=Bahn3 11=Bahn4 Bit 3 für die Lichtschrankenauswertung das eine Kugel gespielt wurde und als Zähler für die gespielten Kugeln Bit 4 für Fehlgasse/Holz ungültig dafür muss man bei unserer Anlage dann einen Taster am Steuerpult drücken.(Macht dann die Aufsicht) Bit 5 für Volle und Räumen Bit 6 7 8 bleiben frei Damit ist
-
Artikel
Hantek Protokoll
Hantek ein paar Fragen zu den 0x43 Meldungen beantworten. 0x00 FPGA Register lesen. Ermöglicht einzelnes oder mehrere FPGA Register zu lesen Die Abfrage für einzelnes Register 0x43 0x04 0x00 0x00 0x00 0x00 bis 0xFF (Register Nummer) Prüfsumme Die Antwort dazu beinhaltet 4 Byte Register Daten 0x43 0x06
clicks) Prüfsumme LSB MSB Die Antwort ist leer. D.h. sie enthält kein Datenbyte. 0x43 0x02 0x00 0xC3 Prüfsumme 0x08 0x44 DSO Buzzer. Aktiviert den Buzzer für die Zeit "BT" (1bit=100ms) 0x43 0x03 0x00 0x44 0x01 BT Prüfsumme Sobald die Zeit abgelaufen ist schaltet sich der Buzzer selbständig aus. Die
-
Thread
Port lesen/schreiben
Hei, Microchip PIC32MX795F512L bei diesem µC haben die Port's 16 bit. Die Hardware teilt sich den Port Bit 0 - 7 als Byte und Bit 8 - 15 als einzelne Bits, sowohl als Ein- und Ausgang. Welchen Weg muß ich einschlagen, wenn ich Bit 0 - 7 neue
Hei, Zur Sicherheit werde ich dann den Buffer als struct anlegen und mittels if / else die 8 Bits abfragen und im Ziel entsprechend setzen/löschen Damit erübrigt sich dann das einlesen, maskieren ... und kann gezielt auf die unteren bzw. oberen 8Bit des 16Bit Port zugreifen Vielen Dank für
-
Thread
Hackbarer(?) 21 EUR Quadcopter
Flanks von Clk Das sieht man auch gut in dem SWD Bitbanging Source, der oben verlinkt ist. [c] static void write_bits(uint8_t buf, size_t bits) { pin_configure(SWD_DIO_PIN, SWD_MODE_OUTPUT); for (; bits > 0; --bits, buf >>= 1) { pin_write(SWD_CLK_PIN, 0);
; ISP Control=0x33 Set bit 1= Enable ISP function... really? @3315.767938ms:Read Buf(0x5000c000)=0x00000000 @3315.927375ms:Read Buf(0x5000c01c)=0x00000000 @3315.967688ms:Write BD (0x5000c01c)=0x00000001 ; 0x5000C01C=1
-
Thread
Faktensammlung Buderus EMS
Faktor 2: 0a: min: 5°C 2a: ???: 21°C? 3c: max: 30°C 2a: value: 21°C Abfrage auf dem KM200: /heatingCircuits/hc1/temperatureLevel/eco Antwort: 10 f9 00 ff 01 b9 04 1f 00 00 00 0a 00 00 00 1e 00 00 00 2d 00 00 00
3c 00 00 00 2e Wieder Faktor 2: 23: min: 17,5°C 2a: ???: 21,0°C? 3c: max: 30,0°C 2e: value: 23,0°C Abfrage auf dem KM200: /heatingCircuits/hc1/fastHeatupFactor Antwort: 10 f9 00 ff 01
-
Thread
Heimautomation mit Raspberry PI - Einige Fragen zur Schaltung (Strommessung, Funk-Sensoren etc.)
meiner Mietwohnung am besten den Stromverbrauch messen? Ich habe leider keinen Zugriff auf die einzelnen Adern, nur auf das gesamte CEE-Stromkabel * Wie muss ich den 433 MHz-Funk-Empfänger an den PI anschließen? Der Empfänger hat 4 Pins, ist aber glaube ich kein i2c-Empfänger. * Wie kann ich
ist ja das Problem. Ich suche bei Reichelt oder Pollin, allerdings ist es etwas aufwändig jede einzelne IC-Bezeichnung nachzuschlagen, und eine Suche nach PWM i2c hat genau ein SMD-Bauteil gefunden, das ist aber etwas schwer auf einem Breadboard zu debuggen. > >> Wie kann ich in meiner Mietwohnung
-
Thread
AS 6 mit STK500 programmieren "Error ID 0x11"
minimalprogamme zum LED-Blinken an, und wie dort Schleifen und funktionsaufrufe verwendet werden. C-Buch von vorn nach hinten durcharbeiten könnte auch helfen. Zum anderen sind deine Bit-abfragen falsch. Guckst du hier http://www.mikrocontroller.net/articles/Bitmanipulation wie man einzelne Bits
minimalprogamme zum LED-Blinken an, und wie > dort Schleifen und funktionsaufrufe verwendet werden. C-Buch von vorn > nach hinten durcharbeiten könnte auch helfen. Zum anderen sind deine > Bit-abfragen falsch. Guckst du hier Das sind meine ersten Anfänge. Einen Main-Programmablauf habe ich schon
-
Thread
MSP430: Mehrere Interrupts pro Timer
aufgerufen (LED leuchtet nicht). Bitte um Feedback, ob der Timer richtig initialisiert ist. Danke [c]#include "io430.h" #include "io430x54xA.h" /*********** Setup *********************************/ #define LED_PORT P4OUT #define OUTPUT 0x7E //* Bit 1-6 are included in Mask #define LED_1 (
und eine Manipulation des TBR-Wertes bringt auch keinen Erfolg. Langsam wird's unschön... :( [c] #include "io430.h" #include "io430x54xA.h" /*********** Setup *********************************/ #define LED_PORT P4OUT #define OUTPUT 0x7E //* Bit 1-6 are included in Mask #define LED_1
-
Thread
Atmega ins Internet
ins Internet. Ich möchte jetzt über das Internet auf die Daten der Controller zu greifen, bzw. abfragen. Möglichkeiten (was ich verstanden habe): 1. ich könnte direkt über eine Weiterleitung per dynDns auf die einzelnen Controller zugreifen, dafür muss ich aber für jeden Contrller eine dynDNS
Routers öffnen, NAT etc. Gedöns sparen kannst. LG, Sebastian PS: Karol, ein Gutes hat doch eine uC-Lösung: Man spart sich die Schwachstelle Betriebssystem ;)
-
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
Aufbau Statemaschine
uprg2(); state = 3; break; case 3: uprg3(); if (!get_input_bit(IO_INPUT_1)) // Abfrage S3 Port delay(20); // Pause Entprellung 20 ms if (!get_input_bit(IO_INPUT_1)) // Abfrage S3 bei loslassen while (!get_input_bit
Eine Einrückung macht es leserlicher. > case 3: > uprg3(); > if (!get_input_bit(IO_INPUT_1)) // Abfrage S3 Port > delay(20); // Pause Entprellung 20 ms MÖÖP! Hier nicht! > if (!get_input_bit(IO_INPUT_1)) // Abfrage S3 bei loslassen
-
Thread
if( message>>16 == 0xF084 ) vergleichen ohne verändern?
Scherzkeks. Du hast q1 und q2 als 16 Bit Werte definiert. Damit wirfst du alle anderen Bits weg. D.h. deine beiden letzten IF Abfragen sollten eigentlich auf if(q2==0x9FA0B748) puts("Mute\r\n"); if(q2==0x9FA08778) puts
funktioniert. Nimm doch mal die Tomaten von den Augen. ;-) Du musst in den „inneren“ if-Abfragen schreiben [c] if ((message & 0xffff) == 0xB748) { ... } [/c] oder, wie Thomas in https://www.mikrocontroller.net/topic/307611#3308851 schreibt, den Vergleich sofort als 32-Bit-Zahl aufschreiben