Aufgabe 2 - ADC. Labor Mikrocontroller mit NUC130. Prof. Dr.-Ing. F. Kesel Dipl.-Ing. (FH) J. Hampel Dipl.-Ing. (FH) A. Reber

Ähnliche Dokumente
Aufgabe 2 - ADC. Labor Mikrocontroller mit NUC130. Prof. Dr.-Ing. F. Kesel Dipl.-Ing. (FH) J. Hampel Dipl.-Ing. (FH) A. Reber

Aufgabe 1 -SysTick und ADC. Labor Mikrocontroller mit NUC130. Prof. Dr.-Ing. F. Kesel Dipl.-Ing. (FH) J. Hampel Dipl.-Ing. (FH) A.

Aufgabe 1 - SysTick und ADC. Labor Mikrocontroller mit NUC130. Prof. Dr.-Ing. F. Kesel Dipl.-Ing. (FH) J. Hampel Dipl.-Ing. (FH) A.

Aufgabe 1 - SysTick und ADC. Labor Mikrocontroller mit NUC130. Prof. Dr.-Ing. F. Kesel Dipl.-Ing. (FH) J. Hampel Dipl.-Ing. (FH) A.

Versuch 4 M_Dongle Servotester. Labor Mikrocontroller mit NUC130. Prof. Dr.-Ing. F. Kesel Dipl.-Ing. (FH) J. Hampel Dipl.-Ing. (FH) A.

Aufgabe 2 -Grafische Messwertdarstellung. Labor Mikrocontroller mit NUC130. Prof. Dr.-Ing. F. Kesel Dipl.-Ing. (FH) J.Hampel Dipl.-Ing. (FH) A.

Aufgabe 3 Grafik-Thermometer

Aufgabe 3, UART. Labor Mikrocontroller mit NUC130. Prof. Dr.-Ing. F. Kesel Dipl.-Ing. (FH) J. Hampel Dipl.-Ing. (FH) A. Reber

Prof. Dr.-Ing. F. Kesel Dipl.-Ing. (FH) J. Hampel Dipl.-Ing. (FH) A. Reber

Prof. Dr.-Ing. F. Kesel Dipl.-Ing. (FH) J. Hampel Dipl.-Ing. (FH) A. Reber

Aufgabe 4, I2C Kommunikation mit Temperatursensor. Labor Mikrocontroller mit NUC130

Vorbereitung. Teil D Analog-Digital-Wandler 1

D.1 Vorbereitung. Teil D Analog-Digital-Wandler 1

Arduino Kurs Das LC-Display. Stephan Laage-Witt FES Lörrach

Programmierung von ATMEL AVR Mikroprozessoren am Beispiel des ATtiny13. Teil 8: gavrasmw und weitere Beispiele

V cc. 1 k. 7 mal 150 Ohm

Mikrocomputertechnik

Klausur PHMJ02 SS2012. Mikrocontroller und Robotik. Mittwoch GUTEN ERFOLG!!!

Übungsaufgaben. Stand

Arbeitsblätter - ADC-Grundlagen -

Arduino Kurs Timer und Interrupts. Stephan Laage-Witt FES Lörrach

Alkoholsensor MQ135, Time-Delay, Mailbox und LCD

ODV Praktikum Versuch Dämpfung im Lichtwellenleiter : Kurzbeschreibung: Funktionen und Bedienung des LWL-Messprogramms:

Angewandte Informatik

Serielle Kommunikation - Kodierung

Übungspaket 12 Der Datentyp char

Zahlen im Computer (Klasse 7 Aufbaukurs Informatik)

Analog-Digital-Converter

Praktikum Mikrocomputertechnik

Die Entwicklungsumgebung. Labor Technische Informatik. Prof. Dr.-Ing. F. Kesel Dipl.-Ing. (FH) A. Reber

0. Einführung Hardware-Daten des Systems Software-Daten des Systems Aufbau eines Objektprogramms 0-13

Zähler- und Zeitgeber-Baugruppen

