-
Thread
Weiß jemand, was für ein Atmega-Board das ist?
Beitrag #6403144: > Was, warum, wie genau - das bleibt alles versteckt. Dem kannst Du mit [code]avr-objdump -d /tmp/arduino_build_*/blink.ino.elf[/code] auf den Grund gehen: [code] /tmp/arduino_build_804693/blink.ino.elf: file format elf32-avr Disassembly of section .text: 00000000
Martin H. schrieb im Beitrag #6403251: > Das Ergebnis ist nicht anders, als wenn Du avr-gcc von Hand aufrufst Wundert auch nicht da die Arduino-IDE ja u.a. den avr-gcc benutzt da der ja Teil des Pakets ist ;)
-
Thread
Wie kann man eine Temperatur vergleichen und berechnen?
einen ATtiny10 wird man das eher nicht benutzen, aber selbst die in der Arduino-Welt gern benutzten 32-KiB-Controller haben schlicht gar kein Problem damit. Mon dieu, es gab Zeiten, da hatte der komplette CP/M-Rechner ganze 64 KiB, im verbleibenden (nicht vom OS belegten) RAM lief noch problemlos ein
48-bit-Gleitkomma abhandeln (womit es von der Genauigkeit sogar C-Standard-konform wäre, anders als AVR-GCC mit 32 Bit). Man sollte sich die Welt nicht kleiner reden als sie ist. Drittens: die Entscheidung hatte der TO ja offenbar bereits getroffen (oder jemand anders hat sie für ihn getroffen), ansonsten
-
Thread
Integer-Berechnungen mit grossen Zwischenwerten
Detlef uint32_t x; uint32_t f; uint32_t a; uint64_t L; /* x*f , x <=2^31, f <= 2^24 */ /* (xhigh*2^16 + xlow )*(fhigh*2^16+flow) = xhigh*fhigh*2^32 + xhigh*flow*2^16 + xlow*fhigh*2^16 +xlow*flow */
#6396489: > Der ARM-GCC unterstützt im C99 Modus doch long long int, oder irre ich > da? Für 64-Bit-Plattformen sind das auch 128 Bit, auf den 32-Bittern "nur" 64 Bit.
-
Thread
Linux wird nicht wirklich akzeptiert, woran liegt das ?
einer was von Kompatiblität unter DOS/windows! Das liegt meistens nicht an Windows, sondern am AMD64 Long Mode, der keine 16 Bit Real-Mode-Programme, mehr unterstützt. https://de.wikipedia.org/wiki/X64#Betriebsmodi Installiere das ELV Programm mal unter einer 32 Bit Version von Win 7, dann könnte
Das Nachhausetelefonieren habe ich ihm auch so gut wie es möglich ist abgewöhnt. Und wo es mit W10X64 in einigen Fällen überhaupt nicht geht, umschiffe ich solche Klippen einfach mit VMWare Player mit W7X32 bzw. W-XP32 und Linux Mint für Makefile GCC Projekte, installiert. Für gewisse ältere, mir noch
-
Thread
Displaycontroller mit einstellbarer Auflösung/Farbtiefe?
Die sind aber leider bei bei den fertigen günstigen Bastler-Boards wie Arduino Uno, Bluepill oder ESP32 nicht mit drauf... und ein STM32f429-Discovery-Board mit Displaycontroller ist vielleicht ein bisschen Overkill für die meisten kleinen Projekte.
Andy schrieb im Beitrag #6394522: > Nunja, der AVR hat ja kein DMA. Und wenig Speicher. Ein STM32F411 im BluePill Format kostet beim Chinesen 4-5 € und hat 512 k Flash, 128 k RAM, SPI mit 50 MBit/s. Die etwas größeren F407 Boards haben mehr Pins
-
Thread
Monitor als Ausgabe für Microcontroller
Alpha-LCD hast, reicht ein ATMega o.ä. aus, wenn es ein Grafik-LCD ist, dann solltest du eher einen 32 Bitter vorsehen. Für derartige Zwecke reichen die üblichen 128x64 oder ähnliche Größen aus. 4. Suche dir ein Sortiment an sinnvollen Steckverbindern aus, mit denen du die diversen Pins des µC, die
dargestellt werden. > Das Gerät soll rechnen können, Na sicher. Etwa 10x so schnell wie der alte C64. Wenn das nicht reicht, kann man seine Funktionen auch in C/Assembler schreiben, und dann im Programm aufrufen. Mit 32 bit und 80 MHz. > PWM ausgeben Ja. > I²C und SPI Man kann auf fast beliebigen
-
Thread
Nachkommastellen Arduino
> Ich war bis dahin der Meinung, dass die Verwendung eines STM zur > 32-Bitrechnerei ausreichend sei. Ist er auch, aber für die von Dir gewünschte Genauigkeit wirst Du echte double (mit 64 bit) brauchen. Auch dafür reicht jener stm32 locker. Deine Zahlenbeispiele legen
Compiler Option umgebogen. Damit die "double" wirklich double sind, darf der Compiler dann aber keine 32-Bitrechnerei machen (wie es z.B. auf einem AVR passiert), sondern muss wirklich 64 Bit für die Zahlen verwenden.
-
Thread
Config Parser für embedded
, das ist für eine EEPROM Simu im Flash natürlich etwas blöd Als flashes noch extern waren, und 64k eine Page, da würde viel Aufwand getrieben um eine Page in 16, 8, 8 und 32 zu teilen: Einem loader/bootet in den 16k und dann 2 8k-Bereiche, um Bootinfos schreiben zu können. Z.b. jeweils 1k Felder
den ext. (Q)SPI NOR Flashes die ich so kenne gibts 4k Pages. Aber auch löschbare Blöcke, die dann 32k/64k haben und dann mehrere der 4k Pages entahlten. Daher sieht das beim F4 erstmal wild aus und beim L4 ist es eben schöner gelöst.
-
Thread
Suche nach passendem Mikrocintroller/Entwicklerboard
schrieb im Beitrag #6388363: > Gibt es da andere Mikrokontroller die in Frage kämen? Wenn Du mit AVR vertraut bist, gibt es einige "Oldies" wie ATmega64, 162, ... Oder einen neueren ATmega4809 im DIL-Gehäuse mit 4 x USART auch fertig als "curiosity board"
das. https://eckstein-shop.de/Pololu-A-Star-328PB-Micro-33V-8MHz-Programmable-Module-ATmega328PB-AVR Werner B. schrieb im Beitrag #6389406: > Hab mich dann für den STM32F103 entschieden, > dazu gibt es auch einfache Entwicklerboards - ausschlaggebend war auch > deren Verfügbarkeit und weniger
-
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