Was wird zum Programmieren eines Mikrocontrollers benötigt? Programmierung von AVR-Mikrocontrollern für Anfänger. Einführung in Mikrocontroller

Beschreibt die Erfahrungen bei der Einführung der Mikrocontroller-Programmierung in den Lehrplan für Kinder mit Behinderungen. Die Veröffentlichung des Textes erfolgt mit Genehmigung des Autors.

Warum Robotik mit Arduino?

Wie motiviert man einen Schüler? Was könnte Ihnen einfallen? Vielleicht allen Laptops geben? Vielleicht eine interaktive Tafel aufhängen, oder noch besser, einen interaktiven Tisch aufstellen? Aber er wird immer noch nicht motiviert und wird nicht motiviert.

Liebe Kolleginnen und Kollegen, ich möchte Sie noch einmal darauf aufmerksam machen. Robotik ist nicht nur Informatik, sondern auch Physik, Chemie, Biologie usw. Und in diesen Fachgebieten kann man mit Studierenden so viele interessante Projekte machen, wenn man sich noch einmal intensiv mit Robotik auseinandersetzt. Hinweis: Sensoren. Sie können sie selbst herstellen (Material gibt es im Internet reichlich), einige können Sie auch kaufen. Plus ein Brett (oder ein gleichwertiges), Troyka-Schild und das Labor ist bereit (naja, fast fertig, Sie müssen daran denken, das zusammengebaute Gerät zu kalibrieren).

Aber aus irgendeinem Grund meiden viele dieses Thema immer noch, weil sie es für schwer verständlich halten. Manche Menschen können sich immer noch nicht entscheiden, weil es viel Zeit kostet. Und manche hoffen, dass dann irgendwann Lego oder digitale Labore (zum Beispiel mit PASCO-Sensoren) in der Schule auftauchen ... oder sie warten darauf, dass ein Lehrbuch geschrieben wird und methodische Hilfen bei der Planung. Aber schauen wir mal, was passiert – während wir hier rocken, sind uns unsere Studierenden in dieser Hinsicht bereits voraus (sie beherrschen dieses Thema selbstständig, bauen ihre eigenen Roboter und konstruieren 3D-Drucker).

Mikrocontroller-Programmierung. Start

Ursprünglich hatte ich vor, einen Robotikkurs zu unterrichten, entschied aber dennoch, dass es einen Versuch wert sei, das Studium des Themas „Mikroprozessorprogrammierung“ in den Hauptlehrplan der 11. Klasse aufzunehmen.

Im Gegensatz zu einer regulären Schule haben wir eine hervorragende Gelegenheit, das Programm zu testen und zu verfeinern. Da es Arbeit im Unterricht gibt, gibt es Einzelunterricht. Und ich beschloss, diese Gelegenheit zu nutzen und den Unterricht bei einer Einzelperson zu beginnen.

Zur Umsetzung des Plans wurde mithilfe von Google-Diensten eine funktionierende Website erstellt. Da für den einzelnen Informatikunterricht nur eine Stunde vorgesehen ist, musste ich Änderungen an den Phasen und der Struktur des Unterrichts vornehmen, die ich in diesem Beitrag beschrieben habe:

  • der organisatorische Aufwand wird auf ein Minimum reduziert,
  • Ich habe beschlossen, die Erklärung des neuen Materials zu verweigern (stattdessen wird das neue Material auf der Website veröffentlicht und es wird angeboten, es selbst zu studieren), und dann wird während der Lektion dieses Thema besprochen und problematische Fragen werden identifiziert der Schüler hat es nicht verstanden (solange es ihm gefällt, kommt er auch bei Änderungen mit Fragen angerannt),
  • Die restliche Zeit des Unterrichts ist der selbstständigen Arbeit des Schülers gewidmet, bei der der Stoff Schritt für Schritt erarbeitet und gefestigt wird.

Wenn man sich die technische Ausstattung anschaut, hat man sich für den Einsatz entschieden CMPC(Ich hoffte, dass dies die Arbeit beschleunigen und Zeitverschwendung im Unterricht vermeiden würde) und Gebühren Freeduino Nano mit Erweiterungskarten.

Aber nachdem ich den Computer eingeschaltet hatte, wurde mir gleich in der ersten Lektion klar, dass ich dringend unnötige Software entfernen musste (insbesondere E-Learning 6.0 verlangsamt die Arbeit sehr, es ist interessant, dass es mich nicht so sehr geärgert hat, als ich beim Unterrichten in anderen Fächern mitgeholfen und technische Unterstützung geleistet habe. Generell denke ich über die Installation nach Linux, aber es gibt immer noch Probleme mit der Zeit.

Mit Brettern freeduino(analog Arduino, für mich selbst auf eigene Kosten gekauft) stellte sich heraus, dass das ständige Hin- und Hertragen auch nicht bequem ist, also überlege ich, sie bei zu kaufen Amperke ein normales Set für das neue Viertel, damit du immer in der Schule sein kannst.

Zu Hause müssen Sie ständig weiterexperimentieren, Sie müssen alles selbst durchgehen, darüber nachdenken, womit Kinder möglicherweise Schwierigkeiten haben, und herausfinden, wie Sie es lösen können.

Mikrocontroller-Programmierung. Das Training geht weiter

Ungefähr eine Woche später kaufte ich ein Set bei Amperka „Matroschka Z“. Ich hatte Glück: Die Bausätze waren auf Lager, sodass ich nicht lange warten musste, und zwei Tage nach der Bestellung auf der Website war ich bereits dabei, die Teile in die Zellen im Karton zu legen (was im Bausatz enthalten ist, können Sie auf der Seite sehen). die Website, deshalb werde ich nicht näher darauf eingehen).

Set „Matroschka Z“

Set „Matroschka Z“

Mit der Einführung dieses Kits war es natürlich nicht mehr nötig, die Platinen und Teile jedes Mal von zu Hause mitzunehmen. Meine Schüler haben jetzt die Möglichkeit, Miniprojekte nicht zu zerlegen (wenn sie in einer Unterrichtsstunde keine Zeit hatten, ein funktionierendes Modell zusammenzustellen und zu programmieren, können sie es in ihrer Freizeit oder in der nächsten Unterrichtsstunde fertigstellen).

Als die Kinder dieses Set am ersten Tag sahen, war ihre Freude kaum in Worte zu fassen. Besonders gut hat mir die Reaktion meiner Girlgroup gefallen. Für jedes Detail haben sie sich sofort einen eigenen Namen ausgedacht (Hochstuhl, Kinderbett, Käfer, Döner, Spinne usw.). Und während wir die Software neu installierten Arduino Uno(eine neuere Version war nötig), sie führten eine ganze Aufführung auf (meine Schüler sind so kreativ).

Ein weiteres Viertel ist wie im Flug vergangen. Es begann ein virtueller Wettbewerb zwischen meiner Schülerin und der Girlgroup: Wer konnte die unterschiedlichsten Modelle (aus den Komponenten, die in diesem Set enthalten waren) schneller zusammenbauen und es wurde klar, dass ein Set nicht ausreichen würde.

Daraufhin habe ich ein weiteres Set gekauft, nur dieses Mal Matroschka Y, und dazu noch:

  • IO-Schild,
  • Verbindungsdrähte,
  • dreiachsiger Beschleunigungsmesser,
  • Infrarot-Bewegungssensor,
  • Messingständer, 2 Sets,
  • Steckbrett Mini, 2 Stück,
  • Proto Shield montiert,
  • Gassensor,
  • Netzteil.

Aber damit war mein Einkauf noch nicht zu Ende, da ich in Amperka nicht alles kaufen konnte, was ich geplant hatte. Davor hat jemand einen großen Kauf getätigt und für die Hälfte der Sensoren und Servos gab es kein Chassis für die Roboter. Und ich wandte mich der Suche zu und fand einen anderen Online-Shop, und meine Wünsche wurden nur noch größer. In diesem Shop gekauft:

  • (eine ziemlich günstige Option, obwohl man alles von Anfang bis Ende löten muss),

  • Magnetfeldsensor,
  • Zeilensensor(Das QTR-8A-Reflexionssensor-Array ist eher großäugig),
  • Zeilensensor(dieser Sensor ist für erste Experimente),
  • Freeduino USB komplettes KIT(a la selbst löten Freeduino, ich habe es vor dem Löten des Roboters zum Üben mitgenommen, naja, es wird sich auf dem Bauernhof als nützlich erweisen (Ich werde euch in naher Zukunft auch ausführlich über den Lötvorgang erzählen, ich habe alles mit a gefilmt Kamera)),
  • iPodEXT montiert(ermöglicht die Verbindung mit iPad und iPhone, ich weiß aber noch nicht, wie erfolgreich das sein wird),
  • Temperatur- und Feuchtigkeitssensor.

Aber das ist die eiserne Seite des Problems.

Das Wichtigste ist vielleicht, dass sich in dieser Zeit herauskristallisierte, was man geben sollte und in welcher Reihenfolge (im Sinne welcher Themen). Es werden praktische Aufgaben ausgewählt, die ich nach und nach aufbereite und veröffentliche. Ja, ich möchte mich ganz besonders bei Alexander Anatolyevich Parshev bedanken (nicht nur von mir, sondern auch von meinen Schülern), sein persönlicher Blog hat mir sehr geholfen. Bei der Ankunft aus London hatte sich (zusätzlich zu den Unterrichtsaktivitäten) einiges angesammelt, und hier sind fertige Aufgaben und das genau zum richtigen Zeitpunkt: Lektion 2, Lektion 4, Lektion 5.

Natürlich gab es auch unvorhergesehene Situationen, von einer davon werde ich Ihnen demnächst berichten. Der Zeit nach zu urteilen, werde ich heute die Gelegenheit nutzen, den Kindern einen fertigen Roboter zu zeigen und sie an seine Fähigkeiten heranzuführen. Schließlich müssen sie ihn bald ausbilden.

Die Praxis der Verwendung verschiedener Bausätze (Selbstbau- und Fertigbausätze) hat gezeigt, dass:

  • Die beste Option für die Schule ist heute Matroschka Y Und Matroschka Z ,
  • nicht mehr als ein Schüler kann mit einem Satz arbeiten,
  • Wenn Sie 2 Stunden pro Woche Robotik betreiben und die Kurse nicht gepaart sind, benötigen Sie doppelt so viele Kits
  • Die Anzahl der Sensoren in den Kits reicht nicht aus (nur für die Einstiegsklasse), daher müssen Sie den zusätzlichen Kauf dieser sowie spezieller Platinen (IO Shield) einplanen, um mehrere Sensoren, Motoren und Servos an Arduino anschließen zu können ,
  • Zusätzlich müssen Sie Servos kaufen (eines pro Matroschka-Set).
  • Außerdem müssen Sie vorgefertigte Roboterplattformen auswählen (dies könnte ein Manipulatorarm sein), die den Schülern abschließend etwas beibringen können (es ist nur im Rahmen einer Zusatzausbildung möglich, einen Roboter zusammenzubauen, es ist gut, wenn es welche gibt). Parallelunterricht zum Programmieren von Mikroprozessoren und Robotikclub).

Auch die Möglichkeit, im letzten Ausbildungsabschnitt mit einem Roboter zu arbeiten, ist für Studierende eine Art Anreiz, ein durchaus realistisches Ziel.

Das Kit enthält einen Satz Jumper.

Da sie auf dem Steckbrett sehr unsichtbar sind, vergessen Kinder immer, sie herauszunehmen (man kann etwas aus dem Eisen herausbrennen).

Mikrocontroller-Programmierung. Noch einmal über Matroschka

Matroschka Y und Z Versionen sind gut zu verwenden – vor allem wegen der gelungenen Konfiguration, aber auch wegen allem anderen, was es gibt Amperka/Vicki Zur Unterstützung dieses Projekts gibt es eine wunderbare Auswahl an Video-Tutorials Arduino aus Jeremy Bluma, ins Russische übersetzt und viele andere interessante Projekte, von denen einige ohne Änderungen im Unterricht verwendet werden können.

All dies gab mir die Gewissheit, dass ich alles unter Kontrolle hatte, dass ich über Sets verfügte und dass ich eine Auswahl für den Unterricht hatte. Es schien, als ob was passieren und den Verlauf des Unterrichts verändern könnte? Bis zu einem gewissen Punkt lief alles ganz gut; die Kinder schafften es, wöchentlich ein Modell zusammenzubauen und Programmcode dafür zu schreiben.

Doch dann kam der Moment und wir beschlossen, einen Timer aus zwei 7-Segment-Anzeigen zusammenzustellen (sie sind im Set als geschrieben). Satz „7-Segmente“ Es enthält zwei 7-Segment-Anzeigen und einen Treiberchip CD4026 zur Steuerung und einem Dutzend 220-Ohm-Widerständen), siehe Anschlussplan mit detaillierter Beschreibung.