Trainingsmanagement Gutschein Management. Beschreibung

Praktikum Mikrorechner 4 (Bitmanipulation und Spezialregister)

, 2015S Übungstermin: Mi.,

Praktikum zur Vorlesung Einführung in die Programmierung WS 14/15 Blatt 3

Zahlen- und Buchstabencodierung. Zahlendarstellung

, 2014W Übungstermin: Fr.,

Es ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen.

Temperaturmessung mit dem ATmega8

Numerisches Programmieren, Übungen

Einführung in die Informatik Inf, SAT

Einführung in die Informatik Inf, SAT

Grundlagen der Informatik

Mini- Mikroprozessor-Experimentier-System. Version 1.0b vom :21. mit einem 8051-Mikrocontroller

Versuch 2, LPC11U24 - GPIO

Grundlagen der Programmierung

Berechnung einer Geschwindigkeit

ELECTRONIC SYS. 8 Channel 10 Bit A/D Wandler. seriell V USB V

Beschaltung eines Mikrocontrollers. Jordi Blanch Sierra Steuerungsgruppe

Programmieren in C. Eine Einführung in die Programmiersprache C. Prof. Dr. Nikolaus Wulff

LED Skalenbeleuchtung mit einem Arduino

RGB-Sequenzer RS232 RS485 MDX512 AD / IO Platine

Excel Tipps & Tricks Umgang mit umfangreichen Tabellen

1.5 Einführung und Zahlensysteme/Darstellung gebrochener Zahlen

Die Zahl ist: (z 2, z 1, z 0 ) (z ) : 7 = 0 Rest z 2

Projekt 3 Variablen und Operatoren

Microsoft Access Arbeiten mit Tabellen. Anja Aue

int i=1; //Integerzahl i anlegen und mit 1 initialisieren float wert; //Floatzahl deklarieren scanf( %f,&wert); //Wert über Tastatur eingeben

Kapitel 2. Einfache Beispielprogramme

Zeichenketten sind uns bisher nur als konstante Texte begegnet, welche in "" angegeben waren; z.b. als Formatstring in der printf()-funktion:

Infokarte: Snap4Arduino

Teach-Dongle Rev 1.1. Teach-Dongle. Rev 1.1 Stand Okt

C/C++ - Programmierung. Formatierte Ausgabe mit cout Seite 1 von 6

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 2

Mikrocomputertechnik

Sukzessive Approximation

Ausdrücke (1) Grundlegende Eigenschaften

LCD-Ansteuerung mit MikroForth

SMP Übung 8 - Lösungsvorschlag

2.1 Fundamentale Typen

Skriptum Bauinformatik SS 2013 (Vorlesung IV)

10. ZEITRECHNUNG. Aufgabe:

Einführung in die Informatik I

Kapitel 5: Darstellung von Daten im Rechner

Kennlinienschreiber. Inbetriebnahme und Abgleich

Auswerten der Startkontrolle mit OLEinzel

Spezifikation RTR09 USB-Transceiver Easywave

HD44780-LC-Display am Atmel-AVR Mikrocontroller

8.3 Taster am µcontroller

NANO III. Digital-Analog-Wandler. Analog-Digital-Wandler Abtastung. Datenakquisition:

Digital-Wandlung. Transferierung von Daten aus der realen (analogen) Welt in die (digitale) Welt des Rechners.

Java Einführung Objekt-Datentypen und Strings. Kapitel 8 und 9

PIC16 Programmierung in HITECH-C

Frilo.Document.Designer

Grundlagen der Technischen Informatik. 4. Übung

A Channel-Charge-Integrator

Tabellenpositionierung 8400 HighLine

Ampelsteuerung Merkblatt 2 Wie wird der Arduino programmiert?

Zwischenklausur Informatik, WS 2016/17. Lösungen zu den Aufgaben

Technische Informatik I SS 2005

Versuch 1. Labor Technische Informatik. Prof. Dr.-Ing. F.Kesel Dipl.-Ing. (FH) A. Reber

