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:9_uart_und_terminal [2022/02/14 04:48]
tfischer
microcontrollertechnik:9_uart_und_terminal [2024/03/11 00:04] (aktuell)
mexleadmin
Zeile 1: Zeile 1:
-====== 9UART und Terminal ======+====== 9 UART und Terminal ======
 <WRAP> <WRAP>
  
Zeile 24: Zeile 24:
 </WRAP> <WRAP column 65%> </WRAP> <WRAP column 65%>
 ==== Video ==== ==== Video ====
- + 
 +{{youtube>-tFVvbUUco4?size=700x400}} 
 + 
 +<WRAP hide>
 {{youtube>r_5iVt3rcwA?size=700x400}} {{youtube>r_5iVt3rcwA?size=700x400}}
  
 {{youtube>hCCGMMyTtK4?size=700x400}} {{youtube>hCCGMMyTtK4?size=700x400}}
 +</WRAP>
  
 </WRAP> </WRAP> </WRAP> </WRAP>
Zeile 36: Zeile 40:
 <imgcaption BildNr09 | Zusammenspiel der UART-Register> <imgcaption BildNr09 | Zusammenspiel der UART-Register>
 </imgcaption> </imgcaption>
-{{drawio>UARTRegister}}+{{drawio>UARTRegister.svg}}
 </WRAP> </WRAP>
  
 --> I. Vorarbeiten # --> I. Vorarbeiten #
   - Laden Sie folgende Datei herunter:    - Laden Sie folgende Datei herunter: 
-    - {{microcontrollertechnik:9_temperatureuart_1.0.0.sim1}} (für ältere Simulide Versionen: {{microcontrollertechnik:9_temperatureuart_0.5.15.simu}}) +    - {{microcontrollertechnik:9_temperatureuart_1.0.0.sim1}}  
-    - {{microcontrollertechnik:9_uart_with_quickfix.hex}} ACHTUNG: Dieses hex-file enthält einen Workaround für einen Bug bei Simulide 1.0.0 <= R941  \\ ( für Simulide 1.0.0 >> R941 {{microcontrollertechnik:9_uart.hex}}) +    - {{microcontrollertechnik:9_uart.hex}} 
-    - {{microcontrollertechnik:lcd_lib_de.h}} \\ ACHTUNG: Das Display ist hier an einem anderen Port. Entsprechend müssen zwei Register geändert werden: +    - {{microcontrollertechnik:lcd_lib_de.h}}
-      - ''#define Datenregister DDR**C**'' +
-      - ''#define P_DATA PORT**C**''+
  
-<--+<callout type="warning" icon="true"> 
  
 +**Beachten Sie folgendes**
 +  * Es wird nun ein ATmega328 genutzt, d.h. das Programm ist nicht mehr kompatibel mit dem MiniMEXLE!
 +  * Überprüfen Sie die Pins und Ports des Displays.
 +  * Überprüfen Sie die Taktfrequenz.
  
 +</callout>
 +
 +<--
 +
 +--> Code mit Polling #
 ==== Code mit Polling ==== ==== Code mit Polling ====
  
Zeile 56: Zeile 67:
 Variante mit Polling: {{microcontrollertechnik:9_uartpolling_temperature.c}} Variante mit Polling: {{microcontrollertechnik:9_uartpolling_temperature.c}}
  
-<sxh c; first-line: 42>+<sxh c; first-line: 1>
 /* ---------------------------------------------------------------------------- /* ----------------------------------------------------------------------------
  
Zeile 149: Zeile 160:
 // Festlegung der Quarzfrequenz // Festlegung der Quarzfrequenz
 #ifndef F_CPU // optional definieren #ifndef F_CPU // optional definieren
-#define F_CPU 8000000L //12288000UL // MiniMEXLE mit 12,288 MHz Quarz+#define F_CPU 8000000L  // Simulation mit MHz Quarz
 #endif  #endif
  
Zeile 467: Zeile 478:
  
 </sxh> </sxh>
 +<--
  
 +--> Code mit Interrupt #
 ==== Code mit Interrupt==== ==== Code mit Interrupt====
  
Zeile 648: Zeile 660:
  initAdc(); // Initialisierung des AD-Wandlers  initAdc(); // Initialisierung des AD-Wandlers
  
- initUart(); // UART initialisieren+ initUart(); // UART initialisieren
  sei(); // generell Interrupts einschalten  sei(); // generell Interrupts einschalten
  UDR0 = 0; // Work around für Probleme bei Simulide <= R941 : ohne diese Zeile is kein Senden möglich  UDR0 = 0; // Work around für Probleme bei Simulide <= R941 : ohne diese Zeile is kein Senden möglich
Zeile 891: Zeile 903:
  }  }
 }</sxh> }</sxh>
 +
 +<--
  
  
Zeile 897: Zeile 911:
  
 </WRAP> </WRAP>
 +
 +Bitte arbeiten Sie folgende Aufgaben durch:
 +
 +--> Aufgabe#
 +
 +Versuchen Sie die folgenden Zeitverlauf des UART Signals zu entschlüsseln - es kam vom vorliegenden Programm. \\ Welche neun Zeichen wurden gesendet?  \\ {{drawio>microcontrollertechnik:UARTSignal.svg}}
 +
 +<--
 +
 +