Der Unterricht hat begonnen, ich erzähle den Kindern, was wir während des Unterrichts tun werden. Sie öffneten die Seite mit dem Anschlussplan und nahmen das Steckbrett, die Drähte und den Treiberchip des Teils heraus. Ohne etwas zu ahnen, platzierten sie zwei Indikatoren an den Seiten, wie in der Abbildung gezeigt, und platzierten die Treiber. Und dann zählten meine Schüler die Anzahl der Beine auf der Mikroschaltung und sagten mir einstimmig fassungslos: „Aber zwei Beine fehlen.“ Was zu tun ist?". Ich muss nur darauf hinweisen, dass ein weiterer Mikroschaltkreis, sein Analogon, in die Konfiguration einbezogen wurde. Anstatt CD4026 setzen K176IE4(Aber dies wurde nirgendwo in der Beschreibung erwähnt.)

Mikrocontroller sind eine spezielle Art von Chips, die zur Steuerung verschiedener elektronischer Geräte verwendet werden.

Einführung in Mikrocontroller

Dabei handelt es sich um Miniaturcomputer, deren gesamte Komponenten (Prozessor, RAM, ROM) auf einem Chip untergebracht sind. Sie unterscheiden sich von Mikroprozessoren durch das Vorhandensein von Timern, Controllern, Komparatoren und anderen Peripheriegeräten. Derzeit werden Mikrocontroller in der Produktion eingesetzt:

  • Sensoren für Autos;
  • Spielzeuge;
  • Spannungsanzeiger, Ladegeräte;
  • Bedienfelder;
  • elektronische Miniaturgeräte.

Die Verwaltung erfolgt über spezielle Programme.

Anfängern wird empfohlen, mit der Beherrschung der Programmierung von Mikrocontrollern zu beginnen, indem sie die Architektur und Varianten studieren. Die Industrie produziert folgende MK-Typen:

  • eingebaut;
  • 8-, 16- und 32-Bit;
  • digitale Signalprozessoren.

Hersteller von Mikrocontrollern müssen ständig zwischen Größe, Leistung und Preis der Produkte abwägen. Deshalb sind immer noch 8-Bit-Modelle im Einsatz. Sie haben eine eher geringe Produktivität, aber in vielen Fällen ist diese Tatsache von Vorteil, weil ermöglicht es Ihnen, Energieressourcen zu schonen. Digitale Signalprozessoren sind in der Lage, große Datenströme in Echtzeit zu verarbeiten. Ihre Kosten sind jedoch viel höher.

Die Anzahl der verwendeten Opcodes ist möglicherweise nicht dieselbe. Daher werden die Unterrichtssysteme RISC und CISC verwendet. Der erste gilt als reduziert und wird in einem Taktzyklus des Generators ausgeführt. Dadurch ist es möglich, die Hardware-Implementierung der CPU zu vereinfachen und die Leistung des Chips zu steigern. CISC ist ein komplexes System, das die Effizienz des Geräts deutlich steigern kann.

Es ist unmöglich, die Mikrocontroller-Programmierung für Anfänger zu erlernen, ohne Algorithmen zu verstehen. Befehle werden in einer bestimmten Reihenfolge an die CPU des Chips gesendet. Darüber hinaus muss ihre Struktur für den Verarbeiter eindeutig erkennbar sein. Daher erstellt der Programmierer zunächst eine Reihenfolge der Befehlsausführung. Sie können die CPU zwingen, das Programm sofort zu stoppen, indem Sie einen Interrupt aufrufen. Hierzu werden externe Signale oder eingebaute Peripheriegeräte genutzt.

Mikrocontroller-Familien

Die gängigsten Mikrocontroller-Familien sind:

  • MSP430 (TI);
  • ARM (ARM Limited);
  • MCS 51 (INTEL);
  • STMB (STMicroelectronics);
  • PIC (Mikrochip);
  • AVR (Atmel);
  • RL78 (Renesas Electronics).

Eines der beliebtesten Produkte in der Elektronikindustrie sind die Produkte von Atmel, die auf einem RISC-Kern basieren. Die ersten Mikroschaltungen, die 1995 entwickelt wurden, gehören zur Classic-Gruppe. Es ist ratsam, die Programmierung von AVR-Mikrocontrollern für Anfänger an moderneren Modellen zu erlernen:

  • Mega ist eine Familie leistungsstarker Chips mit einer fortschrittlichen Architektur.
  • Winzig – preiswerte Produkte mit acht Pins.

Es ist zu beachten, dass die Kompatibilität von Befehlssystemen nur dann gewahrt bleibt, wenn ein Programm von einem Mikrocontroller mit geringerer Leistung auf einen leistungsstärkeren übertragen wird.

Atmel-Produkte sind einfach und verständlich. Um jedoch alle Funktionen nutzen zu können, müssen Sie Software entwickeln. Anfängern wird empfohlen, mit der Programmierung von AVR-Mikrocontrollern zu beginnen, indem sie die spezielle Atmel Studio-Umgebung herunterladen. Die aktuelle Version wird kostenlos auf der offiziellen Website des Herstellers bereitgestellt. Für die Entwicklung von Software in dieser Umgebung sind keine zusätzlichen Softwarekomponenten erforderlich.

Der Atmel Studio-Komplex umfasst eine Vielzahl von Beispielen abgeschlossener Projekte. Dies wird einem Anfänger helfen, die Grundfunktionen schnell zu erlernen und mit der Erstellung eigener Programme zu beginnen. Es verfügt außerdem über Module zum Kompilieren und abschließenden Debuggen von Code. Parallel zu seiner Entwicklung müssen Sie Programmiersprachen studieren. Ohne sie kann keine Software entwickelt werden.

Programmiersprachen

In ihrem Aufbau unterscheiden sich Mikrocontroller-Programmiersprachen kaum von denen, die für Personalcomputer verwendet werden. Unter ihnen gibt es Gruppen mit niedrigem und hohem Niveau. Moderne Programmierer verwenden hauptsächlich C/C++ und Assembly. Unter Anhängern dieser Sprachen gibt es endlose Debatten darüber, welche Sprache besser ist.

Low-Level-Assembler hat in letzter Zeit an Boden verloren. Es verwendet direkte Anweisungen, die direkt an den Chip gerichtet sind. Daher ist vom Programmierer eine einwandfreie Kenntnis der Systembefehle des Prozessors erforderlich. Das Schreiben von Software in Assembly nimmt viel Zeit in Anspruch. Der Hauptvorteil der Sprache ist die hohe Ausführungsgeschwindigkeit des fertigen Programms.

Tatsächlich kann nahezu jede Mikrocontroller-Programmiersprache verwendet werden. Am beliebtesten ist jedoch C/C++. Dabei handelt es sich um eine Hochsprache, mit der Sie mit maximalem Komfort arbeiten können. Darüber hinaus waren die Entwickler von C an der Entwicklung der AVR-Architektur beteiligt. Daher sind die von Atmel hergestellten Chips speziell an diese Sprache angepasst.

C/C++ ist eine harmonische Kombination aus Low-Level- und High-Level-Fähigkeiten. Daher ist es möglich, Assembler-Einfügungen in den Code einzuführen. Das fertige Softwareprodukt ist leicht zu lesen und zu ändern. Die Entwicklungsgeschwindigkeit ist recht hoch. In diesem Fall ist ein gründliches Studium der MK-Architektur und des CPU-Befehlssystems nicht erforderlich. C-Compiler sind mit beeindruckend großen Bibliotheken ausgestattet, die dem Programmierer die Arbeit erleichtern.

Zu beachten ist, dass die Wahl der optimalen Programmiersprache auch von der Hardware abhängt. Wenn Sie über wenig RAM verfügen, ist es nicht ratsam, High-Level-C zu verwenden. In diesem Fall ist Assembler besser geeignet. Aufgrund des kurzen Programmcodes bietet es maximale Leistung. Es gibt keine universelle Programmierumgebung, aber die meisten kostenlosen und kommerziellen Anwendungen können sowohl Assembly als auch C/C++ verwenden.

PIC-Mikrocontroller

Die ersten PIC-Mikrocontroller erschienen in der zweiten Hälfte des letzten Jahrhunderts. Die schnellen 8-Bit-Chips von Microchip erfreuten sich sofort großer Beliebtheit. Die Dual-Bus-Harvard-Architektur bietet beispiellose Geschwindigkeit. Es wurde auf Basis eines Registersatzes entwickelt, der sich durch Bustrennung auszeichnet.

Bei der Auswahl einer Programmiersprache für PIC-Mikrocontroller müssen Sie berücksichtigen, dass die Familie der Mikroschaltungen auf einem einzigartigen RISC-Prozessordesign basiert. Das symmetrische Befehlssystem ermöglicht es Ihnen, die Adressierungsmethode beliebig auszuwählen und Operationen in jedem Register auszuführen. Derzeit produziert das Unternehmen Microchip 5 MK-Varianten, die per Softwarecode kompatibel sind:

  1. PIC18CXXX (75 Befehle, integrierter Hardware-Stack);
  2. PIC17CXXX (58 Befehle im 16-Bit-Format);
  3. PIC16CXXX (35 Befehle, großer Satz Peripheriegeräte);
  4. PIC16C5X (33 Anweisungen, 12-Bit-Format, 18-28-Pin-Gehäuse);
  5. PIC12CXXX (Versionen mit 35 und 33 Befehlen, integrierter Generator).

In den meisten Fällen verfügen PIC-MCUs über einen einmalig programmierbaren Speicher. Es gibt teurere Modelle mit Blitz- oder UV-Löschung. Mit einem Sortiment von 500 Artikeln können Sie für jede Aufgabe ein Produkt auswählen. Nun konzentriert sich der Hersteller auf die Entwicklung von 32-Bit-Versionen mit erhöhter Speicherkapazität.

Die Programmiersprachen für PIC-Mikrocontroller sind Assembler und C. Zum Codieren eignet sich jede integrierte Entwicklungsumgebung (IDE). Das Programmieren mit ihnen ist sehr bequem. Sie übersetzen Programmtext automatisch in Maschinencode. Ein wichtiges Merkmal der IDE ist die Fähigkeit, den Betrieb fertiger Software Schritt für Schritt zu simulieren. Wir empfehlen die Verwendung der MPLAB-Entwicklungsumgebung. Es wurde von Microchip erstellt.

Bevor Sie mit der Arbeit in MPLAB beginnen, empfehlen wir, jedes Mal einen separaten Ordner zu erstellen. Dies ist notwendig, um in Projektdateien nicht durcheinander zu kommen. Die Programmoberfläche ist intuitiv und sollte keine Schwierigkeiten bereiten. Zum Debuggen werden proprietäre Debugger Pickit, ICD, REAL ICE, IC PROG verwendet. Sie haben die Möglichkeit, den Speicherinhalt anzuzeigen und Prüfpunkte festzulegen.

Ich bin kategorisch gegen diesen Ansatz. Normalerweise endet alles – entweder mit nichts oder mit überfüllten Foren mit Bitten um Hilfe. Selbst wenn jemandem geholfen wird, wird es in 90 % der Fälle nie wieder auf Elektronikseiten auftauchen. Bei den restlichen 10 % überschwemmt er weiterhin die Foren mit Bitten, sie treten ihn erst, dann bewerfen sie ihn mit Schlamm. Von diesen 10 % entfallen weitere 9 %. Dann gibt es zwei Möglichkeiten: Entweder es kommt zu einem dummen Kopf und geht trotzdem an den Anfang, oder in besonders vernachlässigten Varianten ist es sein Los, die Entwürfe anderer Leute zu kopieren, ohne einen einzigen Gedanken darüber zu machen, wie es funktioniert. Arduinisten werden oft aus Letzteren geboren.

Der Weg von Grund auf besteht meiner Meinung nach darin, die Peripheriegeräte und Funktionen zu studieren, wenn es sich um einen Mikrocontroller handelt. Es ist besser, zuerst herauszufinden, wie man mit den Beinen tritt, dann die Timer und dann die Schnittstellen. Und erst dann versuchen Sie, Ihre FAT zu erhöhen. Ja, das geht nicht schnell und erfordert Zeit und Mühe, aber die Praxis zeigt, dass, egal wie sehr Sie versuchen, diesen Weg zu verkürzen, immer noch Probleme auftauchen, die gelöst werden müssen, und Sie ohne diese Basis viel mehr Zeit verbringen werden.

Verwechseln Sie einfach nicht warm und weich. Erstens gibt es Ausnahmen von allen Regeln. Ich habe persönlich Leute gesehen, die noch nie zuvor Mikrocontroller in der Hand gehalten hatten, aber in kürzester Zeit konnten sie erfahrene Funkamateure überholen. Wir berücksichtigen sie nicht. Zweitens bin ich auf Leute gestoßen, die damit begonnen haben, Diagramme zu kopieren und es sofort herausgefunden haben, aber das ist höchstwahrscheinlich eine Ausnahme von der Regel. Drittens gibt es unter den Arduino-Entwicklern auch erfahrene Programmierer; dies ist nur eine Plattform, aber das ist eher eine Ausnahme.