Selbststudium Informationssysteme - H1102 Christian Bontekoe & Felix Rohrer

AVR Ein/Ausgabe. Inhaltsverzeichnis

Lösungsvorschlag zu 1. Übung

Chip veraltet, für neue Anwendungen nicht empfehlenswert!

Inhalt. 2.1 Darstellung von Zahlen. 2.2 Darstellung von Zeichen. 2.3 Boolesche Algebra. 2.4 Aussagenlogik. Informatik 1 / Kapitel 2: Grundlagen

Frilo.Manager. Erstellt am 19. Februar 2011 Letzte Änderung am 11. Mai 2011 Version Seite 1 von 8

Befehlstabelle awapswitch Anwendung

HaDePrak WS 05/ Versuch

Transkript:

Aufgabe 2 - ADC Labor Mikrocontroller mit NUC130 Prof. Dr.-Ing. F. Kesel Dipl.-Ing. (FH) J. Hampel Dipl.-Ing. (FH) A. Reber 01.10.2018

Inhalt 1 Einführung und Grundlagen... 2 1.1 Grundlagen zum Analog-Digital-Wandler (ADC)... 2 1.1.1 Typ... 2 1.1.2 Initialisierung... 2 1.1.3 Steuerung des ADC... 2 1.1.4 Quantisierung... 3 1.1.5 Umwandlung in nutzbare Werte... 3 1.1.6 Fehlerbetrachtung... 3 1.1.7 Grundlagen zur Dezimalzahlendarstellung... 3 2 Literatur... 4 3 Aufgaben... 4 3.1 Aufgabe 2.1 - AD-Wandlung mittels Taster... 5 3.1.1 Vorbereiten und mitbringen für 2.1... 5 3.1.2 Im Labor zu erledigen für 2.1... 5 3.1.3 Punkte für die Eigenkontrolle von 2.1... 5 3.2 Aufgabe 2.2 Werte - Ausgabe in Millivolt... 6 3.2.1 Vorbereiten und mitbringen für 2.2... 6 3.2.2 Im Labor zu erledigen für 2.2... 6 3.2.3 Punkte für die Eigenkontrolle von 2.2... 6 3.3 Aufgabe 2.3 Werte - Ausgabe in Volt... 7 3.3.1 Vorbereiten und mitbringen für 2.3... 7 3.3.2 Im Labor zu erledigen für 2.3... 7 3.3.3 Punkte für die Eigenkontrolle von 2.3... 7 3.4 Aufgabe 2.4 - AD-Wandlung mittels SysTick und Mittelwert... 8 3.4.1 Vorbereiten und mitbringen für 2.4... 8 3.4.2 Im Labor zu erledigen für 2.4... 8 3.4.3 Punkte für die Eigenkontrolle von 2.4... 8 Mikrocontroller Labor EIT/TI WS1819-1 -

