-
Thread
arduino oder GCC Programmierung
pinMode() setzen, und an dieser Stelle muss derjenige sehr wohl natürlich wissen, ob er es mit einem ATmega328 oder ATmega1284 zu tun hat.)
Und trotzdem war das mehr Zufall und Glück: die IO-Register für TWI unterscheiden sich zwischen ATmega328 und ATmega1284P nicht. Das ist aber keineswegs für alle AVRs so gegeben: während viele neuere AVRs diesen Registerblock ab Adresse 0xB8 haben, liegt er bei älteren AVRs (ATmega8, ATmega16, ATmega128
-
Thread
AVR Inline Optimierung kaputt?
man ggf. das Programm "lint", um die Parameterübergabe zu überprüfen. Die Compiler mussten in den 64 kB Adressraum einer PDP-11 passen. Das konnte trotz eines in 2 Passes aufgeteiltem Compiler immer noch eine üble Overlay-Orgie sein.
eingeflossen. Es kam sehr viel später und zwischenzeitlich hatten sich Zweierkomplement und 8/16/32/64-Bit Architekturen durchgesetzt.
-
Thread
Microcontroller mit Python
Ja, die classic ATtiny sind bezüglich Stromsparen nicht der Bringer. Da muß es schon ein großer ATmega sein. Z.B. der ATmega48A braucht im Power-Save <1µA am 32kHz Uhrenquarz.
Glück, sind eigentlich zuviel; zumindest bei einem AVR8-Typ war bei etwa 300 kHz Schluss (könnte der ATmega328 gewesen sein).
-
Thread
CJoy / USB-DevName
NameStringDescriptorEnd-NameStringDescriptor)*4-2,3;length, type: string descriptor .db "Joy1, ATMega8 based digital USB joystick V0.03" NameStringDescriptorEnd: [/c] Wer kann weiterhelfen ?
hex-File auch sauber übertragen wird ? Habe den flash-Vorgang so gestartet: avrdude -c avrisp -p atmega8 -P COM17 -b 19200 -U flash:w:CJoy_0.03_neu.hex Anbei noch die Anzeige in VICE64 [c] avrdude: AVR device initialized and ready to accept instructions Reading | ###########################
-
Thread
Timing-Problem
ein timer-problem, verstehe es aber nicht warum und hoffe hier die lösung zu finden. Ich habe ein Atmega328 mit einem externen Quarz (8MHz). Den Timer initialisiere ich: [c] /* 20 ms */ TCCR1B = (1 << WGM12) | (1 << CS11) | (1 << CS10); // CTC-Mode clkIO/64 OCR1A = (2500-1); TIMSK1 = (
-
Thread
DCF-Empfänger probleme (erhalte kein high-signal am pin)
77-empfangsmodul-dcf1-810054?gclid=EAIaIQobChMIgaf6jLqx6gIVh6ztCh03FQcaEAQYASABEgJ2avD_BwE) Der Atmega läuft mit 3,3V. Auch das DCF-Empfangsmodul läuft mit der selben Spannungsversorgung. Die habe ich wie folgt an meinem Atmega328P/ Platine angeschlossen: DCF - ATmega VCC - 3,3V GND - Masse TCO
PON - PD7 (ist auf low) zwischen VCC und GND am Empfangsmodul habe ich einen 10uF Elko Mein Atmega hat einen externen 8MHz quarz Das Signal taste ich alle 20 ms ab und berechne mir dann die Uhrzeit (ist zumindest der plan). Dies funktioniert leider nicht, da der Input am Atmega die ganze zeit
-
Thread
Divisionen optimieren
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...
Genauigkeit, und daß Vref genau 1,1 V sein soll, ist doch sehr optimistisch. (Die interne Vref eines ATmega328 liegt im Bereich 1,0 - 1,2 V.) Und für jede Änderung an der Schaltung soll dann wieder eine neue "Optimierung" gestartet werden? Das ist Technik von gestern. Da kann man die Widerstände auch gleich
-
Thread
Arduino Pro Micro (ATmega32U4) - freier Timer für 2x PWM?
Lt. Datenblatt hat der ATmega32U4 14 PWM-Ausgänge. Welche davon heraus geführt sind, sollte aus dem Schaltplan hervorgehen.
verwendet, Timer1 z.B. für Servo-Steuerung. Hier ein paar Dinge zu Timern mit und auf Arduino mit ATmega168/328, die sinngemäß auch für den ATmega32U4 gelten. https://www.arduino.cc/en/Tutorial/SecretsOfArduinoPWM
-
Thread
Datenübertragungsprobleme
Prüfe erstmal, ob die zusätzlichen Zeichen ("^D}") auch schon aus der seriellen Schnittstelle des ATmega8 raus kommen oder erst bei der USB-Umsetzung entstehen (direkte Verbindung vom ATmega8.TX zum Rock64.RX). Wie genau stimmen deine Taktfrequenzen für µC und USB-Seriell-Wandler?
-
Thread
PPS5330 Labor-Netzteil hack
drei Port-leitungen mit dem ATmega328 verbunden und steuer diese softwaremäßig an. Die SPI-Schnittstelle im ATmega328 ist mit dem Programmieradapter verbunden. [c] #define F_CPU 16000000UL #include <avr/io.h> #include <util
nicht auslesen. Durch einen Fehler meinerseits habe ich die Firmware versehentlich gelöscht. Der ATmega88 hat die gleiche Anschlussbelegung wie der ATmega328. Gruß Rolf
-
Thread
SPI mit NRF24L01 auf Breadboard unauffällig. Auf PCB nur Probleme
Hallo, ich möchte eine 2.4 Ghz Fernbedienung mit 8 Taster bauen. Hierzu wollte ich einen Atmega 328P und einen NRF24L01+ verwenden. Das Ganze habe ich in der Arduino IDE programmiert. Um das ganze möglichst energiesparsam zu realisieren, läuft der Atmega auf 8Mhz, deswegen auch kein externer
Arduino Fanboy D. schrieb im Beitrag #6317811: > Dein ATMega benötigt eine externe Beschaltung um die Versorgungsspannung > zu messen. Das soll natürlich heißen: Dein ATMega benötigt *keine* externe Beschaltung um die Versorgungsspannung > zu messen.
-
Thread
ATMega 32 mit USBasp und Arduino IDE programmieren
Markus schrieb im Beitrag #6313482: > Ich habe einen Atmega32 Hast auch einen Bootloader drauf?
Also meckert der immer noch irgendwie mit der Frequenz aber das Programm ist drauf. Bei meinem Atmega 8 am LED Würfel funktionierts auch wieder und das Testprogramm fpr den Atmega32 geht anscheinend auch.
-
Thread
Wer macht bei Arduino eigentlich die Qualitätssicherung?
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]
> Die API ist so gestaltet, dass sie einerseits gut funktioniert, egal ob > ein 8Bit, 32Bit oder 64Bit System gerade vor einem liegt. > Dann ist int der "natürliche" C Datentype. Die meisten Funktionen sind > in C geschrieben, verwenden dieser Logik folgend auch gerne int als > Parameter/Rückgabe
-
Thread
PIC Microchip lebt noch?
taugliche Hardwaretimer Das alles kann es AVR oder ESP oder rPi nicht, der einzige AVR mit LCD ATmega169 ist abgekündigt, 100mA LED Treiber Pinausgange gibt es nur bei einigen PIC oder Sinowealth, und billig ist PMS15A 1ct OTP, CH551G 15ct PTBO153CX SOT6 OTP 1.5ct aber kein Arduino/rPi/ESP. Profis
jeder hat Lust einfache und unkomplizierte Controller durch komplexe ARMs zu ersetzen. Wenn einem 64 byte Register reichen, nimmt man keine 8 k RAM. > Padauk Nicht jeder hat Lust chinesische oder schlecht uebersetzte Datenblaetter zu deuten. Da spielt es dann keine Rolle ob der Controller nun
-
Thread
AVR ATMEGA16-M1: Datenblatt spricht von 10 PWM Kanälen. Wie nutze ich diese?
Hallo zusammen, Ich bastel gerade mit einem ATmega16-M1. Im Datenblatt sehe ich auf Seite 2 unten, dass der Controller 10 PWM Ausgänge haben soll. http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7647-Automotive-Microcontrollers-ATmega16M1-32M1-64M1-32C1-64C1_datasheet.pdf Ich finde jedoch nur fünf Pins, denen ich mit OCnx eine PWM Funktion zuordnen kann. OC0A / PD3 OC0B / PE1 OC1A / PD2 OC1B / PC1 OCD / PE0 Wer kann mir auf die Sprünge
-
Thread
#01 Dark Side of Code C&P Culture Gesperrt
//github.com/arduino/ArduinoCore-avr/commit/649f978224d79947d679612e4bcb326280f4f963#diff-2228e887b64ce2b5b6988c253d21fe48
schmeckt. Ein kleiner Vergleich: Ich nenne es mal "SPI Takt". Verwendet wird ein UNO, also ATMega328P mit 16MHz Da kommt meine Variante auf ca 925kHz Die die von C&P_Hunter "optimierte" Variante auf ca 40,6kHz (womit dann auch klar wäre, wie toll er optimieren kann) Ach ja, der Flash Verbrauch
-
Thread
Arduino fonts "verkleinern"
Ich habe eine Library für SSD1306 OLEDs geschrieben, die Zeichensätze von 8..64 Pixeln Höhe ausgeben kann. Dabei habe ich das gleiche Problem gehabt wie du, nämlich dass vor allem die größeren Zeichensätze sehr viel Platz im Flash verbrauchen. Deshalb nutze ich Sprungtabellen,
Um welchen Arduino geht es denn, daß Du so knapp an Flash bist. Die 256kB des ATmega2560 sollte doch weit reichen. Du kannst ja die Zeichentabellen in nen externen Flash auslagern. Z.B. der IS25LQ040B-JNLE hat 512kB (SO-8, 3.3V, Farnell: 0,393€). Oder der S25FL064LABMFI013 (8MB,
-
Thread
warum braucht Blinkbeispiel 780 byte Flash?
die steht oben im Makefile im geposteten zip. im Terminalfenster kommt: [code] avrdude -v -v -p atmega4809 -c arduino -P COM11 -U flash:w:main.hex [/code]
Arduino.UNO.WIFI Programmiert/getestet mit einem USB Kabel via mEDBG. Im Anhang Source und ATmega4809-toggle-plain-c.lss
-
Thread
ATmega2560 PWM.h library
Cycle und Frequenzstabiles PWM-Signal erzeugt, dass ein breites Frequenzspektrum liefert, obwohl der ATmega2560 mit dem Prescaler (1, 8, 32, 64, 128, 256) eingeschränkt ist. Gerade das ist die spannende Kunst dahinter. Ich habs mit nem Oszi nachgeprüft, 750Hz 10% -> Stabile 748Hz und 10,18% laut Oszi. Mit
OCnxPWM}=f_{clkIO} / (N\cdot(1+TOP))[/math] "The N variable represents the prescaler divider (1, 8, 64, 256, or 1024)." TOP wird im richtigen Modus durch OCRnA oder ICRn festgelegt (beides 16-bit Register)
-
Thread
AVR-GCC - seltsames array-index verhalten
Hallo, vorab: - Ich benutzte Atmel Studio 7.0.1931 - ein "normales" GCC C++ Projekt mit einem ATMEGA328P Was mache ich: ASCII-Zeichen via 2D-Bitmap Byte-Weise auslesen und über SPI auf eine Dot-Matrix ausgeben. Problem: In einer for-Schleife werden eine bestimmte Anzahl an Zeichen ausgelesen
charPtr = 0x40; // start at '@' int segmentPtr = 0; for (int i = 0; i < (128 * 2); i++) // 128 x 64 dot-matrix - print two lines { spi.write((uint8_t)(font8x8_basic[charPtr][segmentPtr])); segmentPtr++; if (segmentPtr == 8) segmentPtr = 0; if ((i % 8 == 0) && (i != 0))
-
Thread
RFM98 (in FSK Modus) - FIFO Problem (sendet nichts)
Ich habe einen Atmega88 mit einem RFM98 Chip per SPI verbunden. Die Beschaltung müsste funktionieren, da ich die gesetzten Bits wieder auslesen und vergleichen kann. Derzeit arbeite ich gerade daran, dass das Modul
void rfm98_sendpacket(unsigned char *data, unsigned char size) { unsigned char i; if (size>64) size=64; // clear RegFifo rfm98_write(0x00, 0x00); // clear Fifo //RegPacketConf1 rfm98_write(0x30, 0x00); //RegPacketConf2 rfm98_write(0x31, 0x02); //RegPayloadLength
-
Thread
SDR Empfänger für RC 40-MHz
Der SI4735 scheint mir ja auch ganz interessant zu sein ... Leider macht er FM erst ab 64MHz. Oder gibt es eine Möglichkeit ihn bis 40MHz oder darunter zu betreiben. Man kann den internen DSP ja wohl auch mit patches ausstatten. Hat sich jemand damit schon einmal beschäftigt?
? Was käme für die Verstärkungsregelung in Frage? Im µC (STM32G431) habe ich ein PGA mit max. g=64 zur Verfügung. Danke für Eure Hinweise.
-
Thread
LCD Busy Flag Abfrage im 8 Bit Modus - die zweite
Habe irgendwann mit ATMEGA8 "herumgespielt", bei mir ist mit 1MHz gelaufen, LCD mit 4-Bit Interface angesprochen (PortD4-7), keine externen Pullups verwendet. Hier der Teil meines Programms wo ich das Busy-Flag abgefragt habe
.... Schick mal vor dem Busy-Test ein Kommando, was richtig lange dauert, z.B. Clear Display (1,64ms).
-
Thread
Potentiometer an Mikrocontrollter
analoge PIN ist. Habe ich PIN A0 richtig als INPUT definiert? - arbeite mit Atmel Studio - atmega2560 int main(void) { DDRB = 0xFF; //Port B Output DDRA &= ~(1<<PC0); //Pin PA0 Input int t=200; int arr[8] = {1,2,4,8,16,32,64,128}; int pinindex = -1; int poti
meine_zeichenkette++) oder so ähnlich. Ist durchaus im Arduino mit 32k Flash auf dem nano auch innerhalb der 64K Grenze und somit 16bittig OK ist. Gedanken darf ich mir beim ATmega 2560 und 1284p machen oder auf dem ESP32. mit allen Warnings mag er nicht mal das: switch (TagNummer) { case 0:
-
Thread
ATMega 8 programmieren
Hallo, vorweg, ich bin sehr neu im Bereich Microcontroller. Ich habe einen ATMega 8 und einen USBasp programmer. Mit der Arduino software schaffe ich es ein Programm hochzuladen. Da ich ein Tutorial nachbauen wollte, in der das Programm in BAScom avr geschrieben wurde, wollte ich
hernehmen. Aber wenn Du was haben möchtest, was STK500 kompatibel ist, dann nimmst noch einen ATMega168 dazu, Quarz, und wenige passive Bauteile und gut ist es.
-
Thread
ISR-Handler: Probleme bei Wertzuweisung von volatile Variable
mit dem Togglen der Pins! Kenne das Feature aus der Automotive / ATmegaxx8 Reihe, ist aber für den ATmega64A nicht verfügbar (zumindest nicht dokumentiert)
der Diskussion... https://www.mikrocontroller.net/articles/AVR_Checkliste#Besonderheiten_bei_ATmega128_und_seinen_Derivaten_im_64-Pin-Geh.C3.A4use Oliver
-
Thread
Kinderauto Blinker Schaltung
billigste Angebot sondern das erste, das Amazon anzeigte: https://www.amazon.de/Anpro-Entwicklerboard-Atmega328P-Arduino-EINWEG/dp/B07H2VT2JN/ref=sr_1_3
die von einem anderen User vorgeschlagen wurde. https://www.conrad.de/de/search.html?search=atmega328
-
Thread
Arduino Bibliothek - Methoden bzw. Funktionen en Detail erklärt - gesucht
was auch immer. Ich bin schon etwas älter, mein Programmier-Werdegang: HP97, SHARP PC1245 (Basic), C64 (Basic), PC (GW-Basic), Turbo-Pascal 3-6, dBase/Clipper. Du siehst, ich bin DOS-Mensch, aber irgendeinen Atmel AVR..frag mich nicht was, bekomme ich in BASCOM für meine Zwecke auch geregelt. Ein bisschen
https://www.mikrocontroller.net/topic/355251#3966023 durch ein zusätzliche Adressbyte beim ATmega1284p (gegenüber ATmega328p) waren die Zugriffe um 10% langsamer, deswegen als Lösung im Code F_CPU für den ATmega1284p auf 90% gesetzt und damit passte es dann. https://www.mikrocontroller.net/
-
Thread
Z80 CPU einer der modernsten CPUs?
einem Mikrocontroller. Für typische Embedded-Applikationen ziemlich ungeeignet. Aber ein EZ80 mit 64kB Flash und 4kB RAM kostet nur EUR 2,74, mit mehr RAM etwa das Doppelte. Was spricht gegen den?
nimmt man die C oder C++ Sprache. PICS und AVRs gibt es je nach Typ mit viel FLASH und RAM. Der ATMEGA1284 z.B. hat 128KB FLASH und 16K SRAM. Der ATMEGA2560 hat 256K FLASH und 8K RAM. Viele haben auch EEPROMS mit 1-4K Kapazitaet zur Abspeicherung von wichtigen Parametern. Das reicht für viele große
-
Thread
Hat schon jemand Erfahrungen mit dem Ding: XGecu T56 Universal Programmer
noch die Vorgängermodelle. Letztendlich auschlaggebend für den Kauf war, dass ich einen NAND MT29F64G08CBAAA bearbeiten muste und das konnte nur der T56. Vom Leistungsumfang her was die Chipverfügbarkeit angeht deckt es wirklich ne Menge ab. Man muss aber auch dazusagen das er hier alles zählt
Nachtrag zu den Atmega-Chips: Habe eben noch mal in deren Forum nachgelesen: Übersetzung von Google also nicht wundern: ######## 3. Unterstützung von Mikrocomputern --- Unterstützt jetzt nur einige PIC-Mikrocomputer
-
Thread
Problem beim Bootloader brennen Atmega4809
https://www.mikrocontroller.net/topic/482101 soll ein Bootloader. als UPDI Programmer wird ein Atmega328 mit der Software von ElTangas verwendet. Atmega328 Pin D6 ist über 4.7k mit dem UPDI-Pin des Atmega4809 verbunden und Pin RST des Atmega328 ist über 470nF mit VCC verbunden, so wie ElTangas das zeigt. Atmega328 und Atmega4809 sind über VCC, GND miteinander verbunden. Die Spannung über USB beträgt laut Oszi ~4.5V. Der Atmega328 Programmer meldet sich als USB-SERIAL CH340 (COM4). In der Arduino-Umgebung
-
Thread
AVR mit VScode
funsigned-char -funsigned-bitfields -DDEBUG -I"C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.1.130\include" -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega168p -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.1.130\gcc\dev
-Wl,-Map="MultiSwitch_4.map" -Wl,--start-group -Wl,-lm -Wl,--end-group -Wl,--gc-sections -mmcu=atmega168p -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.1.130\gcc\dev\atmega168p" @echo Finished building target: $@ "C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8
-
Thread
Port F funktioniert nicht als Eingang.
Ich habe einen Atmega64 auf meinem Board und der Port F (6,7) ist als Eingang Konfiguriert und Pullup ist an. //Port F DataDirection Register 1=Ausgang 0=Eingang DDRF=0b00000000; //0=Eingang PORTF=0b11000000;
Atmega64 schrieb im Beitrag #6273101: > ollte so alles passen, tut es aber nicht die Eingänge am uC schalten > zwar aber nicht im Programm. Ist am PortF etwas anders? Welche Spannung liegt an AVCC an
-
Thread
Mikrocontroller mit 9 PWM ausgängen?
Die 9 PWM gibt's in dieser Familie : dsPIC 33FJ64GS606-I , wobei der genannte nur 16x6 PWM hat, ein anderer hat aber 9. der Genannte ist allerdings im TQFP64. Ein anderer : dsPIC 30F6015-30I hat vieles, im TQFP80.
Ich glaub ich nehm nen atmega328p mit meiner Lösung. Werd jetzt aber erstmal auf tht setzten und dann bei anderen Projekten auf smd. Aber danke für eure Ideen :) Versuche jetzt mit SMD Anzufangen.
-
Thread
Linker error
Linker Error und kann dessen Ursache nicht finden. Ich nutze CodeBlocks avr-gcc -Os -Wall -mmcu=atmega64m1 -DF_CPU=16000000UL Zuletzt vor zwei Wochen dachte ich, ich hätte das Projekt noch erfolgreich gebaut bekommen. Heute funktioniert es aber nicht mehr. Im Grunde sagt er mir, dass jede Variable mehrmals definiert ist. avr-gcc -Os -Wall -mmcu=atmega64m1 -DF_CPU=16000000UL /usr/bin/avr-ld: obj/Release/ABC.o:(.bss+0x29): multiple definition of `rx_data'; obj/Release/XYZ.o:(.bss+0x11): first defined here Diesen Fehler für diverse Variablen.
-
Thread
Delay-Function mit ATmega Timer
getestet) aber die Schleife in der Funktion wird nicht ausgeführt. Hier der Code: >void _impulse_en(uint64_t microseconds) >{ > PORTB |= (1<<_en); > > uint16_t current = TCNT1; > while(microseconds > 0) > { > if(TCNT1 < current) > { > current = TCNT1; > microseconds --; >
ATmegaTimer schrieb im Beitrag #6265814: > funktioniert auch soweit (mit Interrupt getestet) aber die Schleife in > der Funktion wird nicht ausgeführt. Das glaube ich nicht. Die wird eher als Endlosschleife
-
Thread
Niedrige Referenzspannung für ADC per DAC bereitstellen oder höhere Verstärkung?
ich habe mal ein paar Frage bezüglich der Referenzspannung es geht um den ATMega16M1 http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7647-Automotive-Microcontrollers-ATmega16M1-32M1-64M1-32C1-64C1_datasheet.pdf dieser kann ja als Referenz VCC, 2,56V und eine externe
-
Thread
avr-gcc-10 - "volatile deprecated [-Wvolatile]" Warnungen
sowas tendieren o.ä.: *ptr = (*ptr) + 22 + 1 Frank, ich lasse dir gern meinen avr-gcc 10.1 (mingw64) zukommen, wenn du möchtest.
Veit D. schrieb im Beitrag #6273171: > Ich habe da mal was vorbereitet ... > ... > x86-64 gcc 10.1: https://godbolt.org/z/xFAisg Mit volatile int a,b,c,d ************************ siehe oben oder hier https://godbolt.org/z/2JSzC_ x86-64 gcc 10.1 *************** 4 x identisch