-
Thread
ks0073 - SPI - ASM
Hallo, ich möchte mein EA DIP204B-6 LCD statt wie bisher im 8Bit Modus im SPI Mode betreiben, aber es will nicht. Brücke für das IM Bit ist umgelötet. Mein MCU läuft mit einer MCLK von 20MHz der SPI Bus mit einem Prescaler von 64 damit also mit 312,5kHz. Den Quellcode
Hallo Jörg, das LCD lebt noch, auf jeden Fall habe ich das DORD Bit falsch gesetzt. Ich bekomme nun den Cursor angezeigt aber die Initialisierung haut noch nicht richtig hin. Die Kommentare der einzelnen Init-Schritte sind noch von der 8Bit-Bus Variante. Dort gibt
-
Thread
In Moodlight Programm Taster Entprellen
tar.gz Geiles Programm! mit den feinsten Farbübergängen die ich bis jetzt im inet gefunden hab. (16Bit Soft PWM mit 204 Helligkeitsstufen) Da ich nicht unbedingt der Fan von Fernbedienungen bin und lieber Taster am "Gerät" selbst haben würde, wollte ich die Taster enprellungs Routine in C von Perter
mit den einzelnen Programm Teilen durcheinander und weißt nicht wie das Programm insgesamt abläuft. Meine 1.Ansatz ist in der main.c die Taster ISR einzubauen und im moodlight.c abzufragen ob tasten gedrückt wurden
-
Thread
timer zeit per taster ändern
Ich habe mir mit einem tiny2313 einen kleinen LED Cube (3x3x3) gebaut. Bis jetzt benutze ich einen 8bit Timer für das Multiplexen der 3 Ebenen und einen 16Bit Timer für das durchschlaten der einzelnen komplett-Bilder. Im Timer für die Bilder habe ich noch ein Register als Zähler, das mit einem anderen
ums prinzip wie man sowas macht und den Lerneffekt. Der Umschalter müsste dann ja entweder den 16Bit Timer oder den externen Interrupt aktivieren, odeR? Ist das so machbar? Wie müsste man dann die Taster im Programm abfragen? Im moment besteht das Programm nur aus den ganzen Initalisierungen
-
Thread
STm32F103: Beispielcode der Chan FatFs zum Laufen bekommen
alles weglöschen was er mit diesen Registern angestellt hat, wo mir jeder Nerv zu fehlen würde da die Bits einzeln nachzugucken. De facto bleiben einzig und allein 2 SPI Routinen übrig, eine für Einzelbytes und eine führ mehrere. Die Einstellungen der SPI kenne ich aber nicht, da die ganz erheblich konfigurierbar
alle Bezüge auf die STM32F100.h sind entfernt, da die nicht kompatibel ist. Also hier das diskio.c Modul für den STM32F103C8 Chip, ungeprüft aber dafür sorgfältig umgesetzt.
-
Thread
Algorithmus für Logarithmus-Bererechnung?
M0..M14 (15bit)*/ zerg+=b; /*Nachkommastellen addieren*/ erg=zerg/32768.; /*Ergebnis Log2(20.000)*/ while(1) { Nop(); } return (0); } [/c]
M0..M14 (15bit)*/ erg+=b; /*Nachkommastellen addieren, Ergebnis = erg/2^15*/ while(1) { Nop(); } return (0); } [/c] Nochmals vielen Dank.
-
Thread
Kurze Frage zum Entprellen
bitweise codiert ist, welche Taste gerade gedrückt ist. Im Entprellcode ist das hier die Stelle [C] i = key_state ^ ~KEY_PIN; [/C] an der die jetzt gerade gedrückten Tasten (in Form einer Abfrage des PIN Registers der Tasten) in die Entprellung eingehen. Bei dir kriegst du die gerade gedrückten Tasten nicht durch Abfrage des PIN Registers, sondern durch den Aufruf der Funktion. Also wirst du KEY_PIN ersetzen durch .... Aufpassen musst du jetzt nur darauf, ob aus der Funktion eine gedrückte Taste mit einem 1-Bit
-
Thread
Was ist ein Festplattensektor?
vielleicht mal anders gedacht war. Will man partout solche Haare spalten, dann muss man jede Track einzeln betrachten und sektorieren. Damit ist dann ein Sektor der Bereich, in dem ein Block nebst Header und Füller Platz findet. Also die Pizza in konzentrische Ringe zerschneiden und diese einzeln sektorieren
Vielen Dank! ich fasse nochmal zusammen: - alle Blöcke haben die gleiche Anzahl Bits - alle Blöcke haben die gleiche Bitdichte - deshalb passen auf die innere Spur weniger Blöcke als auf die Äußeren - und somit sind pro Grad Rotation innen weniger Bits zu schreiben/lesen als Außen
-
Thread
IOs umbenennen
bsp. PINA1 mit "LED=1" angesteuert werden könnte. Die Input abfrage lässt sich ja mit Define so abändern. [c]#define BIT_VALUE( PORT, BIT ) (( (PORT) & (1<<(BIT))) != 0 ) //macht aus dem Byte einzelne Bit #define Taste (BIT_VALUE( PINA, PINA0 )) void
= 0xFF; ((volatile struct bits*)&PORTA)->b0 = 1; while( 1 ) ; } [/C] klappt das? (testen)
-
Thread
Tiny45 stürzt ab trotz Minimalprogramm
; set_sleep_mode(SLEEP_MODE_PWR_DOWN); sei(); for (;;) { sleep_mode(); } } [/c]
> Leider habe ich keine Ahnung von Assembler. Und der AVR hat leider keine Ahnung von C... ...
-
Thread
Busy Flag bei LCD mit mit ST7036i?
); I2C_out(0x6D); I2C_out(0x0C); I2C_out(0x01); I2C_out(0x06); delay(10); I2C_Stop(); [/c] Für die Kommunikation verwende ich das interne SERCOM-Modul und kein Bit-banging wie im Datenblatt. Die I2C-Routinen
): "There is a known issue on our serial LCD modules which affects its operation when used in I2C mode. When using the module’s I2C interface at a clock rate of 100KHz NACKs/bit errors/hanging, may occur. Therefore, if using the I2C interface of these serial LCD modules, a MAX clock rate of 50KHz
-
Thread
Elektronisches Metronom
Schaltungsfehler oder ein Fehler beim Ändern der Portzuordnung im Programm vor! Folgetests: jedes Bit mal einzeln setzen und sich merken, welches Segment dann leuchtet. Mit dieser Zuordnung musst du dann die wilden Bitmuster für die Zahlen und Buchstabenfolgen ändern... Versuche es bitte mal
aber alle Segmente der 2.,3. und 4.Stelle leuchten! Dann sollest du 0xff (oder 0x00) durch andere Bit-Kombinationen austauchen, am besten immer nur eine Bit-Stelle, damit du rausbekommst welches Bit für welches Segment ist... Das die erste Stelle (ganz links) weiter im Takt blinkt ist ok, weil die
-
Thread
Global Interruptflag
naja hab mein code soweit reduziert, dass in der main nur noch der Aufruf sei() steht und eine Abfrage erfolgt, ob das Global Interrupt Flag gesetzt ist oder nicht. Mit Hilfe eines LCD lass ich mir anzeigen wo im Code ich mich gerade befinde. Habe auch versucht das I-Bit direkt über SREG auf eins
und mit Autostep (Alt+F5) oder Run (F5) etwas schneller arbeiten und zwischendurch kannst du die Bits im SREG beobachten oder auch mal umschalten. Mit C kenne ich mich nicht aus unter Assembler ist es aber auch ganz hilfreich den Interruptvektor nicht auszulassen, damit ein nicht verwendetet Interrupt
-
Thread
Temperatur an LEDs ausgeben
finden das besser verstehbar und machen das auch so. Es gibt auch die Möglichkeit, immer alle Bits anzugeben, auch die auf 0 gesetzten: [c] REG_X = 1<<BIT_X | 0<<BIT_Y | 0<<BIT_Z; [/c] Das ist dann Geschmackssache. Peter
aufzeigen. Wie schon gesagt ich bevorzuge diese Variante da man sich sicher sein kann wie jedes einzelne bit steht ausserdem ist es schön anschaulich. ADMUX = Binary(00000000); // |||+++++---------- MUX Analog Channel (Channal 0) // ||+--------------- ADLAR ADC Left Adjust
-
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
VOLTCRAFT DSO-3062C 60 MHz = baugleich mit?
Windows 7 is the lack of HyperTerminal. So here is how to get HyperTerminal on to Windows 7 (32 or 64-bit). On the Windows 7 box make a new folder under C:\Program Files\HyperTerminal for 32-bit and for 64-bit make a new folder C:\Program Files (x86)\HyperTerminal From a Windows XP box and copy the
Rudi schrieb im Beitrag #2802448: > ich habe mich entschieden dieses Oszi (VOLTCRAFT DSO-3062C) zu kaufen. > Leider finde ich im Netz keinen Anbieter. Ein Tipp Rudi: Telefoniere mal die C-Läden einzeln ab. Deren Bestände können zwar im Normalfall einzeln online abgefragt werden, wenn
-
Thread
Probelme bei einem Programm
7 Fehler drin Hier mal Das Programm.. include "4433def.inc" ldi r16, 0xFF ;PortC als Ausgang konfigurieren out DDRC, r16 loop: in r16, PIND andi r16, 0b00001110 ;Pins maskieren, Bits 1..3 cpi r16, 0b00000100 ;Vergleich mit Maske "S1 && !S2 &&
etc) beschäftigst, solltest du dir gleich die (1<<xyz)-Schreibweise angewöhnen, wobei xyz für die Bit-Bezeichnung steht. Das erhöht die Lesbarkeit ungemein. Die BitBezeichnungen findet man im Datenblatt. Da gibt es meist auch Codebeispiele in asm und C.
-
Thread
118 Taster auswerten
Vorschlag... Johnny S. schrieb im Beitrag #6947778: > Daher wäre mir eine Lösung welche z.b. mit I2C arbeiten würde lieber. Am besten I2C Taster mit Funk und intregiertem Akku. Johnny S. schrieb im Beitrag #6947778: > die Lösung so wäre, das einzelne Schalter Schalter werden auch noch verbaut
ist. Daraus resultiert ein Array aus 118 Bits in denen ständig der aktuelle Zustand der einzelnen Tasten abgelegt ist....
-
Thread
Seriennummer einer CF Karte vortäuschen
verwendet, sondern nur ihre Seriennummer ausgewertet. Theoretisch also ist es durchaus möglich, mit einem µC eine CF-Karte soweit nachzubilden, daß sie das "Identify Drive"- und andere ATAPI-Kommandos auswertet und passend darauf antwortet. Der µC muss halt 16-Bit-I/O-Zugriffe mit ISA-Bus-Geschwindigkeit bewältigen
Byte of the Word. D08 is the LSB of the Odd Byte of the Word." Daraus schließe ich, dass mit 16bit (WORD) kommuniziert wird, oder? Nur wie muss ich die einzelnen Signale "verbinden"? Vielen Dank schonmal
-
Thread
Stm32 USB virtual com port example
SetEPTxCount(ENDP1, count); SetEPTxValid(ENDP1); } [/c] usbbuffer ist mein Puffer. if(USBEnabled&&(GetDADDR() & DADDR_EF)&&(GetDADDR() & DADDR_ADD)) ist die Abfrage ,ob USB initialisiert ist , oder nicht. (USBEnabled, habe ich mir selber gemacht
=1; return(c); } [/c] c ist das empfangene Zeichen count_out ist in den Beispielen Enthalten. USBcount ist meine eigene Zählvariable, um den puffer auszugeben.
-
Thread
Display LCD W164B-NLW an Atmega 8515
Hallöchen.. Kleine Anregung zur LC-Display Ansteuerung in 4Bit-Mode ohne Busy-Abfrage. Schau dir mal die Funktion lcd_init() genauer an. Das Komplette Projekt mit Schaltplan kann man sich hier anschaun: http://www.cczwei-forum.de/cc2/thread.php?postid=23657#post23657
Lerneffekt erreichen und versuche das zu verstehen was ich schreib. Wir haben in der Schule eine lcd.c und eine lcd.h bekommen und die einzelnen Befehle dazu. Punkt das wars. Es hat funktioniert aber keiner hat verstanden wie. Der Lehrer war ein Profie was C angeht und hat auch demmensprechend seine Programme
-
Thread
mal wieder EA DIP204 LCD mit KS0073
(1<< BF)) ) { uart_putchar('B'); }; LCD&=~(1<<RW); //RW auf Low } das Bit wird aber nie gesetzt!! (endlos-schleife) Was mach ich den schon wieder falsch?? Ich sehe schon, das sieht nach großer Verzweifelung aus. Ab wann kann man das Busy-Flag abfragen? noch vor der Init?
Bei HD44780 darf man das BUSY-Flag erst nach der Erstinitialisierung abfragen. Bei KS0073 soweit ich weiß, geht das sofort. 4 Bit Initialisierung ist bei KS0073 eigentlich einfach, nur das erste 0010 muß einzeln gesendet werden. In manchen Fällen kommt es dadurch aber zu Problemen
-
Thread
Suche nach FPGA Board
c_divisor : INTEGER := 8192; signal c_sine_position_x : t_memory_position_x; begin c_sine_position_x <= (0 * c_rising_edges/c_divisor, ..., 2048 * c_rising_edges/c_divisor); -- enthält 65 Multiplikationen
wie Multiplikationen mit Integer gemacht werden, aber ich würde vermuten, dass c_rising_edges/c_divisor immer Null ergibt wenn c_rising_edges > c_divisor. Denn mit c_divisor = 8192 kann man schreiben c_rising_edges/8192, das ist das Gleich, wie wenn du c_rising_edges um 13 Stellen
-
Thread
s: Bestückungsautomat
die den Status von FTP, das Vacuum, den Vacuumsensor, den Bauteilsensor, die Home-Sensoren usw abfrägst, wie auch ob ein HW-Notstop ausgelöst wurde. Weiter ist ein byte sinnvoll, das du lesen und schreiben kannst, das dann als 8bit input sowie 8bit output mittels uln2803 verwendest. Das ist sinnvoll
die den Status von FTP, das Vacuum, den > Vacuumsensor, den Bauteilsensor, die Home-Sensoren usw abfrägst, wie > auch ob ein HW-Notstop ausgelöst wurde. Ja, das ist eine gute Idee. Bisher muss man die einzeln mit STATE abfragen. > Weiter ist ein byte sinnvoll, das du lesen und schreiben kannst,
-
Thread
Welcher Treiber zu 7 Segment LED mit Common Anode
Vorwiderstände. Kläre also erst mal, auf welche Art du die Displays verwenden willst (von einem uC wie... soundsoviele Stellen, in Tageslicht, ...nicht nur mit Ziffern, Tastatur auch abfragen...) bevor du einen Chip auswählst.
). Die sind gut bis 24mA pro Segment. Sogar bis 100mA kommst du mit den weiter oben genannten TPIC6C595. Für statische Ansteuerung brauchst du davon dann einen pro Dezimalstelle. Zum Vergleich: ein einzelner TM1637 könnte 6 Stellen. Der oben genannte HT16K33 sogar 8 Stellen.
-
Thread
Arduino: abwechselnde Verwendung von A4/A5 als analoger Input und I2C
über den Interruptpin erkennen, ob überhaupt eine Taste gedrückt ist und mußt nicht ständig den I2C-Bus abfragen. Erst für >2 Tasten gleichzeitig braucht man noch eine Diode je Taster.
Einzelne kurze Tastendrücke machen keine Probleme. Längere Dauerkontakte kollidieren dann mit dem I2C-Signal und bringen manchmal den Nano zu Absturz oder die I2C-Verarbeitung wird dadurch natürlich gestört
-
Thread
Anfänger sucht geeignete Hardware zur Zustandsschätzung eines Systems mit Hilfe von LUTs
Evaluationboards wie z.B. diese hier gedacht: http://shop.trenz-electronic.de/catalog/product_info.php?cPath=1_114_123&products_id=830 http://shop.trenz-electronic.de/catalog/product_info.php?cPath=1_47&products_id=631 Ich bin mir allerdings nicht sicher, ob diese Boards meine Anforderungen erfüllen.
ein Packet anfängt habe ich eben ein schönes Format ausgedacht. Bei mir sind das je Byte immer 7 Bits Nutzlast und 1 Bit um zu erkennen ob Packetstart oder nicht. Am PC kann man das dann total einfach mit C parsen und auswerten. Oder eben Labview hernehmen, das kann ja auch RS232 annehmen.
-
Thread
ATtiny45 Ein- Ausgänge konfigurieren
mal im Datenblatt die Beschreibung der Register DDRB, PORTB und PINB an. Jedes dieser Register hat 8 Bit. Jedes Bit steht für einen Portpin (falls der Port auch vorhanden ist). Somit kannst Du jeden Portpin einzeln ansprechen. Da nun BASCOM- und C-Befehle bereits genannt wurden, nenne ich auch noch
erfreulich preiswert. Und falls du es noch nicht irgendwo gelesen hast: Vorsicht mit den Fuse-Bits. Eine falsche Einstellung kann dazu führen das der µC nicht mehr funktioniert. Zwei Fallstricke gibt es da: 1. Reset-Pin als IO-Pin konfiguriert: Läßt sich danach per ISP nicht mehr ansprechen
-
Thread
Startbit und USB-RS485/RS232 Adapter
Bussystem vorkommen. Habe mir diesen Adapter zugelegt: http://shop.in-circuit.de/product_info.php?cPath=38&products_id=81 der hat 390Ohm gegen GND oder VCC und 220 Ohm A gegen B. Die Widerstände lassen sich einzeln über DIP-Schalter aktivieren. sobald ich einen der 390Ohm widerstände einschalte
bereits Senderegister leer gemeldet wenn das Stopbit erst halb > raus war. Dann hast Du das falsche Bit abgefragt. Du sollst nicht "Senderegister-Leer" abfragen sondern "Transmission-Complete"
-
Thread
Post-Map simulation mit ModelSim
-- ERROR:HDLCompiler:806 - "C:/AS_21A21_FPGA_ISE14_7/ITPModul.vhd" Line 1918: Syntax error near "PROCESS". ERROR:HDLCompiler:806 - "C:/AS_21A21_FPGA_ISE14_7/ITPModul.vhd" Line 1924: Syntax error near "BEGIN". ERROR:HDLCompiler:806 - "C:/AS_21A21_FPGA_ISE14_7/ITPModul.vhd" Line 1948: Syntax error near "PROCESS". ERROR:HDLCompiler:806 - "C:/AS_21A21_FPGA_ISE14_7/ITPModul.vhd" Line 1959: Syntax error near "port". ERROR:HDLCompiler:806
-
Thread
Technics Keyboard Festplatte klonen geht das ?
cf-card+128MB&_osacat=0&_from=R40&_trksid=m570.l1313&_nkw=cf-card+ide+adpapter&_sacat=0 Das removable-Bit der CF-Card wird das Keyboard kaum abfragen und sich somit auch nicht daran stören. PS: da war jemand schneller... Gruß aus Berlin Michael
im Beitrag #5660809: > 128MB CF Karte (CHS 984/16/16) Nun ja, das hatten wir doch schon 'mal, C/H/S-Anzahl eben zu klein. Sollte doch aber kein Problem sein, eine 512MB/1GB aufzutreiben. Das haben ja eben viele der HD-Erweiterungen der 8bit-Computer dann auch alle benutzt: 'ne CF-Karte. Da
-
Thread
Interrupts mit Arduino DUE
Karl M. schrieb im Beitrag #4283688: > deinen Atmel AVR µC Der Arduino Due ist ein SAM3X8E, ein Cortex-M3 Jannus schrieb im Beitrag #4283607: > Ein einzelner Interrupt ist nicht so das problem. Angenommen ich möchte > an mehreren Pins Interrupts generieren
über die Funktion digitalPinToInterrupt() dem Interrupt zuordnen bzw. beim Due nur 0 übergeben. [c]attachInterrupt(digitalPinToInterrupt(pin), ISR, mode);[/c] https://www.arduino.cc/en/Reference/AttachInterrupt p.s. Ich weiss, das Manual zu lesen ist uncool
-
Thread
ATmega8 sbic funktioniert nicht bei ZeroFlag =0
danach das Programm verzeigen zu lassen. Das funktioniert auch, aber leider nur wenn im SREG das ZERO-Bit auf 1 steht. Das sieht man im unteren Programmausschnitt. Das ich für Testzwecke geschrieben habe. Wenn im Zero-Flag im SREG eine 1 steht funktioniert die Abfrage. Falls im Zero-Flag eine 0 steht
Versuch mit 0 (0x81) Wenn ne 1 drin steht funktioniert die Abfrage Wenn ne 0 drin steht funktioniert die Abfrage nicht. Das ist das was ich nicht verstehe. Und ja der Pull-Up ist eingeschalten. ( nachgemessen ) Danke für eure Hilfe mfG patt
-
Thread
virtuelle COM-Schnittstelle; VID & PID einlesen?
. Es ist sogar relativ leicht, wenn man in der nativen Sprache des Win32-API programmiert, also C. Von .Net-Programmen aus ist es allerdings einigermaßen Sackstand, aber definitiv ebenfalls möglich. Nur leider eben relativ aufwendig, insbesondere dann, wenn man sowohl 32- als auch 64-Bit-Umgebung
unsicherem C-Dreck in ungeahnte Höhen...
-
Thread
Rechteckgenerator mit Atmega8 timer Problem
die Rundungsfehler noch gravierender > werden(Word). Meiner Meinung nach benötigst Du eine 16-Bit-Ganzzahl, die in einigen Hochsprachen auch 'Integer' genannt wird. Denn der Timer arbeitet ja mit 16-Bit-Ganzzahl, 'Single' (also Fließkommazahl einfacher Genauigkeit) kennt der Timrer nicht, warum
Steuerregister des AVRs (seiner internen Peripherie) selbst einzustellen, sich also selbst um jedes Bit zu kümmern, wie es das ASM-Programmierer und der C-Programmierer tun muss. Und daher sprechen wir (BASCOMer <-> Rest der Welt) unterschiedliche Sprachen und verstehen uns nicht bzw. selten. Weniger
-
Thread
Software zum Steuern des Türschlossantrieb "eqiva eQ-3 Bluetooth Smart Lock"
zuverlässig läuft, und gebe mir zusätzlich noch die RAW Daten über MWQTT aus wenn ich den Status abfrage, z.B.: 72 01 0A 00 10 17 00 00 Irgendwo hatte ich gelesen dass da auch die Info über den Batteriestatus drin steckt, kanns aber nicht mehr finden welches Bit das war, weiss das jemand?
update_act [AC] dvc placed on /_ac/update_act [AC] /_ac/update on hands [AC] /_ac/update_act on hands [/c] MQTT und WLAN Verbindungen sind aufgebaut [c] # published SmartLock/task/working # WiFi disabled Hier wir die initiale Abfrage des Schlossantriebes gestartet *** get state *** # Nonce exchange
-
Thread
Mikrocontroller-Programmierung in C: Effizienz vs. "Usability"
welches die notwendigen Funktionen zur Verwendung des Sensors bereitstellt. Der Sensor wird per TWI/I2C angesteuert und bietet eine Reihe von Registern für Einstellungen oder die Messdaten. Nun kann eine der Funktionen des "Treibers" sein, dass zum Beispiel das 8bit-Register CTRL1 des Sensors ausgelesen
Übergabe der Pointer der richtige Wert ist. Das schränkt meiner Meinung nach auch die Usability ein. [c] int lsm303d_chg_ctrl1(uint8_t* register_data, bool write) [/c] ... [c] lsm_data[1] = register_data; [/c] Was sagt eigentlich der Compiler dazu? Und wie sieht der Aufruf aus?
-
Thread
Auswerten von Zahlen
Pierre Gnauck schrieb im Beitrag #2673585: > oder gibt es da einen leichteren weg ? C nehmen, dann nimmt einem der Compiler genau so etwas ab. Oder einen Controller mit 16 oder 32 Bit.
Für sowas kann man Definitionen verwenden. #define sbi(PORT,BIT) PORT |= (1 << BIT)
-
Thread
ALU VHDL ohne Process
heutige Jahr ist... > > Mit diesem Befehl hier wackelst du nämlich am "hintersten, rechtesten" > Bit: > c(6) <= '1' when unsigned(a) > unsigned(b) else '0' when "000", möchte ich auch, da ich nach Aufgabenstellung das Ergebnis von boolschen Abfragen in das niederwertigste Bit schreiben möchte
äusserst unüblich. >> Mit diesem Befehl hier wackelst du nämlich am "hintersten, rechtesten" >> Bit: >> c(6) <= '1' when unsigned(a) > unsigned(b) else '0' when "000", > möchte ich auch, da ich nach Aufgabenstellung das Ergebnis von boolschen > Abfragen in das niederwertigste Bit schreiben möchte
-
Thread
STM32F4: BMA020 per SPI
erstes 0x8600 geschrieben: Es wird also ins Register 0x06 nur 0x00 geschrieben, die 8 ist das Write-Bit. Wenn der SPI auf 8 Bit eingestellt ist, könnte man alternativ auch schreiben: [c] CS_Low; // Schreibbefehl an Register 0x06 SPI_Write(SPI1, 0x86); // Schreibe 0x00 in Register 0x06 SPI_Write
allererstes habe ich ein Flag definiert. Dieses markiert, ob die Startsettings geladen wurden. [c] #define BMA020_SET_SUCCESS 1 #define BMA020_SET_FAIL 0 [/c] Danach habe ich eine if-Abfrage geschrieben, welcher dieses Flag abfragt. [c] void bma020_READ_DATA(void) { if (bma020_setting_flag
-
Thread
DCF77-Modul von Pollin
Ja, ein R, ein C und ein Schmitt-Trigger oder zwei Rs und ein C und ein Transistor. Letzteres habe ich nicht getestet.
Meter von allen Stromleitungen angebracht -- alles ohne Erfolg. Mal kommen wilde Zacken anstelle der Bit-Signale, mal fallen Bits aus. Alle DCF77-Uhren im Haus funktionieren ohne Probleme. Momentan denke ich daran, das Modul abzuschreiben und es mit dem Modul von C** zu versuchen. Hat jemand Ideen
-
Thread
20 PINs umschalten ?
gleichzeitig 1:1 Umschalten können. > > Und das gerne mit 4 Platinen. > > Genau geht es darum eine C64 Tastatur an 4 C64 anzuschliessen. Also die Steuerplatine (Tastatur) immer auf einen einzelnen C64, drei C64 bleiben jeweils unbeschaltet - richtig? Wenn Mechanisch reicht besorg dir bei Ebay
einem NMI auslöst. Das kannst Du mit > Arduinos umsetzen, aber die Tastatur mit einem AVR/Arduino abfragen und > den C64 eine andere Tastaturschnittstelle beibringen vereinfacht die > Umschaltung unheimlich. Klingt schon mal gut. Wie kann ich das verstehen 'dem C64 eine andere Tastaturschnittstelle
-
Thread
[S] Eprom UV Eraser
Löschgerät. Der UV-B Scheinwerfer zum Nachhärten der 3D-Drucke reicht definitiv nicht. Auch wenn es einzelne EPROMs gibt, die nach Stunden ein paar Bits verlieren. Daher habe ich etwas selber gebaut. Kleine UV-C Röhren gibt es im Aquarien- und Teichbedarf. Allerdings bekommt man den Ballast für die kleinen
faktisch nicht. Sonne ist deshalb zu vermeiden (und daher die Fenster abzukleben) weil bereits einzelne gekippte Bits ausreichen können damit ein Programm im EProm nicht mehr funktioniert. Und die Zeitspanne bis ein erstes Bit Kippt ist eine GANZ andere Geschichte als bis ein Eprom leer ist. Besonders
-
Thread
Zählen von Impulsen ohne T0
Zähler alle paar µs inkrementiert. Der Zählerstand sollte möglichst nicht "überlaufen". Also sollten 64 Bit Breite ausreichen. Das Inkrementieren einer einzelnen Zahl braucht nur wenige Taktzyklen. Bei jeder Ansteigenden Flanke holst Du Dir den aktuellen Zählerstand und ziehst den Vorgänger ab. Je nach
Bit Zähler macht jetzt schon nach weniger als einem halben Tag schlapp.
-
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
Von Arduino zu C(++)
Dein Post verwirrt etwas. "richtiges" C++ ist eben objektorientiert im Gegensatz zu C. Das hat aber nichts mit Arduino zu tun. Die Sprache verwendet Arduino genau so wie Visual Studio, Eclipse und co?! du musst unterscheiden ! C ist nicht
#3727082: > Wenn du vorher Arduino gemacht hast, dann hast du aber schon alle > Syntaxelemente von C verwendet (oder solltest es zumindest)... Das aufjedenfall. Ich persönlich hatte garnicht die großen Probleme mit C aber das man aufeinmal nur mit einzelnen bits arbeitet, von Pins umdenken muss
-
Thread
switch-case Anweisung wird nur im WINAVR-Simulator ausgeführt Nicht auf Hardware ATMega8 (STK500)
dir die restlichen Pins auf 0 ziehen, dann wirst du hier nicht 1, 2 oder 4 erhalten. Wenn du einzelne Pins abfragen willst, dann ist die beste Strategie das Eingelesene für jede Abfrage einzeln so zu maskieren, dass nur das interessierende Bit übrig bleibt. [C] x = PINB; if( x & 0x01
0b11110110; else if( x & 0x04 ) PORTD = 0b10101010; else PORTD = 0b01010101; [/C] Du kannst natürlich auch einen switch-case benutzen. Nur solltest du dann aber sicherheitshalber von x auch wirklich nur die Bits zum Vergleich benutzen, für die du case-Fälle hast bzw. diejenigen
-
Thread
Arduino - Speicheroptimierung?
der Haufen machen soll! Die Ehternet Schnittstelle ist nur für die Webseite/Weboberfläche. Die einzelnen Knoten haben je eine einstellbare CAN-ID und warten auf Befehle (PWM oder Relays-Ausgang) und senden bei Bedarf 8 Analog-Werte, wobei der erste Wert immer die Betriebsspannung (28V) in 8Bit und der
Mit den Variablen Outputs und Inputs (je long) hätte man eigentlich ja alles abgedeckt, eben 32Bits pro. Dann bräuchte man die Input[8] nicht mehr, wären nochmal 9x8 Bytes... Was zwar kein Speicherplatz jedoch weniger traffic bringt, wäre ne Abfrage, ob sich was geändert hat, Out oder Inputs
-
Thread
AtMega16 - HILFE
zwischen 0 und 255 (=2^8 Werte) geben lassen. Die einzelnen Bits dieses Werts gibst du dann nacheinander d.h. in einer Schleife als einzelne leuchtende/dunkle LED aus. Entsprechend verfährst du mit dem Einlesen der Tastenwerte. Anschliessend vergleichst du den 8-Bit LED-Zufallswert mit dem 8-Bit Eingabewert. Keine Schleife notwendig dafür.
-
Thread
c++ Rechnen bis Ganzzahl ausgegeben wird
im Voraus > Razeradio^^ Hallo, unter der Annahme, dass die eigentliche Formel 82*(a^8-a^4)/(b*c*d) heisst, ist ein Ergebnis a=2, b=12, c=20 und d=41. Die Abfrage nach einem ganzzahligen Ergebnis kann man auch damit erreichen, indem man den Teil vor dem Bruchstrich rechnet (X als ganze Zahl)
Beitrag #4268309: > https://gmplib.org/ Es gibt etwa 3 Milliarden Lösungen (Permutationen von b, c und d nicht mitgezählt), an die man mit gewöhnlicher 64-Bit-Arithmetik herankommt.
-
Thread
Effizente Mittelwertberechnung über 24bit (3x8Byte) ADC daten
4 Samples. Derzeit (noch ohne mittelwert) hole ich mir die 24bit SPI daten aus dem uint8_t buffer noch einzeln und schiebe sie zusammen in eins der 32bit register des µC. Natürlich ist mittelwert berechnen da einfach, nur: Wenn die daten über Bluetooth rausgehen
naiver Ansatz: a+b=c [ergebnis 32bit] c = c>>1 [Mittelwert von 2 Werten: 2^1 ] wie soll es denn schneller gehen? Und Bitverschiebeaktionen gehen ganz ohne Division.