-
Artikel
Soft-PWM
sleep , ist der Jitter Null. Der nachfolgende Programmrumpf hat folgende Eigenschaften auf einem ATmega16 mit 16 MHz Quarzfrequenz: Binärcode- oder „Bit-Winkel“-Modulation (bit angle modulation, BAM, komischer Begriff, siehe unten), keine klassische PWM, mit dem Nachteil häufigerer Umladevorgänge an
einbringen. Eine 16-bit-lht sollte daher besser einem 16-Bit-Controller vorbehalten bleiben. Noch mehr LEDs. Bei einer exorbitant großen LED-Matrix (könnte man schon fast Bildschirm nennen) mit bspw. 100 Spalten und 30
-
Artikel
Batteriemonitor mit Dual Slope Wandler
der die Aufladungszeiten in Form von Zählerständen ermitteln kann. Dazu eignet sich am Besten der 16-Bit Timer1 des ATmega168. Er verfügt zudem über einen Capture-Betrieb, bei dem der Zählerstand hardwaremäßig über einen Flankenwechsel am ICP-Pin im ICR1-Register gespeichert werden kann. Der Timer1
gespeichert. Zeitmessung. Die Zeitmessung wurde, wie oben schon kurz erwähnt, mit dem Timer2 des ATmega168 realisiert. Initialisiert wird der Timer2 im CTC-Mode. Hier kann die Obergrenze durch das Register OCR2A festgelegt und so die Periode T der Überläufe variabel gestaltet werden. Es wurde hier der
-
Artikel
Sinuswechselrichter 600W
Primärwicklung befindet sich ebenfalls eine Isolierung aus mehreren Lagen Folie. Spannungsmessung. Der ATmega misst die Eingangsspannung und die Zwischenkreisspannung über entsprechende Spannungsteiler. Strommessung. Der ATmega misst den Eingangsstrom und den Gleichstrom im Zwischenkreis über Shunts im Masse-Zweig
STL-Klassen!), bleibt der erzeugte Code sehr kompakt - aktuell findet das Programm immer noch in einen ATmega88 Platz! Als Entwicklungsumgebung kommt Atmel Studio zum Einsatz. Timer0 erzeugt eine 8-Bit PWM für die Eingangsbrücke. Timer1 ist für die 16-Bit Sinus-PWM der Ausgangs-Brücke zuständig. Die Zwischenkreisspannung
-
Artikel
Bitmanipulation
sind als Bitnummer definiert. Das ist wichtig, wenn man Register von großen AVRs manipuliert, z. B. ATmega48. Hier muss aus der Bitnummer über eine Schiebeoperation erst das Bitmuster gemacht werden. ARMv6-M (Cortex-M0). Der minimalistische Instruction-Set der ARMv6M-Architektur, auf welcher der Cortex-M0
Forumsbeitrag: Bits für ein Schieberegister zusammenstellen, TLC5941 Forumsbeitrag: TLC5947 und ATmega16 Bitmanipulation Forumsbeitrag: Bitreihenfolge ändern Forumsbeitrag: Übersichtliche Abfrage von vielen Pins Forumsbeitrag: Verschiedene Möglichkeiten der Bitmanipulation bei IO-Registern Weblinks.
-
Artikel
Diskussion:AVR Assembler - Vergleichstabelle
Ich habe gerade eben ge�ndert, dass der ATmega8 doch JMP und CALL unterst�tzt, jetzt allerdings festgestellt, dass es da widerspr�chliche Angaben gibt. Laut Hilfedatei im AVR Studio geh�ren diese Befehle zum Instruction set, laut Datenblatt des ATmega8 jedoch nicht. Was ist nun richtig? --Oxygene 13:16, 3. Nov 2004 (CET) Im Zweifel hat immer das Datenblatt recht. JMP und CALL w�rden beim Mega8 auch keinen Sinn machen da +-2k (von rjmp und rcall)
-
Artikel
Atmega32 Experimentierplatine
von Robin Tönniges Hier stelle ich meine selbstentwickelte ATmega32-Experimentierplatine vor. Statt dem ATmega32 kann natürlich auch ein anderer Pin-kompatibler Typ verwendet werden. Features. Eingangsspannung von 7-20V DC 2x16 Zeichen Display an PORTA Display kann
Bilder der fertig bestückten Platine. Die Platine von vorne. Die Platine von hinten. Bezugsquellen. 2x16 Zeichen Display (Pollin) Die restlichen Teile (Reichelt)
-
Artikel
Liste der Wecker- und Uhrenprojekte
auch: Suche in µc.net nach Wecker www. MP3-Wecker GenuhR: DCF Wecker/Timer mit µC 80C31 Weckomat: ATmega32 Funkwecker mit OLED Projekt: Tischuhr Projekt: Multifunktionsuhr Projekt: Wecker Funkwecker mosfetkiller.de Mein Nixie Uhren Projekt Stefan Knellers Nixie Uhr Energieeffizienter Uhrenwecker mit Leuchtanzeige 0,25 W ohne Trafo/mit Kondensatornetzteil Mit LC-Touchdisplay DCF77-Uhr mit PIC 16F84 DCF77-Uhr mit Atmega16 und RS232 Interface CPLD statt Mikrocontroller Zeitschriften. Wecker mit PIC
-
Artikel
Temperatursensor
hier. ADT7310 / ADT7xxx-Familie von AD. Der ADT7310 von Analog Devices besitzt eine Auflösung von 16 Bit und eine Genauigkeit von ±0.5°C im Bereich von −40°C bis +105°C. Vorteile: Ansteuerung per SPI ADT73xx oder I2C ADT74xx keine Kalibrierung notwendig hohe Auflösung und Genauigkeit: 16 Bit ADT7x02
G-NICO-018 von Measurement Specialties Inc.. sehr hohe Auflösung und Genauigkeit: 0,10° @ -5°C … +50°C 16/24 Bit Gehäuse 16-VQFN Exposed Pad SPI / I2C über Pin auswählbar Preis: 8,60 (4,40 @1k) bei Digikey kleiner Nachteil: der Sensor liefert den ADC-Wert und die Kompensationskonstanten (5 Polynom-Koeffizienten
-
Artikel
Diskussion:AVR-GCC-Tutorial/Die Timer und Zähler des AVR
benutzt. Das ist der 8-Bit Timer. Das passt schon zum Anschnittstitel. Wieso denkst du, dass das ein 16-bit Timer ist? Vielleicht kann man dann eine Beschreibung einfügen, so dass keiner auf die gleiche Idee kommt. Stefan 19:44, 24. Jan. 2010 (UTC) Sorry für die späte Antwort! int main(void) { // Timer
gestolpert. Ich bin davon ausgegangen, das die Buchstaben A & B hier auf den jeweiligen Teil eines 16 Bit Registers verweisen. 11:20, 03. Feb. Fehler in Formel für CTC-Frequenzberechnung?. Hallo, laut aktuellen Datenblatt (s.77) für z.b. den Atmega16a fehlt ein Faktor 2 in der Formel. Korrekt müsste
-
Artikel
AVR 6502 Emulator
Cornell. Commodore VC20-Emulator (6502, VIC, Display, Tastatur) als AVR-Studio Assembler-Projekt. ATMega based home computer - ATMega162 emuliert 6502 mit SCART Video Ausgang, PS2 Tastatur und SD Kartenslot. AVR 65C02 Emulator - ATMega1284 emuliert 65C02 mit on Chip RAM und ROM, erlaubt direkten Zugriff der emulierten CPU auf die AVR IO-Register. Modular 6502 SBC with emulated CPU - ATMega16 emuliert wahlweise 6502 oder 65C02 mit variabler IO-Konfiguration. Projekt: 6502-Emulations-Bibliothek. Ein Ziel des Projektes soll es sein, eine universelle 6502-Emulations-Bibliothek für AVR-Mikrocontroller
-
Artikel
Einstieg in die Mikrocontrollertechnik mit AVR ATmega
Spannungsstabilisierung lassen Sie stets aufgebaut. Der Mikrocontroller. Zum Einsatz kommt ein AVR ATmega8-16 DIP von Atmel. Das Datenblatt ist englischsprachig (wie bei fast allen Datenblättern, da müssen Sie einfach mit leben) und als PDF downoladbar. Die AVRs haben den Vorteil, daß sie einfach zu programmieren
Programmierung des Prozessors. C3 ist ein Abblockkondensator und muß möglichst dicht an Pin 7 und 8 des ATmega platziert werden. Für die ersten einfachen Experimente steht ein Taster und eine LED zur Verfügung. Der Taster benötigt keinen Pull-Up Widerstand, da der ATmega intern einen aktivieren kann. Der Programmieradapter
-
Artikel
ZigBeeModule
ZMN2400 | Cirronet | 0 | -92 | 30 | k.A. | k.A. | ATMega | | Chip: CC2420 ZMN2340 | Cirronet | 18 | -95 | 130 | k.A. | | 8051 uC | chip+other | Chip: CC2430, Leistungsverstärker ATZB-24-A2 | Atmel (vormals Meshnetics) | 3 | -101 | 19 | 84 | 3dB | ATMega
Balun) | wie AT86RF231 aber 868/910 MHz, Atmel-Stack (ZigBee oder MAC), Opensource-Software µracoli ATmega128RFA1 | Atmel | 3 | -100 | 14 | 81 | 3dB | | symmetrisch 100 Ω (oder Balun) | SOC, etwa AT86RF231 + ATmega1281, Atmel-Stack (ZigBee oder MAC), Opensource-Software µracoli TI CC2420 | Texas Instruments
-
Artikel
Thermometer
Temperaturwiderstand auf einer LED-Skala anzeigt. Je eine LED-Spalte entspricht 2°C. Controller ist der AVR ATMega16. Info. Eigenschaft Wert Spannung 9-35V (Vorwiderstände der LEDs selber berechnen) Messbereich -10°C...+38°C Strom (alle LEDs an) 0,6A @12V Controller ATMEGA16 Sprache C Schaltplan und Layout. Der
-
Artikel
Sleep Mode
wenngleich auch die Mikrocontroller von heute sehr wenig brauchen. Bei 1 MHz und 3,3 V braucht der ATmega ca. 1,2 mA; zu finden im Datenblatt unter "ATmega8 Typical Characteristics". Idle Mode. Hier kann zum ersten mal gespart werden. Wenn nichts berechnet werden soll, der Timer, UART, ADC etc. aber arbeiten
Oszillatoren gestoppt sind, funktionieren nur noch die asynchronen Module. Bei neueren AVR-Typen (z. B. ATMega88/ATMega644) kann Timer2 wahlweise auch mit dem internen Oszillator weiterlaufen. In dem Fall braucht es keinen externen Uhrenquarz. Stand By. Hier werden alle Takte auf dem IC angehalten. ABER! Der
-
Artikel
AVR-Tutorial: PWM
Pausen-Verhältnis zu erzeugen, als eine Spannung zu variieren. PWM und der Timer. Der Timer 1 des ATmega8 unterstützt direkt das Erzeugen von PWM. Beginnt der Timer beispielsweise bei 0 zu zählen, so schaltet er gleichzeitig einen Ausgangspin ein. Erreicht der Zähler einen bestimmten Wert X, so schaltet
Problem, hier geht es aber darum, zu demonstrieren, wie PWM funktioniert. Hinweis: Wie überall im ATmega8 ist darauf zu achten, dass beim Beschreiben eines 16-Bit-Registers zuerst das High-Byte und dann das Low-Byte geschrieben wird. Wird dieses Programm laufen gelassen, dann ergibt sich eine blinkende
-
Artikel
Forth
min. 13K words FLASH and 32Kbytes external RAM) avrforth von Daniel Kruszyna amforth Forth für AVR Atmega µC (req: nur der Mikrocontroller) Forth-Computer mit ATMega 32 und Videoausgabe - Forumsbeitrag von Christian Berger Vierte Dimension Sonderheft AVR, 2007 Neues von amForth (Erich Waelde). Video und Folien von der Forth Tagung 2011 in Goslar eForth328, eForth für ATMega328 von Dr.C.H. Ting v2.21 mit Dokumentation, 2011 AVR und PIC: FlashForth - ein Forth für PIC18, PIC24/30/33, AVR Atmega Arduni Yún & Raspberry Pi 4th - ein Forth-Compiler für viele Systeme MSP430
-
Artikel
UV-Belichter-Timer mit AVR
Platinen entworfen wurde, aber auch für andere Zwecke verwendet werden kann. Als Controller kommt ein ATmega48 zum Einsatz, der aber selbstverständlich durch pinkompatible Typen (z. B. ATmega328P) ersetzt werden kann; die Firmware müsste dann ggf. leicht angepasst werden. Begründung einiger Design-Entscheidungen
Box4U Reichelt C7 TAJB106K020RNJ Kyocera AVX Reichelt C9 ECQUAAF104M Panasonic Reichelt C10…C12 (1 mF, 16 V, RM 5) (?) Reichelt D5…D8 SB140 Diotec Reichelt D9 LC-204VL Rohm Pollin F1 Feinsicherung 5×20 mm, 5 A, mittelträge Eska Pollin H1 SK 13/35 AL-220 Fischer Reichelt J1, J3 CTB2202/2 Camdenboss Reichelt
-
Artikel
Und noch 'ne Nixie-Uhr
die Anschlüsse der Bauteile zu schreiben. Der Prozessor. Herzstück der Uhr ist der Mikrocontroller ATMega1284P von Atmel mit 128 kB FLASH, 4 kB EEPROM und 16 kB RAM, der sollte hier im Forum bekannt sein. Für seinen Betrieb wird nur 5 Volt als Betriebsspannung benötigt. Kein Quarz und keine externe Reset-Schaltung
Prozessor-Platine ohne angesteckte Module einschalten und mit AtmelStudio die Hex-Datei „nixie-clock-atmega1284.hex“ flashen. Im Menü „Device Programming“ von AtmelStudio mit Einstellungen wie im Bild unten, also „AvrDragon“ unter „Tool“, „Atmega1284P“ unter „Device“, den Button „Apply“ Klicken. Dann den
-
Artikel
Pony-Prog Tutorial
Zeitkalibrierung durchführen: Im Ponyprog-Menü : [Setup] [Calibration] Anwahl des Mikroporzessortyps AVR und ATmega8535 Laden der HEX-Datei C:\home\cc\qq\avr\qqtslcd.hex Verbinde Programmieradapter mit Mikroprozessor Spannung an Mikroprozessor ein (5V, versorgt MAX238 ) Wähle an AVR und ATmega8535 Damit lassen sich die Konfigurationsbits auslesen. Und damit lässt sich ATmega8535, ATmega32 programmieren. Hinweis: Der MAX238 invertiert die RS232-Signale (das wird für RS232-Verbindungen so gebraucht.) Deswegen die Invertierungsbits im Ponyprog entsprechend setzen. Das muss
-
Artikel
Mikrocontroller Vergleich
. dsPIC: wie PIC24, mit zusätzlichen DSP Befehlen. R8C: 16-Bit 2-Adress CISC-Architektur. Einheitlicher 64KB Adressraum für RAM und ROM. Gute Zielmaschine für C-Compiler. M16C: Unter Bezeichnung M16C existieren zwei verschiedene inkompatible Architekturen. Die
Kit für ca. 10 Euro Energy Micro Starter Kit ab ca. 55 Euro EFM32 unterstützt nur SWD. AVR: für ATmega16/162/32/128 ist JTAG günstig verfügbar (Olimex, Erostech) bzw. einfach zu bauen (Evertool). ATmegas ab 2005/2006 mit JTAG sind zu dieser Billigvariante inkompatibel. Für diese und den debugWIRE der
-
Artikel
DCF77-Funkwecker mit AVR
Nach einer kurzen Überschlagsrechnung betreffend der benötigten Portpins fiel die Wahl auf einen ATmega8 zur Steuerung der ganzen Sache. Getaktet wird dieser durch einen 8 MHz Quarzoszillator. Die restlichen benötigten Bauteile waren die folgenden: Hauptkomponenten. DCF77-Empfänger. Hier habe ich einen
Beiträge zum Thema DCF77 Forumsbeitrag: Funkwecker von Norma Weckomat: DCF77 Funkweckerprojekt mit ATmega32 und Punktmatrix-OLED DCF77 Routine PIC-Projekte.de funkweckertest.de: Online Vergleiche von Funkweckern und Uhren
-
Artikel
AVR Arithmetik/Sinus und Cosinus (Lineare Interpolation)
CALL+RET) RAM (statisch) 0 Bytes RAM (Stack) 2 3 Bytes Flash 300 Bytes 318 Bytes (avr-gcc 4.3.3 für ATmega88) Die AVR-Implementierung der linearen Interpolation von Sinus und Cosinus braucht mit 300 Bytes etwas mehr Platz als CORDIC, arbeitet dafür aber deutlich schneller. Das Eingabeformat ist allerdings
ist die Anzahl der Werte aufgetragen, die mit dem entsprechenden absoluten Fehler behaftet sind. fmac16_8 in C99. Auf Anfrage hier noch eine C99-Version der Funktion fmac16_8 , die oben in Inline Assembler steht: Siehe auch. AVR-CORDIC Sinus und Cosinus mit CORDIC Anmerkungen.
-
Artikel
AVR-Tutorial: Power Management
Controller ab, dieser Artikel nimmt jedoch (abweichend vom restlichen AVR-Tutorial) Bezug auf den ATmega32 (Datenblatt). Um einen der verfügbaren Sleep-Modi des ATmega32 zu betreten, müssen folgende Schritte ausgeführt werden: das SE-Bit im MCUCR-Register wird auf 1 gesetzt, die SMx-Bits im MCUCR-Register
durchgeführt werden. Quellen. Datenblatt des ATmega32 Literatur. Per Andreas Gulbrandsen (2019): AVR Low-power Techniques, Application Note AN2515. ----
-
Artikel
Avr Webserver mit Wiznet WIZ810MJ
Hardware. Atmega128 32kB SRAM WIZ810MJ Ethernetmodul FT245R CAN galvanisch getrennt SD Karte RS232 Software SPI Alle unbelegten Pins sind auf Stiftleisten geführt und können für freie Anwendungen verwendet werden,
werden. Ansonsten kommt es zu einem Kurzschluss der Eingangsspannung. Da sich unter dem Quarz für den Atmega128 mehrere Durchkontaktierungen befinden, muss der Quartz isoliert werden. Es gibt dafür spezielle Quarzisolierscheibchen. Ansonsten tut es auch ein Stück Kunststofffolie (zB ein Heftumschlag). Software
-
Artikel
Steuerung und Regelung eines Raums mit dem AVR-Webserver
und Peripherie. Elemente des Systems. Basisplatine. Auf der Basisplatine ist der Mikrocontroller, ATMega644, und dessen Beschaltung untergebracht. Es können jedoch auch, falls man das System für andere Zwecke nutzen möchte, alle pinkompatiblen Modelle, wie zum Beispiel der ATMega32, eingesetzt werden. Für den Einsatz als Raumregelungssystem mit managebarer Weboberfläche ist der ATMega644 aufgrund des größeren Speichers jedoch unabdingbar. Es sollte darauf geachtet werden, dass kleinere Mikrocontrollertypen nur mit einer geringeren Frequenz als 20Mhz betrieben werden können. Module
-
Artikel
Digitalfilter mit ATmega
Auch mit 8-Bit-Mikrocontrollern der ATmega-Reihe ist es möglich, einfache digitale Signalverarbeitungen auszuführen. Mittels kostenloser Mathematiksoftware ist die Berechnung eigener Filter möglich. Viele von uns haben schon analoge Filterschaltungen
Teilfilter-Koeffizienten, von links nach rechts b0, b1, b2, a0 (wieder=1), a1 und a2. Quelltext des ATmega48-Programms. basierend auf AVR223, zerlegt in 3 SOS-Teilfilter, mit Überlaufbegrenzung
-
Artikel
Wanderkiste Schöneberg
Martin Schwaikert (sirnails) 19.06.2013 Klaus R. (klaus2) 5 x 10µF / 35V Elkos 1 x PGA2311 7 x 100µF / 16V 5 x 470µF / 16V 2 x Siemens Gasableiter 2 x 25MHz Quarz 2 x 24,576 MHz Quarz 4 x SMD Gleichrichter 5 x 1N4148 4 x Schiebeschalter 4 x Relais 6V/230V 6A 2 x IRFP140 2 x IRFP9140 2 x Batteriehalter 5
SFH203/485; 20cm gelbe SMD-LEDs 10x HCPL2531; 2x ULN2804A; 3x ADC0804LCN; 7x NE5532P; 6x TL082ACP; 2x ATmega32-16PU (aus NET-IO-Bausatz, nie genutzt); Transistoren THT je ~30x BC547/557, 10x BD649/650, 10x BD439; Dioden THT 12x 1N5407, 20x Z-Diode 5V1, ~80x 1N4148; 7-Segment 8x HD1131 O, 8x FND567; Mehrgang-Spindeltrimmer
-
Artikel
AVR 16-Bit-Register
Allgemeines. Speziell bei den 16-Bit-Timern und auch beim ADC ist es bei allen Zugriffen auf Datenregister erforderlich, dass diese Daten synchronisiert sind. Wenn z. B. bei einem 16-Bit-Timer das High-Byte des Zählregisters gelesen
auf diese 16-Bit-Register zu vereinfachen, hat ATMEL in der Application Note AVR072: Accessing 16-bit I/O Registers folgende Makros zur freien Verwendung vorgeschlagen: AVR-Assembler-Makros. Anwendung IAR-C-Makros
-
Artikel
LED cube
komplett mit space invaders und ohne GEMA-Zensur): (1.0, GEMA-Zensiert) Randdaten. 512 blaue LEDs ATMega32 sehr schneller Code umfangreiche Animationen ca. 1/2 ASCII Support Todo (eventuell auch erst beim Nachfolger). Musiksteuerung SD Card + Simple PC-Software für Animationen Benötigte Teile. Ich habe
R11-73: Vorwiderstände, so bemessen, dass jede LED mit 8,75mA läuft U1: 7805 U2-U9: 74HC573 IC1: ATMega32 X1: 16MHz Die 8,75mA sind notwendig, weil der 74HC573 nur max. 70mA auf allen Ausgängen zusammen sourcen kann. Bei einer superhellen LED reicht das aber aus. Da dieser Punkt immer wieder unklar ist
-
Artikel
Pollin ATMEL Evaluations-Board
TWI-EEPROM der 24Cxx-Serie über den I2C-Bus. (Achtung Bei Verwendung der großen Fassung für z. B. den ATmega16 die Jumper 9 und 10 entfernen! Sonst werden die Pins 22/23 an die Pins 35/36 angeschlossen.) Quarze, für jede AVR-Fassung einen. Hier Fassungen einzubauen ist keine schlechte Idee. Der mitgelieferte
als angegeben. Anleitung & Beispiele gehen von 8 Mhz Takt aus und zeigen entsprechende AVR_Fuses. Wo 16-Mhz-Quarze verbaut sind, muß CLKOPT genau umgekehrt wie im PDF gesetzt werden. Andernfalls fehlerhaftes Verhalten, etwa unmotivierte Sprünge des Programmzählers (beobachtet mit Originalbeschaltung R
-
Artikel
IR-LCD
habe ich aber noch eine kleine Hilfedatei geschrieben. Das Programm scannt automatisch die ersten 16 COM-Ports, ob sich daran IR-LCD befindet. Der Port wird gespeichert, so dass beim nächsten mal nicht mehr gescannt werden muss. Man kann den Port aber auch manuell auswählen. In einem Fenster werden
weiteres Möglich, es sind nur ein paar kleine Änderungen erforderlich. Das Programm ist größer als 16k und passt deshalb nicht mehr in einen ATmega168. Dieser muss gegen einen ATmega328 getauscht werden. Um Eingaben tätigen zu können war eine entsprechende Eingabeeinheit erforderlich. Der verwendete
-
Artikel
AVR-Tutorial: Speicher
unbegrenzt unbegrenzt flüchtig nein nein ja Größe beim ATtiny2313 2 KB 128 Byte 128 Byte Größe beim ATmega8 8 KB 512 Byte 1 KB Größe beim ATmega32 32 KB 1 KB 2 KB Größe beim ATmega2560 256 KB 4 KB 8 KB Flash-ROM. Das Flash-ROM der AVRs dient als Programmspeicher. Über den Programmieradapter werden die kompilierten
gelesen werden soll in das IO-Registerpaar EEARH/EEARL (EEPROM Address Register) geladen. Da der ATmega8 mehr als 256 Byte EEPROM hat, passt die Adresse nicht in ein einziges 8-Bit-Register, sondern muss in zwei Register aufgeteilt werden: EEARH bekommt das obere Byte der Adresse, EEARL das untere Byte
-
Artikel
Versenden von SMS mittels Mobiltelefon
mit dem Mobilfunkgerät aufbauen. Die aktuelle Software passt nicht mehr in einen ATmega8. Ich arbeite aktuell mit einem ATmega32. Mit ein paar Anpassungen sollte es aber problemlos möglich sein, den Code in der Größe stark zu reduzieren. So können z.B. die Bibliotheken zur Ansteuerung
, ds75lv.c und ds75lv.h). Alternativ dazu wäre auch die Verwendung der pinkompatiblen Controller ATmega168 bzw. ATmega328 denkbar. Diese haben 16KiB bzw. 32KiB Flash und sind unwesentlich teurer als der ATmega8 (siehe MyAVR). Software. Allgemein wird bei dem Softwarekonzept eine Mischung aus Interrupt
-
Artikel
Diskussion:Beispiel Makefile
Lesbarkeit absolut nicht gut tut. Als (fast) gutes Beispiel will ich mal das Makefile hieraus anführen: Mit 16 Zeilen kurz und knackig, sodass man sofort sieht, was welcher Teil macht. Leider ist es etwas zu knackig, sodass man als Anfänger nicht weiterkommt, wenn man weitere .c Dateien includen will. Nachdem
Datei (lcd-routines.c) includieren, weiß aber nicht, wie ich das anstellen mus... TARGET=main MCU=atmega16 F_CPU=16000000 OPT=s CFLAGS =-g -mmcu=${MCU} -Wall -Wstrict-prototypes -O${OPT} -mcall-prologues -save-temps -fno-common CFLAGS += -DF_CPU=${F_CPU}UL Workaround fuer "/usr/libexec/gcc/avr/ld: cannot
-
Artikel
AVR Arithmetik
MSB: M ost S ignificant B yte, höchstwertiges Byte Vergleich. 16 Bit. 32 Bit. Addition. 16 Bit + 16 Bit. 32 Bit + 32 Bit. Subtraktion. 16 Bit - 16 Bit. 32 Bit - 32 Bit. Division. 32 Bit / 32 Bit. Ergebnis gerundet, und mit Restbildung. Eine Version, die je nach konkreten
CALL+RET) sqrt32.S (sqrt32_floor) avr-gcc-Implementierung (16 Bit). Falls eine MUL-Instruktion vorhanden ist, benötigt eine 16-Bit-Implementierung der Quadratwurzel nur eine handvoll Instruktionen und kann einigermaßen bequem in Inline-Assembler geschrieben werden
-
Artikel
DDS
Universell programmierbarer Funktionsgenerator HF-Meßplatz: Einfache Schaltung: 6 Drehschalter - PIC16F84 - AD9833 Berechnung des Frequency Tuning Words Praktische Umsetzung DDS Sinuserzeugung verbesserte DDS, basierend auf Jesper DDS, mit verschiedenen Modulationsarten. Signalgenerator, Grenzen eines Atmega8 SPWM auf Atmega8, bitte um Feedback hinsichtlich Optimierung DDS mit AM Modulation Grundlagen Sinus mit DDS Nicht-Sinus DDS Sinustabelle mit 2 Geschwindigkeiten DDS AD9851 Synchronisierung Zwei 45kHz-Signale
-
Artikel
Sparmatic Heizungsthermostate
"Thermy") - ca. €15 zeitweise auch in Lebensmittel-Ketten, wie Lidl, NP... Hardware. Controller: ATmega169(P)V, 16kBytes Flash, 1kByte SRAM, 512Byte EEPROM Display: LCD mit 4x 14-Segmentanzeige, Bargraph und Symbolen Uhrenquarz 32768Hz Tasten und/oder Drehgeber Motor und Getriebe zum Stellen des Heizkörperventils
Tasten + Drehgeber 3 Tasten + Drehgeber Gehäuse Stifte verschw. Rastnasen Stifte verschw. Controller ATmega169PA ATmega169PV ATmega169PA ATmega169PA Schaltplan Threads Fotos, Fotos Firmware Für Informationen in diesem Thread kann man die genannten Thermostate anhand der Beschaltung des Controllers in zwei
-
Artikel
Diskussion:Soft-PWM
auf Atmega128. Guten Tag, ich finde es wirklich toll, daß sich jemand mal den Kopf zerbricht und so eine leistungsstarke Software PWM programmiert. Nur wurde diese Software mal auf anderen µC getestet als dem Atmega32? Ich habe es jetzt auf einem 128er und nem 64er Versucht. Bei beiden zerbröselt es einem die PWM, wenn man die Kanäle mit bestimmten Werten fütter, wie z.B. 200,0,100,30,0 usw. Da kommt dann nichts
-
Artikel
Launchprog
trotzdem. Rick Kimballs Soft-UART-Software besaß eine Möglichkeit, an P1.0 ACLK(32kHz) und an P1.4 SMCLK(16MHz) auszugeben. Man konnte so die korrekte Funktion des Uhrenquarzes und der Synchronisationsroutine mit den 16MHz überprüfen. Das musste nach einem ersten Funktionstest rausfliegen, da sonst zuwenig
Konfigurationen. Folgende Prozessoren sind mit Launchprog v1.2 + AVRDUDE getestet worden: Target-AVR ATmega16 ATmega8 ATtiny2313A ATtiny13A AT90USB162[2] Avrdude Version 5.11 5.8 5.8 5.11 5.11 Flash Prog. Launchprog [1] Verify Flash Launchprog [1] Verify Flash USBasp - EEPROM Prog. Launchprog [1] - Verify
-
Artikel
WS2812 Ansteuerung
ist. Beispiele. Ansteuerung mit fastPWM auf AVR. Geschrieben in Ansi-C. Unterstützt ATtiny 45/85, ATmega 48/88/168/328, ATxmega xA3, xA3U ab 16(?) Mhz. Forenthread Die mächtigere Peripherie auf größeren und moderneren Mikrocontrollern, wie DMA und komplexe Timer, erlaubt teilweise die Ansteurung des WS2812
5.3333MHz (16/3) laufen. Bitbanging Versionen gibt es ab 16MHz. Für PIC12, PIC16, PIC18 und PIC24 gibt es Code in ASM und C. Forenthread Ansteuerung mit PIC16F1509 mit CLC. Vorteil: Nicht 100% CPU Auslastung während
-
Artikel
AVR CAN Baudraten Berechnung
mal kurz die Berechnung der CAN Baudrate erklären, da ich mich gerade damit beschäftigt habe (AVR ATMega16M1). Folgende Ausgangswerte: 8 MHz Systemtakt 16 kbps gewünschte CAN Baudrate (kleinst möglichster Wert des Highspeed Tranceiver MCP2551) Zeitquanten 25 (muss immer zw. 8-25 sein) und besteht aus
verlassen, da die Zeitquanten die Bitlänge bestimmen. Es gibt also noch viel mehr Möglichkeiten auf 16 kbps zu kommen. Systemtakt 8.000.000 / 2 / 25 = 160.000 Taktvorteiler = 160.000 / 16.000 = 10 in .asm würde man die Register dann so beschreiben ldi temp, (0<<BRP5)|(0<<BRP4)|(1<<BRP3)|(0<<BRP2)|(0<<
-
Artikel
Wake-Up Light
Wochentage begrenzt werden = Hardware = Prozessor. Schema. Beschreibung. Als Prozessor wird ein Atmega88 verwendet. Dieser hat gegenüber dem Atmega8 zwei wesentliche Vorteile: Neuerer Generation daher pro Pin mehr Funktionen z. B. PinChangeInterrupt und eine Debugschnittstelle (DebugWire) damit man
/aus geschaltet werden. Ansteuerung. Schema. Beschreibung. Als Display wird ein EA DOGM162 mit 2 x 16 Zeichen verwendet. Um nur wenige Prozessorpins zu belegen wird das LCD in SPI Modus angesteuert. Obwohl das LCD an den Hardware SPI-Pins angeschlossen ist wird eine Softwaremässige Übertragung verwendet
-
Artikel
ZAtmel: ein minimalistisches Z80-System
Der ZAtmel ist ein minimalistisches Z80 System und besteht eigentlich nur aus 2 Schaltkreisen. Z80 ATmega1284P Der Z80 wird mit 2,5 Mhz getaktet. Es stehen 48 kByte ROM und 16 kByte RAM zur Verfügung. Als E/A gibt es eine 'kleine' SIO. Darüber kann über ein Terminal auf die Z80-Software zugegriffen werden
gestartet: Der Schaltplan V1.0: V1.1 vom 6.12.2014: Resetlogik entfernt, dass übernimmt jetzt der ATMega. Jetzt sind es tatsächlich nur noch 2 Schaltkreise :) Der Schaltplan V1.1:
-
Artikel
RF SOAP
RF SOAP ist ein universelles mobiles USB-RFM12 Modul mit AVR ATmega88, FT232, RFM12, LiPo Akku und Ladeelektronik. Ausstattung. Abmessung der Leiterplatte: 52 x 28 mm, geeignet zum Einbau in dieses Gehäuse AVR ATmega88 Lithiumpolymer-Akku (230 mAh) mit Lade-IC (MCP73812
zu Stiftleiste ADC6 RSSI I TP1, kann mit dem RSSI-Pad auf dem RFM12 verbunden werden PD0/RXD/PCINT16 RXD I Dateneingang serielle Schnittstelle PD1/TXD/PCINT17 TXD O Datenausgang serielle Schnittstelle PD2 CBUS3 I CBUS3 vom FT232 (Standard: #PWREN) PD3/INT1/PCINT19 SW2 I Kurzhubtaster S2 PD4 LED1 O LED1
-
Artikel
RFM12
bei denen man den seriellen Dateneingang mit Pin-Change-Interrupt belegen kann (also ATtiny oder ATmega88, nicht aber ATmega8) und so aufwecken kann. Beim RFM12B ist die Möglichkeit ausführlich dokumentiert, das Senderegister fortwährend mit Bytes zu füllen (ohne das Kommandopräfix 0xB8 und weitere 8
MHz] F berechnen ( f in MHz) ISM-Bereich [MHz] 315 rowspan=2| 1 31 310,24 319,7575 rowspan=2|2,5 314,16 310 + F/400 (f - 310) * 400 (beim RFM12B nicht vorhanden) 433 rowspan=2| 43 430,24 439,7575 434,16 430 + F/400 (f - 430) * 400 433,05 .. 434,79 (Europa, BW = 1,74) 868 2 860,48 879,515 5 868,32 860 +
-
Artikel
DIY Lernfähige Fernbedienung mit IRMP
LED 3mm D2 LED_grün LED 3mm grün 2mA D3 LED_gelb LED 3mm gelb 2mA D4 LED_rot LED 3mm rot 2mA IC1 ATMEGA168 DIL28S IC2 TSOP1736 TSOP17.. K1 K1X04 1X04 K4 ISP Wannenstecker 10 stehend Q1 16MHz HC49/U R1 4,7K 0207 R2 33 0207 R3 100 0207 R4 10K 0207 R5, R6, R7 1,2K 0207 S1, S2, S3, S4, S5, S6 Drucktaster
Taktfrequenz des AVR µCs sollte mindestens 8 MHz betragen. Das Projekt ist eingestellt auf einen ATMega168 mit 8 MHz. Es sind im Standard nicht alle Fernbedienungsprotokolle freigeschaltet, weitere müssen in irmpconfig.h und irsndconfig.h zum Empfangen und Senden aktiviert werden. Wie das geht, ist im
-
Artikel
AVR Arithmetik/Sinus und Cosinus (CORDIC)
Cosinus effizient implementieren lassen. Dieser Artikel beschreibt eine CORDIC-Implementierung für 16-Bit Werte auf AVR. Auf den eigentlichen Algorithmus wird in diesem Artikel nicht eingegangen. Für weiterführende Informationen siehe die Weblinks. Die vorliegende Implementierung hat eine Optimierung
bei 7 Inkrementen bzw. 0.0002, was einer effektiven Auflösung von 12 Bits entspricht. Mehr ist bei 16 Iterationsschritten auf 16-Bit Werte auch nicht zu erwarten, da in jedem Schritt Fehlerfortpflanzung und Rundung stattfinden. Die untenstehenden Diagramme zeigen die Verteilungen der absoluten Fehler
-
Artikel
DB101
ausgeliefert. Über die Pins PE6 und PE7 kann die Hardware-Revision (Display-Typ) ausgelesen werden. ATmega1281V (Butterfly: ATmega169P) Piezo-Lautsprecher 16 Megabit Data-Flash AT45DB161D-SU (Butterfly: 4 Megabit AT45DB041B-SC-2.5) 32,768kHz Quarz 7,37 MHz Keramik-Resonator (Butterfly: keinen) Betriebsspannung
-
Artikel
LED-Fading
Typ ATmega32 entwickelt und getestet worden. Aber es ist leicht auf jeden AVR portierbar, welcher eine PWM zur Verfügung hat. Der AVR muss mit etwa 8 MHz getaktet werden, egal ob mit internem Oszillator oder
- Max=255, Steps=4, Factor=4 pwmtable_8B - Max=255, Steps=8, Factor=2 pwmtable_8C - Max=255, Steps=16, Factor=1.435 pwmtable_8D - Max=255, Steps=32, Factor=1.21 pwmtable_10 - Max=1023, Steps=64, Factor=1.118 pwmtable_16 - Max=65535, Steps=256, Factor=1.04427 Anmerkung 1: Dies ist nur ein Reverse-Engineering
-
Artikel
AVR-Tutorial: Mehrfachverzweigung
vorbereitet werden. Dazu wird die Adresse der Sprungtabelle in das Z-Register geladen, welches ein 16-Bit-Register ist und gleichbedeutend mit r30 und r31. Danach muss der Index addiert werden, dies ist eine 16-Bit-Addition. Zu guter Letzt wird der indirekte Sprung in die Sprungtabelle ausgeführt. In
call und jmp , dort ist die Adresse als 22- bzw. 16-Bit-Zahl kodiert, deshalb brauchen diese Befehle auch 2 Worte Programmspeicher. Der Befehl lpm dient zum Laden einzelner Bytes aus dem Programmspeicher. Das ist vor allem für Tabellen mit konstanten