-
Thread
Problem mit DCF77 Empfänger, Signal passt nicht
sollte aber kein Problem sein. Im Prinzip musst du nur einen Atmega nehmen, ein LCD an beliebige Ports anschliessen, und einen DCF-Empfänger anschliessen. Ich habe da noch einen Port zur Ausgabe des Signals auf eine LED gelegt, um die Sekundensignale zu sehen. DCF senkt ja seine Sendeleistung im Sekundentakt
gar nicht belastbar. Er kann keine LED direkt betreiben, daher habe ich das Modul direkt an einen Port des Prozessors gehängt und betreibe mit einem anderen die LED. Der Atmega 16 hat ja genügend davon. An dem Port hängt auch noch ein kleines Reed-Relais, mit dem ich das Signal auf weitere Uhren verteilen
-
Artikel
FPGA
Rückwärtspfade zwischen internen Modulen müssen daher parallel und ausdrücklich aufgebaut werden. Bei den Ports hingegen kann oft zwischen den Optionen Eingang, Ausgang und Hochohmig gewählt werden. Die darin befindliche analoge Elektronik ist dazu bidirektional aufgebaut. Die dafür benötigten Tristatebuffer
Verfikationsumgebung Verfikation beim FPGA-Design FPGA-Standards bezüglich Codierung Inferred True Dual Port RAM für Xilinx und Altera Dual Port Block RAM - Gleichzeitiges lesen und schreiben Xwave, ein Font zur Darstellung von Impulsdiagrammen LWL Broadcom AFBR-26xx DC-50Mbd codierung, Ideen zur seriellen
-
Artikel
AVR-GCC-Tutorial
durch andere Softwareroutinen (Interrupts) oder durch die Hardware verändert werden kann. Siehe auch: AVR-LibC FAQ: "How do I pass an IO port as a parameter to a function?" = Zugriff auf IO-Ports = Jeder AVR implementiert eine unterschiedliche Menge an GPIO-Registern (GPIO - General Purpose Input/Output
von einem AVR aus, der sowohl Port A als auch Port B besitzt. Sie müssen für andere AVRs (zum Beispiel ATmega8/48/88/168) entsprechend angepasst werden. Datenrichtung bestimmen. Zuerst muss die Datenrichtung der
-
Thread
Ki Hilft.wenn auch nicht immer
wieder aufzurufen, > obwohl sich der pwm Wert nicht geändert hat? Unnötig, aber kein Problem bei AVR Arduinos.
Bis zu 8 serielle Anschlüsse SoftSerial sind bei AVRs einfach. Man kann direkt 8 Bit über einen Port gleichzeitig rauspfefffern bzw. einlesen. Mit STM32 gehen sogar direkt 16 serielle Anschlüsse in Software an einem Port.
-
Thread
Schaltzustände potentialfreier Kontakte per LAN übertragen
per LAN ins Heimnetz > überträgt, so dass ich diese per Software auslesen kann. Klassiker: X-Port Wenn man nicht jedem Tor einen X-Port spendieren will, mit einem Controller kombinieren. Was auch geht: Print-Server mit seriellem Port, und den als "Terminalserver" laufen lassen. Terminalserver
krieg ich wenn es sein muss auch noch SMD aber Programmieren > würde dauern, wenn ich mich da einlesen muss In diesem Fall könnte das etwas für dich sein: https://stefanfrings.de/avr_io/index.html Eventuell überlässt dir der Chef von der Firma chip45 das Layout von einer Platine, oder er hat
-
Thread
UART und I2C Konflikt mit STM32duino STM32G070
und auch bedingte Kompilierung einzufügen und mehr Textausgaben und ein C-Buch, also suche welche Ports I2C und UART nutzen und stelle fest wer wann was verwendet und wer was verwenden kann! nur als Anregung zum selberlernen [c] #if defined(__AVR_ATmega1284P__) // --------------- serial in -
Joachim B. schrieb im Beitrag #8041163: > nur als Anregung zum selberlernen Ein STM32 ist kein AVR! Dein AVR hat keine alternative Portpins.
-
Thread
CH32V003 und Arduino
aus lauter Jux und Dollerei habe ich jetzt mein my_printf und v003colpos auf avr losgelassen und prompt funktioniert es nicht, weil ich type int verwende (und die auch als 32-bit behandle), die aber auf avr nur 16 bit lang sind. eine explizite angabe von int32_t für alle bisher int angaben macht my_printf und v003colpos auch mit avr kompatibel.
-
Thread
Programmieren mit KI
folgender Anweisung: Könntest du mir bitte den Micropython-Code auch als reines C-Modul für einen AVR Mega32A generieren? Die Quartz-Frequenz beträgt 16MHz. Das DCF-Signal liegt an Port A.0 an. Den Compileraufruf hab ich ihn auch generieren lassen. Sieht so aus: [code] avr-gcc \ -mmcu=atmega32
mit der KI erreiche wenn ich besser mit dem Teil umgehen kann. Werde mal es mit alten Pics und AVR versuchen da ich noch die Programmiergeräte habe. MfG ein 81 Jähriger knacker
-
Thread
Handbetriebenen Drehgeber ohne Timer auswerten
Nick schrieb im Beitrag #7982575: > frägt immer wieder 2 ports ab. Und das ist nicht Warten. Es wird etwas gemacht und das kostet CPU Zeit. Viel davon. Zu viel.
Mi N. schrieb im Beitrag #7987245: > die Signale am Drehgeber direkt (blau) und am Port-Pin (gelb) was passiert denn da bei µs 400 bzw. 0?
-
Thread
Artnet-DMX-Node mit 2× DMX Out + 1× DMX In, komplett galvanisch getrennt - gibt es ähnliche Projekte
getrennt aufgebaut sein. 1. Funktionales Ziel: - ArtNet per Ethernet empfangen - 1 DMX-Universum einlesen - 2 DMX-Universen ausgeben - Alle drei DMX-Ports vollständig galvanisch voneinander getrennt - Robuste Stromversorgung für 9–24 V - RDM-fähig 2. Technische Umsetzung - WT32-ETH01 als Logik
Jahren basierend auf diesen beiden Projekten gebaut. https://shop.ulrichradig.de/Light-Control-DMX/AVR-Node-Bausatz.html http://www.digital-enlightenment.de/usbdmx.htm Sehr cool, dass es die Seiten dazu auch nach Ewigkeiten noch gibt. Meine neuste Version basiert auch auf einem ESP32, aber ohne galvanische
-
Thread
LED Zuleitungen reduzieren.
sind das eigentlich und wie möchte er die programmieren wenn er da noch keine großen Kenntnisse hat? AVR-Controller und Arduino?
das eigentlich und wie möchte er die programmieren wenn > er da noch keine großen Kenntnisse hat? AVR-Controller und Arduino? Ja genau. Wie für die WS2812 möchte ich die Prototypen auf einem Arduino programmieren. Für die WS2812 habe ich das auch geschafft ^^
-
Thread
Arduino Uno R4: Besonderheiten und Abhilfen
integer types" aus der Datei stdint.h verwenden. Die sind in C standardisiert. https://www.nongnu.org/avr-libc/user-manual/group__avr__stdint.html
12000 , Ende); if (delayCounter == 45) { serialPort1.Write(teil1); } if (delayCounter == 22) { serialPort1.Write(teil2); } if (delayCounter == 1) { serialPort1
-
Thread
Commodore C128
Maschinensprache waren auf dem C64 (6502). > Das hat mir alles mehr Spaß gemacht als mit einen PC oder mit den AVR´s. > Am dem Rechner konnte mann noch rumbasteln. Da war noch irgendie alles > "offen" Was ist an einem AVR nicht offen? Was kann man da nicht rumbasteln? Klar, ein AVR ist ein kleiner Mikrocontroller
ich benutze auch die AVR´s aber der C64 und der 128 macht einfach mehr Spaß.
-
Thread
"Radio-Buttons" in TTL/CMOS-Logik
gleichzeitig gedrückt werden? Naja, die Anweisung für den Controller wäre: 10 Wenn mehr als ein Port "H" ist, setze alle Ports auf Pull-down Eingang. 20 Ist nur ein Port auf "H" setze ihn auf "H" Ausgang. 30 GOTO 10 Gruß Jobst
20max=5.5%20V&supply%20voltage%20-%20min=4.5%20V braucht noch den Digitalkram zum setzen und einlesen nach Neustart
-
Thread
Fritz!Box 7490 refurbished von Pollin für unter 30€ kaufen?
betreibst Du bitte an den USB-Buchsen einer Fritzbox? Tassenwärmer? z.B. eine USB2 2.5" Platte, einen AVR Webserver, aber sag mal ist das nicht egal? Die Fritzbox wurde mit 2 USB2 Ports angeboten ergo sollte man wenigstens bis 2x 0,5A erwarten dürfen und damit ist eine Auslieferung mit 1A Netzteil sowie
Dir ist schon bekannt, das ein USB-Port mit 5V läuft, das Netzteil aber 12V liefert? Wenn aus dem Netzteil 12V 1A (also 12W) kommen und 2 USB-Ports jeweils 5V 0,5A (jeweils 2,5, zusammen also 5W) verbrauchen, ist selbst mit durchschnittlichem
-
Thread
Arduino: page-write in I2C eeprom verliert sporadisch ein Byte
Interrupt-Handlers sein, ist bei Arduino allerdings nicht vorgesehen. https://github.com/arduino/ArduinoCore-avr/blob/master/cores/arduino/HardwareSerial_private.h Du müsstest dazu eine eigene Klasse für den seriellen Port implementieren. Da das EEprom die Pages ja deutlich schneller schreibt, als dein serieller
Interrupt-Handlers sein, > ist bei Arduino allerdings nicht vorgesehen. > https://github.com/arduino/ArduinoCore-avr/blob/master/cores/arduino/HardwareSerial_private.h > Du müsstest dazu eine eigene Klasse für den seriellen Port > implementieren. Die SW-Flusskontrolle hatte ich wie folgt implementiert: [c]
-
Artikel
Temperatursensor
Schaltplan für einen elektronischen Thermometer mit diesem IC findet sich hier. Eine Library für den AVR: Vorteile: bereits kalibriert kein A/D-Wandler nötig da I2C ein Bus ist, kann man mehrere DS1621 und andere I2C-Bausteine zusammen anschließen und braucht dafür trotzdem nur zwei I/O-Ports. Messbereich
Links: Zweikanaliger DS18B20 auf 0-10V Messumformer Ein oder mehrere DS18B20 DS18S20 über Romcode einlesen. AVR-Assembler Ansteuern eines DS18S20 in C (PIC) Datenblatt DS18S20 Datenblatt DS18B20 Vergleich DS18B20 DS18S20 Code zur Ansteuerung (ASM ATTiny12) Code zur Ansteuerung (AVR-GCC) Fehlervermeidung
-
Thread
Neuer ReAVR in Aussicht
nur die Headerzeilen und die Spalten mit Adressen und Opcodes wegwerfen. Gerade probiert: [pre] avr-objdump -d myfile.hex --disassemble-zeroes -b ihex -m avr5 -j .sec1 | sed -e '1,7d' -e 's/^..................//'> foo.s avr-as -mavr5 -o foo.o foo.s avr-ld -o foo.elf foo.o avr-objcopy -O ihex foo.elf
von Ghidra habe ich mir nicht angesehen. Ich hatte es nur mal kurz auf mein aktuelles (dienstliches) AVR-Projekt losgelassen und dabei gesehen, dass sie zwar IO-Ports und Interruptvektoren benennen, die aber für meinen ATtiny204 natürlich nicht korrekt sind. Ich wurde auch erst vor kurzem drauf aufmerksam
-
Thread
RC-Signale einlesen - so einigermassen bulletproof?
Je nachdem, wieviele Ports der AVR hat, hast du auch mehrere Gruppen von PCInts. Ausserdem gibts es noch INT0 und manchmal auch INT1.
wenigsten hilfreiche Beitrag... Matthias S. schrieb im Beitrag #7865450: > Je nachdem, wieviele Ports der AVR hat, hast du auch mehrere Gruppen von > PCInts. Ausserdem gibts es noch INT0 und manchmal auch INT1. Wie geschrieben, dieser ATtiny 861 hat zwar zwei Gruppen PCINT, die man freigeben muss
-
Thread
Fehlermeldung: near initialization for
hinzugelinkt. 2) Dann wird der Code so angepasst, dass er auch auf einem PC laufen würde (keine Ports einlesen, keine ISRs, etc). Ports schreiben (wie zum Beispiel Wait-States setzen oder LED blinken) können drin bleiben, haben aber außer dem Setzen des SFRs keinen Effekt. Der Code wird mit -DAVRTEST_H
wenn der Code einfach genug ist geht auch C. Für init-Sections siehe: https://avrdudes.github.io/avr-libc/avr-libc-user-manual/mem_sections.html#sec_dot_init
-
Thread
Frage: 328p und Timer2/GPIO in assembler
Nächste überlegung war PortD einlesen, bit7 togglen, PortD wieder ausgeben. Am Pin D7 hängt ledidglich nur der SALEAE Clone. Gruß
Andreas schrieb im Beitrag #7859889: > Nächste überlegung war PortD einlesen, bit7 togglen, PortD wieder Warum nicht einfach eine (toggle)Maske in PINB rein schreiben?
-
Thread
Kreuzknüppel Verständnisfrage
sind. In analogen PC-Joysticks wurden die damals auch oft verwendet, weil sie billiger sind. Das Einlesen passierte beim Joystick-Port durch Aufladen eines C mit folgender Entladung über den Widerstand des Potis, wobei die Entladedauer gemessen wurde. Anschließend wurde dieser Wert auf sehr einfache Weise
Tipp: eine Division durch eine Konstante lässt sich leicht in eine Multiplikation umformen. Für die AVR und eine Multiplikation jenseits der generischen 8 Bit gibt es die Appnote AVR201. > Hab also noch viel Zeit :) Auf C umsteigen wäre da doch eine nette Aufgabe.
-
Thread
Arduino: digitalRead in Interrupt ist unzuverlässig
> aber noch ein OS dazwischen. Da wird alles über 1kHz zur Glückssache... Auf einem einfachen AVR-Arduino läuft keinerlei OS, bestenfalls ein 1kHz Timer.
loop() 1 ausgegeben. Deswegen habe ich auf die Idee von Falk eingesprungen: CHANGE Trigger über Port und Masking: [code] activateInterruptOnPortA() { cli(); // Disable interrupts while configuring PCICR |= (1 << PCIE0); // Enable PCINT for PORTA PCMSK0 |= (1 << PCINT0) | (1 << PCINT2
-
Thread
Schneller 8bit Treiber gesucht
und mir gehen die pins aus. Als Lösung wäre ein 8bit io ic mit open collector und gleichzeitigen einlesen. Das Problem ist nicht so was zu finden, sonder die Geschwindigkeit. I2c ist zulangsam und spi finde ich kein ic. Ich muss senden und empfangen in unter 0,2us. Also 5MHz rein und raus.
im Beitrag #7825462: > Als Lösung wäre ein 8bit io ic mit open collector und gleichzeitigen > einlesen. Wie groß ist dabei jeweils die kapazitive Last an den Ausgängen? Müssen die Eingänge über Schmitt-Trigger verfügen?
-
Thread
gcc auf dem pc ausführen
noch nie von der Existenz von Cross-Compilern gehört hast? Und wo entwickelst du denn dann für den AVR, wenn nicht am PC? > am liebsten mit c# AFAIK gibt es in der gcc (GNU Compiler *Collection*) keinen C# Compiler für das AVR backend. Insofern geht C# auf AVR erstmal nicht. > Wenn es in c#
wr_test, 8); } //c#: void serial_tx(u8[] array, u8 ct) { serialPort1.Write(array, 0, ct); } //avr void serial_tx(u8* array, u8 ct) { // serialPort1.Write(array, 0, ct); for (u8 i = 0; i < ct; i++) {
-
Thread
ATtiny12: Assembler in Atmel Studio 7
Richtung STM32 – das beginnt schon mit den Portregistern und mit der Innovation, wie man die I/Os der Ports einstellen und unterschiedlich ansprechen kann, über Virtual Ports etc. Ein AVR128DB28 sieht z.B. von außen genauso wie ein ATMEGA328P aus, ist aber – obwohl die CPU an sich fast identisch arbeitet
ist, ohne daß man genau weiß, was der TE überhaupt vor hat. > > Aber eine Sache dazu: Diese neue AVR-Architektur halte ich für eine > Totgeburt. Wenn ich da vieles neu oder umlernen müsste, dann wechsle ich > garantiert nicht von AVR-alt auf AVR-neu, sondern von AVR auf ARM Cortex > M0 oder M3
-
Thread
Studio 7 eep File erzeugen beim Compilieren
#7806615: > 1. Wo stellt man bei S7 ein, dass ein eep-File erzeugt wird? Minimal: [c] #include <avr/io.h> #include <avr/eeprom.h> uint8_t EEMEM eeBT_PortCfg = 0x01; int main(void){ while(1) {} } [/c] Schau dir in ../project/xyz/Debug/ das Makefile an. Dort sollte sowas zu finden sein: ..\toolchain\avr8\avr-gcc-14.1.0-...\bin\avr-objcopy.exe" -j .eeprom --set-section-flags=.eeprom=alloc,load --change-section-lma .eeprom=0 --no-change-warnings -O ihex "Test-mega328-0.elf" "Test-mega328-
-
Thread
Sammelbestellung AR488 kompatibler USB-GPIB Adapter. Interesse?
Programmieren keine Hardware...das geht auch über USB. Ich hatte auch einen gd32f350 am Schirm. Für den Port hatte ich aber zu wenig Zeit. Zusätzlich war da dann noch das Fiasko mit der Verfügbarkeit. Eines ESP32 Port gab's schon... Ein paar defines zu ändern um den internen USB Port vom S2 zu nutzen erschien
Aktuell ist das ja ein überschaubares Arduino Projekt mit angenehmer Code Qualität. Es lebt vom Port vom AVR auf die ESP als Arduino Projekt weiter, wie viele Projekte. Als reines ESP Projekt hätte es direkt auf FreeRTOS laufen dürfen, ein nachträglicher Port ist aber nicht ohne. Aber ein WLAN in
-
Thread
Feedback zu meiner Schaltung
ist, können die beiden Pegelwandler auch entfallen. Q1 und Q2 können dann auch weg. Das kann der AVR auch selber. Gruß Jobst
Stromaufnahme des BMP390 könntest Du überlegen, IC5 alternativ über einen Jumper mit einem Portpin des AVR zu versorgen. Dann wird der ganze Zweig abschaltbar und geht bei Unterspannung (Brown out) gleich mit aus. Evtl. einen kleinen R in Reihe, damit C17 beim einschalten nicht den AVR zurücksetzt. Du könntest
-
Thread
Mikrocontroller Einstieg
Zugriff, weil die ARMs anders als AVR keine direkten atomischen IO-Zugriffe können. Immerhin muss das nur 1x pro Port-Register erfolgen, auch wenn man mehrere (bis 16) Pins auf einmal atomisch setzt - nur ein zusätzlicher Takt für jeden
Moin, Die rote AVR Bord von Gregor gefällt mir eigentlich. Gerhard
-
Thread
touchpad ili9341 will nicht wie es soll
schrieb im Beitrag #7787059: > Hier mal ein Design-Vorschlag Ich versuche ja, einheitlich mit dem avr zu programmieren. Bei mir sieht das zur Zeit so aus: [c] #define GLUE(a, b) a##b #define GPIO(x) GLUE(GPIO,x) #define reg_dir_out(port,pin) \ {GPIO(port)->MODER&=~(0b11<<(pin*2)); \ GPIO(port)->MODER|= (0b01<<(pin*2)); \ GPIO(port)->PUPDR&=~(0b11<<(pin*2)); \ GPIO(port)->OTYPER&=~(1<<pin); \ GPIO(port)->OSPEEDR&=~(0b11<<pin);} #define reg_dir_in(port,pin,pullup) \ {/* 0b00no 0b01pu 0b10pd */ \ GPIO(port)->MODER&=
-
Thread
Mikrocontroller mit SMB2/3 und USB-HID: Challenger+ RP2350 WiFi6/BLE5 ?
File nicht zu gross ist, dann pack auf den PC einen TFTP-Server drauf. Den kriegst du sogar mit einem AVR bedient.
raspberry-pi-zero-wh?c=319 245 Stueck sofort lieferbar. Und ja, es laeuft jetzt gerade an einem USB-Port an einem PC.
-
Thread
Einfache CPU, einfacher Rechner, nur zum Lernen, Erfahrung?
#7753778: > Die > Haupt-sache es ist einfach. Wenn es einfach sein soll, nimm einen 8051 oder AVR. Für beides gibt es Simulatoren und Debugger. Mit einem Simulator kannst Du Assembler oder C-Programme auf dem PC laufen lassen und Die jedes Register und Ports anschauen. Mit einem Debugger kannst
Informationen findest Du auf Seite 34: [code] PAD .EQU $1A80 ; DATA REGISTER OF PORT A PADD .EQU $1A81 ; DATA DIRECTION REGISTER OF PORT A PBD .EQU $1A82 ; DATA REGISTER OF PORT B PBDD .EQU $1A83 ; DATA DIRECTION REGISTER OF PORT B [/code]
-
Thread
Viele Drucktaster und LEDs ansteuern
Beitrag #7752641: > abgesehen vom genannten Kurzschluss bei Bedienung beider > Tasten am EINEM Port für rot/grün LED braucht es keine Taster, Taster gehören an anderen Ports!
an anderen Ports! Warum eigentlich? Wenn die LED regelmäßig für z.B. 1ms ausgeschaltet wird, um den am gleichen Port angeschlossenen Taster zu lesen, stört das niemanden. Martin S. schrieb im Beitrag #7752930:
-
Thread
Kippschalter an zwei AVRs gleichzeitig anschließen
Dioden am Schalter verbinden. Komme ich mit den Dioden ausreichend auf Low? Das Datenblatt des AVR sagt Input Low Voltage max. 0,2V.
Udo S. schrieb im Beitrag #7750513: > Wenn du den Port jetzt auf Ausgang schaltest und auf High legst, fließt > genauso der Kurzschlussstrom über die Diode zum Schalter. Dann also doch mit Serienwiderstand zum Port-Pin ...
-
Thread
Probleme mit High- und Low-Eingängen Arduino Nano
uint8_t timer = digitalPinToTimer(pin); uint8_t bit = digitalPinToBitMask(pin); uint8_t port = digitalPinToPort(pin); volatile uint8_t *out; if (port == NOT_A_PIN) return; // If the pin that support PWM output, we need to turn it off // before doing a digital write. if (timer
#7728103: > Fremdwort für Arduino-Fans. 1: Da irrst du! 2: Die Arduino Welt besteht nicht nur aus AVR und SAM Lothar M. schrieb im Beitrag #7728034: > versuche mal in der aktuellen Arduino IDE-Version 2.3.2 den > Proxy-Port 80 zu setzen. Dann bist du das: https://github.com/arduino/arduino-ide
-
Thread
externes RAM per ASM ansteuern
*** Read: sbi PortE, 1 ; ALE auf high clr temp out PortC, temp ; Ausgabe High Adressen ldi temp, 0x0F out PortA, temp ; Ausgabe Low Adressen cbi PortE, 1 ; ALE auf low, Adresse wird
Jens G. schrieb im Beitrag #7716094: > Weil sowohl PortA als auch IO des RAM gleichzeitig kurz "outputen" Das kann eigentlich nicht sein, da ich DDRA auf Eingang stelle, bevor ich die Daten einlese.
-
Thread
16 UARTs für MIDI
Seriennummer auch auf den "Pfad" matchen, über den das Device angeschlossen ist, also z.B. Hub1 Port 3 -> Hub2 Port 2 -> CH348 ==> /dev/midi10
mal einen HC08 mit > 8 UART-Funktionen bestückt: Einfach mit 5-facher Rate per Interrupt > einen Port mit 8 Bit absampeln Naja. Es sind hier 32kBaud, macht bei x5 immerhin 150kHz bzw. ~6us Periodendauer. Da kommt auch der nicht ganz so lahme AVR schon ins Schwitzen, zumal auch noch ein "paar" andere