Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
microcontrollertechnik:1_hello_blinking_world [2023/10/29 14:10]
mexleadmin
microcontrollertechnik:1_hello_blinking_world [2024/03/21 02:58] (aktuell)
mexleadmin
Zeile 1: Zeile 1:
-====== 1 Hello Blinking World ======+wie fi====== 1 Hello Blinking World ======
 ===== 1.1 AVR Programmierung für Dummies ===== ===== 1.1 AVR Programmierung für Dummies =====
  
Zeile 34: Zeile 34:
 Nach dieser Lektion sollten Sie: Nach dieser Lektion sollten Sie:
  
-  - wissen, wie man im Atmel Studio ein Projekt anlegt.+  - wissen, wie man im Microchip Studio ein Projekt anlegt.
   - wissen, wie der Programmierumgebung die Taktfrequenz des Microcontrollers festgelegt wird.   - wissen, wie der Programmierumgebung die Taktfrequenz des Microcontrollers festgelegt wird.
   - die wichtigsten Bitmanipulationen (Bitmaske zum setzten und löschen eines einzelnen Bits, togglen) kennen und anwenden können.   - die wichtigsten Bitmanipulationen (Bitmaske zum setzten und löschen eines einzelnen Bits, togglen) kennen und anwenden können.
Zeile 44: Zeile 44:
 ==== Video ==== ==== Video ====
    
-{{youtube>2VPM2Q0JtxI}}+{{youtube>kHnxozE4X2I}}
  
 </WRAP>  </WRAP> 
Zeile 52: Zeile 52:
  
 --> I. Vorarbeiten # --> I. Vorarbeiten #
