-
Artikel
C ohne Makefile
Funktionsweise an einer Beispiel-Quellcodedatei gezeigt werden (hier für AVR-Mikrocontroller): /* M=atmega328p; F=${0:0:-2}; rm -f "$F".hex; avr-gcc -mmcu=$M -Os \ -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums \ -Wall -Wstrict-prototypes -std=gnu99 -g "$F".c -o "$F".elf && \ avr-objcopy
-
Artikel
AVR 16-Bit-Register
zu machen, hat Atmel die Reihenfolge dafür zwischenzeitlich geändert: Bei klassischen AVRs (z.B. ATmega328) muss zuerst das High-Byte, dann das Low-Byte geschrieben werden. Bei einigen neueren AVRs (z.B. ATtiny 0-Series) muss auch beim Schreibzugriff erst das Low-Byte, dann das High-Byte geschrieben
-
Artikel
UART auf USB
Leistung: getestet habe ich die Kommunikation mit einer Geschwindigkeit von 921600 Baud mit einem ATmega328P (externer Quarz mit 7,3728 MHz) und auf der PC-Seite mit HTerm. Die Signalqualität war auf dem Oszi OK, Übertragungsfehler gab es nach 1 Stunde Dauerbetrieb keinen einzigen. Wenn man dieses Kabel
-
Artikel
IRMP
Mikrocontroller-Familien lauffähig. AVR ATtiny87, ATtiny167 ATtiny45, ATtiny85 ATtiny44, ATtiny84 ATmega8, ATmega16, ATmega32 ATmega162 ATmega164, ATmega324, ATmega644, ATmega644P, ATmega1284 ATmega88, ATmega88P, ATmega168, ATmega168P, ATmega328P XMega ATXmega128 PIC (CCS- und XC8/C18-Compiler) PIC12F1840
den Timer2 mit 8-Bit-Genauigkeit verwenden. In diesem Fall wird dieser dann konfiguriert über: Für ATmega8/ATmega16/ATmega32: Für ATmega88/ATmega168/ATmega328: Bei anderen AVR-µCs empfiehlt sich ein Blick ins Datenblatt. Man sollte in diesem Fall nicht vergessen, auch die Interrupt-Routine an den Timer2
-
Artikel
Word Clock Variante 1
Zwischenboden ohne Ambilightausfräsung - für Streifenplatinen (MDF 19mm gefräst) - 37,50Eur programmierter ATMega168 - 3,55Eur Der Versand erfolgt bei nur LEDs / Widerständen / ATMega als GroßBrief innerhalb BRD – 4,00Eur Österreich – 6,00Eur Schweiz - 6,00Eur Der Versand mit Streifenplatinen erfolgt als kleines
unabhängig von der verwendeten Plattform einsetzbar. In seiner ursprünglichen Form ist er für den ATmega328P entwickelt worden, da der ATmega168 für die Erweiterungen von o.g. Firmware-Version nicht mehr ausreichend war. Zum gibt es allerdings auch eine für den ATmega168 kompilierte Version (ungetestet
-
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
-
Artikel
AVR In System Programmer
. Thomas Fischls USBasp ist ein Openhardware-/Openfirmware-USB-ISP-Adapter. Er basiert auf einem ATmega8, ATmega8L, ATmega88 oder ATtiny85, der mittels einer rein auf Firmware basierenden USB-Implementierung von Objective Development arbeitet. Bezugsquellen: Ein offizieller USBasp Bausatz ist erhältlich
µC Universeller Adapter mit ZIF Sockel für Atmel µC AVR Sockel zum preiswerten Programmieren von ATmega 48/8/88/168/328 im TQFP44 Gehäuse Tag Connect, universeller Programmierstecker mit 6, 10 oder 14 Pins und kleinstem Platzbedarf ohne Gegenstück (nur Testpunkte und Löcher, siehe Demoboard) ISP-Pins
-
Artikel
IRMP - english
IRMP runs on numerous MCU families: AVR ATtiny87, ATtiny167 ATtiny45, ATtiny85 ATtiny44, ATtiny84 ATmega8, ATmega16, ATmega32 ATmega162 ATmega164, ATmega324, ATmega644, ATmega644P, ATmega1284 ATmega88, ATmega88P, ATmega168, ATmega168P, ATmega328P XMega ATXmega128 PIC (CCS and XC8/C18 compiler) PIC12F1840
8 bits of resolution. In that case, configure Timer2 as follows: The above example is valid for ATmega88/ATmega168/ATmega328. For other AVR MCUs check the datasheet. You must not forget to change the ISR to Timer2 as well: IRMP_SUPPORT_xxx_PROTOCOL. Here you can select which protocols to enable in IRMP
-
Artikel
PIC
weg vom PIC16F84 hin zu AVR, etwa den heute veralteten AT90S4433, der pinkompatible Vorläufer des ATmega8 und später ATmega328, das Arbeitspferd des Arduino Uno. Inzwischen hat Microchip schon längst nachgezogen und eine unwahrscheinlich riesige Palette von 8-Bit-Controllern mit Flash-Speicher im Angebot
-
Artikel
Reichelt-Wishlist
ATMEGA 644V-10MU, ATMEGA 644V-10PU Atmel ATMEGA2560 | | | | | | | | | => ATMEGA 2560-16AU, 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 in TQFP und PDIP | | Philips LPC2000-Serie ARM7-Controller (LPC214x, LPC213X, LPC21xx und LPC22xx) 57x gewünscht => Bauelemente, aktiv
-
Artikel
Raspberry Pi als Universalprogrammer
ändern. Test. Auslesen des Flash-Speichers des Controllers, hinter -p den Typ des Controllers (hier ATmega 328P) angeben: Typische Fehler. Der Fehler kann sein unvollständige Installation des Betriebssystem, wie Treiber für SPI nicht aktiv falsche Bedienung Programmiertool avrdude bspw. ohne root-Rechte
-
Artikel
SMD Löten
nach einiger Zeit recht saubere Schnitte, wie auf den folgenden Bildern zu sehen: Schablone für Atmega328, sowie zwei 1206 Bauteile Bild: Verfasser Nahaufnahme der Schablone für den Atmega, Pitch: 0,8mm Bild: Verfasser Lötpaste auftragen. In der industriellen Fertigung wird die Lötpaste zum Beispiel
wurde hier zuvor sparsam mit Hilfe der oben gezeigten Mylarfolienmethode aufgetragen. Nahaufnahme Atmega, Pitch: 0,8mm, gelötet im DIY Reflowofen Elektro-Pfanne. Statt eines mit einer Temperatursteuerung nachgerüsteten Pizzaofens wird gelegentlich einfach eine teflonbeschichtete Elektro-Pfanne verwendet
-
Artikel
Wanderkiste (Widlar)
RFM12 Sende- und Empfangsmodul, InEar-Kopfhörer (neu), RJ45 Stecker (Crimp), fertige RJ45 Kabel, 8xATMEGA328(SMD)+passende Eval-Boards, Yubico Security Key, ESP8266, S-OnOff-WLAN-Steckdose(kann mit Tasmota geflasht werden), PIR Sensor, div. ältere Speichermodule/Chips; Details/sonstige Wünsche gern anfragen
-
Artikel
Plattformunabhängige Programmierung in C
ganz links. Die Wertigkeit der Bits steigt monoton von rechts nach links. Beispiel: Dezimal: 3.512.328.808 Hexadezimal: D1 59 E2 68 Binär: 11010001 01011001 11100010 01101000 ^ ^ msb lsb Wenn man den Wert um drei Stellen nach rechts shiftet, kümmert sich der C-Compiler darum, dass der Inhalt der Variable
, Datenbusse, ...) verfügt. Selbst zwischen Mikrocontrollern vom gleichen Hersteller (z.B. Atmel ATmega und XMEGA) kann sich der Zugriff auf die Peripherie deutlich unterscheiden. Wozu also das Ganze? Der "Trick" besteht darin, hardwareabhängigen und hardwareunabhängigen Code strikt zu trennen. Dabei