Wenn wir von der allgemeinen Masse sprechen, dann ist es genau das, was ich eingangs beschrieben habe: Die Zurückhaltung, sich mit den Grundlagen auseinanderzusetzen, verzögert bestenfalls den Moment, in dem man sich wieder mit diesen Themen befassen muss. Im schlimmsten Fall stoßen Sie schnell an die Grenzen Ihres Wissens und geben immer jemand anderem die Schuld für Ihre Probleme.

2. Bevor Sie ein Problem lösen, zerlegen Sie es bis zur Absurdität, bis hin zum „Löten eines Widerstands“, das hilft, es wurde getestet. Kleine Probleme lassen sich viel einfacher lösen. Wenn eine große Aufgabe in viele kleine Aktionen zerlegt wird, müssen diese nur noch erledigt werden. Ich kann Ihnen noch einen guten Rat geben, auch wenn er Ihnen vielleicht verrückt vorkommt: Besorgen Sie sich ein Notizbuch und schreiben Sie alles hinein, was Sie tun werden. Du denkst, ich werde mich daran erinnern, aber nein. Nehmen wir an, ich bin heute gut gelaunt und überlege, wie ich die Tafel zusammenbekomme. Schreiben Sie einen Aktionsplan auf: Kaufen Sie einen Widerstand, bereiten Sie die Drähte vor, montieren Sie das Display. Dann vergisst du alles, öffnest dein Notizbuch und schaust – ja, heute habe ich Lust zu sägen und zu planen, ich mache eine Befestigung. Oder Sie bauen eine Platine zusammen und das letzte Bauteil muss noch gelötet werden, aber das ist nicht der Fall, die Widerstände sind aufgebraucht, also hätte ich es vor dem Löten aufschreiben sollen, dann fiel es mir ein.

3. Verwenden Sie zumindest in den ersten Phasen keine Codegeneratoren, nicht standardmäßige Funktionen und andere Vereinfachungen. Ich kann Ihnen mein persönliches Beispiel geben. Als ich AVR aktiv nutzte, verwendete ich CAVR-Codogen. Ich war rundum zufrieden mit ihm, obwohl alle sagten, er sei Mist. Die Glocken läuteten ständig, es gab Probleme mit Bibliotheken, mit der Syntax, mit der Portierung, aber es war schwer, darauf zu verzichten. Ich verstand nicht, wie es funktionierte, ich wusste nur, wo und wie ich die Kästchen ankreuzen musste.

Mit dem Aufkommen von STM32 wurde der Pflock in meinen Sarg getrieben, ich musste auf ihn kriechen, und da traten die Probleme auf. Um es milde auszudrücken: Ich musste Mikrocontroller und die C-Sprache von Grund auf beherrschen. Ich habe vergangene Fehler nicht noch einmal wiederholt. Ich muss sagen, das hat sich schon mehr als einmal als nützlich erwiesen. Seitdem habe ich die Möglichkeit, mit anderen Plattformen zu arbeiten und habe keine Schwierigkeiten; der Ansatz rechtfertigt sich.

Zu all den Verbesserungen und Vereinfachungen gab es einen sehr guten Vergleich: Sie sind wie Rollstühle, die auf Schienen fahren, man kann hingehen und genießen, aber man kann nicht aufstehen, wohin sie einen bringen, man kommt dort an.

4. Lernen Sie die C-Sprache. Oh, wie oft höre ich unerfahrene Funkamateure damit prahlen, dass sie sich im Radio gut auskennen. Das wurde für mich zur Nahrung; ich berate mich immer gerne mit solchen Gesprächspartnern. Meist wird sofort klar, dass sie die Sprache überhaupt nicht beherrschen. Ich kann sagen, dass ich trotz der scheinbaren Einfachheit nicht viele Menschen getroffen habe, die ihn wirklich gut kannten. Im Grunde kennt ihn jeder so gut, wie nötig ist, um Probleme zu lösen.

Das Problem besteht meiner Meinung nach jedoch darin, dass man sich stark einschränkt, ohne die Möglichkeiten zu kennen. Einerseits keine optimalen Lösungen, die leistungsfähigere Hardware erfordern, andererseits unlesbarer Code, der schwer zu warten ist. Meiner Meinung nach ist die Lesbarkeit und Wartbarkeit des Codes einer der wichtigsten Punkte, und ich kann mir nur schwer vorstellen, wie dies erreicht werden kann, ohne alle Fähigkeiten der C-Sprache zu nutzen.

Viele Anfänger scheuen das Erlernen der Sprache. Wenn Sie also nicht wie alle anderen sind, sind Sie anderen Anfängern sofort zwei Schritte voraus. Es macht auch keinen Unterschied, wo man die Sprache lernt. Meiner Meinung nach ist ein Mikrocontroller dafür wenig geeignet. Es ist viel einfacher, eine Art Visual Studio oder Qt Creator zu installieren und Probleme über die Befehlszeile zu lösen.

Es wird auch eine gute Hilfe sein, etwaige Sprachtests zu studieren, die während der Vorstellungsgespräche durchgeführt werden. Wenn man sich umschaut, kann man viel Neues lernen.

5. Assembler lernen? Es besteht kein Grund, Angst vor ihm zu haben oder ihn zu vergöttern. Sie sollten nicht glauben, dass Sie sofort ein Mikrocontroller-Guru werden, wenn Sie wissen, wie man ein Programm in Assembler schreibt. Aus irgendeinem Grund ist dies ein weit verbreitetes Missverständnis. Erstens ist es ein Werkzeug. Auch wenn Sie nicht vorhaben, es zu verwenden, würde ich Ihnen dennoch dringend empfehlen, zumindest ein paar Programme zu schreiben. Dadurch wird Ihr Verständnis der Funktionsweise des Mikrocontrollers und der internen Struktur von Programmen erheblich vereinfacht.

6. Lesen Sie das Datenblatt. Viele Entwickler vernachlässigen dies. Wenn Sie das Datenblatt studieren, sind Sie diesen Entwicklern um zwei Schritte voraus. Dies ist äußerst nützlich. Erstens ist dies die primäre Quelle, unabhängig davon, welche Websites Sie lesen. In den meisten Fällen wiederholen sie Informationen aus dem Datenblatt, häufig mit Fehlern und Auslassungen. Möglicherweise sind dort auch Informationen enthalten, an die Sie jetzt nicht denken, die aber in Zukunft nützlich sein könnten. Es kann vorkommen, dass ein Fehler auftritt und Sie sich daran erinnern, dass dies im Datenblatt erwähnt wurde. Wenn es Ihr Ziel ist, ein guter Entwickler zu werden, dann lässt sich diese Phase nicht vermeiden; Sie müssen Datenblätter lesen; je früher Sie damit beginnen, desto schneller wird Ihr Wachstum voranschreiten.

7. Oft wird darum gebeten, Datenblätter auf Russisch zu senden. Ein Datenblatt ist etwas, das als Wahrheit und genaueste Information wahrgenommen werden sollte. Auch da sind Fehler möglich. Wenn man dann noch die Fehler des Übersetzers hinzunimmt, ist er auch ein Mensch, vielleicht nicht einmal mit Absicht, nur falsch geschrieben. Oder er hat seine eigene Vision, er übersieht möglicherweise etwas, das seiner Meinung nach nicht wichtig, aber vielleicht äußerst wichtig für Sie ist. Besonders lustig wird die Situation, wenn Sie Dokumentation für nicht sehr beliebte Komponenten finden müssen.

Meiner Meinung nach ist es viel einfacher, die gesamte Ebene dieser Probleme im Voraus auszuschließen, als sie später zu erkennen. Daher bin ich kategorisch gegen Übersetzungen. Der einzig wahre Rat ist, Englisch zu lernen, um Datenblätter und Handbücher im Original zu lesen. Mithilfe von Übersetzerprogrammen können Sie die Bedeutung einer Phrase verstehen, auch wenn Ihr Sprachniveau völlig bei Null liegt.

Ich habe ein Experiment durchgeführt: Ich hatte einen Studenten, ein Datenblatt und einen Google-Übersetzer. Experiment Nr. 1: Der Schüler erhielt ein Datenblatt und erhielt die Aufgabe, die erforderlichen Werte selbstständig zu finden. Das Ergebnis lautete „Wie kann ich“, „Ich kann kein Englisch“, „Ich habe nichts gefunden/Ich habe nichts gefunden“. „Ich verstehe“ sind typische Ausdrücke, die darauf hindeuten, dass er es gar nicht erst versucht hat. Experiment Nr. 2: Dem gleichen Schüler wurde das gleiche Datenblatt und die gleiche Aufgabe gegeben, mit dem Unterschied, dass ich neben ihm saß. Das Ergebnis ist, dass er nach 5 Minuten alle notwendigen Werte selbst gefunden hat, völlig ohne meine Beteiligung, ohne Englischkenntnisse.

8. Das Rad neu erfinden. Wenn Sie zum Beispiel etwas Neues studieren, sagen wir einen Transistor, erklärt Onkel Horowitz auf den Seiten seines Buches maßgebend, dass der Transistor verstärkt, sagen Sie immer: „ICH GLAUBE NICHT.“ Wir nehmen den Transistor in die Hand, stecken ihn in den Stromkreis und stellen sicher, dass dies auch wirklich der Fall ist. Es gibt eine ganze Reihe von Problemen und Feinheiten, die in Büchern nicht beschrieben werden. Man spürt sie erst, wenn man sie in die Hand nimmt und versucht, sie zusammenzusetzen. Gleichzeitig erhalten wir eine Menge entsprechendes Wissen und lernen die Feinheiten kennen. Außerdem gerät jede Theorie ohne Praxis viel schneller in Vergessenheit.

In der Anfangsphase hat mir eine Methode sehr geholfen: Zuerst baut man eine Schaltung zusammen und schaut, wie sie funktioniert, und dann versucht man, in einem Buch eine Begründung dafür zu finden. Das Gleiche gilt für den Softwareteil. Wenn es ein fertiges Programm gibt, ist es einfacher, es zu verstehen und die Codeteile zuzuordnen, die wofür verantwortlich sind.

Es ist auch wichtig, über das zulässige Maß hinauszugehen, mehr/weniger Spannung anzulegen, größere/kleinere Widerstände herzustellen und Änderungen im Betrieb der Schaltung zu überwachen. All dies bleibt im Gehirn und wird in Zukunft nützlich sein. Ja, das ist mit einem hohen Komponentenverbrauch verbunden, aber ich halte es für unvermeidlich. Zuerst habe ich dagesessen und alles abgefeuert, aber jetzt, bevor ich diesen oder jenen Nennwert wettete, erinnere ich mich immer an diese lustigen Zeiten und die Konsequenzen, wenn ich den falschen Nennwert setze.

9. Wie würde ich das machen, wenn ich der Entwickler wäre? Kann ich es besser machen? Stellen Sie sich diese Fragen jedes Mal, es hilft Ihnen wirklich, beim Lernen voranzukommen. Studieren Sie zum Beispiel die 1wire-, i2c-, spi- und uart-Schnittstellen und denken Sie dann darüber nach, wie sie sich unterscheiden, ob es besser hätte gemacht werden können, das wird Ihnen helfen zu verstehen, warum alles so ist und nicht anders. Sie werden auch wissen, wann und welches besser zu verwenden ist.

10. Lassen Sie sich nicht durch die Technologie einschränken. Es ist wichtig, dass dieser Rat eine sehr feine Linie hat. Es gab eine Phase im Leben, in der man von jeder Tür aus hören konnte: „Sie sollten sich mit FPGAs auskennen“, „aber mit FPGAs kann man etwas anfangen“. Formal hatte ich kein Ziel darin, PLISins zu studieren, aber ich konnte es auf keinen Fall ignorieren. Für die Einarbeitung in dieses Thema wurde etwas Zeit eingeplant. Es wurde keine Zeit verschwendet, ich hatte eine Reihe von Fragen zur internen Struktur von Mikrocontrollern und erst nach der Kommunikation mit den Plisins erhielt ich Antworten darauf. Es gibt viele ähnliche Beispiele; all das Wissen, das ich mir in der einen oder anderen Form angeeignet habe, hat sich früher oder später als nützlich erwiesen. Ich habe kein einziges nutzloses Beispiel.

Aber wie gesagt, die Frage der Technologie verläuft auf einem schmalen Grat. Es besteht keine Notwendigkeit, sich alles zu schnappen. Es gibt viele Bereiche in der Elektronik. Vielleicht mögen Sie analog, vielleicht digital, vielleicht sind Sie ein Spezialist für Stromversorgungen. Wenn es nicht klar ist, versuchen Sie es überall, aber die Praxis zeigt, dass es zunächst besser ist, sich auf etwas Bestimmtes zu konzentrieren. Auch wenn Sie in mehrere Richtungen drücken müssen, ist es besser, dies schrittweise zu tun und zunächst eine Sache durchzudrücken.

