-
Thread
AVR32: Wie Ausgänge/Eingänge schalten/einlesen
c) Bit setzten d) Ursprungsadresse wieder setzten, da der Controller den internen Adresspointer automatisch inkrementiert e) 1Byte zurückschreiben. 2. Weiter ist jeder GPIO Port 32Bit breit -> habe meinen Treiber so geschriben, dass simultan 8 Bits geschrieben werden können: AVR32_GPIO_LOCAL.port[pinGroup.port].ovr = (AVR32_GPIO_LOCAL.port[pinGroup.port].ovr & ~(pinGroup.pinGroupMask
-
Thread
Thema: Atmega 32: Ich brauche mehr Rechenleistung für meine CNC
mal eine Radiusinterpolation programmiert. Ich bin hergegangen und habe ein externes EProm als 16 Bit Sinus Generator mißbraucht. Das ergebnis war, das es ab diesem Zeitpunkt keinen unterschied mehr machte, ob der µC eine Gerade fährt oder einen Radius. 16 Bit Adresse rein (2 Befehle) 16 Bit Daten raus
mal eine Radiusinterpolation > programmiert. Ich bin hergegangen und habe ein externes EProm als 16 Bit > Sinus Generator mißbraucht. Das ergebnis war, das es ab diesem Zeitpunkt > keinen unterschied mehr machte, ob der µC eine Gerade fährt oder einen > Radius. 16 Bit Adresse rein (2 Befehle) 16 Bit
-
Thread
Kann man folgenden Code platzsparender schreiben
Datentype nur > einmal im ROM ist. Korrekt. Ich sehe hier jedoch zwei Multiplikationsroutinen: 16 Bit signed: [c]values[1] * 10; values[2] * 100; values[3] * 1000; values[4] * 10000;[/c] 32 Bit signed: [c]values[5] * 100000; values[6] * 1000000; values[7] * 10000000;[/c] Insbesondere diese
Dann bleibt da > nämlich "FTW = f * k" stehen, und das ist eine Laufzeitmultiplikation. Weil [c](frequency * 4294967296) / 125000000UL;[/c] nicht immer das gleiche Ergebnis wie [c]frequency * (4294967296 / 125000000UL);[/c] liefert. Die Idee von Uwe ist, die 64 Bit Operationen durch 32 Bit
-
Thread
SDCC & MAX1271
Ich möchte in C den AD-Wandler MAX1271 ansteuern. Bloß ich weiß nicht, wie ich in C Bits schieben kann, um Sie an einen Port-Pin auszugeben oder um Sie von einen Port-Pin zu lesen. Ich muß eine Byte Bitweise ausgeben
Um meine Frage zu verdeutlichen: Ich habe den ADWERT, der ist 16bit. Nachdem ich mir die richtige Wert erechnet habe, dies ist auch wieder ein 16bit-wert. Dies will ich auf einem Display anzeigen, mit einem Komma. Wie z.b = 16.84V. Das Display ist mit nem T6963C Controller
-
Thread
AVR Studio - Was soll diese Compiler-Warnung?
abspielt und sich nicht im endgültigen Code wiederfindet. Aber bei meinem Ausdruck (a<a+b) wird vom µC trotzdem ein 16 Bit Ergebnis aus a+b (je 8 Bit) berechnet und das einzelne a auch auf 16 Bit aufgebohrt und dann beides verglichen?
und sich nicht im endgültigen Code wiederfindet. > > Aber bei meinem Ausdruck (a<a+b) wird vom µC trotzdem ein 16 Bit > Ergebnis aus a+b (je 8 Bit) berechnet und das einzelne a auch auf 16 Bit > aufgebohrt und dann beides verglichen? Ja. Weil in diesem Fall das 16 Bit Ergebnis nicht identisch
-
Thread
Hilfe bei Z80 Opcodes
einfacher. The only easy day was yesterday. Gruesse Th. P.S.: Der Z8536 hat drei Ports (Port C vier bit breit, B und A jeweils acht bit). Addressiert wird das Ding ueber A0/A1, wobei gildet: [c] A1 A0 0 0 Port C (0CFF0H) 0 1 Port B (0CFF1H
ja, auch ich habe den Logic-Analysator) Ich habe ein paar Routinen identifiziert (vielleicht): [c] L0120: Send Stop oder Ack L0121: Adressiere Slave in L? (Routine $0cdb-$0910) L0013: Delay (Parameter in BC) L0139: Read i2c-Input (1 bit) result in D [/c] Gruesse Th.
-
Thread
ATMega2560 FastPWM DutyCycle Umschaltung
= (1<<PB7); PORTB ^= (1<<PB7); PWMsetup(); sei(); while (1) { }; } [/c] Der Code funktioniert auch, siehe das Bild vom Scope. Zu den einzelnen Kommentaren: Im ersten Code gab es einfach keine Timer1_OVF ISR, nur das Enable Bit wurde gesetzt. Ich habe mir das
neuen Tastverhältnise ins OCR1B zu schreiben. Gibt eine Möglichkeit zu berechnen, wie lange eine einzelne Operation im C-Code braucht? Alex P.S.: Rechtschreibfehler dürfen behalten werden.
-
Thread
PWM Signal OCR1A auf einen anderen Pin umleiten.
Frage, wie kann ich PWM Signal auf einen anderen Pin umleiten ? Der betreffende Codeausschnitt: [c] int main(void) { DDRD |= (1<<PD3); DDRB |= (1<<PB3); DDRB &=~ (1 <<PB2) TCCR1A = 0x83; // non-inverted PWM on OC1A, 10 Bit Fast PWM TCCR1B = 0x08; TCCR1B &= ~0x7;
& (X>10)) {OCR1A=OCR1A++;} if (X==11){X=0;} Timer_0(Res,0); }} [/c]
-
Thread
n++ hier oder dort?
am gcc: Der warnt davor nicht in der Standarteinstellung. Das > braucht -Wall o.ä. $ gcc -O2 u.c -o u ; ./u -1 -1 3 -1 3 $ clang u.c -o u ; ./u -1 -1 2 -1 3 $ tcc u.c -o u ; ./u # https://bellard.org/tcc/ -1 -1 3 3 -1 (Visual Studio 2017): -1 -1 2 3 -1
Maschinerie trotz gedrücktem Not-Aus-Schalter in Gang setzen, wenn einmal ein a*b überläuft. "Aha, c=a*b läuft über. Das merke ich mir mal und - oh: hier diese if-Abfrage benutzt c, da setzte ich als Ergebnis mal - hmm, wie ist es günstiger - "true" ein. Und hier, diese Abfrage.. Oh oh, "c+10". Das
-
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
Datentypen Problem
Lies dir erstmal n Buch zum Thema C durch.. Und vllt. mal bei Wikipedia gucken.. Und dann gleich nochmal Ascii lernen
Also ein Bit ist die kleinste logische Informationseinheit sie kann den Zustand 0 oder 1 annehmen. 4 zusammenhängende Bit werden als Nibble bezeichnet 8 zusammenhängende Bit als Byte Es gibt verschiedene Möglichkeiten
-
Thread
Codeschloss 5-stellig -- machbar und welcher ATM?
könntest als gültige codes zum beispiel primzahlen nehmen, dann brauchst du keinen speicher für die einzelnen kunden pins
hier nicht solche Fragen. Peter S. schrieb im Beitrag #4234374: > ich bin noch recht neu in der µC-Welt.
-
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