1 Einführung und Grundlagen Eine der Hauptaufgaben von kleinen Mikrocontrollersystemen besteht in der Erfassung von Daten. Diese Daten können in digitaler Form, also Spannungspegel von Pins (z.b. Taster gedrückt oder nicht) vorliegen. Bei analogen Signalen kommt ein Analog-Digital-Wandler zum Einsatz. Er kann wie in unserem Fall im Controller vorhanden sein oder aber als externer Baustein über Interfaces (SPI, I2C oder Datenbus) mit dem µc kommunizieren. In der aktuellen Aufgabe soll der Spannungswert des Potentiometers in zeitlich definierten Abständen erfasst und in unterschiedlichen Zahlenformaten dargestellt werden. Die Erzeugung dieser Abstände soll der SysTick-Timer übernehmen. 1.1 Grundlagen zum Analog-Digital-Wandler (ADC) ADCs dienen dazu, eine angelegte analoge Spannung in einen digitalen Wert zu verwandeln. Die Hauptmerkmale sind die Wandungsgeschwindigkeit, die Auflösung und die Genauigkeit. 1.1.1 Typ Der im Mikrocontroller verbaute Analog-Digital-Wandler kommt aus der Familie der ADCs mit sukzessiver Approximation mit einer Auflösung von 12 Bit und max. 700 000 Werten pro Sekunde. Da die Genauigkeit nicht so gut ist, rät Nuvoton, nur 10 Bit zu nutzen. 1.1.2 Initialisierung Damit der ADC genutzt werden kann, müssen verschieden Einstellungen in den Registern des NUC130 gemacht werden. Die dafür notwendige Funktion ist in der Bibliothek vorhanden: DrvADC_Init(CHANNEL_2_SELECT); // Poti auf dem M_Dongle Sie stellt alle notwendigen Register auf die korrekten Werte ein, als einziges muss nur noch der verwendete Kanal angegeben werden. 1.1.3 Steuerung des ADC Mit dem Makro kann der ADC gestartet werden: M_ADC_CONVERT_START; Das folgende Makro gibt den aktuellen Zustand des Wandlungsvorganges wieder: u32result = M_ADC_CONVERT_DONE; // Lesen des ADF-Flags Im Fall einer 0 ist die Wandlung noch nicht beendet. Wird eine 1 zurück gegeben, so kann dann mit u16result = M_ADC_DATA_READ(CHANNEL_2); // Poti auf dem M_Dongle der Wert ausgelesen und anschließend muss mit M_ADC_ADF_CLR; // Löschen des ADF-Flags die Meldung über die Beendigung der Wandlung gelöscht werden. Mikrocontroller Labor EIT/TI WS1819-2 -

1.1.4 Quantisierung Das Datenregister des ADCs gibt die Anzahl der Quantisierungsstufen an. Ein Wandler mit 12 Bit erzeugt 4096 Stufen seiner Referenzspannung. Da das Laborsystem eine Referenzspannung von 3.3 Volt hat, ergibt sich eine Quantisierungsstufe von 3.3 Volt / 4096 = 0.806 mv. Das bedeutet, dass der Wandler Spannungsunterschiede von >0.806 mv erfassen kann. Um den absoluten Wert der Spannung zu ermitteln, muss die Anzahl der Quantisierungsstufen mit 0.806 mv multipliziert werden. Da die Multiplikation mit Gleitkommazahlen für den µc eine große CPU-Last darstellt, kann mit dem Trick u16adcmv = u16adcreg * 806 / 1000; // Umwandlung in mv mit viel weniger Rechenleistung ein Ergebnis erzielt werden. Allerdings führt die Division durch 1000 dazu, das die Nachkommastellen dann abgeschnitten werden. Eine einfache Lösung des Problems ist folgende Formel: u16adcmv = (u16adcreg * 806 + 500) / 1000; // Umwandlung in mv mit Runden 1.1.5 Umwandlung in nutzbare Werte Hier können nun zwei Wege beschritten werden. Der eine Weg multipliziert einfach die Quantisierungsstufenwert mit dem Datenregister des ADC, in unserem Fall ADC-Datenregister * 806 mv / 1000 und als Ergebnis kommt der ADC-Wert in mv heraus. Für einen Umrechnungsalgorithmus ist es unerheblich, ob es Vielfache von Volt oder mv sind, da die ermittelten Zahlen für beide Einheiten gleich sind. Der zweite Weg wurde in der Vorlesung schon behandelt und erhöht die Genauigkeit der Umrechnung indem nicht mit mv sondern mit µv multipliziert wird. 1.1.6 Fehlerbetrachtung Als große Fehlerquelle kommt der ADC selbst in Betracht, weshalb Nuvoton für den NUC130 angibt, dass nur 10 Bit genutzt werden sollen. Es ist üblich, nie einem einzigen ADC-Wert zu vertrauen, sondern Mittelwerte über Vielfache von 2 zu nutzen. Der Trick mit den Vielfachen kommt daher, dass die Division dann durch eine viel schnellere Schiebeoperation ersetzt werden kann. 1.1.7 Grundlagen zur Dezimalzahlendarstellung Variablen oder Register-/Speicherinhalte werden entweder als dezimale oder hexadezimale Zahlen dargestellt. Für beide Formate gilt, es müssen eigene Funktionen zur Umwandlung in darstellbare Zeichen geschrieben werden. Dafür ist es notwendig, sich vorher Gedanken über die Umwandlung in das dezimale Zahlenformat bzw. die Darstellung der gewandelten Zahl zu machen. Als Beispiel soll ein Wert aus dem Versuch mit dem ADC dienen: ADC-Wert in Hex: 0x80 ADC-Wert als Dezimalzahl: 1,650 Die Stelle für das Komma ist nur aus der Aufgabe bekannt, d.h. wenn die Ausgabe in Volt erfolgen soll, muss das Komma zwischen der ersten und zweiten Stelle eingefügt werden. Soll die Ausgabe in mv erfolgen, so wird kein Komma benötigt. Das ADC-Register enthält ja eigentlich nur Vielfache der Quantisierungsstufe (0.806 mv), die maximal den Wert von 3300 mv ergeben können. Für das Labor wird deshalb eine Umwandlungsfunktion benötigt, die eine Zahl mit vier Stellen berechnen kann. Der Programmierer entscheidet dann nach der Umwandlung, an welcher Stelle er das Komma setzt. Das setzt aber voraus, dass nur die einzelnen Stellen erzeugt werden. Der Hintergrund ist der, dass nur eine Funktion zur Umwandlung benötigt wird, die Skalierung (das Komma) wird ja nur für die Ausgabe benötigt. Mikrocontroller Labor EIT/TI WS1819-3 -