11. Wenn Sie einen unerfahrenen Funkamateur fragen, was er mehr mag: Programmieren oder Schaltungsdesign, dann wird die Antwort mit einer Wahrscheinlichkeit von 99 % Programmieren sein. Gleichzeitig verbringen diese Programmierer die meiste Zeit damit, Platinen mit LUT/Fotolack herzustellen. Die Gründe sind im Allgemeinen klar, aber nicht selten entwickelt sich daraus eine Art Wahnsinn, der darin besteht, Bretter um der Brettherstellung willen herzustellen.

Im Internet besteht fast der einzige wirkliche Weg zum Programmieren darin, ein Jedi der Leiterplattenherstellung zu werden. Ich bin diesen Weg auch gegangen, aber jedes Mal stelle ich mir die Frage, warum? Seitdem ich mir ein paar Bretter für alle Gelegenheiten gekauft habe, denke ich jedes Mal, dass ich die ganze Zeit ohne selbstgemachte Bretter auskommen könnte. Mein Rat ist, wenn es auch nur einen Tropfen Zweifel gibt, ist es besser, sich nicht die Mühe zu machen und ein fertiges Debugging-Board zu nehmen, und es wäre besser, Zeit und Geld in die Programmierung zu investieren.

12. Der nächste Ratschlag ist besonders schmerzhaft; ich möchte wirklich nicht darüber diskutieren, aber ich muss. Sie schreiben mir oft, dass xxx Rubel zu teuer seien, wo bekomme ich sie günstiger? Es scheint eine häufige Frage zu sein, aber normalerweise bin ich dadurch sofort angespannt, da sie oft in endlose Beschwerden über den Geldmangel mündet. Ich habe immer eine Frage: Warum nicht den Hintern abreißen und zur Arbeit gehen? Gleichzeitig muss man sogar auf den Bau einen Monat warten, kann dann aber ein paar Bretter kaufen, die das nächste Jahr halten. Ja, ich weiß, dass es schwierig ist, in Kleinstädten und Dörfern Arbeit zu finden und in eine Großstadt zu ziehen. Arbeiten Sie aus der Ferne, im Allgemeinen müssen Sie sich drehen. Es hat einfach keinen Sinn, sich zu beschweren, es gibt einen Ausweg, wer ihn sucht, findet ihn.

13. Im selben Sparschwein werde ich das sehr schmerzhafte Thema des Instruments hinzufügen. Das Tool soll es Ihnen ermöglichen, Geräte so schnell wie möglich zu entwickeln. Aus irgendeinem Grund schätzen viele Entwickler ihre Zeit nicht. Ein typisches Beispiel ist ein günstiger Crimp für Kabelschuhe, an dem viele Arbeitgeber gerne sparen. Das Problem ist, dass es nicht einmal richtig gecrimpt wird und die Drähte herausfallen. Sie müssen eine Reihe zusätzlicher Manipulationen durchführen, was entsprechend Zeit verschwendet. Aber wie Sie wissen, zahlt ein Dummkopf das Dreifache, sodass der niedrige Preis einer Crimpzange aufgrund des Zeitaufwands und der schlechten Crimpqualität um ein Vielfaches steigt.

Ich sage nicht, dass billig = schlecht ist, nein – es hängt alles von der Situation ab. Lassen Sie mich auf das Beispiel der Crimpzange zurückkommen. Es gab eine Zeit, in der ich sie mit allem gecrimpt habe, sodass es oft zu Problemen kam. Besonders unangenehm ist es, wenn man ein Board startet und es nicht funktioniert, nach langer Suche nach einem Fehler merkt man, dass es an einem schlecht gecrimpten Draht liegt, schade. Seitdem normales Crimpen auftrat, gab es keine derartigen Probleme mehr. Ja, die innere Kröte krächzte und würgte vor Wut, aber ich habe diese Entscheidung nie bereut. Ich möchte nur sagen, dass man nach der Arbeit mit einem normalen Werkzeug nicht mehr auf das schlechte zurückgreifen möchte, man möchte nicht einmal darüber diskutieren. Wie die Praxis zeigt, ist es besser, nicht an Werkzeugen zu sparen; im Zweifelsfall testen Sie es bei jemandem, lesen Sie Rezensionen, Rezensionen.

14. Starten Sie eine Website. Sie können darauf schreiben, was Sie wollen, genau wie Notizen. Die Praxis zeigt, dass Arbeitgeber es immer noch nicht lesen, aber die Tatsache selbst hat eine große Wirkung.

15. Eine heikle Frage: Ist eine spezialisierte Hochschulausbildung notwendig? Mir ist mehr als ein Fall bekannt, in dem Menschen ohne jegliche Ausbildung arbeiteten und aufgrund ihrer Erfahrung und ihres Wissens jedem zertifizierten Spezialisten Licht geben könnten. Eigentlich habe ich keine spezielle Ausbildung. Fühle ich mich dadurch unwohl? Bis zu einem gewissen Grad ja.

Ganz am Anfang, als Mikrocontroller ein Hobby für mich waren, habe ich viel mit Studienleistungen und Diplomen von verschiedenen Universitäten geholfen, nur um mein Niveau einzuschätzen. Ich kann mit Sicherheit sagen, dass das Niveau generell niedrig ist, unabhängig vom Namen der Universität. Für die Erstellung eines solchen Diploms ist kein mehrjähriges Studium erforderlich. Dies können Sie in kürzester Zeit selbst erreichen. Und doch kam es oft vor, dass Schüler ein Fach kannten, das sie im 2. bis 3. Jahr belegten, ich es aber nicht kannte. Obwohl all dieses Wissen durch Selbstbildung kompensiert wurde, wäre es dennoch besser, keine Zeit damit zu verschwenden.

Universität für ein Stück Papier. Ich kann sagen, dass es auch Situationen gab, in denen ihnen ein Job angeboten wurde, der eine obligatorische Ausbildung erforderte, und es war eine Schande, dass es in diesem Moment kein Blatt Papier gab. Aber im Allgemeinen zeigt die Geschichte, dass sich die meisten Arbeitgeber nicht um Ihren Papierkram kümmern.

Der nächste Punkt wird oft nicht berücksichtigt, nämlich die Umwelt. Vergessen Sie nicht, dass die Menschen, mit denen Sie studieren, Ihrer Generation angehören und dass es möglich ist, dass Sie mit ihnen zusammenarbeiten werden. Die Anzahl der in einer Branche tätigen Unternehmen ist sehr begrenzt. Die Praxis zeigt, dass auch in Großstädten jeder bis ins kleinste Detail über jeden Bescheid weiß.

Ein weiterer Punkt sind Chancen. Universitäten verfügen oft über eigene Fähigkeiten – Ausstattung, vielleicht einige Sektionen, vielleicht einige Programme für die Arbeit im Ausland, diese sollten genutzt werden, wenn es auch nur die geringste Möglichkeit gibt. Wenn Sie an einer Universität keine Perspektive sehen, gehen Sie zu einer anderen, die Welt endet nicht nur an einer.

Zusammenfassend lautet der Rat: Wenn es auch nur die geringste Chance gibt, müssen Sie studieren gehen, auf jeden Fall entsprechend Ihrem Profil; wenn es zumindest eine gewisse Chance gibt, dann klettern Sie überall hin und sitzen Sie nicht auf dem Rücksitz. Knüpfen Sie Bekanntschaften, üben und entwickeln Sie sich gleichzeitig zu Hause weiter.

16. Ist es mit 20, 30, 40, 50 Jahren zu spät, mit dem Programmieren zu beginnen? Die Praxis anderer Menschen zeigt, dass das Alter überhaupt kein Hindernis darstellt. Aus irgendeinem Grund berücksichtigen viele nicht die Tatsache, dass es eine ganze Reihe von Arbeiten gibt, die junge Menschen aufgrund ihrer Ambitionen nicht machen wollen. Daher ziehen es Arbeitgeber vor, diejenigen einzustellen, die es tragen. Dies ist Ihre Chance, süchtig zu werden, und dann hängt alles nur noch von Ihnen ab.

Und noch ein letzter Ratschlag. Viele Funkamateure sind unkommunikativ, wütend und gereizt – betrachten Sie dies als eine Berufsspezifität. Strahlen Sie Freundlichkeit und Positivität aus, seien Sie ein guter Mensch.



Wenn Sie einen weiteren Chip auf eine andere Platine löten oder zum zehnten Mal eine Leiterbahn auf der Platine schneiden, um die nächsten (aber nicht die letzten) Änderungen an einem neuen Gerät vorzunehmen, beginnen Sie zu denken: „Sollte ich diese mühsame Aufgabe nicht aufgeben?!“ Ihr neues Gerät wird nicht so, wie Sie es möchten, aber Sie haben es schon satt, die Schaltung zu ändern und alles auf der Platine neu zu machen.
Beim Durchblättern von Elektronikzeitschriften stößt man immer häufiger auf die Begriffe: Prozessor, Mikrocontroller, Firmware, Programmierung. Aber diese Worte haben für Sie keine spezifische Bedeutung. Sie haben irgendwo etwas gehört und vielleicht sogar in Ihren Händen gehalten, woran Sie sogar mit Ehrfurcht denken: Mikrocontroller! Etwas, das die Größe von Geräten reduziert und ihnen Funktionen verleiht, die für Sie unerreichbar sind ... Nein, Sie als Elektronikingenieur verstehen die allgemeinen Vorstellungen davon, wie diese Geräte funktionieren, aber ihre praktische Verwendung in Ihren Produkten kommt nicht in Frage! Sie haben bereits mehrmals versucht, Mikrocontroller zu beherrschen, Sie haben sogar ein paar Bücher aus der Reihe „... für Dummies“ gekauft und mehrere beliebte Tutorials aus dem Internet heruntergeladen. Es verging einige Zeit, und am interessantesten Punkt blieb alles stehen: Die in den Büchern gezeigten Diagramme waren Ihnen klar, aber die Methoden zur Programmerstellung blieben für Sie ein Rätsel. Das Eintippen einiger Zeichen auf Englisch (oder einer anderen Sprache) in das im Buch angegebene Programm ist für Sie kein Problem. Aber das WESENTLICHE und DIE METHODEN der Verwendung dieser mysteriösen Symbole, deren Reihenfolge im Buch als Programm bezeichnet wird, sind nicht klar. Sie haben sich selbst die Schuld gegeben, dumm zu sein, und die Idee, Mikrocontroller zu beherrschen, beiseite geschoben. Und warum? Sie machen bereits einen tollen Job: Sie haben viele, viele Chips, auf denen Sie Ihre Geräte entwickeln... Geräte auf großen Platinen, die Sie lange, lange debuggen und überarbeiten...
Aber lernen Sie den Kerl von nebenan kennen: Er schreibt Programme, lädt sie in den Mikrocontroller, und was man monatelang debuggen muss, erledigt er in wenigen Tagen. Sie geraten in Panik, beginnen nach verlassenen Büchern zu suchen und erinnern sich an alles, was Sie zuvor gelesen haben ... Er kann, aber Sie können nicht. Sie lernen diesen Mann besser kennen und beginnen unter dem Deckmantel eines Nebengesprächs, ihn nach Mikrocontrollern und ihren Fähigkeiten zu befragen. Und er sagt gelassen, dass Controller für ihn ein Hobby seien. Sie bitten ihn, Ihnen von seinem Gerät zu erzählen. Seine Antworten sind einfach und unprätentiös.

Mikrocontroller. Was ist ein Mikrocontroller?
Ein Mikrocontroller ist ein kleiner Spezialcomputer, auf Russisch Mikrocomputer. Darüber hinaus besteht dieser Mikrocomputer aus einem Chip und einem Kristall. Daher der vollständige Name: „Einzelchip-Mikrocomputer“. Ein Mikrocontroller ist wie ein Computer ein elektronisches Gerät, dessen Betrieb durch ein Programm gesteuert wird – eine im Speicher vorinstallierte Befehlsfolge. Diese Befehle werden vom Prozessor ausgeführt: einer Art „Mega-Gehirn“, das eine ALU – eine arithmetisch-logische Einheit – enthält. Das heißt, der Prozessor „kann“ mathematische Operationen und logische Operationen an Daten durchführen.

