-
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
Ah ja, diese dort verlinkte Seite ist noch interessant: http://www.open-std.org/jtc1/sc22/wg14/www/standards.html
-
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
irrelevant sind. Man muss der Matrixabfrage > folgen. Naja das ich hab ich gestern schon gegen 14 Uhr geschrieben. > > Und das kannst du mit einem Raspi generell vergessen (nicht hinreichend > echtzeitfähig) und mit einer Lösung basierend auf dem Arduino-Framework > ebenfalls. Aus exakt dem
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
-
Thread
Divisionen optimieren
Beispiel kann z.B. wie folgt vereinfacht werden: > > V = ADC * 227 / 16 Und 1190200 / 83968 ergibt 14.174. Mal 1024 ergibt 14514 und außer ADC-Wert ändert sich da nix. ADC hat 10-16 bits, AVR schafft eine 16x16 Multiplikation in etwa 25-30 Takten, Division mit 1024 dauert nochmal 6 Takte. Braucht
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
Sonnenscheindauer Sensor selber bauen Eigenbau ATmega Assembler
Ich würde den DS1307 durch einen RTC DS3231 AT24C32 erstzen, dann sind auch 32K Speicherkapazität dabei.
Hier ist ab Kapitel 14, speziell 14.3.2, erklärt, wie der DWD direkt misst https://www.dwd.de/DE/leistungen/pbfb_verlag_leitfaeden/pdf_einzelbaende/leitfaden6_pdf.pdf?__blob=publicationFile&v=3 Vielleicht eine Anregung
-
Thread
Neue Auflage vom Buch: Einblick in die moderne Elektronik
Timer funktionieren nicht USB funktioniert nicht In den Fälschungen befindet sich oft ein APM32F103, GD32F103 oder CK32F103.
komisch, ich in die Suchleiste "Nucleo F303RE" eingegeben. 20€ + Versand https://www.amazon.de/STM32-ST-NUCLEO-F303RE-Nucleo-Development/dp/B01N6EKDEF 13,45€ + Versand https://www.conrad.de/de/p/stmicroelectronics-entwicklungsboard-nucleo-f303re-stm32-f3-1416930.html 14,40€ + Versand https:/
-
Thread
Operationsverstärker in der Lehre noch zeitgemäß?
AVR schrieb im Beitrag #6322185: > Qwertz schrieb: >> Wenn es irgendwie um Soft Skills geht, die sind natürlich sehr wichtig >> im Berufsleben. > > Aber nicht als Entwickler. Soft Skills brauchen
Das es anders gehen kann zeigt ja was in manchen Bildungssystemen (Staaten) bis so ganz grob zum 12-14 Lebensjahr gemacht wird - danach aber auch dort der ewig gleiche Weg und die Abschlussglaube und Bewertungsfetisch. Praktiker
-
Thread
PPS5330 Labor-Netzteil hack
< DDB1)|(1 << DDB2); // PB1 and PB2 is now an output ICR1 = 0x3FFF; // set TOP to 16383 14Bit/1KHz // set U-Soll uint8_t Digi_offset = 67; uint16_t Umax = 30000; // mV uint32_t Usoll = 20000; // mV uint32_t PWM_value = 15540; // 15540 ~ 30.0V uint16_t OCR_value = 0
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
und schaut Windows mal unter die Haube (er ist neugierig). Ich denke schon, dass man sich mit 13/14 dafür begeistern lassen kann. Aber zum Dokument vom TO: Wenn du schon den Bezug zu Assembler machen möchtest, dann nimm doch bitte den Befehlssatz von einem AVR oder so, aber nicht Intel. Das war
-
Thread
atof ungenau
Oder mit 10000 multiplizieren und als integer 32 oder 64 weiterrechnen.
Achtung, der avr-gcc kennt nur float. Double ist dort in Wirklichkeit float.
-
Thread
Wer macht bei Arduino eigentlich die Qualitätssicherung?
das sie auch gut ist. und da ist es doch gut wenn man in den Quellcode schauen kann! z.B. ESP32, lt. Arduino ist es bei der onboard LED -> LED_BUILTIN GPIO5 aber bei meinen GPIO2 ist aber auch egal findet man raus und macht andere defines [c] #if defined(__AVR_ATmega328P__) #define ON_BOARD_LED LED_BUILTIN #elif defined(ESP32) #define ON_BOARD_LED 2 // bei den letzten gelieferten WEMOS LOLIN32 sonst 5 #endif [/c]
-
Thread
wie ist das mit den 16/20MHz beim Atmega4809
Wunderer schrieb im Beitrag #6309284: > 14.38 Euro > > https://www.ebay.de/itm/AVRISP-AVR-ISP-mkII-Programmierer-AVRISPmkII-ATAVRISP2-konforme-MD-FU/254618730099 Das ist kein UPDI-Programmer.
verbauen. Wenn dann einen entsprechend extern generierten Takt. Externe Quarze werden hier nur 32kHz Typen unterstützt! Aber alles kein Drama, hochfrequente Quarze sind für die meisten Anwendungen neuerer AVR Controller längst überflüssig.
-
Thread
18650 Zelle / LoRa Modul mit Solarzelle versorgen?
4,32V finde ich ganz schön heftig. Was für eine Zelle ist denn das?
Spannung ganz weg nehme spielt er wieder los. Das Thema hatte ich schonmal bei EEPROMs... alle 7-14 Tage hängten die sich auf am STM32F405 und da half nichts mehr, Power off/on nur noch.Er hier hängt schon nach ein paar Minuten. Ich vermute, dass die Statemachine des BME280 oder des AVR sich aufhängt
-
Thread
PIC Microchip lebt noch?
ESP oder Arduino. Ich nehme gerne PICs. Weniger die 8-Bitter, sondern eher PIC24/dsPIC oder PIC32. Und das deswegen, weil die Peripherie deutlich besser als bei zB AVR ist. Beispiel PPS: Du kannst bei einem PIC, der das hat (das sind recht viele, aber nicht alle) fast jede Peripheriefunktion auf
oder Atmel > oder ARM arbeitet. Naja ich programmiere beruflich so ziemlich von A-Z, also vom AVR über STM32 bis zu ARM9, Sitara usw. Aber PIC würde ich wenn irgendwie möglich zu vermeiden suchen.
-
Thread
Mit 3.3V Mikrocontroller 5V schalten
Beitrag #6334093: > Wäre das weniger problematisch bzw. empfindlich, wenn ich statt des > schnellen STM32 ARM einen behäbigen alten 8-bit ATmega (2560 oder 328p) > nehmen würde ? Die genannten AVR Controller sind dafür bekannt, robuster zu sein, als STM32. Andererseits gehen STM32 auch nicht "einfach so" kaputt, wenn man alles richtig macht. Wenn für deine Anwendung ein AVR ausreicht, würde den bevorzugen. Nicht nur weil er robuster ist, sondern auch weil er wesentlich einfacher zu programmieren ist. Wenn du mit einer STM32 Serie aber schon gut vertraut bist, zählt
-
Thread
Probleme mit MCP9808 über I2C
Hallo euch allen, ich versuche gerade eine Verbindung zwischen einem Atmega32 und einem MCP9808 Temperatursensor über I2C herzustellen. Ich muss leider zu geben, dass das meine ersten Gehversuche mit I2C sind. Ich benutze die Library von Peter Fleury (twimaster.c) und habe
#6303729: > #define MCP9808 0x18 // device address of Temperature sensor see datasheet Seite 14 probier mal 0x30 vorausgesetzt, du hast A2 bis A0 auf GND geklemmt, sonst 0x31 bis 0x37
-
Thread
#01 Dark Side of Code C&P Culture Gesperrt
r24, 0x08 ; 8 86: 90 e0 ldi r25, 0x00 ; 0 88: 21 e0 ldi r18, 0x01 ; 1 8a: 32 2f mov r19, r18 8c: 36 71 andi r19, 0x16 ; 22 8e: 39 f0 breq .+14 ; 0x9e <main+0x1e> 90: 5c 9a sbi 0x0b, 4 ; 11 92: 5b 9a sbi 0x0b, 3 ; 11
> Focus. liest sich im Eröffungspost aber komplett anders. Ich denke mal das ist wie beim ESP32.. Wenn ich Geschwindgkeit brauche benutze ich direkt das IDF im Arduino. Das gleiche klappt genauso beim AVR und das wurde in den letzten 10 Jahren bestimmt 1000 mal durchgekaut. Arduino ist auch
-
Thread
Potentiometer an Mikrocontrollter
Karim A. schrieb im Beitrag #6285201: > Das ist die library dafür > #include <avr/interrupt.h> Nein, ganz sicher nicht. Die hat mit ADC nur marginal zu tun. Die Doku zur AVR Library ist dort: https://www.nongnu.org/avr-libc/user-manual/index.html Und wenn du das mal überfliegst
Arduino Fanboy D. schrieb im Beitrag #6286400: > Ich weiß nicht, wie du es hältst.... > Meine Arduino AVR ADCs können sehr wohl negative Werte liefern. ich weiss bei ATmega32 hatte ich diff mit GAIN mal genutzt um an einen Shunt den Battereiestrom zu messen. Bei AnlogRead am Arduino noch nie genutzt
-
Thread
Z80 CPU einer der modernsten CPUs?
Usw. usf. Das Ding mit internem Flash und etwas aufgebohrter Peripherie und es hätte nie einen AVR gegeben.
haben, dann empfehlen sich immer noch PIC oder AVR, Z8 Encore! und moderne 8051er mit FLASH. Dann kommt noch die Entwicklungssprache dazu. STM32 sind eher eine Qual in Assembler. Meist nimmt man die C oder C++ Sprache. PICS und AVRs gibt es je nach
-
Thread
Wird die deutsche Autobranche Überleben? Gesperrt
AVR schrieb im Beitrag #6278118: > Diese Spinner sind es auch, die gerne von "Wir" sprechen. Meistens dann, > wenn die Kacke am dampfen ist. Wenn alles gut ist, dann wird aus dem > "Wir" nur noch ein
AVR schrieb im Beitrag #6278118: > Weil wir in Wirklichkeit in einem kommunistischen Staat leben. Wie gut es in weniger "kommunistischen" Ländern läuft sieht man gerade in USA und UK. Ohne Worte
-
Thread
I2C Slave Problem Arduino
64; bool rfstatus = HIGH; } else { bool rfstatus = LOW; } if (a2 >= 32) { a2 = a2 - 32; digitalWrite(bremslicht , HIGH); } else { digitalWrite(bremslicht , LOW); } if (a2 >= 16) { a2 = a2 - 16; digitalWrite(fernlicht , HIGH
bool nachtlichtan = HIGH; } else { bool nachtlichtan = LOW; } if (b2 >= 32) { b2 = b2 - 32; digitalWrite(standlicht , HIGH); digitalWrite(ruecklicht , HIGH); } else { digitalWrite(standlicht , LOW); digitalWrite(ruecklicht , LOW);
-
Thread
Mikrocontroller mit 9 PWM ausgängen?
mal an, hat USB schon drauf, reichlich PWM Kanäle und kostet nur 5 Euro. http://stefanfrings.de/stm32/stm32f3.html#stm32f3mini Der Shop ist offenbar gerade down, versuche es später nochmal. Die nehmen jedenfalls weniger als 5€ Versandkosten.
Dannegger: https://www.mikrocontroller.net/topic/340449 8 Kanäle bei 12 Bit @ 2kHz BAM auf einem 8MHz AVR: 9% CPU Load, und die 8 Kanäle sind synchron. Bei 8 Bit Auflösung wirds dann wahlweise schneller (16x) -> 32kHz Refreshrate, oder noch weniger Zeitkritisch. Erst recht mit schnellerem Basistakt von
-
Thread
Spannungsreglerproblem durch Frequenzen bei Arduino Adafruit
Display bei mir alles so an wie es soll. Mit der Tank- und RPM-Anzeige 2.0 wird dann wohl der ESP32 genommen, der braucht eh nur 3,3V. Dazu noch ein LC-Filter vor die gesamte Schaltung.
unterstützen. Dein Display verträgt an den Eingängen nur ganz knapp über 3,3V. Die Signale, die vom AVR Mikrocontroller dort hin gehen haben jetzt aber 4,82V (oder knapp darunter). Jedenfalls deutlich mehr als die 3,3V.
-
Thread
"Überspannung" an PIC-Eingängen
einen µC-gesteuerten Dimmer, dort haben sie direkt 230V~ über einen hochohmigen Widerstand in einen AVR-Pin reingefeuert.
Überspannungteiler zu nutzen. Dann muss man halt zur Konkurrenz wechseln. Von Microchip gibt es die AVR Prozessoren von Atmel. In der App-Note AVR182 hat Atmel empfohlen, einen Strom von 1mA nicht zu überschreiten. http://ww1.microchip.com/downloads/en/Appnotes/Atmel-2508-Zero-Cross-Detector_ApplicationNote_AVR182
-
Thread
Lichtschranke an Atmega. Ich versteh's nicht.
Stellen sehen so aus (will niemanden mit vollständigem Code belästigen): [c] static volatile uint32_t count2; ISR(INT0_vect) { PORTB |= 1; count2++; PORTB &= ~1; } int main(void) { EICRA = 1<<ISC01 | 1<<ISC00; EIMSK = 1<<INT0; while(1) { uint32_t val1, val2;
Bereich liegt, > braucht's nur wenig Störpegel, um einen Eingang zu triggern. Mag sein, aber der AVR hat an alle IOs Schmitt-Trigger, da sollte sowas nicht so leicht passieren. I/O Pin Input Hysteresis vs. VCC Beim ATmega32 (hab ich einfach mal so genommen) sind das 0,5V bei 5V VCC. Das ist schon
-
Thread
[V] Evalboards: Beaglebone Black, FT800, Grid-EYE, LiDAR.
Stück vorhanden 30€ inkl. Versand pro Stück (der erste bekommt die OVP dazu) 2. Silicon Labs EFM32 Zero Gecko STK mit Wetterstation EFM32-Eval mit Feuchtigkeit/Temperatur, Gestenerkennung, Näherungssensor https://www.silabs.com/products/development-tools/sensors/zero-gecko-weather-station-starter-kit
1 BBB reserviert für Haydar EFM32 Wetterstation reserviert für Sascha Leddar One reserviert für spearfish
-
Thread
"Hilfe beim Programmieren" !
Visual Studio als Arduino Plugin oder AVR? Im Arduino klappt das in 10 zeilen.
char tab[] = { 117, 0, 0, 0, 0, 0, 94, 45, 109, 0, 42, 115, 97, 106, 41, 63, 62, 60, 56, 48, 32, 33, 35, 39, 47, 71, 85, 0, 49, 0, 76, 86, 6, 17, 21, 9, 2, 20, 11, 16, 4, 30, 13, 18, 7, 5, 15, 22, 27, 10, 8, 3, 12, 24, 14, 25, 29, 19, 0, 0, 0, 0, 108 }; int main(void) { unsigned char
-
Thread
avr-gcc-10 - "volatile deprecated [-Wvolatile]" Warnungen
C:\Atmel_Toolchain\AVR8_GCC\avr-gcc-10.0.0_2019-12-16_-mingw32\avr\include\avr\sfr_defs.h *********************************************************************** 128 #define _MMIO_BYTE(mem_addr) (*(/*volatile*/ uint8_t
Veit D. schrieb im Beitrag #6264902: > Dein ursprüngliches*p++ += 42; > frisst mein avr-gcc nicht. Komisch, meiner schon: [pre] D:\avr-gcc-10.0.0_2019-12-16_-mingw32>bin\avr-gcc.exe -Wall -Wdeprecated -gdwarf -g3 -O0 t.cpp D:\avr-gcc-10.0.0_2019-12-16_-mingw32>bin\avr-objdump.exe
-
Thread
Hausbus auf I2C- und ATtiny-Basis
gleichen Gründen ebenfalls auf AVR 8-Bitter setzen. Der entsprechende Abschnitt meines früheren Postings war daher nicht im Sinne von "AVR 8-Bitter sind doch scheisse und veraltet, nimm stattdessen gefälligst den modernen und leistungsfähigen
überwiegend Kritik an der Person, und der versuch mit Schwachsinn zu argumentieren. Wie z.B das keine 32bit controller verwendet wurden.
-
Thread
Neue AVR Familie - AVR-DA
extern zugeführt. Harte Echtzeit ist da auch noch drin, deswegen geht das nicht in Software. Ein STM32 kann das nicht, weil dessen SPI-Schnittstelle nicht flexibel genug ist. Ein TI LM4F kann es nicht, weil ihm 5V zu viel sind. Ein AVR frisst das problemlos. Also wird's ein AVR, denn der braucht keine
Tim . schrieb im Beitrag #6260545: > Wozu über STM32 vs. AVR streiten? Beide sind doch völlig > überzüchtet. Na wenn ich mir die armseligen Daten eines PMS150 so anschau bin ich glatt froh in dermaßen viel AVR Luxus schwelgen zu dürfen :) > Werden
-
Thread
Azubi Elektro Projekt
MaWin (Gast) 08.05.2020 22:25 > von MaWin (Gast) 09.05.2020 11:28 > von MaWin (Gast) 09.05.2020 14:47 > von MaWin (Gast) 09.05.2020 14:04 Diese ganzen massiv beschimpfenden Beiträge stammen von einem Psychopathen der seinen Namen vergessen hat und stattessen MaWin reinschreibt, wie ihr schon richtig
MaWin (Gast) 08.05.2020 22:25 >> von MaWin (Gast) 09.05.2020 11:28 >> von MaWin (Gast) 09.05.2020 14:47 >> von MaWin (Gast) 09.05.2020 14:04 > > Diese ganzen massiv beschimpfenden Beiträge stammen von einem > Psychopathen der seinen Namen vergessen hat und stattessen MaWin > reinschreibt, wie
-
Thread
Geany, C, GCC4.7, eigenes makefile: Will for-Schleife nicht kompilieren!
=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘<’ token for(i=0;i<8;i++) ^ menue.c:9:14: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘++’ token for(i=0;i<8;i++) ^~ menue.c:7:13: warning: ‘menueposts’ defined but not used [-Wunused-variable] static
Hallo, Dank für die zahlreichen Erklärungen. Bin eigentlich auf AVR unterwegs und wollte jetzt nur mal etwas entwerfen, eine Menüführung für ein Projekt mit Atmega und Display eben. Hier im Garten habe ich keinen AVR dabei, da übe ich einfach mit dem Laptop. Das mir
-
Thread
BLDC Treiber MIT AVR
ein dezenter Hinweis auf die gewählte Anschlußweise. So wie im Schaltplan angeschlossen, müßte der AVR eine negative Spannung liefern. Vielleicht kannst du mit der Information mehr anfangen.
> Die Aufnahmen entsprechen PWM-Werten von 32, 128 und 255. Gemessen an C9, C10 und C11, richtg? Entferne mal R12, R13 und R14, damit sich die Tiefpässe der drei Phasen nicht gegenseitig beeinflussen. Wie dem auch sei, bei deinen jüngsten