2 Literatur µvision User's Guide http://www.keil.com/ C_Programmierung_mit_dem_M_Dongle.pdf, HS Pforzheim Kapitel aus der Vorlesung 3 Aufgaben Mit Hilfe von SysTick, ADC und LCD soll eine Applikation entstehen, die in zeitlich definierten Abständen die Spannung des Potentiometers erfasst und umwandelt, in lesbare Zahlen umrechnet und anschließend auf dem LCD als Zahlenwerte ausgibt. Dabei bekommt die Initialisierung einen größeren Stellenwert, da sie auch noch die jeweilige Erzeugung der Startansicht für das LCD erzeugt. Das bedeutet, dass schon bevor eine Aktion vom Bediener ausgeführt wird, das LCD die komplette Ansicht darstellt. Für die Darstellung auf dem LCD ist es notwendig, die Registerwerte in lesbare Zeichen um zu wandeln. Dies kann mit mathematischer Hilfe oder mittels einer Tabelle realisiert werden. Die Grundfunktion ermittelt aus den übergebenen 4 Bit das zugehörige darstellbare Zeichen. Übergeordnete Funktionen nutzen diese Grundfunktion dann, um größere darstellbare Zahlen zu erzeugen, wobei das Zahlenformat bei der Grundfunktion keine Rolle spielt. Für den ADC könnte eine Funktion geschrieben werden, die eine Wandlung auslöst, auf das Ende warten, den Wert in lesbare Zeichen umwandelt und auf das LCD ausgibt. Solche Funktionen sind unflexibel und nicht wieder verwendbar. Es ist besser, kleinere Funktionen zu erzeugen, die in einer Sequenz die obige ersetzen, doch auch einzeln in anderem Zusammenhang genutzt werden können. Mikrocontroller Labor EIT/TI WS1819-4 -