-  - installieren Sie [[0_hilfsmittel#atmel_studio|SimulIDE und Atmel Studio]]+  - installieren Sie [[0_hilfsmittel#Microchip_studio|SimulIDE und Microchip Studio]]
   - falls es Probleme bei der Programmierung gibt: nutzen Sie die [[elektronik_labor:Tipps für die Fehlersuche]]   - falls es Probleme bei der Programmierung gibt: nutzen Sie die [[elektronik_labor:Tipps für die Fehlersuche]]
  
 <-- <--
---> II. Eingabe in Atmel Studio # +--> II. Eingabe in Microchip Studio # 
-  - öffnen Sie Atmel Studio+  - öffnen Sie Microchip Studio
   - Anlegen eines neuen Projekts   - Anlegen eines neuen Projekts
     - ''File'' >> ''New'' >> ''Project...''     - ''File'' >> ''New'' >> ''Project...''
Zeile 69: Zeile 69:
     - Im unteren Teil des Fensters sollte nun die Ausgabe des Kompilers sichtbar werden. Diese sollte ''========== Build: 1 succeeded or up-to-date, 0 failed, 0 skipped =========='' lauten     - Im unteren Teil des Fensters sollte nun die Ausgabe des Kompilers sichtbar werden. Diese sollte ''========== Build: 1 succeeded or up-to-date, 0 failed, 0 skipped =========='' lauten
   - Auswählen der hex-Datei   - Auswählen der hex-Datei
-    - im Atmel Studio finden Sie rechts im Fenster den "Solution Explorer"+    - im Microchip Studio finden Sie rechts im Fenster den "Solution Explorer"
     - gehen Sie dort im Solution Explorer zu ''Solution'' >> ''Einfuehrung_v01'' >> ''Output Files''      - gehen Sie dort im Solution Explorer zu ''Solution'' >> ''Einfuehrung_v01'' >> ''Output Files'' 
     - klicken Sie mit rechter Maustaste auf ''Einfuehrung_v01.hex'' und wählen Sie Pfad und Name aus     - klicken Sie mit rechter Maustaste auf ''Einfuehrung_v01.hex'' und wählen Sie Pfad und Name aus
Zeile 177: Zeile 177:
 -->  Wie findet man die Namen der Anschlüsse? # -->  Wie findet man die Namen der Anschlüsse? #
  
-Die Namen sind im Datenblatt des verwendeten Microcontrollers zu finden. Das lässt sich in diesem Fall in einer Suchmaschine über ''atmega 88 "datasheet" site:microchip.com filetype:pdf'' finden, da es sich beim Datasheet um ein PDF des Herstellers Microchip handelt. Zum Lesen der Datenblätter empfiehlt sich ein Download und die Betrachtung über einen PDF-Viewer, welcher ein Inhaltsverzeichnis als Seitenleiste ermöglicht (z.B. Acrobat Reader). Ansonsten ist das Inhaltsverzeichnis häufig auch auf den hinteren Seiten des Datenblatts zu finden.+Die Namen sind im Datenblatt des verwendeten Microcontrollers zu finden. Datenblätter lassen sich allgemein mittels auf zwei Wegen finden: 
 +    - Mittels einer Suchmaschine über ''[IC Name] "datasheet" site:[Herstellername].com filetype:pdf'', da es sich beim Datasheet um ein PDF handelt.  
 +    - Direkt über die Hersteller-Seite 
 +Leider gibt es gerade bei dem ATMEGA88 auch ein **veraltetes** Datenblatt, welches just das ist, wass sich z.B. über Google leichter finden lässt. \\ 
 +in diesem Fall muss also über die Herstellerseite gesucht werden, bzw. bei der Suchmaschine ''ATMEGA88'' eingeben und anschließend auf die [[https://www.microchip.com/en-us/product/atmega88|Herstellerseite]] klicken.  
 + 
 +Zum Lesen der Datenblätter empfiehlt sich ein Download und die Betrachtung über einen PDF-Viewer, welcher ein Inhaltsverzeichnis als Seitenleiste ermöglicht (z.B. Acrobat Reader). Ansonsten ist das Inhaltsverzeichnis häufig auch auf den hinteren Seiten des Datenblatts zu finden.
  
 Die gesuchte Pinbelegung ist für den ATmega88 konkret auf Seite 3 unter "1. Pin Configurations": Die gesuchte Pinbelegung ist für den ATmega88 konkret auf Seite 3 unter "1. Pin Configurations":
  
-<WRAP right>{{url>http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-9365-Automotive-Microcontrollers-ATmega88-ATmega168_Datasheet.pdf#page=3+<WRAP right>{{url>https://ww1.microchip.com/downloads/en/DeviceDoc/ATmega48_88_168_megaAVR-Data-Sheet-40002074.pdf#page=9
  600,400 noborder}}  600,400 noborder}}
 </WRAP> </WRAP>
Zeile 313: Zeile 319:
  ...  ...
  uint8_t a = DUMMY1; // DUMMY1 ist größer als 500  uint8_t a = DUMMY1; // DUMMY1 ist größer als 500
- uint8_t b = DUMMY2 * 2; // Ergebnis ist 5 + 3 *2 = 16 , nicht 10+ uint8_t b = DUMMY2 * 2; // Es wird 5 + 3 *2 = 11 ausgegebenund nicht (5 + 3)*2 = 16
  ...  ...
 } }
Zeile 330: Zeile 336:
 --> Wie sähe der Code aus, wenn man sich an die Vorgaben für sauberen Code hielte?# --> Wie sähe der Code aus, wenn man sich an die Vorgaben für sauberen Code hielte?#
  
-Hierbei ist zu beachten, dass auch die Verwendung von delays vermieden werden soll. Diese sind ein "aktives Nichtstun" des Prozessors. Das heißt er kann in der Zeit nicht andere Aufgaben erledigen. Ein Multitasking ist damit nicht möglich. Da dies einer nachträglichen Erweiterung des Codes im Weg steht, sollten **generell keine delays** verwendet werden. Eine Ausnahme davon bildet Treiber-Code in welchem Microsekunden genaue Asgaben an einem Pin gemacht werden müssen.+Hierbei ist zu beachten, dass auch die Verwendung von delays vermieden werden soll. Diese sind ein "aktives Nichtstun" des Prozessors. Das heißt er kann in der Zeit nicht andere Aufgaben erledigen. Ein Multitasking ist damit nicht möglich. Da dies einer nachträglichen Erweiterung des Codes im Weg steht, sollten **generell keine delays** verwendet werden. Eine Ausnahme davon bildet Treiber-Code in welchem Pegeländerungen an einem Pin Microsekunden-genau umgesetzt werden müssen.
  
 <sxh c; first-line: 1> <sxh c; first-line: 1>