Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| microcontrollertechnik:1._hello_blinking_world [2022/09/19 00:35] – Port / Pin von D6 in B2 tfischer | microcontrollertechnik:1_hello_blinking_world [2025/05/19 19:23] (current) – ↷ Links angepasst, weil Seiten im Wiki verschoben wurden 172.71.150.127 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== 1. Hello Blinking World ====== | + | ====== 1 Hello Blinking World ====== |
| ===== 1.1 AVR Programmierung für Dummies ===== | ===== 1.1 AVR Programmierung für Dummies ===== | ||
| Line 34: | Line 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 |
| - 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. | ||
| Line 44: | Line 44: | ||
| ==== Video ==== | ==== Video ==== | ||
| - | {{youtube> | + | {{youtube> |
| </ | </ | ||
| Line 52: | Line 52: | ||
| --> I. Vorarbeiten # | --> I. Vorarbeiten # | ||
| - | - installieren Sie [[0._hilfsmittel#atmel_studio|SimulIDE und Atmel Studio]] | + | - installieren Sie [[0_hilfsmittel#Microchip_studio|SimulIDE und Microchip |
| - | - 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 [[microcontrollertechnik:tipps_fuer_die_fehlersuche]] |
| <-- | <-- | ||
| - | --> II. Eingabe in Atmel Studio # | + | --> II. Eingabe in Microchip |
| - | - öffnen Sie Atmel Studio | + | - öffnen Sie Microchip |
| - Anlegen eines neuen Projekts | - Anlegen eines neuen Projekts | ||
| - '' | - '' | ||
| Line 69: | Line 69: | ||
| - Im unteren Teil des Fensters sollte nun die Ausgabe des Kompilers sichtbar werden. Diese sollte '' | - Im unteren Teil des Fensters sollte nun die Ausgabe des Kompilers sichtbar werden. Diese sollte '' | ||
| - Auswählen der hex-Datei | - Auswählen der hex-Datei | ||
| - | - im Atmel Studio finden Sie rechts im Fenster den " | + | - im Microchip |
| - gehen Sie dort im Solution Explorer zu '' | - gehen Sie dort im Solution Explorer zu '' | ||
| - klicken Sie mit rechter Maustaste auf '' | - klicken Sie mit rechter Maustaste auf '' | ||
| Line 103: | Line 103: | ||
| - Lesen Sie auf Mikrocontroller.net im Kapitel [[https:// | - Lesen Sie auf Mikrocontroller.net im Kapitel [[https:// | ||
| - Registeranalyse | - Registeranalyse | ||
| - | - Öffnen Sie in Simulide die RAM Table (je nach Version: über Reiter | + | - Öffnen Sie in Simulide die RAM Table (Rechtsklick auf Microcontroller |
| - | - Analysieren Sie das Verhalten der Register '' | + | - Analysieren Sie das Verhalten der Register '' |
| - | - Zählt der Zähler aufwärts oder abwärts? Ändern Sie dazu die Simulationsgeschwindigkeit | + | - Zählt der Zähler aufwärts oder abwärts? Ändern Sie dazu die Simulationsgeschwindigkeit |
| <-- | <-- | ||
| Line 150: | Line 150: | ||
| <-- | <-- | ||
| - | --> Was ist DDRD, PORTD?# | + | --> Was ist DDRB, PORTB?# |
| Die Anschlüsse (Pins) des Chips sind in 8er Gruppen sortiert, den sogenannten Ports. | Die Anschlüsse (Pins) des Chips sind in 8er Gruppen sortiert, den sogenannten Ports. | ||
| Line 160: | Line 160: | ||
| Wenn das gewünschte Bit in PORTx logisch Eins geschrieben wird und der Pin als Ausgangspin konfiguriert ist, wird der Portpin auf high (eins) gesetzt. Wenn das gewünschte Bit in PORTx logisch Null geschrieben wird und der Pin als Ausgangspin konfiguriert ist, wird der Portpin auf Low (Null) getrieben. | Wenn das gewünschte Bit in PORTx logisch Eins geschrieben wird und der Pin als Ausgangspin konfiguriert ist, wird der Portpin auf high (eins) gesetzt. Wenn das gewünschte Bit in PORTx logisch Null geschrieben wird und der Pin als Ausgangspin konfiguriert ist, wird der Portpin auf Low (Null) getrieben. | ||
| - | Auch wenn ein Pink als Eingangspin konfiguriert wurde, hat PORTx eine Funktion. Wenn in diesem Fall das gewünschte Bit in PORTx logisch eins geschrieben wird, wird der Pull-up-Widerstand aktiviert. Ein Pull-up-Widerstand ist ein höherohmiger Widerstand (im Bereich $20 k\Omega$ ... $100 k\Omega$), der bei nicht weiter verbundenem Pin den ausgegebenen Wert auf logisch Eins zieht. Um den Pull-up-Widerstand auszuschalten, | + | Auch wenn ein Pink als Eingangspin konfiguriert wurde, hat PORTx eine Funktion. Wenn in diesem Fall das gewünschte Bit in PORTx logisch eins geschrieben wird, wird der Pull-up-Widerstand aktiviert. Ein Pull-up-Widerstand ist ein höherohmiger Widerstand (im Bereich $20~\rm k\Omega$ ... $100~\rm k\Omega$), der bei nicht weiter verbundenem Pin den ausgegebenen Wert auf logisch Eins zieht. Um den Pull-up-Widerstand auszuschalten, |
| Das Einlesen der Signale wird in einem späteren Kapitel erklärt. | Das Einlesen der Signale wird in einem späteren Kapitel erklärt. | ||
| Line 177: | Line 177: | ||
| --> | --> | ||
| - | Die Namen sind im Datenblatt des verwendeten Microcontrollers zu finden. | + | Die Namen sind im Datenblatt des verwendeten Microcontrollers zu finden. |
| + | - Mittels | ||
| + | - 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 '' | ||
| + | |||
| + | 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> | + | <WRAP right> |
| | | ||
| </ | </ | ||
| Line 232: | Line 238: | ||
| // Die Zahl in folgender Zeile gibt die Bitposition in der nächsten Zeile an: | // Die Zahl in folgender Zeile gibt die Bitposition in der nächsten Zeile an: | ||
| // | // | ||
| - | DDRD=0b00000100; | + | DDRB=0b00000100; |
| while (1) | while (1) | ||
| { | { | ||
| Line 313: | Line 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 ausgegeben, und nicht (5 + 3)*2 = 16 |
| ... | ... | ||
| } | } | ||
| Line 330: | Line 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 " | + | Hierbei ist zu beachten, dass auch die Verwendung von delays vermieden werden soll. Diese sind ein " |
| <sxh c; first-line: 1> | <sxh c; first-line: 1> | ||