3.1 Aufgabe 2.1 - AD-Wandlung mittels Taster Für die ersten Gehversuche mit dem ADC soll ein Programm mit manuellem Wandlungsstart geschrieben werden. Ein Tastendruck auf SW2 soll eine AD-Wandlung starten. Wenn der ADC fertig ist, wird dies durch ein aktives ADC-Flag signalisiert. In der Endlosschleife werden SW2 bzw. das ADC-Flag ADSR.ADF abgefragt und bei True dann die jeweilige Aktion ausgelöst. Ein aktiver Taster startet dabei nur die AD-Wandlung. Ist der ADC fertig, werden die Daten von Kanal 2 eingelesen und entsprechend bearbeitet. Damit die Wandlungen nicht zu schnell aufeinander folgen, soll eine Warteschleife von 50 ms eingefügt werden. Das Datenregister des ADC enthält die Vielfachen der Quantisierungsstufe (siehe 1.3.4), die auf dem LCD im HEX-Format dargestellt werden sollen. Dazu soll eine Grundfunktion erstellt werden, die als Übergabeparameter einen uint8_t bekommt, von dem nur die unteren 4 Bit benötigt werden. Diese 4 Bit werden dann in ein lesbares HEX-Zeichen umgewandelt und zurückgegeben. Mit Hilfe dieser kleinen Grundfunktion können dann Funktionen für Zahlen mit unterschiedlicher Länge erstellt werden. Da es keinen Sinn macht, identische Werte immer wieder auf das LCD zu schreiben, muss vor der Ausgabe geprüft werden, ob sich der ADC-Wert verändert hat. Nur veränderte Werte werden umgerechnet und ausgegeben. Zugehörige LCD-Ansicht nach dem Start: ADC-Aufgabe A ADC Digits: 0x000 3.1.1 Vorbereiten und mitbringen für 2.1 Anleitung und die notwendigen Kapitel aus dem Vorlesungsscript lesen 3.1.2 Im Labor zu erledigen für 2.1 Projekt anlegen und die notwendigen Initialisierungen einfügen Endlosschleife erstellen (Abfrage von Taster SW2 bzw. ADC-Done) Ausgabe auf das LCD, wenn ADC-DONE TRUE und der ADC-Wert verändert ist 3.1.3 Punkte für die Eigenkontrolle von 2.1 Das Programm funktioniert wie gefordert Korrekte Endlosschleife (Taster und ADC unabhängig voneinander) Korrekte LCD-Ansicht wie in Aufgabenstellung angegeben Ausgabe nur wenn neue veränderte Daten vorhanden Code korrekt formatiert (Allman Style) Mikrocontroller Labor EIT/TI WS1819-5 -

3.2 Aufgabe 2.2 Werte - Ausgabe in Millivolt Da die Zahlendarstellung in Hex doch sehr gewöhnungsbedürftig ist, soll nun die Umrechnung und Darstellung in Dezimalzahlen erfolgen. Die Umrechnung in Millivolt kann nach dem Vorschlag aus dem Vorlesungsscript oder mittels u16adcmv = (u16adcregister * 806 + 500) / 1000; // Umrechnung in mv erfolgen. Obige Variable enthält nun die Spannung in mv, sie muss nur noch in lesbare Zeichen umgewandelt werden. Es wird eine Umwandlungsfunktion benötigt, die den Millivolt-Wert in lesbare (ASCII) Zeichen für das LCD umwandelt. Diese Routine bekommt als Parameter den schon umgerechneten Wert für die mv. Die gewandelten Zeichen sollen in einem Array abgespeichert werden. Die als letztes zu erstellende Ausgabefunktion gibt nur noch die Zeichen aus dem Array aus. Die Zeichen-Position im LCD muss vor dem Funktionsaufruf gesetzt werden. Zugehörige LCD-Ansicht nach dem Start: ADC-Aufgabe A ADC Digits: ADC Wert: 0x000 0000 mv 3.2.1 Vorbereiten und mitbringen für 2.2 Anleitung und die notwendigen Kapitel aus dem Vorlesungsscript lesen Funktion für Umwandlung erstellen (Datenfeld als Parameter) Funktion für die Ausgabe der Zeichen auf das LCD erstellen (Datenfeld als Parameter) 3.2.2 Im Labor zu erledigen für 2.2 Hauptfile von Aufgabe 2.1 kopieren (nur C-File), umbenennen und einbinden Umwandlungsroutine für HEX aus Aufgabe 2.1 soll durch einen Arrayzugriff ersetzt werden Dabei entspricht jede Position im Array dem ASCII-Zeichen der zugehörigen Zahl. 3.2.3 Punkte für die Eigenkontrolle von 2.2 Das Programm funktioniert wie gefordert Korrekte Endlosschleife und LCD-Ansicht wie in Aufgabenstellung angegeben HEX-Grundroutine durch Arrayzugriff ersetzt Code korrekt formatiert (Allman Style) Mikrocontroller Labor EIT/TI WS1819-6 -