Prozessorkapazität. Methoden zur Präsentation von Informationen.
Sowohl der Prozessor als auch der Speicher sind digitale Geräte, die Signale nur auf zwei Ebenen „verstehen“: Es liegt Spannung/Strom an und es liegt keine Spannung/Strom auf der Leitung an. Diese beiden Zustände werden normalerweise wie folgt geschrieben: logische Eins – „1“ und logische Null – „0“. Befehle und Daten sind eine Sammlung von Einsen und Nullen. Eine Leitung (Entladung genannt) kann in ihren beiden Zuständen nur zwei Werte übermitteln. Doch mit zunehmender Ziffernzahl nimmt auch die Zahl der Werte zu: Aus zwei Ziffern sind bereits vier, aus acht Ziffern bereits 256 Werte. Eine Ziffer wird üblicherweise als Bit bezeichnet: Eine Ziffer ist ein Bit. Und ein Satz von acht Bits ist ein Byte: Acht Bits sind ein Byte. Aber ein Byte hat nur 256 Werte. Um weitere Informationen zu übertragen, werden mehrere Bytes verwendet, die sich nacheinander im Speicher befinden. Zwei Bytes übermitteln bereits 65536 Werte. Drei Bytes – 16777216 Werte! Usw. Am gebräuchlichsten sind Prozessoren, die acht Bits in einem Arbeitsgang verarbeiten können, weshalb solche Prozessoren auch als Acht-Bit-Prozessoren bezeichnet werden.

Prozessorbefehlssystem.
Bei der Entwicklung eines Prozessors wird ihm die Fähigkeit eingebaut, bestimmte Befehle auszuführen. Die Anweisungen, die ein bestimmter Prozessor ausführen kann, werden als Befehlssatz bezeichnet. Was sind das für Befehle? Die gebräuchlichsten arithmetischen und logischen Befehle sowie Befehle zum Arbeiten mit Ports – Kommunikationsleitungen zwischen dem Prozessor und der Außenwelt. Nachdem der Prozessor einen Wert aus einer Speicherzelle oder den Zustand eines Ports in seinen eigenen Speicher – ein Register – gelesen hat, kann er mathematische oder logische Operationen daran ausführen. Mathematisch sind uns die Operationen klar: Addition, Subtraktion und andere. Unter logischen Aktionen sind folgende Aktionen zu verstehen: Vergleich – mehr, weniger, gleich; Arbeiten an den Bits einer Speicherzelle oder eines Registers: Nullsetzen oder Setzen sowie Operationen zum Verschieben von Bits nach links oder rechts.

Gedächtnis und seine Typen.
Daten können aus dem Speicher gelesen werden. Der Speicher ist ein Ort, an dem ein Programm und/oder Daten für einige Zeit gespeichert werden können. Sie können für kurze Zeit – bis zum Ausschalten der Stromversorgung – oder für längere Zeit – unabhängig vom Vorhandensein der Versorgungsspannung – gespeichert werden. Der erste Speichertyp wird zum Speichern von Zwischendaten verwendet, die bei der Ausführung verschiedener Vorgänge verwendet werden. Aus diesem Grund wird es „Random Access Memory“ genannt. Der zweite Speichertyp wird häufiger zum Speichern von Programmen verwendet. Es gibt verschiedene Arten von Langzeitgedächtnissen: einmalig programmierbare Speicher, elektrisch löschbare Speicher und durch Ultraviolett- oder Röntgenstrahlung löschbare Speicher. Die physikalische Struktur und das Funktionsprinzip des Speichers mögen unterschiedlich sein, aber das Wesentliche ist dasselbe: das Speichern von Daten. Der Begriff „Zelle“ wird zur Beschreibung eines Datenspeichers verwendet. Je mehr Zellen also vorhanden sind, desto mehr Daten können gespeichert werden. Jede Zelle hat eine individuelle Adresse. Der Prozessor greift exakt über seine Adresse auf den Wert einer Speicherzelle zu.

Häfen. Port-Betriebsmodi.
Daten können auch von externen Geräten über Kommunikationsleitungen – Mikrocontroller-Pins – empfangen werden. Diese Kommunikationsleitungen werden Ports oder wissenschaftlich: Dateneingabe- und -ausgabegeräte genannt. Die Port-Pins können Eingänge sein, über die der Prozessor Informationen von außen von verschiedenen Sensoren empfängt, oder Ausgänge sein, über die Signale gesendet werden, an die externe Geräte gesteuert werden können. In modernen Mikrocontrollern sind die Pins fast aller Ports bidirektional, d. h. sie können sowohl Ein- als auch Ausgänge sein. Universelle Ports müssen konfiguriert werden – stellen Sie den Betriebsmodus auf Eingabe oder Ausgabe ein. Zu diesem Zweck gibt es eine spezielle Speicherzelle – ein Register zur Steuerung der Port-Betriebsmodi. Um beispielsweise den benötigten Ausgang (Bit) des Ports zu einem Eingang zu machen, wird je nach Mikrocontroller-Modell 1 oder 0 in das Steuerregisterbit geschrieben.

Peripheriegeräte.
Doch der Mikrocontroller enthält nicht nur einen Prozessor und Speicher. Die Hauptrolle spielen die sogenannten Peripheriegeräte: Timer, Zähler, Analogkomparatoren, Digital-Analog- und Analog-Digital-Wandler, serielle Kommunikationsgeräte (oft als serielle Schnittstelle bezeichnet). Oftmals verfügt der Mikrocontroller auch über eine Reihe nichtflüchtiger Speicherzellen (meistens Flash), in denen verschiedene Daten gespeichert werden können.

Mikrocontroller-Familien.
Das Vorhandensein aller aufgeführten Geräte im Mikrocontroller ist nicht erforderlich. Meistens stellt ein Hersteller mehrere Produktmodelle her, die verschiedene Peripheriegeräte enthalten. Mikrocontroller mit einem Prozessortyp (und einem Satz ausführbarer Maschinencodes), aber unterschiedlichen Peripheriegeräten, gehören zur selben Familie. Das sagt man so: Mikrocontroller der ATtiny-Familie.

Multifunktionalität von Mikrocontroller-Pins.
Es stellt sich möglicherweise die Frage: Wie „kommunizieren“ all diese Geräte mit der Außenwelt, wenn die meisten Chips in einem DIP-Gehäuse nicht mehr als 40 Pins haben? Um das Problem des Pin-Mangels zu lösen, wird eine Methode verwendet, um die Funktionen mehrerer Geräte über einen einzigen Pin zu kombinieren. Beispielsweise werden die Pins eines der Ports (8 Bits – 8 Pins) auch zum Betrieb eines Analog-Digital-Wandlers verwendet, und die Pins eines anderen Ports werden als Eingänge von analogen Komparatoren, einem seriellen Port usw. verwendet Verbindung anderer integrierter Knoten. Um die Betriebsmodi der Pins zu steuern, wird ein spezielles Port-Betriebsmodus-Steuerregister verwendet (dies wurde bereits bei der Erläuterung der Prinzipien des Port-Betriebs besprochen). In den meisten Mikrocontrollern haben die Pins mehrere Funktionen. Wenn Sie sich bei der Beschreibung der Ausgangsfunktion auf die technische Dokumentation des Reglers beziehen, wird auf die Haupt- und Alternativfunktionen dieses Ausgangs hingewiesen. Zum Beispiel: PD0/RX – das Nullbit von Port D ist auch der Eingang des seriellen Ports, PB1/Ain0 – das erste Bit von Port B ist auch der Eingang des analogen Komparators.

Algorithmen. Programme.
Befehle an den Prozessor werden in einer bestimmten Reihenfolge gemäß einem zuvor entwickelten Algorithmus gegeben. Ein Algorithmus ist eine Abfolge der Ausführung durch einen Prozessor. Darüber hinaus müssen die Befehle für den Prozessor verständlich sein und gleichzeitig eine eindeutige Interpretation ohne Unabhängigkeit in der Ausführung haben. Der Algorithmus kann mündlich niedergeschrieben werden. Zum Beispiel: Start des Programms; Machen Sie das Nullbit des Ports zu einem Eingang. Machen Sie das siebte Bit des Ports zu einem Ausgang. Lesen Sie den Wert des Nullbits des Ports. Wenn es einer logischen Eins entspricht, führen Sie die folgenden Aktionen aus: Laden Sie eine logische Eins in das siebte Bit des Ports. Rückkehr zum Anfang des Programms. So haben wir den Funktionsalgorithmus eines Stromkreises beschrieben, der aus einem Schalter, einer Glühbirne (oder einer anderen Last) und einer Stromquelle besteht. Das Ergebnis der Ausführung ist wie folgt: Wenn Sie die Taste drücken, wird der Eingang des Ports mit Spannung versorgt, der Prozessor führt das Programm aus – er versorgt den Ausgang des Ports mit Spannung. Und solange die Kontakte geschlossen sind, liegt am Port-Ausgang Spannung an.
Aber eine solche Schrift ist sehr schwer zu verstehen. Daher wurden Methoden zur grafischen Beschreibung des Algorithmus entwickelt. Hier ist ein Beispiel für eine grafische Aufzeichnung des obigen Algorithmus.
Reis. Algorithmus-1. Grafische Methode zur Beschreibung des Algorithmus

Verzweigungsbefehle: bedingte und unbedingte Verzweigungen.
Zu den speziellen Prozessoranweisungen gehören bedingte und unbedingte Sprunganweisungen. Um dies zu verstehen, ist es notwendig, das Konzept des „Adresszeigers des ausgeführten Befehls“ zu erklären. Der Prozessor verfügt über ein spezielles Register, das die Adresse des aktuell ausgeführten Befehls speichert. Beim Anlegen der Spannung wird dieses Register zurückgesetzt und eine Null geschrieben. Als nächstes beginnt der Prozessor mit der Ausführung der im Speicher gespeicherten Befehle, beginnend bei der Adresse Null – schließlich enthält das Adresszeigerregister des ausgeführten Befehls Null. Nach Ausführung des Befehls wird dieser Zeiger belastet, d. h. sein Wert wird erhöht. Der Prozessor liest den nächsten Befehl aus dem Speicher an der im Zeiger angegebenen Adresse. Das heißt, Befehle werden nacheinander ausgeführt. Sie können die Reihenfolge der Programmausführung durch bedingte und unbedingte Sprungbefehle unterbrechen. Dazu wird in einer der Speicherzellen ein Befehl gespeichert, der den Prozessor anweist, den Wert des Adresszeigerregisters des ausgeführten Befehls zu ändern. Eine bedingungslose Sprunganweisung weist den Prozessor an, die Reihenfolge der Programmausführung zu ändern und mit der Ausführung der im Speicher gespeicherten Anweisungen ab der zuvor angegebenen Adresse zu beginnen.
Der bedingte Sprungbefehl ist komplexer: Bei der Ausführung prüft er, ob eine Bedingung erfüllt ist. Beispielsweise müssen Sie den Wert zweier Speicherzellen vergleichen. Wenn der Wert der ersten Zelle größer ist, fahren Sie mit der Ausführung des Programms an Adresse A fort, andernfalls (d. h. der Wert der ersten Zelle ist kleiner) gehen Sie zu Adresse C.

Interrupts und ihre Typen. Prioritäten unterbrechen.
Es gibt eine andere Möglichkeit, den Prozessor zu „zwingen“, die sequentielle Ausführung des Programms zu stoppen und die Ausführung des Programms an einer bestimmten Adresse zu starten – einen „Interrupt“ zu rufen. Das Konzept der Unterbrechung tauchte mit den ersten Prozessoren auf. Die Sache ist, dass der Prozessor Geräte steuert, die langsamer sind als er. Beispielsweise muss der Prozessor Daten verarbeiten, bis ein bestimmtes Signal auftritt. Lassen Sie uns ein einfaches Beispiel geben: Der Prozessor führt ein Programm aus, um die Anzahl der an einem seiner Ports empfangenen Impulse zu zählen. Wenn Sie die Taste drücken, muss der Prozessor die Ausführung dieses Programms unterbrechen und ein anderes Programm ausführen: Ein Gerät einschalten (d. h. eine logische Eins auf eines der Bits des Ports anwenden – „1“). Wie kann dieses Problem gelöst werden? Im Programm selbst können Sie ständig die benötigte Ziffer des Ports abfragen, an dem der Taster angeschlossen ist. Gleichzeitig wird jedoch ein Teil der Prozessorressourcen (Geschwindigkeit) praktisch für die Abfrage des Ports verschwendet. Die zweite Möglichkeit besteht darin, Interrupts zu verwenden. Der Prozessor (und damit der Mikrocontroller) verfügt über einen speziellen Pin. Es wird üblicherweise als „Int“ (englisch: „Interrupt“) bezeichnet. Wenn ein Signal an den „Int“-Pin angelegt wird, werden folgende Aktionen ausgeführt:
- Stoppen der Ausführung des Hauptprogramms,
- Der Wert des Adresszeigerregisters des ausgeführten Befehls wird im RAM (dem Ort, an dem die Programmausführung unterbrochen wird) gespeichert.
- Danach wird eine neue Adresse in dasselbe Register geladen (je nach Wunsch des Prozessorherstellers),
- In der Speicherzelle mit der angegebenen Adresse gibt es einen unbedingten Sprungbefehl: „Gehe zu Adresse xx“,
- Im Speicher befindet sich ab der Zelle mit der Adresse xx ein weiteres Programm, nennen wir es ein Dienstprogramm.

