-
Artikel
AVR-Tutorial: ADC
Folgende AVRs können das (X = Flash-Größe in KByte): Tinys: ATtinyX61, ATtinyX0Y Megas ohne USB: ATmega8, ATmegaX8, ATmega32, ATmega2560, ... Megas mit USB: ATmegaXU4, ATmegaXU6 Diese können das nicht: ATtiny5, ATtiny10, ATtiny13, ATtinyX4, ATtinyX5 Bei allen AVRs mit ADC lässt sich die Betriebsspannung
Subtract Immediate with Carry, Subtrahiere Konstante mit Carry-Flag). Das folgende Programm ist für den ATmega8 geschrieben. Für moderne Nachfolgetypen wie den ATmega88 muss der Code angepasst werden (siehe diesen Forumsthread und die Application Note AVR094: Replacing ATmega8 by ATmega88 (PDF; 74 KB)). Ausgabe
-
Artikel
Umstieg von Arduino auf AVR
dieser werden dann unter anderem die folgenden Typen definiert: Größe Vorzeichenlos Vorzeichenbehaftet 8 bit uint8_t int8_t 16 bit uint16_t int16_t 32 bit uint32_t int32_t 64 bit uint64_t int64_t Die Nomenklatur ist eigentlich ganz einfach: [u]int[bits]_t, wobei das [u] für unsigned, also vorzeichenlos,
Pin Register Wobei das x für den Port steht. Welche Ports es gibt hängt vom jeweiligen AVR ab. Der Atmega328p hat zum Beispiel vier Stück: PORTA, PORTB, PORTC, PORTD. Ein ATmega2560 hingegen hat derer elf: PORTA - PORTH und PORTJ - PORTL. Gemeinsam ist allen, dass ein Port maximal 8 Pins enthält (PXN,
-
Artikel
AVR-GCC-Tutorial/Die Timer und Zähler des AVR
wikitable" style="text-align:center" AVR-Typ Timer/Counter0 Timer/Counter1 Timer/Counter2 AT90S2313 8 16 - ATtiny2313 8 16 - ATtiny25 8 8 - ATmega8 8 16 8 ATmega88 8 16 8 ATmega16 8 16 8 ATmega32 8 16 8 ATmega644 8 16 8 8-Bit Timer/Counter. Der 8-Bit Timer wird z.B bei AT90S2313 über folgende Register
Zustände und Einstellungen, welche sowohl für den 8-Bit, als auch für den 16-Bit Timer/Counter in ein und demselben Register zu finden sind. Dies gilt für viele ATTiny und die älteren ATMega, wie z.B. Atmega8. Die neueren ATMegas und einige ATTiny haben
-
Thread
Bastelei identifizieren
man die Platine/den Bausatz kaufen? Ich habe die Schaltung mal angeschlossen und es laufen die 8 LEDs durch. Man kann die Geschwindigkeit verändern und an einem Drehschalter das Muster des "Lauflichts". Die anderen Schalter haben auf den ersten Blick keine Funktion. Die LED-Matrix mit 8x16 LEDs
Tim 🔆 schrieb im Beitrag #7486979: > Der Artikel war in Heft 8/77. Tatsache. ELO-typisch viel Platz verschwenden mit übergrossen Bildern.
-
Thread
Atmega328p und DS1307
Jonas N. schrieb im Beitrag #7483768: > Der Atmega328p läuft mit 8MHz über > den internen Quarz Und schon ist klar: Troll oder Vollidiot. Troll-Vermutung ist wohl wahrscheinlicher.
Jonas N. schrieb im Beitrag #7483768: > Der Atmega328p läuft mit 8MHz über > den internen Quarz hat intern kein Quarz! Jonas N. schrieb im Beitrag #7484200: > Hier einmal die gesetzten Fuses und der Schaltplan. warum schwindelst du? Quarz
-
Thread
AVR Timer/Counter Type E und Type F
Timerkonfigurationen ging mir schon bei den Klassik-AVRs gehörig auf den Sack. Ob ATtiny2313, ATtiny25, ATtiny261, ATmega8, ATmega2560, ATmega1284 usw., ständig mußte man die Programme umschreiben, wenn man den Typ wechseln wollte.
mir > schon bei den Klassik-AVRs gehörig auf den Sack. > Ob ATtiny2313, ATtiny25, ATtiny261, ATmega8, ATmega2560, ATmega1284 > usw., ständig mußte man die Programme umschreiben, wenn man den Typ > wechseln wollte. Ich kann mich ja täuschen, aber ging diese Entwicklung nicht einher mir der
-
Thread
AVR: "sleep disable" unnötig?
#7481557: > Ob es als selbstverständlich gilt, weiß ich nicht, aber das Datenblatt > z.B. des Atmega168 empfiehlt es: > > To avoid the MCU entering the sleep mode unless it is the programmer’s > purpose, it is recommended to write the sleep enable (SE) bit to one > just before the execution of
Datenblatt verankerte Behauptungen zu revidieren. Das habe ich z.B. beim zusätzlichen Timer3 des ATmega1284 erlebt. Das hat mehrere Revisionen gebraucht.
-
Thread
Adressierbare High Power RGBW LEDs per DMX512
aufschlüsseln des DMX Signals wäre als erstes mal die Überlegung das Ganze per IC oder zb sowas wie einen AtMega o.Ä. laufen zu lassen. Jede LED bzw. jeder Decoder muss am Ende ja auch adressierbar sein, um ihn im DMX Universum ansprechen zu können, zb über dip Schalter. Da je nur ein LED Modul angesteuert
des DMX Signals wäre als erstes mal die Überlegung > das Ganze per IC oder zb sowas wie einen AtMega Nimm einen Mikrocontroller, der einen UART hat und mindestens 4 PWM-Ausgänge DMX dekodieren ist nicht die größte Kunst. Hier z.B. http://www.hoelscher-hi.de/hendrik/wahl.htm gibt es dazu Material
-
Thread
(V) Diverses Bastelmaterial 2
Beide BEO4 zusammen: 40€ PC CPUs und Notebook Ram zusammen: 15€ mc68hc705c8cp DIP-40 Chips 5 Stück für 12€ VG
Da war eine PM für 8€ inkl. Versand. Habe ich gleich gelöscht. VG
-
Thread
Impulse zählen ohne EXTI, 20kHz 300kHz
... Und wenn ich ihn weiter ergänzen darf: kompatibel gibt es (neben 644 und 1284) auch noch ATmega164 und 324.
> Und wenn ich ihn weiter ergänzen darf: kompatibel gibt es (neben 644 und > 1284) auch noch ATmega164 und 324.
-
Thread
NF Pegelanzeige 2x10 LED ATmega8 Assembler
Ein kleines Beispiel ener NF-Pegelanzeige, zwei Kanäle, mit einem 1MHz getaktetem ATmega8, das Assemblerprogramm ist noch etwas optimierungsbedürftig. Besonderheit: Der momentane Pegel, logartithmische Darstellung, und der Spitzenwert wird längere Zeit dargestellt. Bernhard
-
Thread
Tasterentprellen - nur für Nerds? Gesperrt
es nicht gekonnt. Und nebenbei: Als ich neu angefangen hatte und C- bzw. AVR Programmierung (ATMega 8 war da noch der typische Bastler µC und Arduino noch nicht verfügbar) anhand des Wikis hier lernen wollte, musste ich auch feststellen: Hardware bis in kleinste - fast schon lächerlich detailliert
als Programmiersprache an sich angeht (Was sind zum Teufel den > diese Funktionen, Ganzzahlen, uint8 - wo sind eigentlich die > "Unterprogramme" - jetzt weiß ich das es diese Funktionen sind - wo sind > eigentlich all die Messwertewerte die am µC anliegen oder als 5V Pegel > ausgegeben im Programm
-
Thread
Sinus mit DAC725
Ich koennte dir das in einen niedlichen kleinen 8 beinigen PIC gegen "Entgelt" brogammieren. Der brauchte dann "nur" noch 3 SPI-DACs und wuerde sich dabei noch langweilen. Natuerlich mit 16 bit Aufloesung. Sind dir die Begriffe Binaerzaehler und
Der dritte Sinus ist die Differenz der beiden anderen. Ich habe das vor vielen Jahren mit einem ATmega32U4, einem SPI-Dual-DAC MCP4922 und einem vierfach R2R-Op TS914 gebaut. Leider finde ich auf die Schnelle die Schaltplan-Skizze nicht mehr. Sonderlich komplex war die Schaltung jedoch nicht. Grüßle
-
Thread
Liste von ICs usw. fürs Breadboard
Schieberegister: 74HC165 und 74HC595 A/D Wandler: MCP3208 USB-UART: MCP2221A AVR Mikrocontroller: 8 Pins: ATtiny 25, 45, 85 14 Pins: ATtiny 24, 44, 84, 441, 841 20 Pins: ATtiny 261, 461, 861 28 Pins: ATmega 48, 88, 168, 328 40 Pins: ATmega 164, 324, 644, 1284 Auf Vorrat habe ich davon
Steve van de Grens schrieb im Beitrag #7468973: > 8 Pins: ATtiny 25, 45, 85 > 14 Pins: ATtiny 24, 44, 84, 441, 841 > 20 Pins: ATtiny 261, 461, 861 > 28 Pins: ATmega 48, 88, 168, 328 > 40 Pins: ATmega 164, 324, 644, Warum denn diesen alten
-
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.