3.3 Aufgabe 2.3 Werte - Ausgabe in Volt Als nächstes soll eine Werteausgabe in Volt eingefügt werden. Da die Zeichen-Daten schon im Array vorliegen, ist die in Aufgabe 2.2 erstellte Ausgabefunktion etwas zu modifizieren. Sie erhält einen Parameter, der steuert, ob ein Trennzeichen (Punkt oder Komma) an der angegebenen Stelle ausgegeben wird (0 = kein Komma, 1 = Komma nach 1.Stelle, 2 = Komma nach 2.Stelle, usw.) Zugehörige LCD-Ansicht nach dem Start: ADC-Aufgabe A ADC Digits: ADC Wert: ADC Wert: 0x000 0000 mv 0.000 V 3.3.1 Vorbereiten und mitbringen für 2.3 Anleitung und die notwendigen Kapitel aus dem Vorlesungsscript lesen 3.3.2 Im Labor zu erledigen für 2.3 Hauptfile von Aufgabe 2.2 kopieren (nur C-File), umbenennen und einbinden Funktion für die Ausgabe der Zeichen auf das LCD aus Aufgabe 2.2 modifizieren 3.3.3 Punkte für die Eigenkontrolle von 2.3 Das Programm funktioniert wie gefordert Ausgaberoutine kann Komma an beliebiger Stelle einfügen Korrekte Main-Loop und LCD-Ansicht wie in Aufgabenstellung angegeben Code korrekt formatiert (Allman Style) Mikrocontroller Labor EIT/TI WS1819-7 -

3.4 Aufgabe 2.4 - AD-Wandlung mittels SysTick und Mittelwert Für jede AD-Wandlung eine Taste drücken zu müssen, macht keinen Sinn. Nun soll mit Hilfe des Sys- Ticks eine automatisierte Wandlung gestartet werden können, wie in Aufgabe 1 das schaltbare Blinken. Im LCD wird der aktuelle Status des ADC angezeigt (Ein für Freigabe aktiv, Aus für Freigabe inaktiv), der von SW2 und SW3 beeinflusst wird. Der SysTick startet den ADC solange, wie er die Freigabe dafür bekommen hat. Sofern keine Freigabe da, wird der ADC nicht gestartet. Zugehörige LCD-Ansicht nach dem Start: ADC-Aufgabe A ADC Wandlung: Aus ADC Wert: 0000 mv ADC Wert: 0.000 V 3.4.1 Vorbereiten und mitbringen für 2.4 Anleitung und die notwendigen Kapitel aus dem Vorlesungsscript lesen PAP für die Hauptschleife und die SysTick-ISR zeichnen 3.4.2 Im Labor zu erledigen für 2.4 Hauptfile von Aufgabe 2.3 kopieren (nur C-File), umbenennen und einbinden SysTick-ISR modifizieren und SysTick initialisieren mit 250 ms Geeignete Teile für den SysTick aus Ihrem Versuch 1 kopieren und einfügen Endlosschleife modifizieren, Warteschleife entfernen SW2 schaltet AD-Wandlung ein, SW3 schaltet AD-Wandlung aus inkl. Anzeige An / Aus Mittelwert über die letzten 2 Werte bilden 3.4.3 Punkte für die Eigenkontrolle von 2.4 Das Programm funktioniert wie gefordert Korrekte Main-Loop und LCD-Ansicht wie in Aufgabenstellung angegeben Korrekter SysTick Korrekte Zustandsanzeige Mittelwertbildung ok Warteschleife entfernt Code korrekt formatiert (Allman Style) Mikrocontroller Labor EIT/TI WS1819-8 -