-
Thread
Interrupt Vector Atmega4809
Hallo Leute Ich habe grade ein Projekt mit dem Atmega4809. Ich habe folgenden Code in einer Bibliotheksdatei. [c] #include <inttypes.h> #include <avr/io.h> #include <avr/interrupt.h> #include "Ultra_Sonic_Sensor.h" #include <util/delay.h>
prescaler 2 ein increment alle 0.4uS bei einem 20MHz Takt TCA0.SINGLE.CTRLA |= TCA_SINGLE_CLKSEL_DIV8_gc; // Aktiviere Interrupt "Compare Match 0" TCA0.SINGLE.INTCTRL = TCA_SINGLE_CMP0EN_bm; // Zähle clock ticks TCA0.SINGLE.EVCTRL &= ~(TCA_SINGLE_CNTEI_bm); // Compare Match
-
Thread
Arduino 2560 / Datenverlust bei Hardware-UART und SPI
Wo kommen die +5V für den Lesekopf jeweils her? LG, Sebastian PS: Ich glaube du meinst Atmega2560 bzw. Atmega328P, nicht Atmega256 bzw. Atmega32?
.. Das sollte nicht das Problem sein; um als High-Pegel erkannt zu werden, muss ein Signal am Atmega2560 mindestens 0.6 * Vcc betragen. Wenn der Atmega mit 4.6 V versorgt wird, sind das knapp 2.8V.
-
Thread
Hühnerschutz, Fuchsverteibung, Alarmanlage
https://www.youtube.com/watch?v=N8URHHUHQUw
Fuchsproblem lösen, frag mal die Ammis ob die noch welche übrig haben... https://www.youtube.com/watch?v=1m8MjzhNwiI
-
Thread
AREF beliebig klein wählbar?
gültigen Aref Bereich. Sie ist nicht angegeben Weit hinten in den Electrical Characteristics unter 29.8 ADC-Characteristics Vref min 1V Erfahrungsgemäß arbeiten die AVR noch deutlich außerhalb ihrer Datenblattwerte. Bei einem Einzelstück kann der Grenzwert "ertastet" werden. Ein Mega 8 (min 2V) machte
> Der hier verwendete Controller ist ATmega88. > Kann man die AREF beliebig klein wählen? Nein. Ein ATmega88-20PU (von 0643) gibt bei Uaref unterhalb ca. 0.7 V als ADC-Wert nur noch 0x3FF zurück.
-
Thread
Neue Version V32! von Target 3001!
jenseits der 250 Pins. Ich hatte damals, als ich noch Target benutzte, im Zusammenhang mit dem ATmega1280 tatsächlich dieses Problem. Als willkommene Lösung gab es die Light-Version von Target für nichtkommerzielle Nutzung. Mit 400 Pins für knapp 40€ war ich wieder im Rennen :) Leider scheint
./Users/mint/AppData/Roaming/ibf/TarV31/discover 119M ./Users/mint/AppData/Roaming/ibf/TarV31 8.5K ./Users/mint/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/TARGET 3001! V31 discover 8.0K ./ProgramData/Microsoft/Windows/Start Menu/Programs/TARGET 3001! V31 discover 36K ./Windows/Temp
-
Thread
Wie benutze ich die Timer vom AM64x von TI
nicht? IntelliSense funktioniert, wie von Dir beschrieben. Es gibt aber nur eine Auswahl von den 8 Funktionen, die im Handbuch vom SDK beschrieben sind. Der eingebundene Header "TimerP.h" bietet ebenfalls nur diese 8 erwähnten Funktionen an. (zur Info: als IDE benutze ich Visual Studio Code zusammen
Compiler würde den Unterschied auf Assemblerebene berücksichtigen. Beim Avr-Compiler für den ATMega geht das zum Beispiel, da kann man etwa [c] REG_NAME |= 00000100b; [/c] schreiben, um das Bit 2 in dem 8-Bit-Register REG_NAME zu setzen. Mit C-Funktionen wäre das aufwendiger und u. U. nicht so
-
Thread
PIC12F675 - Port-IO in C
dann ? Ich verwende fast ausschliesslich Linux (ausser Wine für Target3001 und eine W7-VM für MPLab 8.92) und überwiegend PICs.
Eu. "Preisguenstig" stelle ich mir irgendwie anders vor. Dagegen sind die 1.10 Eu fuer einen SO8 12F675 ja geradezu ein Schnapper.
-
Thread
Schaltung Quarz fragen
gelassen werden, was auch logisch ist, denn sie werden ja vom LCD-Controller getrieben, falls er sich im 8-Bit-Modus befinden sollte).
Flexibilität einen anderen Weg gegangen und liefert den Takt direkt von einem Pin des AT90S8535/ATmega8535. Das hat allerdings den Nachteil, dass man damit maximal f_CPU/2 des steuernden Controllers produzieren kann.
-
Thread
LED toggeln mit ATxmega256A3BU
ja jetzt nicht so schwer sein. Bei mir: "C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\iox256a3bu.h" Auch das _BV() Makro muss dein Microchip Studio kennen. Habe es soeben mit der nativen Toolchain ausprobiert. Geht. https://www.nongnu.org/avr-libc
Systemstart in Sekunden. Ich lasse dafür eigentlich immer eine Uhr mitlaufen: [c] volatile uint8_t stunde; volatile uint8_t minute; volatile uint8_t sekunde; void uhr(void) { sekunde++; if (sekunde == 60) { sekunde=0; minute++; if (minute == 60) { minute=0;
-
Thread
UART: Verschliffene Flanken - wann werden die Datenbits gesampelt?
das jeweilige Bit gültig sein muss? Fast alle Receiver sampeln dreimal in der Mitte des Bits, mit 8× oder 16× Oversampling. Hier der MSP430.
wird mit 2-aus-3-Auswertung ermittelt. Die Abtastrate sollte besser 2% zur Baudrate passen. Bei 8N1 ist dann die Mitte des Stoppbits noch auf <20% genau. Der Vorteil von 16-facher Abtastung gegenüber 8-facher Abtastung ist ein Messwert, sonst eher gering. Bei halbwegs linearem Tiefpassverhalten
-
Thread
Probleme mit Werten vom BME280
- "Was ist mit diesem Rätselwort gemeint?" Der BME280 wird per I²C oder SPI angesprochen, der ATmega8 kann beides - wozu wird ein Oszilloskop benötigt?
26 Byte "am Stück" ausgelesen. Kalibrierdaten: Register Wert $88 $C7 $89 $6F $8A $61 $8B $68 $8C $32 $8D $00 $8E $96 $8F $8B $90 $C2 $91 $D6 $92 $D0 $93 $0B $94 $A5 $95 $22 $96 $A4 $97 $FF $98 $F9 $99 $
-
Thread
Auflösung Elektronik Shop
Hallo Manuel, falls noch vorhanden, würde ich gerne 5x ATTINY85-20PU DIP8 17x 74LS247 und 1x ATMega32-16DIP übernehmen. Gruß Thomas
-
Thread
AVRDude upload Problem AVRISP MKII
Sachen Linux daher etwas Nachsicht ! Nun zu mein Problem: Ich habe ein stk500 Board mit einem Atmega328P den ich über den AVRISP MK II beschreiben möchte. Ich benutze Visual Studio Code mit PlatformIO auf Ubuntu 20.04. Beim Upload bekomme ich immer folgende Fehlermeldung: [code]avrdude error:
Stunden die PlatformIO .ini Datei anzupassen, jedoch ohne Erfolg. Hier mal die .ini [c][env:ATmega328P] platform = atmelavr board = ATmega328P framework = arduino upload_port = usb upload_protocol = custom upload_flags = -c avrispmkII -p m328P upload_command = avrdude $UPLOAD_FLAGS
-
Thread
Fenster auf Erkennung per Funk, welches System
kleines Geld. Vorschlag, wenn es Selbstbau sein soll: NRF24+, ist schon älter, kriegt man mit einem Atmega aber auch auf ähnlichen Stromverbrauch runter, für ca. 10 Jahre aus zwei Alkaline-Mignons. Und dann sollte man sie eh wechseln, bevor sie wegen Altersschwäche auslaufen.
mit 2x AAA, die sind im Moment aber ausverkauft. Habe bisher einen davon verbaut, müsste jetzt so 7-8 Monate laufen. An einer Terassentür die auch öfter auf- und zu gemacht wird. Wenn der Rolladen an der Tür unten ist, dann löst das Tür auf das Hochfahren aus. Durch die AAA Batterien ist das Gehäuse
-
Thread
Fernbedienung geht nicht
welche Bauteile auf der Platine da wohl für zuständig sind? Wo kann ich da auf die Suche gehen? U1, Con8, D12,D2, R31 waren defekt und wurden erneuert (Wasserschaden) Anbei ein Bild.
ist hinüber dank Schwimmbadsalzwasser, du kannst ja mal spasseshalber versuchen ob du über J2 den ATmega16 noch im Programmiermodus erreichst.
-
Thread
Objektinitialisierung mit Parametern im Konstruktor in C++
benutzt wird, hier ein simplifiziertes Beispiel. [c]class ObjectA { private: const uint8_t ValueA; public: ObjectA(const uint8_t ValueA); } ObjectA::ObjectA(const uint8_t ValueA) : ValueA(ValueA) { } class ObjectB { private: ObjectA Array[2]; public:
, dass es im Falle von ValueB==255 nicht zu Fehlverhalten kommt): [c] ObjectB::ObjectB(const uint8_t ValueB) : Array{ {ValueB}, { static_cast<uint8_t>(ValueB + 1) } } { } [/c]
-
Thread
ADC - Wert berechnen
Kein Problem von Elektronik, kein Problem von Software. Stimmt schon, alles nur Rechnen Klasse 8 oder so.
Lothar M. schrieb im Beitrag #7457590: > Klar. Aber das macht den 8-Bit-Andruiden nicht schneller oder das > Ergebnis besser. Von einem 8-Bit Andruiden war in der gesamten Diskussion, bis auf meine Anmerkung des 8-Bit Programmierer Ehrenkodex, keine Rede.
-
Thread
Falsche Signature Bytes bei von mir gekauften China Nano mit 328PB
release notes zu avrdude nachgeschaut in Bezug zu 328PB? 6.4: * New devices supported: - ATmega328PB .... 7. - ATmega328P reported as lgt8fx328p #812 Fix avrdude.conf timings for ATmega328PB and other parts #1001 https://github.com/avrdudes/avrdude/blob/main/NEWS
überschreiben. Dann musst du halt nur sehen, was der restliche Chip denn wirklich ist. Ein alter ATmega328, ein ATmega328P, oder ein ATmega328PB?
-
Thread
BLDC mittels ESC ansteuerung
ich auch so. Wieviel Spannung erhalten nun die Mosfet-Treiber und wieviel Spannung erhält der Atmega? Hast du die Schaltung selber aufgebaut, verdrahtet und gelötet? Es können so viele Fehler passieren. Foto?
Und auch von mir: Welche Firmware? SimonK/BlHeli? Oder eine eigene? Warum nimmst du einen Atmega? Um das ganze zu besser zu beurteilen, mit dem Oszi folgende Signale messen: Gate High PhaseA PhaseA Gate Low PhaseA Am besten alles direkt an den Fets.
-
Thread
Arduino Mega R3 PWM funktioniert nicht für Timer 5 (A), Pin 44
du überhaupt? [c] #include <avr/io.h> #include <stdint.h> #include <arduino.h> const uint8_t MAX_LINES = 3; const uint8_t NO_INPUT = 0; const uint8_t DIGITAL_INPUT = 1; const uint8_t ANALOG_INPUT = 2; const uint16_t PWMFreq = 720; // output PWM frequency (Hz) uint16_t ICR16Val;
Phase PWM //////////////////////////////////////////////////// struct MyLine { uint8_t OutPort; // pin number of pwm output port uint8_t Timer; // assigned timer uint16_t OCRReg; // Adresse Output Compare Register // uint16_t TCCRAReg; // Adresse
-
Thread
Menüführung und Blinken
Da fehlt LCD_I2C.h Für welche Atmega's ist das geeignet?
man über die Bibliotheksverwaltung installieren. Die heißt I2C_LCD by blackhawk > Für welche Atmega's ist das geeignet? Praktisch alle Arduinos, nicht nur AVRs, sind ja keine hardwarespezifischen Dinge drin.
-
Thread
Spielzeug-Ampel mit (Timer) Relais-Schaltung
bereits. https://de.aliexpress.com/item/1005002976480289.html https://www.amazon.de/AZDelivery-Atmega328-gratis-Arduino-kompatibel/dp/B078S8BJ8T PS: Meine Fresse, sind die teuer geworden! Ich habe sie mit 1,50€ in Erinnerung. Versuche mal billigere Angebote finden und kaufe dir ein paar auf Vorrat
-
Artikel
AVR-Tutorial
im Artikel Entscheidung Mikrocontroller zusammengefasst. Viele dieser Anforderungen werden von den 8-bit-AVR-Controllern von Atmel erfüllt. Deshalb werde ich einen AVR, genauer gesagt den ATmega8, in diesem Tutorial einsetzen. Und damit kein Missverständnis aufkommt: So etwas wie den "besten" Controller
Checkliste mit Hinweisen zur Lösung üblicher Probleme finden sich im Hauptartikel AVR. Datenblatt des ATmega8, deutsche Übersetzung Datenblatt des ATmega8A Datenblatt der ATmega48/88/168 Datenblatt der ATmega48(P)A/88(P)A/168(P)A/328(P), deutsche Übersetzung (bspw. ATmega328 auf Arduino Uno; basierend auf
-
Thread
ATtiny Typenchaos bei Microchip Gesperrt
man schon hat und kennt. Beim Hobby bin ich seit rund 20 Jahre bei dem, was ich kenne (primär Atmega8 bzw. dessen Nachfolger, aktuell Atmega328P) und das halte ich für völlig OK im Hobby-Bereich. Im Unternehmen sind wir vor geraumer Zeit auf die neuen Atmegas "umgestiegen" (als Ersatz für den Atmega8
im Beitrag #7456553: > Beim Hobby bin ich seit rund 20 Jahre bei dem, was ich kenne (primär > Atmega8 bzw. dessen Nachfolger, aktuell Atmega328P) und das halte ich > für völlig OK im Hobby-Bereich. Naja, gerade die geringere ADC Auflösung und die umständlichere Programmierung sind inzwischen
-
Thread
Arduino Nano Testboard
extra wegen Dateigröße. https://www.dropbox.com/scl/fi/d43svjtus4b3nm7ycohtv/3dmodels.zip?rlkey=jwl8tspv0m979su12cg6pnb3h&dl=0
10k, 20k, 60k wenn man mit 30k anfängt: 30k, 6k, 9k, 15k, 30k, 90k wenn man mit 40k anfängt: 40k, 8k, 12k, 20k, 40k, 120k für gleichmäßige Verteilung der ADC Digits als Richtwerte. Ich wollte dafür nicht 5 digitale I/O verschwenden lassen. "K8, K11, K13 und K19" sind bewusst nicht fest verdrahtet
-
Thread
LGT8F328P avr, gcc, Timer3-Vect
specs-xyz heissen muss, Startup-Code crtxyz.o und Device-Lib libxyz.a. Was sich anbietet ist xyz=lgt8f328p, so dass der Support für ATmega328P unberührt bleibt und man intuitiv -mmcu=lgt8f328p hat. Prinzipiell kann man das crt*.o auch "von Hand" assemblieren, allerdings ist AVR-LibC in dieser Beziehung
gcrt1.S:172: Error: non-constant expression in ".if" statement 6) Änderung von mmcu-Parameter in atmega328p statt avr5: avr-gcc -mmcu=atmega328p -D__AVR_ATmega328p__ -c gcrt1.S -o crt0-atmega328p.o gcrt1.S: Assembler messages: gcrt1.S:359: Error: junk at end of line, first unrecognized character is
-
Artikel
Reichelt-Wishlist
DOG-Serie (EA DOGM081 & 163) | Platinen Basismaterial, einseitig Cu-beschichtet, 0,5..1 mm dick | | | -->0,8mm: BEL 160x100-1-8 Atmel ATtiny45 | | | | | | | | => ATTINY 45-20PU, ATTINY 45-20SU, ATTINY 45V-10PU, ATTINY 45V-10SU Atmel ATMEGA48 TQFP | => ATMEGA 48-20 AU Atmel ATMEGA 88 => ATMEGA 88-20 AU, ATMEGA
, ATMEGA 2560V-8AU Atmel ATMEGA2561 | | => ATMEGA 2561-16AU, ATMEGA 2561V-8AU Atmel ATmega 1284P PDIP | Atmel ATmega 168PA, 88PA, etc. | * Atmel ATmega 16A und 32A in TQFP und PDIP | | | | | | | | Atmel ATmega328P
-
Thread
Wiedereinsteiger Atmega-8 Schaltung
etwas basteln um die Thematik etwas aufzufrischen. Zum Anfang versuche ich mich gerade an einen Atmega-8 um die Schaltung zu verinnerlichen. In KiCad habe ich versucht den Schaltplan zu erstellen, ich denke das sollte auch so funktionieren. Unsicher bin ich mir nur bei AVCC und den Block Kondensatoren
Veit D. schrieb im Beitrag #7449141: > AVR_ATmega_Grundbeschaltung.png R1 ist mit 100k aber viel zu hochohmig, dann könnte man ihn auch weglassen (intern sind ja schon 30…60k eingebaut). In AVR042 sind 4k7 angegeben. Und C4 ist ziemlich klein
-
Thread
[S] ATMEGA 8A-AU
nein habe keinen ATmega8 mehr da, nur noch einen ATmega16.
Moin ist die Frage noch aktuell? Habe zwei ATMEGA8-16 da. Grüße
-
Thread
DHT 11 Sensor, ohne Widerstand, ohne Verbindung von Data Pin zu Vdd
und mehr nicht, alles funktioniert, bis auf das die Temperatur etwa 2°C zu hoch und Luftfeuchtigkeit 8% zu hoch gemessen wird. Jetzt habe ich gesehen, dass man den Data Pin eigentlich noch über ein z.b 1k Ohm Widerstand mit den 3,3V verbinden soll. Das habe ich dann mal getan, aber es hat nichts verändert
224734.png als "20k-50k" gezeigten Widerstand handelt es sich um den intern schaltbaren Pull-Up des ATmega328P auf dem Arduino Uno Board. Bei kurzer Leitung kann der reichen. > Ok muss ich mir mal angucken, wie das geht :D Mit einem Oszi
-
Thread
LED-Display-Dig-2R 74HC164 Reichelt ATmega8 Assembler 810568
Geschätztes Forum, ein 1MHz getakteter ATmega8 steuert ein LED-Modul mit 2x 74HC164 seriell an. Die 2 x 4 stellige LED-Anzeige erfolgt im Multiplexverfahren. Dazu werden jeweils für ein Digit _zwei_ Bytes gesendet. Das Balken-Bytes,
Schieberegister. In Teutonien heißt das Taktfrequenz. > Falk B. schrieb: >>> Um beide Zeilen mit 8 Zeichen darzustellen sind demnach >>> 8 x 2 Bytes = 16 Bytes (Frame) nötig. >> >> 16 Bit. > > Korrektur: 8 x 16 Bytes = 128 Bit , jedes Digit benötigt 2 Bytes, > das Modul besitzt 8 Digits im
-
Thread
Gerät für Betrieb am Smartphone - USB-C Port teilen/mitbenutzen
einen extra Treiber dafür? Wie hoch ist neben dem Kostenunterschied der Umstiegsaufwand? Kandidat ATMega8U2.
548353#new Die genannten 10 Cent sind beinahe korrekt, ein Gurtabschnitt mit 50 CH32V003J4M6 (im SO-8-Gehäuse) ist für etwa 5.70 EUR (allerdings zzgl. Versand) zu bekommen.
-
Thread
Freuenz mit Atmega 2560 erzeugen.
geeigneten Timer des Atmega2560 aus, der die gewünschte Frequenzbandbreite abdeckt. Der Atmega2560 verfügt über mehrere Timer, wie Timer0, Timer1, Timer2 usw. In diesem Beispiel verwenden wir Timer1. Konfigurieren Sie den
#include <avr/io.h> #define F_CPU 16000000UL // CPU-Taktfrequenz (16 MHz) #define PRESCALER 8 // Vorteiler (8) void setup() { // Timer1 konfigurieren (CTC-Modus) TCCR1A = 0; // Alle Einstellungen auf Null setzen TCCR1B = (1 << WGM12); // CTC-Modus aktivieren
-
Thread
logische Verknüpfung als Bedingung für Abbruch while-Schleife (Atmega / Atmel Studio 7)
entweder PinC0 gedrückt wird oder die Schleife 2 mal durchlaufen wurde. Wenn ich das Ganze auf dem Atmega88 habe, wird aber nur wenn der Taster losgelassen wird (mit internen Pullup eingeschaltet daher die Negation) die Schleife verlassen. Die Durchläufe interessieren mein Progamm nicht. Ich habe schon
Man könnte den Kram natürlich auch anders formulieren: [c] uint8_t i; MAX7219_On(); for (i = 0; i < 2; i++) { if (PINC & (1 << PC0)) break; _delay_ms(500); MAX7219_shutdown(); _delay_ms(200); MAX7219_On(); }
-
Thread
Arduino Uno R4 im Handel erhältlich
der SPI theorethisch nach Datenblatt mit 24 MHz Takt laufen (PCLKA / 2). Der Controller könnte 8/9/.../16/20/24/32 Bit Transfers machen, die SPI Klasse arbeitet aber fest mit 8 Bit. Es gibt zwar SPI.transfer16(uint16_t data), da werden aber zwei Mal 8 Bit verschickt. Immerhin gibt es auch noch
hier gerade am SPI der mit PCLKA läuft nicht 24MHz, sondern 23,81MHz, gemessen mit einem Logic Pro 8 bei 500MS/s. Der CAN läuft mit PCLKB und PCLKB sollte 12MHz haben. Ich habe nur kein CAN-Transceiver Breakout Board herum liegen um selber zu testen was etwa bei 8 Byte und 1Mbps passiert.
-
Thread
I2C-Bus: SDA und SCL an ATMEGA328p
anderen MC, bei dem das vermutlich so funktioniert. Die Anpassung der Beispiel-Applikation an den ATMEGA328p erschien mir deshalb als der geringere Aufwand. Gruß Rainer
one data byte to the slave, ignore ACK bit, no clock stretching allowed static void I2C_write(uint8_t data) { for(uint8_t i = 8; i; i--) { // transmit 8 bits, MSB first I2C_SDA_LOW(); // SDA LOW for now (saves some flash this way) if (data & 0x80