In unserem Fall muss das Dienstprogramm eine logische Einheit an den Port senden und dadurch das erforderliche Gerät einschalten. Und hier beginnt der Spaß: Der letzte Befehl des Hilfsprogramms ist der Befehl „Exit Interrupt“. Beim Empfang dieses Befehls liest der Prozessor den zuvor gespeicherten Wert des Befehlsadressenzeigerregisters aus dem Speicher und lädt ihn in dieses Register. Folglich führt der Prozessor das Hauptprogramm dort weiter aus, wo es unterbrochen wurde.
Eine Unterbrechung kann jedoch nicht nur durch externe Signale verursacht werden, sondern auch durch interne Geräte des Mikrocontrollers selbst: Timer, Zähler, serielle Schnittstellen und sogar nichtflüchtiger Speicher. Auch dies geschieht hauptsächlich, um die Anzahl der Befehle zu reduzieren, die zur Analyse des Zustands dieser Peripheriegeräte ausgeführt werden. Nehmen wir ein Beispiel: Der Prozess des Schreibens von Daten in den nichtflüchtigen Speicher ist sehr langwierig und der Prozessor kann in dieser Zeit eine sehr große Anzahl von Befehlen ausführen. Daher führt der Prozessor das Hauptprogramm aus, gibt einen Befehl zum Löschen des nichtflüchtigen Speichers aus und fährt dann mit der Ausführung des Hauptprogramms fort. Sobald das Löschen des nichtflüchtigen Speichers abgeschlossen ist, erzeugen die Steuerschaltungen ein Unterbrechungssignal aus diesem Speicher. Der Prozessor unterbricht die Ausführung des Hauptprogramms und der Prozess des Schreibens von Daten in den Speicher beginnt. Diese Methode zum Ausführen einer Aktion außerhalb des Hauptprogramms wird als Hintergrundmodus bezeichnet. Oft heißt es auch: „Dieser Teil des Programms läuft im Hintergrund.“
Beim Arbeiten mit Interrupts ist Vorsicht geboten: Es kann vorkommen, dass die Ausführung des Programms und der Betrieb des gesamten Geräts gestört werden. Tatsache ist, dass der Mikrocontroller mehrere Interrupts hat. Zur Steuerung der Interrupt-Betriebsarten gibt es ein Interrupt-Steuerregister. Beim Einrichten der Interrupt-Betriebsmodi haben Sie den Betrieb mehrerer Interrupts zugelassen – das ist eine normale Situation. Nachdem Sie jedoch ein externes oder internes Interrupt-Signal an das Hauptprogramm erhalten und mit der Ausführung des Interrupt-Dienstprogramms begonnen haben, haben Sie die Interrupts nicht deaktiviert. Der Prozessor führt ein Dienstprogramm aus und empfängt in diesem Moment ein weiteres Interrupt-Signal. Der Prozessor unterbricht die Ausführung des Dienstprogramms und fährt mit der Ausführung des Programms zur Verarbeitung eines neuen Interrupts fort. Man kann sich leicht vorstellen, wozu das führen könnte.
Um dieses Problem zu lösen, wurde eine Methode entwickelt, um jedem Interrupt einen Schweregrad oder eine „Interrupt-Priorität“ zuzuweisen. Abhängig vom Mikrocontroller-Modell kann die Interrupt-Priorität starr festgelegt werden (und der Programmierer erlaubt oder deaktiviert nur die Verarbeitung eines bestimmten Interrupts) oder kann von Programmierern programmgesteuert implementiert werden (d. h. die Interrupt-Priorität hängt von den Vorlieben des Programmierers ab). der Algorithmus zur Umsetzung einer bestimmten Aufgabe).

Wir kontrollieren den Prozessor. Programmiersprachen. Übersetzer.
Maschinencodes. Monteur.
Befehle für den Prozessor sind Folgen von Einsen und Nullen. Prozessorbefehle werden oft als Maschinencodes bezeichnet, was betont, dass diese Befehle ursprünglich für einen bestimmten Ausführenden konzipiert waren – eine Maschine, aber nicht eine Person. Es ist sehr schwierig, sich Befehle anhand von Zahlen (Maschinencodes) zu merken. Um die Arbeit zu vereinfachen, wurde daher eine Möglichkeit erfunden, digitale Sequenzen durch symbolische Abkürzungen zu ersetzen, die für den Menschen verständlicher sind. Für den Befehl „Daten laden“ haben sie sich beispielsweise eine eindeutige Abkürzung „ld“ (englisch „load“ – laden), für den Befehl „compare“ – „cp“ (englisch „compare“ – Vergleich) und so weiter ausgedacht An. Diese Methode zur symbolischen Aufzeichnung von Prozessorbefehlen wird „Assembler“ genannt. Wenn der Programmierer bei der Arbeit mit Maschinencodes die Steuerbefehle des Prozessors direkt in den Speicher des Geräts eingibt, gibt es bei der Arbeit mit Assembler eine Art Vermittler zwischen dem Programm und dem Prozessor, der symbolische Notationen in Maschinencodes umwandelt. Das Programm, das als Vermittler fungiert, wird Übersetzer genannt, also Übersetzer. Aber es gibt eine kleine Nuance: Assembler bezieht sich nicht nur auf die Methode der symbolischen Bezeichnung digitaler Anweisungen (Maschinencodes), sondern auch auf ein Übersetzerprogramm, das dem Programmierer hilft, symbolische Bezeichnungen von Befehlen direkt in Maschinenbefehle zu übersetzen. Daher wird häufig die folgende Technik verwendet: Wenn sie über eine Sprache sprechen, schreiben sie Assembler, wenn sie über ein Programm sprechen, schreiben sie einfach Assembler.
Assembler hat einen großen Vorteil: In Assembler geschriebene Programme werden vom Prozessor sehr schnell ausgeführt. Tatsache ist, dass Assembler praktisch ein Maschinenbefehl ist. Aber Assembler hat auch Nachteile: Der Hauptnachteil ist die Schwierigkeit, Programme zu schreiben, der zweite besteht darin, dass selbst relativ einfache Programme eine große Menge an Quelltext haben, was die Analyse des Programms erschwert.

Modularität der Programme. Häufig wiederholte Aufgaben.
Jeder Programmierer hat im Laufe seiner Arbeit eine bestimmte Anzahl von Programmen angesammelt. Aber viele Programme enthalten die gleichen Aktionen. Viele Programme fragen beispielsweise die Tastatur ab und analysieren die gedrückte Taste. Dies bedeutet, dass dieser Teil des Programmcodes von einem Programm auf ein anderes übertragen werden kann. Aus solchen Teilen (Modulen) wurden nach und nach Programmbibliotheken gebildet. Programmierer begannen, ein Programm aus Modulen zu „formen“, das heißt, sie fügten das erforderliche Modul an der erforderlichen Stelle im Programm ein. Dieser Ansatz beschleunigte den Prozess des Programmschreibens und erhöhte die Zuverlässigkeit des Programms insgesamt durch die Verwendung bereits debuggter Module. Doch schon in den ersten Tagen tauchte das Problem der gemeinsamen Nutzung von Modulen auf: Schließlich schrieb jeder Programmierer Module nach seinem eigenen „Standard“ – da es für ihn zu der einen oder anderen Zeit bequemer war. Daher wurde nach und nach ein Standard (genauer gesagt mehrere Starts) zum Schreiben dieser Module entwickelt. Sie beschrieben die Struktur der Module zum bequemeren „Einkleben“ in ein Programm.

Programmiersprachen und ihre funktionale Aufteilung.
Nach und nach bildeten diese unterschiedlichen Standards für die Verwendung von Modulen das, was später „Programmiersprachen“ genannt wurde. Wie menschliche Sprachen verfügt eine Programmiersprache über mehrere Unterebenen, die sowohl die Schreibweise einzelner Wörter (Module) als auch die Methoden zu deren Schreibweise sowie die Regeln für deren Verwendung bestimmen. Im Laufe der Zeit haben sich Programmiersprachen weiterentwickelt und verändert. Nach und nach wurden alle Programmiersprachen je nach „beruflicher Ausrichtung“ in mehrere Gruppen eingeteilt:
- Angewandte Programmiersprachen (FORTRAN für Mathematiker, FoxPro für Finanzarbeiter);
- universell (Pascal und Basic);
- System (Assembler und C).

Systemwörter wurden als Low-Level-Sprachen bezeichnet, d. h. der Programmierer arbeitet auf der niedrigeren Ebene, die dem Prozessor am nächsten ist. Und Sprachen, bei denen der Programmierer den Betrieb des Prozessors nicht direkt steuern muss, wurden als Hochsprachen (oft als Java-Sprachen bezeichnet) bezeichnet. Verwechseln Sie diese Abkürzung nicht mit dem Namen der Java-Sprache – „Java“.

Ausstrahlung der Sendung. Methoden zur Ausstrahlung eines Programms.
Wie bei Assembler muss ein in einer beliebigen Hochsprache geschriebenes Programm in Anweisungen umgewandelt werden, die der Prozessor verstehen kann. Dies geschah zunächst manuell: Ein Befehl im Assembler wurde in einer Tabelle gefunden und in Maschinencode geschrieben. Um den Prozess der Konvertierung (Übersetzung) eines Programms zu beschleunigen, wurden spezielle Programme geschrieben – Übersetzer. Es gibt zwei Methoden zum Übersetzen eines Programms: Interpretation und Kompilierung. Folglich wird ein Übersetzer entweder als Interpreter oder als Compiler bezeichnet. Beim Einsatz eines Interpreters wird der Quelltext des Programms analysiert und sequentiell Befehl für Befehl vom Interpreter ausgeführt. Der Interpreter enthält Module für alle nutzbaren Aktionen. Diese Konvertierung pro Befehl ist sehr langsam. Diese Methode hat jedoch einen großen Vorteil: Sie können das Programm stoppen, seinen Code ändern und seine Ausführung fortsetzen. Dies ist beim Debuggen eines Programms praktisch. Auch in diesem Fall verfügen wir über den Quelltext des Programms und können ihn mehrfach bearbeiten.
Bei Verwendung eines Compilers wird der Programmtext analysiert und eine Datei mit Maschinenanweisungen, eine sogenannte ausführbare Datei, erstellt. Dies gewährleistet eine sehr hohe Ausführungsgeschwindigkeit des kompilierten Programms – schließlich erfolgt die Umwandlung von Programmtext in Maschinencodes nur einmal während der Kompilierung. Sie können das Programm jedoch nicht im Handumdrehen ändern: Sie müssen den Programmtext ändern und es erneut kompilieren. Wenn aus irgendeinem Grund der Quellcode fehlt, ist eine Neukompilierung des Programms nicht möglich und das Ändern der ausführbaren Datei ist äußerst schwierig.

Der Prozess der Erstellung eines Programms. Programmentwicklungsumgebungen.
Mit dem Aufkommen von Übersetzern sah der Prozess der Programmerstellung folgendermaßen aus:
- ein Algorithmus für das zukünftige Programm wird entwickelt,
- der Algorithmus ist kodiert (d. h. in Form von Programmiersprachenbefehlen beschrieben),
- Der resultierende Code wird in einem Texteditor geschrieben.
- die Datei mit dem Programmtext wird an den Übersetzer übertragen,
- der Übersetzer symbolische Befehle in für den Prozessor verständliche Befehle umwandelt und in einer Datei speichert,
- Diese Datei wird in den Speicher geladen.
Wie Sie sehen, musste der Programmierer in mehreren Programmen arbeiten. Meistens wurden alle diese Programme von verschiedenen Herstellern geschrieben, sodass die Kompatibilität dieser Programme untereinander nicht gewährleistet war. Ihre Kompatibilität musste durch Versuch und Irrtum ermittelt werden.

Integrierte Softwareentwicklungsumgebung.
Kürzlich ist ein neuer Ansatz aufgetaucht: die „Integrated Development Environment“ (IDE). Unter Integration versteht man die Ausführung des gesamten Prozesses der Programmerstellung in einem Programm: Nachdem der Programmierer den Programmtext geschrieben hat, startet er per Mausklick die Übersetzung des Programmtextes in Maschinencodes, woraufhin die resultierende ausführbare Datei automatisch geladen wird der Speicher des Prozessorgeräts. Das heißt, alles wird in einem Programm erledigt. Dieser Ansatz beschleunigt die Arbeit des Programmierers.

Erste Schwierigkeiten.
Alle vorherigen Kapitel waren ein Einführungskurs, der Sie auf die Wahrnehmung neuer Informationen vorbereitete. Wir haben unterwegs mehrere Probleme.
1. Eine große Menge abwechslungsreicher Informationen: Elektronik, Mikrocontroller-Design, Algorithmen, Syntax von Programmiersprachen, Beschreibungen der Arbeit mit Softwaretools. Und wie schreibt man? Der eine Leser ist ein guter Elektronikingenieur, hat aber noch nie ein Programm geschrieben, ein anderer ist Programmierer, aber die Elektronik befindet sich auf dem Niveau eines Funkkreises, der dritte ist irgendwo dazwischen ...

