-
Thread
unions structs bildfields
Als Generator verwende ich https://github.com/ttsiodras/asn1scc von der ESA aber k.A. ob der für AVR geeignet ist, habe den bisher nur auf Cortex-A, NIOS und X86-64 benutzt. Eine Alternative zu ASN.1 sind z.B. Google Protocol Buffer
36bit-Integer kennt müsste Java jede einzelne "short" oder "int" Operation aufwendig emulieren. Selbst auf AMD64 passt Java nicht so richtig, da Array-Größen & Indices 32bit sind. C und C++ haben da hingegen keine Probleme, da wird size_t einfach als 64bit definiert. Allerdings sind selbst diese Freiheiten nicht
-
Thread
Tastatur für Mikrocontroller
Ich hätte gerne eine Tastatur die ich an verschiedene Mikrocontrollerprojekte (AVR, STM32, PIC) anschließen kann. Eine PS/2 Tastatur auslesen ist nicht das Problem, das klappt gut und auch eine USB-Tastatur an Cortex-M4 klappt auch. Ich hätte gerne eine Tastatur, die ich bspw
. Deshalb ja die Frage ob es evtl. irgendwo eine Tastatur gibt mit bspw. 8x8 Tastaturmatrix für 64 Tasten. Wie ich dann die Tasten beschrifte ist dann ja auch egal.
-
Thread
F_CPU umschalten, gibt es etwas zu beachten?
Bauform B. schrieb im Beitrag #6382151: > Oder ein STM32G031J6M. Der hat einen internen RC-Oszillator... Ja, wenn STM32G031J6M mit AVR JTAGICE XPII und AVR Studio arbeiten könnte, so würde ich auch so machen. Aber vor dem ich Controllerfamilie wechsele,
ich aus dem Vorhandenen alles mögliche im Sinn Lehre herausschöpfen. Deshalb bleibe ich zuerst bei AVR. Bauform B. schrieb im Beitrag #6382151: > 20MHz und 18.432MHz sind ja in > Wirklichkeit 19.2MHz ±4.17%. Man erzeugt also nominelle 38.4MHz > STM32-CPU-Takt, teilt den durch 2 für exaktes Tastverhältnis
-
Thread
gas as a68 m68k - was nimmt man ?
nicht auf der 68k-Familie läuft, dann wird der (g)as nicht 68k sprechen... Hier auf meinem x86_64 Linux gibt es derzeit: as avr-as powerpc-eabivle-as x86_64-w64-mingw32-as arm-none-eabi-as Was meinst Du, wie lustig das Leben wäre, würden die alle nur as heißen... So, und jetzt
machen kann und Eingaben empfangen kann, wäre es ganz nützlich. Parallel würde ich gerne den STM32 Code testen. Der könnte natürlich in dem Nucleo Board laufen. Oder gibt's evtl. für die STM32 ARchitektur auch einen Simulator? Übrigens hat ja der STM32F4 eine eigene FPU. Da wäre mein Floating Point
-
Thread
Externe Libs richtig einbinden in C / c++
Software auf einer Windows Maschine compiliere und führe die Software aus auf einem Raspi ( Version 4 ist 64Bit - glaube drei auch) dessen OS Ubuntu 20.04 amd64 ist. Falls dich das Image Interessiert: https://ubuntu.com/download/raspberry-pi Bin mir selber unsicher aber Corsscompilen wäre wenn ich versuchen wollen würde auf einer 64Bit maschine eine 32 Bit version zu compilieren, oder sogar noch extremer, wenn ich versuche auf windows für Linux zu compilieren oder vertue ich mich da? EDIT: Habe es nochmal nachgelesen. Nein ich
-
Thread
analoge Joysticks - USB Gamepads
Computer. Meine Kompetenz liegt mehr bei der Software Entwicklung. ------------------ Die C64 und Ataris haben digitale Joysticks, da ist die Welt sehr einfach. Nun gibt es aber auch alte Computer mit analogen Joysticks - alte PC mit 15 poligen Gameport - Dragon 32/64 (64 analog Werte für
Typen sind getestet: - X9C104 - DS1803-100 - DS1804-100 Es funktioniert tadellos am Dragon-32, Dragon-64 und alle Arten Tandy Color Computer. Der alte PC Gameport kann leider aufgrund fehlender Hardware nicht getestet werden. Doku: https://oe7twj.at/index.php?title=AnalogJOY
-
Thread
Wie simple Spracherkennung machen?
Tornister mit Spracherkennung für die Ziffern 0-9, 'Auflegen' und 'Wählen' hatte das mit einem 25Mhz TMS32C025 DSP, 32kB ROM, 32kB RAM und etwas schnellem Dualport RAM zur Kommunikation mit der Ablaufsteuerung gelöst. Die ROMs sind allerdings schon lange bei den Engelein und den Rest der Hardware habe ich
Also ich arbeite meistens mit dem stm32f4.. Und gelegentlich auch noch mit einem 8052 & avr. Der TO Arbeitet anscheinend mit den esp8266, an diese habe ich mich noch nicht getraut. Wie auch immer ich habe hier von keine Ahnung und
-
Thread
AVR als SPI Slave-Peripherie
#6366341: > Schließlich macht das Microchip > schon mit ihren PICs... Welche denn? Mit den PIC32 (DMA) könnte das klappen. Es gibt TFTs mit SPI am AVR: https://www.lcd-module.de/produkte/ediptft.html Da muß der Master Wartezeiten von 100µs bzw. 6µs einhalten. Damit ich keine Zeit vertrödeln
Stm32 oder stm8 haben bessere spi slave Voraussetzungen ....
-
Thread
Arduino Mega 2560 Pro Mini - Arduino des Grauens!
IDE verwendet wird. > Was ist mit dem alten Dragon? Ein empfindliches Teil dass viele aktuelle AVR Modelle nicht unterstützt. Der war mal wegen seinem niedrigen preis interessant, um die kleineren Modelle (bis 32kB) zu debuggen. Ich würde ihn heute nicht mehr empfehlen. Aktuell wäre der bereits empfohlene
Laut Bedienungsanleitung (http://download.zeitech.de/Documents/mySmartUSB_MK2_Manual.pdf) das "myAVR Progtool" oder im AVR Studio das Tool "AVR Prog" oder avrdude. Lies einfach mal die Bedienungsanleitung, bevor du dumme Fragen stellst. Er verwendet er das AVR910/911 Protokoll. Ich habe einen ähnlichen
-
Thread
DS18B20 1-Wire Implementierung - Timing-Probleme
mir einen zusätzlichen IC besorgen > müsste. Wieso solltest du das müssen? Du benutzt einenSTM32F103C8 ...
du hast einen Hardware OneWire. Eine diskreten Opendrain Eingang benötigst du nicht, denn der STM32 hat einen eingebaut.
-
Thread
Plattenspielerantrieb Konzept - Hilfe gesucht
Direktantrieb für Plattenspieler gebaut wurde - allerdings mit Sensoren. Diesen habe ich mit Hilfe von AVR447 (Appnote von Microchip/Atmel zur Sinusansteuerung) schon vor langer Zeit zum lautlosen Drehen ohne jedes Rastmoment programmiert. AVR447 benutzt optional einen PID Regler für externe Steuerung.
das locker. Wobei man heute doch eher komfortabel auf einen 32Bitter setzen würde, ich zumindest. Aktuell baue ich an der anderen Stelle des Plattenspielers etwas auf, 3 Motoren steuern den Tangentialtonarm, DD Antrieb vom zerlegtem Technics. Der BluePill (STM32F103
-
Thread
AVRDUDE unter Win 10
wahrscheinlich auch den Paramater -B 20 um die Kommunikation zu verlangsamen. avrdude -vv -c avrisp2 -p m32 -P usb -B 20 Fall dein libusb Treiber nicht installiert wurde oder Windows das Laden verweigert, folge dieser Anleitung: http://stefanfrings.de/avr_tools/libusb.html
libusb0_x86.dll in das AVRDrude Verzeichnis kopieren und in "libusb0.dll" umbenennen. (Nicht die bin/amd64/libusb0.dll verwenden, die ist für 64-Bit Programme) Komplizierter ist es mit dem USB-Treiber für den AVR-Programmer. Da der von AVR-Studio mitgelieferte nicht mit AVRDrude funktioniert. Man
-
Thread
Nextion Display Erfahrungen
integrierte Controller und dessen Software. z.B. https://www.itead.cc/nextion-nx8048t050.html hier $64 Für das Geld kannst du z.B. auch ein 32F469IDISCOVERY Board kaufen (z.B. $62 bei digikey). Das enthält ebenfalls ein 800x480 Display (allerdings nur 4"), ist aber ein komplettes uC-Evaluierungs-Board
Vorteil eines solchen displays ist die Zuverlaessigkeit des Systems. Das bleibt so gut wie der kleine AVR oder PIC, waehrend es eher schwierig ist ein zuverlaessiges System mit einer 32 bit maschine selbst zu bauen.
-
Thread
Attiny1616 USART Verständnissproblem
anleitung gehalten, dennoch kein signal.. [c] #define USART0_BAUD_RATE(BAUD_RATE) ((float)(3333333 * 64 / (16 *(float)BAUD_RATE)) + 0.5) #define F_CPU 3333333 #include <avr/io.h> #include <util/delay.h> #include <string.h> void USART0_init(void); void USART0_sendChar (char c); void USART0_
// gewünschte Baudrate constexpr uint16_t calcUBRR (const uint32_t baudrate) { return ( ( (64.0*F_CPU)/(16UL*baudrate) ) +0.5 ); } int main(void) { USART0_init(); PORTC_DIR = PIN0_bm; while (1) { USART0_sendString("Hello
-
Thread
Sekunden mit Uhrenquarz richtig takten
taster_1 PB1 #include <avr/io.h> //#include <avr/delay.h> #include <avr/sleep.h> #include <avr/interrupt.h> volatile uint32_t sec=0; //hier kann zeit eingestellt werden volatile uint32_t min=1; volatile uint32
überhaupt ein legaler Prescalerwert ist. Stellt man ihn auf 16, passt Overflow natürlich nicht für 32Hz, dann müsste Compare-Interrupt auf 64. Wenn man dann aber keinen reload macht, kommt der nächste Compare trotzdem erst wieder in 256 Takten, es sei denn, die Interrupt-Routine seztz ihn weiter auf
-
Thread
Als Mikro noch Makro war: Die "Dicke Tal- Uhr"
weiß. Der Kram hatte anfangs überirdische Lieferzeiten, deshalb war schwarz angesagt. Und dann die 64 Kb Ram für den LLC2, oh mann. Der LLc2 war ja nen Urladersystem, vorbereitet für CP/M. > Opa hatte Recht... Deshalb hat ja auch mein Vater gemeint: "Wo der Edi ist, da lass' Dich nieder, Edi's
die jeweils aus TTL- Nand-Gattern aus den Bastlerbeuteln aufgebaut waren. Dekoder mit einzelnen SAY32 Dioden und als Treiber SS200 Transistoren. Eine weitere Uhr ist auch schon seit 45 Jahren in Betrieb: Die ist mit dem Uhrenschaltkreis U125 bestückt. Den habe ich mal als Muster von einem Bekannten
-
Thread
ATmega328P - ADC Conversion: Unterschied der Befehlverarbeitung innerhalb ISR
0x00; PORTD = 0x02; ADCSRA |= (1 << ADSC); } } [/c] Code Fall 2: [c] #include <avr/io.h> #include <avr/interrupt.h> volatile unsigned char Test; int main(void) { DDRD = 0x02; PORTD = 0x02; ADMUX = (1 << REFS0) | (1 << ADLAR); ADCSRA = (1 << ADPS2) | (1 << ADPS1) |
spannend, hab's mal compiliert. Mag nicht der richtige chip sein, zeigt aber genau das Problem. $ avr-g++ -mmcu=atmega32u4 -O2 code2.c -S [pre] .global __vector_29 .type __vector_29, @function __vector_29: push r1 push r0 in r0,__SREG__ push r0 clr __zero_reg__ push r24
-
Thread
ATmega Assembler-programmierung unter Ubuntu?
ist tot, es lebe Microchip. Microchip hat ja Atmel gekauft, und zwar genau wegen den Atmel ARMs. AVR32 ist tot, AVR8 ist Beiwerk und wird halt solange produziert, wie es Geld bringt. Atmel Studio und die Atmel Tools sind End Of Life und werden nicht mehr weiterentwickelt. Stattdessen baut man Support
ist der Atmel-Support im MPLABX noch zu lückenhaft. Außerdem sind die gerade dabei, die Compiler auf 64 Bit umzustellen. Aber andererseits: Denk doch mal nach, warum Microchip recht viel Geld investiert, um AVR und ARM Support in den XC8 und XC32 Compilern nachzurüsten und warum sie neue ICDs und PICKITs
-
Thread
Atmega328p fuses falsch gesetzt
Hast du noch einen weiteren AVR rumliegen? Je nach AVR-Typ genügt es u. U., einfach nur eine Fuse zu setzen, damit er seinen internen Takt an einem Pin heraus wackeln lässt. OK, diesmal die Fuse richtig setzen. :)
würde für meine Zwecke ausreichen. [code]https://www.diamex.de/dxshop/USB-ISP-Programmer-fuer-Atmel-AVR[/code]
-
Thread
arduino oder GCC Programmierung
logisch, also warum wird hier behauptet man kann der Wire keine Pins mitgeben? Es ist richtig das AVR Wire keine Funktion der PIN Übergabe hat und trotzdem wird Arduino Wire! (nicht ESP32 Wire) mit verschiedenen TWI Pins genutzt und innerhalb der AVR Familie ohne eine andere LIB als AVR einzubinden.
/megaTinyCore/hardware/megaavr/1.1.2/libraries/Wire ./packages/STM32/hardware/stm32/1.5.0/libraries/Wire ./packages/MiniCore/hardware/avr/2.0.3/libraries/Wire ./packages/digistump/hardware/avr/1.6.7/libraries/Wire [/pre] So what leo
-
Thread
AVR Inline Optimierung kaputt?
Optimierung über signed overflow stolpern könnte. Man könnte sich jetzt mal anschauen was der avr gcc bei -O3 alles einschaltet. Möglicherweise werden intern auch andere Optionen gesetzt, kenne die Softwarearchitektur vom gcc nicht. Bei Avr spielt die Codegröße jedenfalls eine wichtigere Rolle
natürlich eingeflossen. Es kam sehr viel später und zwischenzeitlich hatten sich Zweierkomplement und 8/16/32/64-Bit Architekturen durchgesetzt.
-
Thread
STM32 - Low Level Library Dokumentation
Low-Level-Programmierer schrieb im Beitrag #6338760: > Wie gesagt, ich habe von STM32 leider nur wenig Ahnung (ändert sich > demnächst hoffentlich), aber mit AVR-Assembler und mit C allgemein kann > ich durchaus umgehen. Auch wenn ich den mit großem Abstand meisten Code > bisher in
Hier ein blockorientiertes Beipiel für I²C, dass nicht nur auf AVR sondern auch auf STM32 und Lego Mindstorms umgesetzt wurde: [c] /** * Perform an I²C transaction, which sends 0 or more data bytes, followed by receiving 0 or more data bytes. * * @param slave_addr
-
Thread
Microcontroller mit Python
festes Muster die Kernaufgabe einer einfachen EEPROM-Steuerung: 1 4060 mit Quarz und ein EEPROM, z.B. 64k*8 Damit man mit einem Uhrenquarz z.B. im ms-Takt einen Kanal bis zu 64s steuern, 2 bis zu 32s … 8 bis zu einer halben Sekunde. Für jemanden ohne µController ein guter erster eigener Schritt
Zellen Taktversorgung: Externer Quarz Oszillator 4 MHz über 220Ω mit XTAL1 verbunden Fuse für 32kHz Quarz einstellen: [pre] stefan@stefanpc:/opt/AVR8-Burn-O-Mat$ sudo avrdude -c avrispmkii -P usb -B 200 -p attiny85 -U lfuse:w:0x66:m avrdude: AVR device initialized and ready to accept instructions
-
Thread
volatile Funktionen
Haarspalterei, ist für die Diskussion kaum relevant. Hätte man eine std::atomic Implementation für AVR, könnte man o.g. Programm so schreiben: [c]#include <cstdint> #include <avr/io.h> #include <avr/interrupt.h> #include <util/atomic.h> #include <atomic> std::atomic<std::uint8_t> i { 255 };
dementsprechend /keine/ Interruptsperre einbauen. Eine gute Implementation vorausgesetzt sollte hier für AVR der selbe Code herauskommen wie bei volatile. Da aber der AVR-GCC bzw. avr-libc anscheinend keine Implementation von std::atomic / _Atomic bietet, muss man sich mit der Krücke ATOMIC_BLOCK behelfen
-
Thread
3,3 und 5V Problem beim Pi4
welcher Zeile der Strom raus kommt. Dann weiß er, welche Taste das war. Das würde ich mit einem AVR oder STM32 Board umsetzten, das per USB mit dem Computer kommuniziert, der das am Ende (wie auch immer) darstellen soll. > Ab dann ist es nur noch einfaches Programmieren. Wenn du meinst. Dann
nur über eine Matrix mit weniger als 82 Leitungen auswerten. Allerdings: mit 16*4 komme ich nur auf 64 unterscheidbare Felder ... Sind es nicht vielleicht 14 Eingänge * 6 Ausgänge? Dabei schaltet der Prozessor nacheinander die Zeilenleitungen kurz auf HIGH (oder LOW) und misst an welcher der Spaltenleitungen
-
Thread
Divisionen optimieren
ist - z.B. eine binäre Division mit 8 dauert in Software länger als eine Division mit 1024 - von 32 oder 64 gar nicht zu reden...
und solange daran drehen, bis es passt. Wenn man es nicht lassen kann, dann rechnet man mit int32_t. Wer lösungsorientiert programmiert rechnet mit float. Das erledigt ein AVR8 mit 16 MHz in < 100 µs. Die Konstanten für die Umrechnung kann sich der µC selber aus Vin-min und Vin-max errechnen und
-
Thread
PPS5330 Labor-Netzteil hack
// bei der Anzeige Kommastelle (ASCII-Zeichen 46) in result beachten { SPI_wr2(buf[4]+32); SPI_wr2(buf[3]+32); SPI_wr2(buf[1]+32); SPI_wr2(buf[0]+32); } else { SPI_wr2(buf[3]+32); SPI_wr2(buf[2]+32); SPI_wr2(buf[0]+32); SPI_wr2
Rolf D. schrieb im Beitrag #7646206: > Versteh ich jetzt nicht so ganz. Rolf du nutzt doch einen AVR? Dann könntest du doch Peter Danneggers Entprellroutine nutzen. (die funktioniert auch mit einem ESP32, muss halt nur angepasst werden, andere Timer, andere Register.
-
Thread
Frage zu Assembler für meinen Informatikunterricht
Hallo Fabian, hier im Abschnitt "A2 Assemblerprogrammierung" ab S. 32 ist das ganz gut erklärt: http://www.weigu.lu/tutorials/avr_assembler/pdf/MICEL_MODUL_A.pdf Das ganze AVR Assembler Tutorial unter http://www.weigu.lu ist evtl. auch interessant für besonders interessierte
gleichen Kontext auch auf die Verarbeitungsbreite eines Prozessors eingehen und erläutern warum ein 64 Bit Prozessor sich leichter bei der Addition größerer Zahlen anstellt als ein 32 Bit Prozessor. leo schrieb im Beitrag #6321017: > Nimm mal einen Befehlssatz eines modernen 64bit-Prozessor und
-
Thread
atof ungenau
Oder mit 10000 multiplizieren und als integer 32 oder 64 weiterrechnen.
Fritz Fischer schrieb im Beitrag #6314682: > Oder mit 10000 multiplizieren und als integer 32 oder 64 > weiterrechnen. Einen String multiplizieren?
-
Thread
ATMega 32 mit USBasp und Arduino IDE programmieren
System wide configuration file is "C:\Users\fuhrm\AppData\Local\Arduino15\packages\MightyCore\hardware\avr\2.0.5/avrdude.conf" Using Port : usb Using Programmer : usbasp Setting bit clk period : 32.0 AVR Part
16000 Hz avrdude: warning: cannot set sck period. please check for usbasp firmware update. avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.01s avrdude: Device signature = 0x1e9502 (probably m32) avrdude: NOTE
-
Thread
Timer, Ticks Verständnis
Wenn ich eine Delayfunktion erstelle, [code] //25ms delay_func(100000); status delay_func(uint32 param) { for(uint32 i=0; i<param;) { i++; } return OK; } [code/] so wie ich es verstehe bräuchte ich 100000 Ticks um die 25ms zu überbrücken, wird aber die komplette
(Ist leider nicht immer so eindeutig, gerade bei starken Optimierungen) Im AVR Instruction Set Manual http://ww1.microchip.com/downloads/en/devicedoc/atmel-0856-avr-instruction-set-manual.pdf findet man dann: > 73. LDI – Load Immediate > [...] > Cycles 1 und > 88.
-
Thread
Grundlagen zur parallelen Verarbeitung von hohen Datenmengen
allem, dass du die Datenbusbreite erhöhst. Also anstatt mit 8 bit breite rechnest du dann mit 16, 32, 64,... bit breite. Es ist natürlich selten trivial, deine eigentliche Berechnung zu parallelisieren bzw. sie in einzelne kleine Rechenschritte zu zerlegen und aus diesen kleinen schritten eine Pipeline
: > dass du die Datenbusbreite erhöhst. > Also anstatt mit 8 bit breite rechnest du dann mit 16, 32, 64,... bit > breite. Ja genau. Ich habe beim HMCAD1511 dann 8 LVDS Lanes die mir die Daten mit jeweils 1 GBit/s anliefern. Mit der Frameclock, 1/8 der Samplerate, also 125 MHz bekomme ich dann 64