-
Thread
Suche: Steuerungsplatine mit Microcontroller USB
programmieren. Du musst ihn nur in den passenden IO-Modus schalten ("Bitbang") und kannst dann die Bits setzen und löschen oder abfragen. fchk
Facharbeit eine Platine die ich über Usb > programmieren kann und auch alle Steuerungen über eine C++ > grafikoberfläche ausführen kann. > Die Ventile für die einzelnen zutaten wollte ich halt per mausklick > über eine "Ausführende" Platine ansteuern. Das, was der TE schreibt, kann man selbstverständlich
-
Thread
Atmega 8; EEPROM bei Reset korrumpiert; alle 0 werden zu 255
Variable mit einem Wert, damit man genau weiß, wie groß die Zahl zum Beginn der Funktion/Schleife/Abfrage/etc ist. Und i wird auch nie den Wert 256 haben können - es ist nur eine 8 Bit große Zahl.
Das hier: [c]uint8_t *eeprom_adr = 0; // eeprom_adr++; if (eeprom_adr>(uint8_t*)255)[/c] ist auch Unsinn.
-
Thread
Echo HC-SR04 auswerten
Overflow zu laufen. Übrigens kann man die US Sensoren auch mit einfachem Arduino Code mm genau abfragen ohne Input Capture. C würde auch reichen. Schall ist eben relativ langsam ;-) Wie gehe ich in meinem AssemblerCode in der ISR zum Erfassen eines Pulse With vor 1. Alle in der ISR verwendeten
rising Ereignisses aufgerufen wurde. Wenn RisingEdge: 1. Am Anfang zwischengespeicherten 16Bit Wert für Rising ( aus ICR1L und ICR1H) z.B. im SRAM speichern. 2. Ein StstusBit für RisingCaptureDone setzen 3. Umschalten auf FalingEdgeCapture hierbei nicht vergessen das ICF Bit in TIFR1 zu löschen
-
Thread
Universaltestboard für AVRs
ist noch ein EEPROM auf der Platine, um irgendwelche Dinge dort abzulegen. Dieses EEPROM wird über I²C angesteuert (I²C Buchse mit Vcc und GND auch vorhanden). Für ein LCD ist auch eine komplette Leiste vorhanden, um es "huckepack" auf die Platine zu setzen. Zum Programmieren ist außerdem jeweils ISP
erwähnt habe sind nun die Ports jeweils nur auf eine Buchsenleiste. Außerdem musste ich ISP und I²C so machen, dass man über Jumper jeweils auswählen muss, ob man den 40- oder 28-poligen AVR bestückt hat. Wenn ich das nicht gemacht hätte wären durch diesen Aufbau bedingt einige Bits eines Ports untereinander
-
Thread
Dauerspeicherung auf SPI EEPROM mit Wrap-around und Sektorlöschung (avr gcc)
ic-sm-flash-16mb-spi-top-boot/dp/1697529 http://www.ebay.de/itm/WINDBOND-W25Q16BVSIG-25Q16B-16M-BIT-FLASH-8-SPI-BUS-SERIAL-EEPROM-BIOS-CHIP/121715258475?hash=item1c56cb746b:g:744AAOSwDNdVuQof
braucht nicht unbedingt mehrere Bytes. Man kann ja das selbe Byte "überschreiben", sofern sich die Bits nur von 1 auf 0 ändern. Ein einzelnes reicht also auch schon für 8 Änderungen.
-
Thread
USART Übertragung innerhalb Byte abbrechen
µC1 das senden sofort > einstellen und nicht noch das restliche Byte raustakten. Falls die Hardware das erlaubt, könntest Du im Senderegister die restlichen Bits des teilweise ausgesendeten Bytes auf
versuchen. Für diesen Ansatz braucht der Pin-Change-Interrupt "nur" während des Sendens durch den µC aktiv zu sein, kann in dieser Zeit aber (bei 9600 Bit/s) mit max. 4800hz ausgelöst werden, was je nach Anwendung ggf. nicht tolerabel ist.
-
Thread
Hilfe zu Interruptverhalten ATMEGA8 gesucht
[C] TIMSK &= (0 << TOIE2); [/C] so werden keine Bits gelöscht. [[Bitmanipulation]] > Deaktiviert wird der Interrupt mit GICR &= (0 << INT1); Du hättest genausogut [C] GICR = 0; [/
[C] TCNT1H = 0xC0; TCNT1L = tmr1l_preload; [/C] wenn du solche Dinge hast, in denen 2 Register zusammengehören und logisch gesehen ein 16 Bit Register bilden, aber aus technischen Gründen
-
Thread
Problem mit G-LCD-Ansteuerung
der Schreib-/Lese-Signale bezieht, dann musst du natürlich noch das Delay anpassen, mit dem du einzelne Bytes an den T6963C sendest, das ist nämlich auch nicht ohne! Kannst du mal den Schaltplan posten? Ich hab n T6963C mit 240x128 Pixeln an nem 8052 mit 22,1184MHz pappen, funktioniert wunderbar.
LCD-Ansteuerung betrifft, insofern also vollständig ;) @ Benedikt Stimmt. Ich will ja im Prinzip nur abfragen, ob die Statusbits gesetzt sind oder nicht. Da habe ich mir wohl nen kleinen Denkfehler einfallen lassen ^^ Jo, du hast recht, genau das meine ich ^^ will wissen, ob die letzten beiden bits gesetzt
-
Thread
Warte-Befehl in Assembler?
Takte bis zur Abfrage des Pegels. Bei dem AVR vergehen bei mir zwischen 11000 und 17000 Takten pro Bit. Bei der C-Control ist die Anzahl der Takte immer gleich. Wie gesagt, ich möchte den AVR nicht madig machen. Wenn
Conrad-Empfangsmodul. Die Routine ist auf meiner Webseite: http://www.specs.de/~danni/appl/soft/c51/thclock/index.htm Die einzelnen Zeiten messe ich mit einem Timerinterrupt von 64Hz. Dann ergeben sich folgende Zählerwerte: 0-Bit: 6 (6,4) 1-Bit: 12 (12,8) Pulsabstand: 64 Synchronimpulsabstand
-
Thread
Tastenmatrix Realisierung mit oder ohne IC
ich problemlos 40 Tasten in ner halben Sekunde angeschlagen und wieder losgelassen. Wenn man die einzeln zeitlich auflösen möchte, reichen 25ms Scanintervall nicht mehr.
sodass auch mehrere > Tasten gleichzeitig gedrückt werden können) aufbauen und mit einem > Teensy abfragen Für welche Anwendung oder mit welcher Ansprechzeit? Was sind das für Tasten(kontakte)?
-
Thread
USB CardReaderWriter & Atmega
Stell dir vor ich emuliere eine 256 MB SD Karte mit x Atmegas so kann ich 256 000 000 Temperaturen abfragen oder bloß 128 000 000 bei 16 bit etc. etc. Moderne Leute würden dann schon von GRID-Computing reden!!! Spass bei Seite: Ich will die "Atmega" Welt für mich erschließen, nicht einfach vorhandenes
Cardreader (SD-Card nehmen) ==> null Aufwand,billig - Auf der PC Seite mit Standard-Treiber per C,Java,C++ auf diese zugreifen (das kann ich, da bin ich zu Hause) -SD-Card Emulator mit einem ATMEGA bauen mit externer Peripherie (Temperatur,Stellglieder, LCD,LED's ...etc) -Primär zum kennenlernen
-
Thread
Frage zur Bitmanipulation
[c] wie kann man denn aus einer Variable tmp z.B. Bit3(0b00000100) auf ein anderes Bit eines PORTs übertragen(also z.B. PORTB.1)? if ((tmp & 0b100) > 0) PORTB |= 0b1; else PORTB &= ~0b1
langsamer weil längerer Code. - PORTB wird komplett neu beschrieben, problematisch wenn in Interrupts einzeln andere Bits des gleichen Port gesetzt/gelöscht werden.
-
Thread
zu wenig pins !!!
LCD Display: I2C Controller von Philips verwenden, braucht nur 2 Pins... 16 Tasten kann man mittels Multiplex abfragen, 2x8 Matrix, so dass man nur 2 Leitungen am Controller braucht, da die 8 sowiso (z.B. Datenbus)
von Benedikt: "16 Tasten kann man mittels Multiplex abfragen, 2x8 Matrix, so dass man nur 2 Leitungen am Controller braucht" Und die Adresse das Multiplexers??? Wird die dann nicht vom µC generiert??? Schliesslich muss er doch wissen welche Taste gedrückt
-
Thread
Debounce und Filter per PChg-Isr
In der Pchg_isr werden alle Pegelwechsel innerhalb einer Timerperiode gesammelt und das jeweilige Bit in "Changed_pins_sum" gesetzt. Eine 1 bedeutet hierbei, dass sich dieses Bit verändert hat, nicht jedoch, dass sein Pegel 1 ist...! In der Timer_Isr wird der letze PINB-Status nach "Deb_pinb" transferiert, wobei das Byte in "Changed_pins_sum" die Maske liefert, für jene Bits (die gekippten) die beim Übertrag nach "Deb_pinb" ausgelassen werden. Kurz: 'Wd_isr' ist eine Transferroutine von Byte A nach Byte C, wobei das Bitmuster im Masken-Byte B (hier das "Changed_pins_sum
-
Thread
CAN Netzwerk mit Gateway - mbed | NXP LPC 1768
// Variable wird übergeben in if Abfrage, array der Bits......// while(1) { if(can1.read(msg)) { // Datenbotschaft CAN einlesen
rein. Das sollte auch im main laufen, du kannst einen Timer nehmen und in dem zyklischen Aufruf abfragen ob der Timer > x ms ist und dann die Aktion ausführen. [c] wait(0.02); // Es wird alle 200ms der Status eingelesen [/c] wartet 20 ms, aber wirst du am hektischen Blinken der LED sehen.
-
Thread
LM73 über I2C mit ATmega8 ansprechen
machen, was in der functional Description steht, oder? Ich will das "Identification Register" abfragen. Halt um zu schaun ob unter derundder Adresse das IC erreichbar ist. So, im Datenblatt steht dass das 15 Bit lang ist (S.16). Also schau ich auf Seite 11 nach, "(b) typical pointer set followed by
100000L #include <avr\io.h> #include <util\delay.h> #include <stdlib.h> #include "twimaster.c" [...] //Adresse abfragen //--------------------------------------------------------------------------- // Verfahren: datasheet, 1.0 b //---------------------------------------------------------
-
Thread
sd-Karten, Sektoren, Cluster
fragmentierten Dateien, mit welchem Sektor eines Clusters anzufangen ist? sector ist bei Chan ein 32bit-Wert. Wie wird der 33bit-Bereich der Karte angesprochen?
(8); case 4://busy-abfrage 8xRx DMA_STATUS = 5; DMA3_transfer_from_SSP0_to_buffer(8); break; case 5://busy-abfrage auswertung if(buf_rx[7]=!255){ DMA_STATUS = 4; DMA2_transfer_from_buffer_to_SSP0
-
Thread
DS18B20 probleme mit Pull-Up
von 750ms selbst erzeugt und danach die Temperatur ausgelesen. Dann erhalte ich den Wert 127,9375°C. Das entspricht dann lauter einsen auser die 5 bit fürs vorzeichen die sind Null. Das ist in soweit komisch, dass das nicht der Standartwert ist (auslesen ohne Temperaturconversion 85°C). Hier noch
bit. Oder habe ich da was falsch verstanden? Die Pull-Ups hab ich mal raus. Ändert leider auch nichts. So schaut die Read-bit funktion nun aus [c] uint8_t ds1820_re_bit(uint8_t used_pin
-
Thread
Funkanbindung - Fortsetzung aus Hauptthread
ob man zwei Subnetze per Funk verbinden will, z.B. um zwei Stockwerke zu verbinden oder ob man einzelne Sensoren/Aktoren mit dem Bus verbinden will. In ersterem Fall sollte Strom kein Problem sein, in letzterem ist die Frage ob der Stromstoß eines Piezokristalls langen kann um den µC mit Strom zu
UART (RxD) hängt das RCM120 Modul von enocean. Ein 20x2 Standard LCD Modul hängt an Port A und D (8bit mode) und drei Tasten für die Menüsteuerung an Port E. Da der ATmega103 kein TWI eingebaut hat - hab ich nen software I2C an Port B realisiert. Der Relaisteil besteht aus nem I2C IO-Expander PCF8574
-
Thread
Zeitschleife Feintunning
(cbg) schrieb: >Wenn dus genau haben willst, dann machs mit einem Timer Der leider nur ein 8-Bit-Typ ist... MarioT (Gast) schrieb: * AVRdelayloop3.zip (267 KB, 5 Downloads) >>Wie würde ich das in C für einen AVR programmieren? >Hab ich leider keine Ahnung. >ASM sehe Dir das mal an.
Aha und Methodenaufrufe und Abfragen dauern auf deinem µC also die Taktzahl 0... interessant.
-
Thread
PS2 Maus
Hallo Ich versuche, mit einem µC eine Ps2-Maus auszulesen. Das lesen von der Maus funktioniert: die Maus macht dem selbstest, sendet 0xAA für erfolfreich an den µC und dann 0x00 als Device-ID für eine PS2-Maus. Die Maus sendet die
nicht erst zur maus gelangt. Nach dem Inhibit und Request-to-send soll die maus erkennen, dass der µC Daten senden will. die maus soll dann takte auf der clockleitung erzeugen, um die datenbits einzeln einzutakten. mein code hängt in einer schleife, in der er auf low an clock wartet, also auf den takt
-
Thread
Mikrocontroller Einstieg (AVR,PIC)
8 bit ist. Wie das nun genannt wird, ist mir ja relativ egal. Und mit C ist das eh automatisch im Hintergrund. Die C-Eignung hatte ich oben ja schonmal erwähnt. Ich programmiere seit ca 8 Jahren PICs mit
nicht schwer, _weil_ ich keinen anderen kannte ;) Ich habe später mal ASM für einen (ich glaube) 80C535 gelernt. Was mich da z.B. gestört hat war, dass man zwar einen 1Bit-Speicherbereich hatte, um einzelne Bits abzulegen, aber ich konnte nicht (wie von PIC-ASM gewohnt) einzelne Bits jedes beliebigen
-
Thread
Phänomen Unterprogramm schlägt wieder zu!
Reihenfolge, zuerst high, dann low beim schreiben und erst low, dann high beim lesen, ist nur bei 16Bit-Timer nötig um zu einem Zeitpunkt 16 Bit zu schreiben oder zu lesen, sonst hätte man unter Umständen ein verfälschtes 16Bit-Ergebnis beim lesen, bei einem Prescaler von 1 sowieso. MfG Andi
Hallo Dominik! Du wartest mit dem ADIF-Bit (ADC Interrupt Flag) bis eine Konvertierung fertig ist. Weis nicht, ob das 100%ig geht, wenn das Bit ADIE (ADC Interrupt Enable) nicht aktiviert ist (0): ldi temp1, 0x00 ;ADC initialisieren
-
Thread
8 Tasten einlesen (Möglichkeiten)
wenn mehrere Taster gedrückt sind, dann ist das Ergebnis sowieso unsinn. Es würde also reichen die einzelnen Bits zu kodieren.
mehrere Taster gedrückt sind, dann ist > das Ergebnis sowieso unsinn. Es würde also reichen die einzelnen Bits zu > kodieren. Stimmt. Es gibt keine Priorität, da ein Drücken von zwei Tasten gleichzeitig unsinn wäre.
-
Thread
AVR I2C/TWI: wie sag ich als Slave dass ich busy bin?
Hallo zusammen, ich hab grad ein kleines Verständnisproblem beim i2c-slave am AVR: ich hab einen kleinen Adapter gebaut, der mit einem ATmega328P ein LCD-Display ansteuert, und diverse Kommandos und Daten per i2c empfängt. Sobald ich per i2c ein Kommando kriege,
writing the TWEA bit to one again.
-
Thread
GCC [STM32] -> wie sehen wie ein struct realisiert wird?
_t can_data; } tu_test; [/c] Da wäre es für mich sehr interessant, wie der Compiler das genau umsetzt, sprich ob er wirklich (in Abhängigkeit des Optimize?) Stuffing-Bits einführt, etc. *Ist jemandem eine Möglichkeit bekannt
aussehen. Maximal wird Padding am Ende der Struktur vonnöten sein. Also für deine erste Struktur: [c] typedef struct { uint64_t d; int32_t b; bool c; uint8_t a; } ts_test; [/c] (bool ist normalerweise ein 8-Bit-Typ, aber da das nicht immer so sein muss, noch oberhalb von uint8
-
Thread
Umfrage: welche IR-Protokolle nutzt ihr mit IRMP?
habe nach wie vor nur /eine/ Funktion die ich aus dem Timer-Interrupt aufrufen muß und das API zur Abfrage ist auch immer noch das gleiche. Und wieder ist das superpraktisch. Und IMHO viel besser als jetzt zwei handoptimierte Protokolldecoder einzeln zu programmieren, einzeln in den Timer-Interrupt
Vorteil von IRMP/IRSND ist, dass der auf mehreren Mikrocontrollerfamilien laufende Code hier auf µC.net zum Download bereitsteht. Dagegen stehen MOBYs und c-haters "Lösungen" in den Sternen - wer lange Arme hat, mag danach greifen.
-
Thread
std:atomic auf STM32
IRQ. Du kannst aber auch ein SeqLock mit LDREX/STREX benutzen für RMW-Folgen. Für Typen einzelne load / store für DT <= 32 Bit sind keine besondere Maßnahmen erforderlich.
beheben. Ich müsste es sonst so > machen, dass ich im interrupt einen Puffer schreibe und beim abfragen > eben alle interrupts kurzzeitig deaktiviere, was unschön wäre. Wie schon gesagt: das Lesen oder Schreiben von 32-Bit Typen ist atomar, auf single-core ist auch keine Laufzeit-Memory-Barrier
-
Thread
EEprom Schreiben und Lesen
die Start- und die Ende-Adresse des EEPROMs, damit du erkennen kannst, wann das EEPROM voll ist. In C übernimmt der Compiler das Aufaddieren der Adresse durch das Pointer-Inkrementieren automatisch, also wenn du 8-Bit-Werte speicherst, wird die Adresse immer um 1 Byte erhöht, bei 16-Bit-Werten um 2 Byte
doch mit Words, da muss ich doch normalerweise 2 addieren!?" EE_ADR ist ein Pointer auf einen 16Bit Wert, also auf 2 Bytes. Wenn du in C den Pointer um 1 erhöhst zeigt er auf den nächsten 16Bit Wert. Bei einem byteorientierten System wie dem AVR zeigt der Pointer also jetzt auf die Adresse die 2
-
Thread
Warum Keil (oder andere unfreie Compiler) statt SDCC?
Nop schrieb im Beitrag #7186290: > Das liegt an Deinen bekanntermaßen dürftigen C-Kenntnissen - nicht am > Compiler. Und du meinst, ein Compiler darf meine Kenntnisse über irgend etwas abfragen und wenn es ihm nicht paßt, mir einfach mein Geschriebenes wegstreichen? Nö, sowas
im Beitrag #7186318: > Und du meinst, ein Compiler darf meine Kenntnisse über irgend etwas > abfragen und wenn es ihm nicht paßt, mir einfach mein Geschriebenes > wegstreichen? Ein C-Compiler darf (nicht: muß!) Dinge unter der as-if-Regel streichen, wie das im C-Standard vorgesehen ist. Wenn Du
-
Thread
Programm für Testgerät
dir das 'Kabel' als nicht existent vor. Dann bleibt von deiner Aufgabenstellung übrig: An einem µC sind 10 LED angeschlossen, die auf Tastendruck aufleuchten sollen. Bis auf den Teil mit dem einzelnen Tastendruck, ist das so ziemlich die 2.te oder 3.te Einsteigerübung. Gleich nach "eine LED soll
Portpin auf 0 oder 1 zu setzen, je nach Umgebungsbedingen, das ist nun mal das kleine Ein mal Eins der µC-Programmierung.)
-
Thread
DS18b20 Reset geht nicht
damit sagen? PA0 ist ein #define aus einer Header Datei. Du kannst nicht PA0 (was immer 0 ist) abfragen sondern das Bit 0 (=PA0) aus dem PINA Register. Das ist dein Fehler.
Und fang als erstes damit an, die eine Funktion zu machen, die ein einzelnes Byte ausgibt. Das ist doch grausam, wenn du da jedesmal immer wieder den gleichen Ausgabecode in jeder einzelnen Funktion hast. Eine Stringausgabe ist dann ganz simpel [C] void lcd_string(
-
Thread
STM32 UART buffer rx
dazwischen gekommen ist? Mit sowas muß man doch bei einer seriellen Strippe zwischen dem PC und deinem µC auch rechnen. Normalerweise schreibt man sich einen Treiber für den UART, den man abfragen kann, ob er denn Empfangsdaten hat und der die empfangenen dann zeichenweise herausgibt. Dann ist es für
Mathias G. schrieb im Beitrag #6331322: Ganz schön verquer. Man braucht kein Array, wenn man nur einzelne Zeichen per HAL liest. Es gibt einen Adressoperator [c] #define BUFFER_SIZE 10 uint8_t empfangen[BUFFER_SIZE]; void USART1_IRQHandler(void) { char rx; HAL_UART_IRQHandler(&huart1);
-
Thread
LED Lauflicht mit Fader Effeckt
Hätte noch ne Software-PWM, 12-Kanal, 8 bit die ähnlich der 2. Methode in dem vorhin genannten Artikel konstruiert ist. (In C, für PIC18F2550). Läuft bei 200 Hz, ca 10% Prozessorlast.
Das Flackern liegt vermutlich an der Geschwindigkeit. Der µC läuft bei mir mit 8 MHz, kontrollier mal deine FuseBits.
-
Thread
Pullup aktivieren in AVR-Assembler
aber ginge das mit Abfrage des bisherigen Status auch kürzer? Oder auch: kann man einzelne Bits da draussen ausserhalb von R16-R31 auch direkt setzen? lds r16,PORTB_PIN2CTRL sbr r16,8 ;Bit 3 für Pullup enable setzen sts
Noch ein Tipp zur Schreibweise, einiges kann eindeutiger schreiben: [c]; alt sbr r16,8 ;Bit 3 für Pullup enable setzen ; besser sbr r16,(1<<3) ;Bit 3 für Pullup enable setzen [/c] Auch verwende ich sehr viele Macros, die die Arbeit im Code erledigen. Auch kann
-
Thread
Fragen zum US Sensor JSN-SR20-Y1
nachbauen... Du könntest auch entsprechend viele Module sektorweise aufbauen und sie sequentiell abfragen. Dazu müsste der Öffnungswinkel bzw. die Richtcharakteristik bekannt sein.
zuverlässige Positionierung möglich ist. Ziel: max. 10 cm Abweichung der Position Dafür sollten die einzelnen Entfernungsmessungen mind. 2 cm genau sein. Rahul D. schrieb im Beitrag #7691723: > Bewertet jemand, der wenig Ahnung hat... Stimmt. Deshalb möchte ich bei den einzelnen Modulen auf beschaffbare
-
Thread
Arduino mega2560
---------------- avrdude: Version 6.0.1, compiled on Apr 3 2014 at 23:12:16 Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/ Copyright (c) 2007-2009 Joerg Wunsch System wide configuration file is "C:\Programme\Arduino/hardware/tools/avr/etc/avrdude.conf"
Ulfuse:w:0xFF:m avrdude: Version 6.0.1, compiled on Apr 3 2014 at 23:12:16 Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/ Copyright (c) 2007-2009 Joerg Wunsch System wide configuration file is "C:\Dokumente und Einstellungen\peter\Eigene Dateien\Downloads
-
Thread
Signal mit Timer erzeugen
Ich glaub, Assembler erfordert i.a. mehr Intellenz als C...
Das {} geht auch nur bei der Array-Deklaration. Im Programm selbst kannst du nur auf die einzelnen Feldeinträge zugreifen. Vielleicht solltest du dir eine andere Lösung überlegen (Bits in einem Byte auswerten). Dann bräuchte man nur eine Ausgabe-Routine, der man einen ein Byte übergibt, das
-
Thread
Schieberegister ersetzen
ich extrem überfordert und weiß oft nicht, was ist Ernst und was ist Trollerei!!! Warum kann ein uC mit 3 Portleitungen (Daten rein, Daten raus, 1MHz_Clock) das nicht bit für Bit rübertakten, warum externe Schieberegister ?
8 Bit auf einmal verarbeiten als einzelne Bits. Er müsste dann einen RAM-Speicher für mindestens 5000 Bytes haben, wobei nur 1/8 der Bits genutzt werden. Bei den größeren µCs gibt es das, bei den kleinen
-
Thread
Handycamera MCA-25 ansteuern - ip webcam mit mega32
11,0592 MHz Quarz und einen Mega32. Dafür muß allerdings bei der Umschaltung auf 460800 Baud das U2X-Bit im UCSRA-Register gesetzt werden und die Formel für die Baudratenberechnug ändert sich. Hier ein Auszug aus meiner mca25.c: void mca25_set_460800baud(){ unsigned long i = 0; while (i < 60000
main.c:32: warning: return type of 'main' is not `int' main.c: In function `main': main.c:33: warning: implicit declaration of function `portinit' main.c:37: warning: implicit declaration of function `servo_pin_high
-
Thread
Linux wird nicht wirklich akzeptiert, woran liegt das ?
[c]c[/c] schrieb im Beitrag #6394602: > Ich habe Linux sofort benutzt ohne wochenlang herumzuprobieren Was heißt "benutzt"? Neue Software installiert? Neue Hardware zum laufen gebracht?
können und mittlerweile geht auch bei power shell c&p
-
Thread
Schleife mit ATmega16 in C
den Code geschaut. Man, du hast dich da aber ordentlich verfranst. Ein Buch ueber Grundlagen der C-Programmierung waere da mal angebracht. Grundsaetzlich: Teile dir die Arbeit auf. Das was du vorhast, ist zunaechst mal viel zu schwierig. Also muss man sich mal was einfacheres suchen. Eine einzelne
Wirklichkeit passiert da ganz was anderes. Wie gesagt: Grundlagenliteratur ueber Programmieren in C kaufen und lesen.
-
Thread
Keil Monitor v1.4 / 80C537
etlichen Jahren in meiner Ausbildung als Elektroniker einen Mikrocontroller entwickelt mit einem 80C537 Mikroprozessor. Der Mikrocontroller hat folgenden Monitor im Boot Rom : MONITOR v1.4 KEIL ELEKTRONIK So weit funktioniert das alte Teil auch noch. Ich kann per HyperTerminal einzelne I/O s abfragen und setzen. Nun mein eigentliches Problem ist das downloaden von „C Code“ (im HEX Format). Ich benutzte früher ein selbst programmiertes Tool von einem Lehrer was ich nicht mehr habe. Damit
-
Thread
Atmega32 mit Assembler und LED
Register auf einmal einlesen oder mit einem neuen Wert laden. Es gibt auch Befehle, mit denen man einzelne Bits abfragen und ändern kann: Der Befehl sbic ("skip if bit cleared") überspringt den darauffolgenden Befehl, wenn das angegebene Bit 0 (low) ist. sbis ("skip if bit set") bewirkt das Gleiche, wenn das Bit 1 (high) ist. Mit cbi ("clear bit") wird das angegebene Bit auf 0 gesetzt. sbi ("set bit") bewirkt das Gegenteil.
-
Thread
Anfängerfrage Atmel ausgelesenes .hex in .asm umwandeln
Folgende Lockbits sind gesetzt: > LB Further Programming an Verification disabled > [...] Dieses Bit bekommst Du nur gelöscht, wenn Du den gesamten Chip löschst. Einzeln lässt es sich durch keine Programmierart rücksetzen. Zu deutsch: Vergiss den Flash-Dump. Du bekommst keinen, der den tatsächlichen
des Lockbits), kannst Du auch nichts wieder draufspielen. Beginnen die Daten im .hex denn mit 0c94? Ein typischer Hex-File-Beginn für einen AVR dieser Größe sieht z.B. so aus: [pre] :100000000C9406030C9430030C9430030C94F50408 :100010000C9430030C9430030C9430030C94300394 [/pre] Die ersten 0c94
-
Thread
RS485 mit LoS detection und PoB möglich und sinnvoll?
dann ja komplett via dem Bus versorgen könnte, wenn sie nur ein ganz einfacher Sensor oder ein einzelner Taster mit LED sind.
. Bauform B. schrieb im Beitrag #7094901: > Warum will man mit so einem "Bus" noch zyklisch abfragen? Man muss ja > nicht so harte Worte wie "Multi-Master" verwenden, aber das Ding ist > kollisions*frei*, das sollte man nutzen. Die Zyklische Abfrage ist auch ein Weg, damit der Master regelmäßig
-
Thread
6502 / 6510 (C64) Emulator (momentan noch PC, später Controller) - Einige Fragen
Videoausgabe so hinzubekommen, dass mehr als der Basic-Interpreter läuft muss man wohl jede Zeile einzeln berechnen. D.h. 144 Bytes aus RAM lesen, 8 Sprite-Zeilen verarbeiten mit Kollisionen und parallel 320x4-bit ausgeben. Dann funktionieren auch die ganzen Tricks bspw. mit dem Rasterinterrupt. Würde
das jetzt dann mal alles soweit fertig ist, könnte ich mir gut vorstellen auch mal andere Teile des C64 "anzusehen". Gruß Peter
-
Thread
Geschirrspüler Steuerelektronik Selbstbau-Notlösung
und welchen µC verwendest du?
Beispielen ist bei der C-Control dabei. Man sollte erst einmal mit ein paar Beispielen mit der C-Contol üben wie man was Programmiert ehe man sich gleich an das große Projekt macht. Für den Can-Bus habe ich mir bei Pollin
-
Thread
IO-link master (light)
Jede Sequenz gibt es in zwei Varianten, einmal lesend und einmal schreibend, der Unterschied ist ein Bit im CKT-Byte. Der Master sendet 2 oder 3 Bytes und das Device antwortet 2 oder 1 Byte. Das weiße OD ist das zu lesende oder zu schreibende Byte. Für die einzelnen Bits in den farbigen Bytes und die Prüfsumme
* Prüfsumme: 0 (ja, tatsächlich!) Dann wird er hochohmig und das Gerät antwortet sofort (< 10tBit): 0x32 (OD): * 5 Millisekunden (kodiert als 0x32, siehe Anhang B.1.3) 0x3c (CKS): * kein Event in der Event-Queue * Prozessdaten sind gültig * Prüfsumme: 0x3c Die beiden
-
Thread
Lidl-Multimeter PDM-300-C2 Analyse und Erweiterungen
Werte liest und per MQTT rausgibt. Funktioniert auch soweit bis auf negative Werte. Wie kann ich den 16bit signed wert in int umwandeln? Für positive Werte klappt folgendes: [c] measurement_raw = (RFin_bytes[6] << 8) | RFin_bytes[7] ; [/c]
> und per MQTT rausgibt. Funktioniert auch soweit bis auf negative Werte. > Wie kann ich den 16bit signed wert in int umwandeln? > > Für positive Werte klappt folgendes: > [c] > measurement_raw = (RFin_bytes[6] << 8) | RFin_bytes[7] ; > [/c] Das Vorzeichen erweitern, wenn das höchste Bit