2. Auswahl von MK: Wenn alle Mikrocontroller gut sind, auf welchem ​​Produkt und welchem ​​Hersteller sollte dann die Weiterbildung und der praktische Einsatz von Mikrocontrollern basieren?
Um einen Mikrocontroller für das TRAINING auszuwählen, müssen wir die folgenden Bedingungen erfüllen:
A) Der für das Training ausgewählte Mikrocontroller muss zugänglich und kostengünstig sein.
B) Es muss ein modernes Produkt sein, aber nicht das neueste.

Nun ausführlicher zu jedem Punkt.
Mit Punkt A ist alles klar: Was bringt es, ein Produkt zu studieren, das schwer zu kaufen ist oder dessen Preis für einen Anfänger exorbitant ist?
Punkt B bedarf einer Klärung. Tatsache ist, dass neue Produkte immer einige Mängel aufweisen. Sie werden erst nach einiger Zeit entdeckt, bis jemand bei der Arbeit mit diesem Produkt versehentlich auf dieses Problem stößt. Aber neue Produkte finden nicht sofort Eingang in neue Designs: Es braucht Zeit, Programme für neue Modelle zu schreiben. Hier gibt es einen menschlichen Faktor: Entwickler haben bereits fertige Lösungen für frühere Mikrocontroller-Modelle, und der Umstieg auf neue ist schwierig.
Außerdem haben alle neuen Mikrocontroller nur eine proprietäre Beschreibung. Und es ist auf Englisch verfasst und enthält zahlreiche Fachbegriffe: Schließlich ist es für Profis gedacht! Und wir sind Studenten... Nach einiger Zeit erscheinen Designbeispiele, detailliertere Beschreibungen mit zahlreichen Kommentaren und Ratschlägen. Dann wird jemand damit beginnen, die Dokumentation ins Russische zu übersetzen (nicht alles, aber zumindest die komplexeste oder am häufigsten verwendete).
Möglicherweise gibt es keine Tools für einen neuen Mikrocontroller: Compiler, Debugger und Programmierer „verstehen“ dieses Produkt nicht. Noch einmal: Warten, bis die Autoren dieser Programme ihre Kreationen aktualisieren ...

3. Sie müssen eine Programmiersprache auswählen, auf dem wir Programme für MK schreiben wollen.
Die Wahl einer Programmiersprache ist eine sehr heikle Aufgabe. Um das Programmieren von Mikrocontrollern zu lehren, möchte ich eine Programmiersprache mit einer einfachen Syntax verwenden: Der Programmierer muss sich mit dem Programm befassen, aber nicht mit seinem Design!
Hier muss vorab eine Erklärung abgegeben werden: Derzeit sind bei Entwicklern von Programmen und Geräten auf Mikrocontrollern drei „Familien“ von Sprachen beliebt: C (geschrieben als „C“), Pascal (Pascal) und BASIC (BASIC). . Pascal wurde ursprünglich als Werkzeug zum Erlernen des Programmierens entwickelt. BASIC selbst ähnelt im Aufbau Pascal, das Schreiben von Befehlen ist jedoch vereinfacht und die Anforderungen an die Programmgestaltung sind deutlich geringer. C gilt als Sprache für Profis. Xi ist wie die chinesische Philosophie: Nicht nur das Symbol (Befehl) ist wichtig, sondern auch sein Stil und seine Farbe. Spaß beiseite, aber meine Meinung ist: C ist ein Albtraum. Sein Einsatz ist nur bei einigen sehr eng spezialisierten Aufgaben gerechtfertigt. Aber unsere Aufgabe ist es, unsere Stärken auszuprobieren und sie so wenig wie möglich für Aufgaben aufzuwenden, die nicht in direktem Zusammenhang mit dem Hauptziel stehen.

4. Wir brauchen eine Programmentwicklungsumgebung für Mikrocontroller. Seine Wahl hängt direkt von der Art des verwendeten MK und der Programmiersprache ab.
Für die erfolgreiche Beherrschung der Mikrocontroller-Programmierung ist die Programmentwicklungsumgebung von großer Bedeutung. Es ist möglich, Programme in einem Texteditor wie Notepad zu schreiben, aber es ist umständlich (getestet!). Und der Aufruf des Compilers über die Befehlszeile ist in unserem auf grafischen Fenstern basierenden Zeitalter eine undankbare Aufgabe.
Die Wahl der Entwicklungsumgebung hängt direkt vom Mikrocontroller ab, auf dem wir den praktischen Teil der Schulung aufbauen. Darüber hinaus brauchen wir kostenlose Tools. Aber wie das Testen solcher Programme gezeigt hat, weist freie Software sowohl hinsichtlich der Nutzung als auch hinsichtlich des Erlernens der MK-Programmierung meist eine mittelmäßige Qualität auf: Das Vorhandensein von Fehlern oder Mängeln in den Übersetzern selbst schafft zusätzliche Schwierigkeiten und einem das Selbstvertrauen nehmen.
Eine Demoversion würde auch genügen, wenn sie ein Minimum an Einschränkungen hätte und mindestens ein halbes Jahr funktionieren würde – das ist genau die Zeit, die man braucht, um zu Hause Kenntnisse im Umgang mit Mikrocontrollern zu erlangen.

5. Ein Programmierer, der zum Laden geschriebener Programme in den Speicher des MK verwendet wird. Die Wahl des Programmierers hängt auch von der Art des verwendeten MK ab. Natürlich gibt es „universelle“ Programmierer, die es ermöglichen, mit verschiedenen Mikrocontrollern und Speicherchips zu arbeiten, aber diese sind teuer. Ja, und in den meisten Fällen nicht erforderlich. Daher ist es einfacher, etwas hochspezialisiertes für diese MK-Familie herzustellen.
Der Punkt ist jedoch nicht so sehr die Komplexität der Programmierschaltkreise, sondern die Art und Weise, wie dieser Programmierer an den PC angeschlossen wird. Hier muss klargestellt werden: Ein Programmierer ist ein elektronischer Adapter, der Signale von Computerschnittstellen (COM-, LPT- und USB-Anschlüsse) in Signale umwandelt, die an die Ausgänge des MK geliefert werden, um das Programm in seinen Speicher zu laden. Der elektronische Adapter wird von einem PC-Programm gesteuert, das den Adapter „zwingt“, die erforderlichen Signalsequenzen an die MK-Pins auszugeben.
Wenn ein Programmieradapter, der über COM- und LPT-Anschlüsse mit einem PC verbunden ist, zu Hause hergestellt werden kann – „auf dem Knie“, dann ist die Herstellung eines solchen Adapters, der jedoch an einen USB-Anschluss angeschlossen ist, bereits etwas problematisch: Das Herzstück eines solchen Adapters ist oft... ein Mikrocontroller. Hier entsteht ein Paradox: Um den MK zu programmieren, müssen wir den MK programmieren.
Es stellt sich die logische Frage: Warum einen komplexen Adapter herstellen, der an USB angeschlossen werden kann, wenn man einen einfachen Adapter herstellen und ihn an einen LPT- oder COM-Anschluss anschließen kann? Die Sache ist, dass viele (fast alle) modernen PCs nicht über diese Anschlüsse verfügen. Daher müssen Sie einen komplexeren Adapter zum Programmieren des MK herstellen.

März 2010

Diese Fragen habe ich mir im März gestellt, und jetzt ist es schon Ende November. Doch diese Zeit war nicht umsonst: Ich fand einen Ausweg aus den oben beschriebenen Situationen und Antworten auf alle Fragen, die mich quälten. Und jetzt das Wichtigste zuerst.

Antwort auf Frage Nummer 1
Wenn die Materialien der vorherigen Kapitel irgendwie logisch systematisiert und Schritt für Schritt präsentiert werden könnten, dann werden die Materialien in den nachfolgenden Kapiteln parallel bereitgestellt: Das eine impliziert das andere. Vielleicht kommt Ihnen meine Art, neue Materialien zu präsentieren, etwas chaotisch vor, aber etwas Schöneres im Design ist mir nicht eingefallen.

Antwort auf Frage Nummer 2
Mikrocontroller hergestellt von ATMEL ATMEGA48. Es ist gut beschrieben, seit mehreren Jahren in Produktion, soll frühestens in den nächsten 3 Jahren eingestellt werden und verfügt über optimale technische Parameter.

Antworten auf die Fragen 3 und 4
Die Programmierumgebung ist BASCOM (hergestellt von MCS Electronics, Autor Mark Alberts). Die Programmiersprache ähnelt in Stil und Anforderungen an die Gestaltung von Programmtexten Pascal, die Befehlssyntax ist jedoch von BASIC übernommen.
Gründe für die Wahl:
- eine voll funktionsfähige Demoversion des Compilers (einzige Einschränkung: Der vom Compiler generierte Code ist auf eine Größe von 4 KB begrenzt)
- der Wunsch des Programmautors zur Zusammenarbeit (ich habe die Nachrichten der Benutzeroberfläche und das Hilfesystem ins Russische übersetzt, er hat Russisch zu diesem Programm hinzugefügt)
- Vorhandensein eines russischsprachigen Forums für Benutzer dieses Compilers

Antwort auf Frage Nummer 5
Es war nicht möglich, die Einfachheit der Schaltung und USB zu vereinen. Es wurde beschlossen, zwei Programmierermodelle zu beschreiben: eines wird an den LPT-Port des Computers angeschlossen, das zweite an den COM-Port. Fehlen diese Anschlüsse, kann die zweite Version des Programmiergeräts über einen USB-COM-Konverter an einen Computer angeschlossen werden. So erhalten wir eine USB-COM-Programmierer-Mikrocontroller-Kombination.
Das erste Modell des Programmierers ist als STK-200/300 bekannt und enthält einen Pufferchip für den dritten Zustand und mehrere Widerstände. Das zweite Modell ist der bekannte USBasp-Programmierer.

Mikrocontroller sind kleine, aber gleichzeitig sehr praktische Geräte für diejenigen, die zu Hause verschiedene erstaunliche Roboter- oder automatisierte Dinge erstellen möchten. In diesem Artikel werden die AVR-Programmierung für Anfänger sowie verschiedene Aspekte und Nuancen dieses Prozesses erläutert.

allgemeine Informationen

Mikrocontroller sind überall zu finden. Sie finden sich in Kühlschränken, Waschmaschinen, Telefonen, Industriemaschinen, Smart Homes und vielen anderen technischen Geräten. Ihre weit verbreitete Verwendung ist auf die Möglichkeit zurückzuführen, komplexere und umfangreichere analoge Geräteschaltungen zu ersetzen. Die Programmierung des AVR MK ermöglicht die autonome Steuerung elektronischer Geräte. Man kann sich diese Mikrocontroller als einfache Computer vorstellen, die mit externen Geräten interagieren können. So können sie Transistoren öffnen/schließen, Daten von Sensoren empfangen und auf Bildschirmen anzeigen. Mikrocontroller können auch verschiedene Verarbeitungen von Eingabeinformationen durchführen, ähnlich wie ein Personal Computer. Wenn Sie die AVR-Programmierung von Grund auf beherrschen und das professionelle Niveau erreichen, stehen Ihnen nahezu unbegrenzte Möglichkeiten zur Steuerung verschiedener Geräte über I/O-Ports sowie zur Änderung ihres Codes zur Verfügung.

Ein wenig über AVR

Der Artikel befasst sich mit einer Familie von Mikrocontrollern von Atmel. Sie haben eine ziemlich gute Leistung, was den Einsatz in vielen Amateurgeräten ermöglicht. Weit verbreitet in der Industrie. Kann in dieser Technik gefunden werden:

  1. Inländisch. Waschmaschinen, Kühlschränke, Mikrowellenherde usw.
  2. Handy, Mobiltelefon. Roboter, Kommunikation und so weiter.
  3. Computer. Steuerungssysteme für Peripheriegeräte, Motherboards.
  4. Unterhaltsam. Schmuck und Kinderspielzeug.
  5. Transport. Fahrzeugsicherheits- und Motormanagementsysteme.
  6. Industrielle Ausrüstung. Maschinensteuerungssysteme.

Dies deckt natürlich nicht alle Bereiche ab. Sie werden dort eingesetzt, wo es vorteilhaft ist, nicht einen Satz Steuerchips, sondern einen Mikrocontroller zu verwenden. Dies ist aufgrund des geringen Stromverbrauchs möglich und zum Schreiben von Programmen werden C- und Assembler-Sprachen verwendet, die für die Mikrocontroller-Familie leicht modifiziert sind. Solche Änderungen sind aufgrund schwacher Rechenkapazitäten erforderlich, die normalerweise in Dutzenden von Kilobyte berechnet werden. Eine AVR-Programmierung ohne das Erlernen dieser Sprachen ist nicht möglich.

