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:tipps_fuers_programmieren [2020/10/13 16:51] tfischermicrocontrollertechnik:tipps_fuers_programmieren [2025/05/19 18:42] (aktuell) – [Häufige Fehler und Debugging] mexleadmin
Zeile 1: Zeile 1:
 ====== Tipps fürs Programmieren ====== ====== Tipps fürs Programmieren ======
  
-  * Sofern es sich um eine Aufgabe mit Hardware-Software-Co-Design hantdelt, kann mit der Erstellung der Software bzw. der Softwaresystem-Entwicklung bereits parallel zur Schaltplan-Erstellung bzw. direkt danach begonnen werden.+  * Sofern es sich um eine Aufgabe mit Hardware-Software-Co-Design handelt, kann mit der Erstellung der Software bzw. der Softwaresystem-Entwicklung bereits parallel zur Schaltplan-Erstellung bzw. direkt danach begonnen werden.
   * Machen Sie sich dazu zunächst Gedanken,   * Machen Sie sich dazu zunächst Gedanken,
       * **was**  die Software tun muss (übergeordnete Tätigkeiten),       * **was**  die Software tun muss (übergeordnete Tätigkeiten),
Zeile 7: Zeile 7:
   * Dann können Sie sich überlegen,   * Dann können Sie sich überlegen,
       * wie diese einzelnen Tätigkeiten **C-Funktionen**  zugeordnet werden können,       * wie diese einzelnen Tätigkeiten **C-Funktionen**  zugeordnet werden können,
-      * wie die C-Funktionen von einander abhängen,+      * wie die C-Funktionen voneinander abhängen,
       * welche Schnittstellen die C-Funktionen untereinander benötigen, (Datentyp, Wertebereich, Name)       * welche Schnittstellen die C-Funktionen untereinander benötigen, (Datentyp, Wertebereich, Name)
   * **Erst dann sollten Sie überlegen wie der Code aussieht**. Hier hilft ein Blick in die Datenblätter und Application Notes der µController und Chips. Dort sind nicht selten Algorithmen oder Codeschnipsel vorgegeben.   * **Erst dann sollten Sie überlegen wie der Code aussieht**. Hier hilft ein Blick in die Datenblätter und Application Notes der µController und Chips. Dort sind nicht selten Algorithmen oder Codeschnipsel vorgegeben.
Zeile 23: Zeile 23:
 ===== Häufige Fehler und Debugging ===== ===== Häufige Fehler und Debugging =====
  
-  * Tipps zum Debugging und zu häufigen Fehlern finden sich bei den [[elektronik_labor:tipps_fuer_die_fehlersuche|Tipps für die Fehlersuche (Elektronik-Labor)]].+  * Tipps zum Debugging und zu häufigen Fehlern finden sich bei den [[microcontrollertechnik:tipps_fuer_die_fehlersuche|Tipps für die Fehlersuche]].
   * Versuchen Sie möglichst nach jeder kleinen Änderung Ihr Programm zu testen. Wenn Sie drei Punkte ändern und dann erst testen, dann wissen Sie nicht, an welcher Änderung es liegt!      * Versuchen Sie möglichst nach jeder kleinen Änderung Ihr Programm zu testen. Wenn Sie drei Punkte ändern und dann erst testen, dann wissen Sie nicht, an welcher Änderung es liegt!   
-  *{{ ::presentation-twenty-five_most-common_mistakes.pdf |Die 25 häufigsten Fehler beim Programmieren }} oder als {{ ::10.1.1.113.6245.pdf |Paper}} und weitere {{ ::koopman11_escsv_handouts.pdf |41 häufige Fehler}}+  *{{ microcontrollertechnik:presentation-twenty-five_most-common_mistakes.pdf |Die 25 häufigsten Fehler beim Programmieren }} oder als {{ microcontrollertechnik:10.1.1.113.6245.pdf |Paper}} und weitere {{ microcontrollertechnik:koopman11_escsv_handouts.pdf |41 häufige Feh 
 +ler}}
  
 ===== Allgemeines ===== ===== Allgemeines =====