Wie bekomme ich meinen ersten Mikrocontroller?

Für die AVR-Programmierung ist Folgendes erforderlich:

  1. Verfügbarkeit der notwendigen Entwicklungsumgebung.
  2. Eigentlich die Mikrocontroller selbst.

Betrachten wir den zweiten Punkt genauer. Es gibt drei Möglichkeiten, das benötigte Gerät zu erwerben:

  1. Kaufen Sie den Mikrocontroller selbst direkt.
  2. Holen Sie sich ein Gerät als Teil des Designers (z. B. Arduino).
  3. Bauen Sie den Mikrocontroller selbst zusammen.

Der erste Punkt ist nichts Kompliziertes, also kommen wir zum zweiten und dritten.

Holen Sie sich ein Gerät als Teil des Designers

Als Beispiel wird der bekannte Arduino gewählt. Dies ist auch eine praktische Plattform für die schnelle und qualitativ hochwertige Entwicklung verschiedener elektronischer Geräte. Das Arduino-Board enthält einen speziellen Satz an Komponenten für den Betrieb (es gibt verschiedene Konfigurationen). Es muss einen AVR-Controller enthalten. Dieser Ansatz ermöglicht einen schnellen Einstieg in die Geräteentwicklung, erfordert keine besonderen Kenntnisse, verfügt über erhebliche Möglichkeiten zum Anschluss zusätzlicher Platinen und bietet auch im Internet zahlreiche Informationen zu interessanten Fragen. Aber es gab einige Nachteile. Durch den Kauf eines Arduino nimmt man sich die Möglichkeit, tiefer in die AVR-Programmierung einzutauchen, um den Mikrocontroller und die Besonderheiten seiner Funktionsweise besser zu verstehen. Erschwerend kommt hinzu, dass die Auswahl an Modellen relativ begrenzt ist, weshalb man Boards oft für bestimmte Aufgaben kaufen muss. Eine weitere Besonderheit besteht darin, dass sich die Programmierung in „SI“ hier recht stark von der Standardform unterscheidet. Trotz aller Mängel ist Arduino für Anfänger zum Erlernen geeignet. Aber Sie sollten es nicht missbrauchen.

Selbstmontage

Es ist zu beachten, dass AVR-Mikrocontroller recht anfängerfreundlich sind. Sie können sie aus verfügbaren, einfachen und kostengünstigen Komponenten selbst zusammenbauen. Wenn wir über die Vorteile sprechen, ermöglicht Ihnen dieser Ansatz, sich besser mit dem Gerät vertraut zu machen, die erforderlichen Komponenten unabhängig auszuwählen, das Endergebnis an die Anforderungen anzupassen, Standardprogrammiersprachen zu verwenden und niedrige Kosten zu verursachen. Als einzige Nachteile sind die Schwierigkeit der Selbstmontage bei der ersten Durchführung sowie das Fehlen der erforderlichen Kenntnisse und Fähigkeiten festzustellen.

Wie man arbeitet?

Nehmen wir also an, dass das Problem mit dem Mikrocontroller behoben wurde. Darüber hinaus wird davon ausgegangen, dass es unabhängig erworben oder erworben wurde. Was benötigen Sie sonst noch, um die AVR-Programmierung zu beherrschen? Hierzu benötigen Sie eine Entwicklungsumgebung (als Basis reicht ein normaler Notepad, ich empfehle jedoch die Verwendung von Notepad++). Auch wenn es andere Programme zur Programmierung von AVRs gibt, wird diese Software allen Anforderungen gerecht. Ein Programmierer ist ebenfalls erforderlich. Sie können es in Ihrem örtlichen Geschäft kaufen, online bestellen oder selbst zusammenbauen. Eine Leiterplatte würde auch nicht schaden. Es ist nicht erforderlich, aber wenn Sie es verwenden, können Sie Nerven und Zeit sparen. Auch unabhängig gekauft/erstellt. Und das Letzte ist die Stromquelle. Für AVR ist eine Spannungsversorgung von 5V erforderlich.

Wo und wie studieren?

Sie werden keine Meisterwerke von Grund auf schaffen können. Dies erfordert Wissen, Erfahrung und Übung. Aber wo kann ich sie bekommen? Es gibt mehrere Möglichkeiten. Zunächst können Sie selbstständig im World Wide Web nach den benötigten Informationen suchen. Sie können sich für Programmierkurse (Fern- oder Präsenzkurse) anmelden, um grundlegende Arbeitsfähigkeiten zu erwerben. Jeder Ansatz hat seine Vorteile. Fernprogrammierkurse werden also günstiger und vielleicht sogar kostenlos sein. Wenn aber mal etwas nicht klappt, kann ein erfahrener Entwickler im Präsenzunterricht schnell die Ursache des Problems finden. Es wäre auch eine gute Idee, sich mit der frei verfügbaren Literatur vertraut zu machen. Mit Büchern allein wird man natürlich nicht auskommen, aber man kann sich Grundkenntnisse über das Gerät, die Programmierung in „SI“, „Assembler“ und andere Arbeitsaspekte aneignen.

I/O-Ports

Das ist ein äußerst wichtiges Thema. Ohne zu verstehen, wie die I/O-Ports funktionieren, ist eine In-Circuit-Programmierung des AVR überhaupt nicht möglich. Denn die Interaktion des Mikrocontrollers mit externen Geräten erfolgt gerade durch deren Vermittlung. Auf den ersten Blick mag es für einen Anfänger so aussehen, als sei der Port ein ziemlich verwirrender Mechanismus. Um einen solchen Eindruck zu vermeiden, werden wir das Funktionsschema nicht im Detail betrachten, sondern uns nur einen allgemeinen Überblick darüber verschaffen. Betrachten wir die Softwareimplementierung. Als Beispielgerät wurde der AtMega8-Mikrocontroller ausgewählt – einer der beliebtesten der gesamten AVR-Familie. Der I/O-Port besteht aus drei Registern, die für seinen Betrieb verantwortlich sind. Auf der körperlichen Ebene werden sie als Beine realisiert. Jeder von ihnen entspricht einem bestimmten Bit im Steuerregister. Jedes Bein kann sowohl Informationen eingeben als auch ausgeben. Sie können beispielsweise eine Funktion zum Zünden einer LED oder zum Verarbeiten eines Tastendrucks darauf anbringen. Die drei erwähnten Register sind übrigens: PORTx, PINx und DDRx. Jeder von ihnen ist 8-Bit (denken Sie daran, wir sehen uns AtMega8 an). Das heißt, ein Bit wird von einem bestimmten Zweig belegt.

Vorgang registrieren

Am bedeutendsten hinsichtlich der Ausrichtung ist die DDRx-Steuerung. Es ist auch 8-Bit. Die Werte dafür können 0 oder 1 sein. Wie ändert sich die Funktionsweise des Controllers, wenn Nullen und Einsen verwendet werden? Wenn ein bestimmtes Bit auf 0 gesetzt ist, wird der entsprechende Zweig in den Eingabemodus geschaltet. Und daraus wird es möglich sein, Daten auszulesen, die von externen Geräten stammen. Bei der Einstellung 1 kann der Mikrocontroller etwas steuern (z. B. einen Transistor anweisen, Spannung durchzulassen und eine LED zum Leuchten zu bringen). Der zweitwichtigste ist PORTx. Er kümmert sich um den Zustand des Beins. Schauen wir uns ein Beispiel an. Nehmen wir an, wir haben einen Ausgabeport. Wenn wir in PORTx eine logische Eins setzen, wird vom Mikrocontroller ein Signal an das Steuergerät gesendet, um mit der Arbeit zu beginnen. Schalten Sie beispielsweise die LED ein. Wenn Null gesetzt ist, wird es gelöscht. Das heißt, es besteht keine Notwendigkeit, ständig mit dem DDRx-Steuerregister zu arbeiten. Lassen Sie uns zum Schluss noch über PINx sprechen. Dieses Register ist für die Anzeige des Status des Controller-Pins verantwortlich, wenn dieser auf den Eingangsstatus gesetzt ist. Es ist zu beachten, dass PINx nur im Lesemodus betrieben werden kann. Sie können nichts hineinschreiben. Aber den aktuellen Zustand des Beins abzulesen ist kein Problem.

Arbeiten mit Analoga

AVRs sind nicht die einzigen Mikrocontroller. Dieser Markt ist auf mehrere große Hersteller sowie zahlreiche chinesische Nachahmer und selbstgebaute Geräte aufgeteilt. In vielerlei Hinsicht ähneln sie sich. Beispielsweise ist die Programmierung eines PIC/AVR nicht viel anders. Und wenn Sie eine Sache verstehen, wird es Ihnen leicht fallen, alles andere zu verstehen. Aufgrund der kompetenten Struktur, der Entwicklerfreundlichkeit und der Verfügbarkeit einer großen Anzahl unterstützender Materialien empfehlen wir dennoch, die Reise mit AVR zu beginnen, wodurch der Entwicklungsprozess deutlich beschleunigt werden kann.

Sicherheitstechnik

Bei der Programmierung von AVR-Mikrocontrollern in „SI“ oder „Assembler“ muss sehr sorgfältig vorgegangen werden. Tatsache ist, dass Sie den Mikrocontroller sicher blockieren können, indem Sie eine bestimmte Registerkombination festlegen und interne Einstellungen ändern. Dies gilt insbesondere für Sicherungen. Wenn Sie nicht von der Richtigkeit Ihrer Handlungen überzeugt sind, ist es besser, die Verwendung zu verweigern. Gleiches gilt für Programmierer. Wenn Sie Fabrikausrüstung kaufen, können Mikrocontroller problemlos geflasht werden. Beim Selbstzusammenbau kann es zu einer traurigen Situation kommen, in der der Programmierer das Gerät blockiert. Dies kann entweder durch einen Fehler im Programmcode oder durch Probleme im Code selbst geschehen. Übrigens noch zu einem weiteren (diesmal positiven) Punkt, der zuvor am Rande erwähnt, aber nie vollständig offengelegt wurde. Mittlerweile verfügen fast alle modernen Mikrocontroller über eine In-Circuit-Programmierfunktion. Was bedeutet das? Nehmen wir an, dass das Gerät auf der Platine verlötet wurde. Und um die Firmware zu ändern, müssen Sie sie jetzt nicht mehr entlöten, da ein solcher Eingriff den Mikrocontroller selbst beschädigen kann. Es reicht aus, eine Verbindung zu den entsprechenden Pins herzustellen und es über diese neu zu programmieren.

Welches Modell sollten Sie wählen?

Im Rahmen des Artikels wurde AtMega8 rezensiert. Dies ist ein von seinen Eigenschaften her eher mittelmäßiger Mikrocontroller, der jedoch für die meisten Handwerke ausreicht. Wenn Sie etwas Großes erschaffen möchten, können Sie Originalmonster wie Atmega128 nehmen. Sie sind jedoch für erfahrenere Entwickler konzipiert. Wenn Sie also nicht über genügend Erfahrung verfügen, ist es besser, mit kleinen und einfachen Geräten zu beginnen. Außerdem sind sie deutlich günstiger. Stimmen Sie zu, es ist eine Sache, versehentlich einen Mikrocontroller für hundert Rubel zu blockieren, aber eine ganz andere, ihn für ein halbes Tausend zu blockieren. Es ist besser, sich auf die Dinge einzulassen und die verschiedenen Aspekte des Betriebs zu verstehen, damit Sie in Zukunft keine nennenswerten Beträge verlieren. Zunächst können Sie mit AtMega8 beginnen und sich dann auf Ihre Bedürfnisse konzentrieren.

Abschluss

Das Thema AVR-Programmierung wurde also ganz allgemein betrachtet. Natürlich lässt sich noch viel mehr sagen. So wurde beispielsweise die Kennzeichnung von Mikrocontrollern nicht berücksichtigt. Und es kann viel sagen. Daher arbeiten Mikrocontroller im Allgemeinen mit einer Spannung von 5 V. Während beispielsweise das Vorhandensein des Buchstabens L darauf hindeuten kann, dass nur 2,7 V für den Betrieb des Geräts ausreichen. Wie Sie sehen, kann das Wissen über Markierungen manchmal eine sehr wichtige Rolle für den korrekten und dauerhaften Betrieb von Geräten spielen . Auch die Betriebszeit von Mikrocontrollern ist ein interessantes Thema. Jedes Gerät ist für einen bestimmten Zeitraum ausgelegt. Manche können also tausend Stunden arbeiten. Andere haben eine Garantiereserve von 10.000!

Fortsetzung des Themas:
Windows

Welche Rolle spielt der Computer in unserem Leben? Computer sind seit langem fest in unserem Leben verankert. Sie haben die Welt und die Möglichkeiten der Menschen radikal verändert. Aber das wissen wir alle...