Zeile 43: Zeile 44:
  
 ===== Programmierung des ST7565 im Display ERC 128 64 - 1 ===== ===== Programmierung des ST7565 im Display ERC 128 64 - 1 =====
-  * Das Display {{ ::erc12864-1.pdf |ERC 128 64 - 1}} mit 128 Pixel in x-Richtung und 64 in y-Richtung ist in 8x8 Teile unterteilt. Die 8x8 Pixel werden auch Page genannt. In Sotware sind 132x65 Pixel ansprechbar - die Ausgabe ist aber nur auf 128x64 Pixel. +  * Das Display {{ laborausstattung:erc12864-1.pdf |ERC 128 64 - 1}} mit 128 Pixel in x-Richtung und 64 in y-Richtung ist in 8x8 Teile unterteilt. Die 8x8 Pixel werden auch Page genannt. In Sotware sind 132x65 Pixel ansprechbar - die Ausgabe ist aber nur auf 128x64 Pixel. 
-  * Je 8bit vertikal sind im {{ ::st7565.pdf |ST7565}} in einem Byte gespeichert.+  * Je 8bit vertikal sind im {{ grundlagen_der_digitaltechnik:st7565.pdf |ST7565}} in einem Byte gespeichert.
   * Die Kommandos, welche über SPI genutzt werden können, sind im Datasheet beschrieben.    * Die Kommandos, welche über SPI genutzt werden können, sind im Datasheet beschrieben. 
   * Über SPI kann nur auf das Display geschrieben werden. Ein Lesen ist nicht möglich.    * Über SPI kann nur auf das Display geschrieben werden. Ein Lesen ist nicht möglich. 
Zeile 57: Zeile 58:
   * Für eine zeitkritische Ausgabe von aufeinanderfolgenden Bits (z.B. für die Ansteuerung von [[elektronik_labor:hardware_fuer_schaltungserstellung|intelligenten LEDs]]) müssen unbedingt Interrupts genutzt werden. Es lohnt sich zusätzlich auf __USART__ zurückzugreifen. Bei USART werden die zu versendenden Daten zunächst ins UDRn Register gegeben und dann in das Shiftregister übertragen.    * Für eine zeitkritische Ausgabe von aufeinanderfolgenden Bits (z.B. für die Ansteuerung von [[elektronik_labor:hardware_fuer_schaltungserstellung|intelligenten LEDs]]) müssen unbedingt Interrupts genutzt werden. Es lohnt sich zusätzlich auf __USART__ zurückzugreifen. Bei USART werden die zu versendenden Daten zunächst ins UDRn Register gegeben und dann in das Shiftregister übertragen. 
   * Falls Sie einen externen Oszillator oder Quarz benutzen, werden zwei Ports dafür verwendet (Ports XTAL = "Crystal"). Wenn Sie diese Ports per DDR versehentlich zu einem Ausgang definieren, hat der Chip keinen Takt mehr. Das heißt diese Portzuweisung ist das letzte was der Chip macht... Es ist danach nur noch per Debuggerschnittstelle möglich diesen wieder zu beleben.   * Falls Sie einen externen Oszillator oder Quarz benutzen, werden zwei Ports dafür verwendet (Ports XTAL = "Crystal"). Wenn Sie diese Ports per DDR versehentlich zu einem Ausgang definieren, hat der Chip keinen Takt mehr. Das heißt diese Portzuweisung ist das letzte was der Chip macht... Es ist danach nur noch per Debuggerschnittstelle möglich diesen wieder zu beleben.
 +
 +====== Simulide ======
 +===== Schrittmotortreiber =====
 +
 +Verschiedene Schrittmotortreiber bzw. Steppermotor Driver (wie z.B. [[https://www.ti.com/lit/ds/symlink/drv8825.pdf|DRV8825]]) ermöglichen durch die Angabe der Richtung und ein Takten des STEP Pins das Antreiben eines Schrittmotors. Solche Treiber sind in Simulide nicht verfügbar.
 +Folgende Simulation ermöglicht aber zumindest die Nachbildung 
 +{{microcontrollertechnik:stepper.rar}}
 +
 +
 +
 +