Mikro 50-100

Description

50 bis 100
elektronikbunker
Flashcards by elektronikbunker, updated more than 1 year ago More Less
Burak Basman
Created by Burak Basman almost 8 years ago
elektronikbunker
Copied by elektronikbunker almost 8 years ago
7
0

Resource summary

Question Answer
51. Was bedeutet „Single-Step“? Wozu kann ich Single-Steps verwenden? Mit Hilfe von Single Step kann der Assembler Code Schritt für Schritt abgearbeitet werden.
52. Beschreiben Sie, wie ein übersetztes Programm auf den Mikrocontroller über- tragen wird. Connect Button -> Programm übersetzen -> Download Button drücken
53. Wozu ist eine Projektverwaltung innerhalb der IDE dienlich? Die Projektverwaltung bietet eine Übersicht über sämtliche Header Dateien sowie Quelldateien. Lädt man nur eine Quelldatei auf den Controller, sorgt die Projektverwaltung dafür, dass das gesamte Projekt übertragen wird.
54. Wie viele allgemeine Register (general purpose) besitzt der C8051F020/21 und wozu werden sie benötigt? 4 Register, gesamt 32 Byte dient zur Speicherung von Ergebnissen der ALU. Sie müssten sonst in den langsamen Haupt Speicher geladen werden.
55. Sie können Mikrocontroller in Assembler oder in einer Hochsprache, z.B. in C entwickeln. Nennen Sie Vor- und Nachteile einer Assembler- bzw. C-Entwicklung. C ist wesentlich angenehmer und einfacher zu programmieren. Programme in C können nachvollziehbar aufgebaut werden. Assembler hingegen artet meist in sehr lange und unübersichtliche Quelltexte aus. Der Vorteil von Assembler liegt in der Maschinennahen Programmierung, was erlaubt, sehr genau und Zeitkorrekt zu programmieren. Vorteile Assembler: -sehr maschinennah -volle Kontrolle über das spätere Aussehen des Programms -schnell Programme möglich Nachteile -schnell unübersichtlich -kryptische befehle -schwer wartbar -fehleranfällig Vorteil c-programmierung -schnelle Entwicklung möglich -gut protierbar -übersichtlich Nachteile: -weniger Kontrolle über den späteren Code -u.a. Ineffizienter Code
56. Hat die Programmierung in Assembler heute überhaupt noch eine Bedeutung? Nennen Sie zwei Beispiele, in denen heute und auch in Zukunft noch Assembler-Wissen nötig ist. -Um Zeitrelevante Programme zu erfassen -einige Mikrokontroller können nur in Assembler programmiert werden
57. Was sind Assembler-Direktiven? Wozu werden sie verwendet? Assembler Direktiven sind kein Bestandteil des Instructions Sets. Der Befehl END beispielsweise zeigt an das der Quelltext zu Ende ist.
58. Assembler-Direktiven können in vier Gruppen unterteilt werden. Nennen Sie die vier Gruppen mit einer Beispiel-Direktiven und erörtern Sie die Funktion der Di- rektive. -Keine Antwort war dabei
59. Vervollständigen Sie das nachfolgende Diagramm: - Keine Antwort ?
60. Sie möchten eine ganz bestimmte Befehlssequenz in Ihrem Programm erzeugen. Verwenden Sie hierzu einen Assembler oder einen Compiler? Begründen Sie Ihre Antwort ausführlich! Da es sich um eine ganz bestimmte Sequenz handelt, wird man in Assembler programmieren wollen. Deshalb benötigt man zum Übersetzen auch einen Assembler.
61. Welche Aufgabe hat der Linker? Erklären Sie seine Funktion! Der Linker wandelt den vom Assembler und/oder C-Compiler erhaltenen Code in eine Ausführbare Datei um.
62. Was versteht man unter einem optimierenden C-Compiler? Ein Compiler ist optimierend, wenn er sich nicht nur auf den vom Programmierer geschriebenen Code verlässt, sondern diesen auch verbessert. Zum Beispiel können unnötige Variablen gelöscht werden, oder Funktionen optimiert werden
63. Kann man Assembler- und C-Code bei der Programmentwicklung kombinieren? An welcher Stelle entsteht das ausführbare Programm für den Mikrocontroller? Ja das ist möglich. Der Linker fügt beide Codes zusammen, der daraus entstehende Code kann vom Controller genutzt werden.
64. Erklären Sie die Aufgaben von Assembler, Compiler und Linker? Der Assembler übersetzt Assembler Code in Object Code. Der Compiler übersetzt C-Code in Object Code. Der Linker verbindet die Object Codes zu Maschinencode.
65. Im Praktikum wurden bei der Programmentwicklung die beiden Include-Dateien compiler_defs.h und C8051F020_defs.h eingebunden. Weshalb wurde dies gemacht? Wofür sind die beiden Dateien wichtig? Die compiler_defs.h Datei enthält vom compiler abhängige Funktionen und Macros. Die c8051f020_defs.h Datei enthält Deklarationen für das Short Function Register.
66. Warum enthält ein typisches Mikrocontroller-Programm eine Endlosschleife? Ein Mikrocontrollerprogramm ist in der Regel dazu gedacht, eine bestimmte Funktion innerhalb einer elektronischen Schaltung zu erfüllen. Der Controller soll also genauso lang laufen wie die Schaltung. Dazu wird das Programm in eine Endlosschleife gelegt. Dann hört das Programm erst auf zu laufen, wenn der Controller von der Betriebsspannung getrennt wird.
67. Sie möchten Ihr Mikrocontroller-Programm für die Fehlersuche an einer bestimmten Stelle im Programm anhalten. – Welche Möglichkeit(en) bieten sich dazu an? Durch das Setzten eines Breakpoint kann das Programm an einer bestimmten Stelle gestoppt werden.
68. Sie möchten in Ihrem Programm einen Fehler lokalisieren, haben aber keinen Debugger zur Verfügung. Wie könnten Sie dennoch dem Fehler auf die Spur kommen? Man kann eine Variable mit rechts anklicken und „add to watch“ „default“ wählen. Hierdurch wird nach jedem Stoppen des Programms, der Wert der Variablen angezeigt.
69. Wie können Sie bei dem C8051F020/21-Mikrocontroller Peripherie-Komponenten (z.B. die I/O-Ports) ansprechen? Den entsprechenden Code zu Konfiguration, kann das sogenannte „Wizard Tool“ erzeugen. Weiterhin kann mit #define SW1 0x01 zum Beispiel der erste Switch SW1 genannt werden, um ihn später mit Befehlen wie NOT(P5&SW1) auszulesen.
70. Wofür steht der Datentyp „sfr“? Wozu wird er verwendet? special function register. Konfigurieren von uC funktionen (z.b aktivieren von timern oder interrupts) sfr hat 8Bits bzw. 1Byte und kann Werte von 0-255 speichern. Er wird von der c8051f020_defs.h verwendet, um Adressen des SFR direkt sinnvolle Namen zu geben. So muss sich der Programmierer beispielsweise nur WDTCN anstatt 0xFF merken. Deklariert wie folgt: sfr WDTCN = 0xFF;
71. Wie wird in einem C-Programm der Port 0 (P0, Adresse 80hex) deklariert? sfr P0 = 0x80;
72. Warum und in welchen Fällen ist es praktisch, Zahlenwerte in hexadezimaler Schreibweise zu verwenden? Die Hexadezimale Schreibweise ist deutlich kürzer. Auf eine Stelle kommen 4 Binärzahlen. Übersichtlichere Zahlendarstellung gegenüber der binären Darstellung.
73. Was bewirkt der C-Befehl P0 = 0xB3? Der Port P0 muss jetzt nicht mehr über den Befehl 0xB3 angesprochen werden, sondern kann auch über P0 angesprochen werden. P0=0xB3=1011|0011
74. An dieser Stelle machen Sie mal eine Lernpause und trinken einen Kaffee oder Tee. – Dann geht’s aber weiter! „Niemals!. Ich zock lieber noch ne Runde Minecraft.“ Phillip Zimmermann
75. Schreiben Sie den hexadezimalen Wert AAhex in dezimaler und binärer Darstellung auf! AAhex => 10.10 Binär = 1010.1010 Dezimal= 2+8+32+128 = 170
76. Welchen Wert hat die Variable E nach Ausführung der C-Programmzeile unsigned short E = 0x1234 + 0x4321? 0x1234 + 0x4321 =0001.0010.0011.0100 + 0100.0011.0010.0001 =(4+16+32+512+4.096)+(1+32+256+512+16.384) = 21.845
77. An Port P5 des C8051F020 seien 8 LEDs verschaltet, die nach dem Einschreiben einer logischen 1 im entsprechenden Port-Bin leuchten. – Ergänzen Sie die nötige Befehls-Sequenz, wenn sie ein „Lauflicht“ programmieren möchten:
78. Der C8051F020/21 unterstützt in einigen Fällen auch 16-Bit Special-Function-Register (sfr16). Welche Bedingung muss dafür erfüllt sein? Das entsprechende Register muss sich aus zwei 8bit Registern zusammensetzten die sich auf fortlaufenden Adressen befinden.
80. Wozu benötigt man die Zweierkomplementdarstellung? Bei der Vorzeichen Negation von Binären Zahlen, muss das Zweierkomplement gebildet werden. Hierzu werden alle Zahlen negiert und anschließend eine 1 aufaddiert.
81. In einem C-Programm finden Sie die beiden Code-Zeilen: sfr16 DP = 0x82; // Data Pointer DP = 0x0100; // Data Pointer setzen
82. Die Special-Function-Register (SFR) des C8051F020/21 liegen im Adressbereich 80hex bis FFhex. Im gleichen Adressbereich liegt aber auch der normale Datenspeicher. Wie kann zwischen SFR- und Daten-Bereich unterschieden werden? sfr können nur direkt und Daten Speicher nur indirekt adressiert werden.
83. Bei einigen SFRs kann jedes Bit auch einzeln angesprochen werden, z.B. bei Port P0. Welchen Vorteil bietet diese Bit-Adressierung? Keine Maskierung erforderlich. Macht die Programmierung übersichtlicher und einfacher.
84. Bei welchen Adressen kann ein SFR auch bit-adressiert werden? Register bei denen die Byte Adresse auf 0hex oder 8hex endet
85. Port P0 ist bit-adressierbar; Port P5 aber nicht. Bei beiden Ports soll der obere Port-Pin (Bit 7) auf log. 1 gesetzt werden. Die restlichen sieben Port-Pins dürfen dabei aber nicht verändert werden! Programmieren Sie beide Fälle in C. P0^7=1; P0 |= 0x80;
86. Neben den aus C bekannten Datentypen erlaubt der C-Compiler von der Firma Keil auch noch die Verwendung weitere Datentypen. Welche sind das und wofür werden sie benötigt? Geben Sie Beispiele an! bit, sbit, sfr, sfr16. Die sbit Variablen müssen im Gegensatz zu den bit Variablen global deklariert werden. bit – boolsche variable sbit – bit eines sfr register sfr – special function register sfr16 - special function register 16bit
87. Vervollständigen Sie die nachfolgende Tabelle der C-Datentypen: wtf ?
88. Die obere Tabelle der C-Datentypen enthält einen Fehler! – Haben Sie den Fehler schon gefunden? Der Wertebereich von sfr geht nicht von 0-256, sondern nur von 0-255.
89. Der C8051F020/21 hat verschiedene Speicherbereiche. Erklären Sie, was mit direkter und indirekter Speicheradressierung gemeint ist. Geben Sie für beide Adressierungsarten jeweils ein Beispiel an! Direkt-Adressierung: die Speicher Adresse deren inhaltbearbeitet werden soll wird bei dem Befehl mit angegeben. zB.: mov a, 40h die indirekte Adressierung ein Adresszeiger (@rn) zeigt auf den Speicherbereich deren Inhalt geändert werden soll: mov R0, #30h mov @R0, A
90. Der C8051F020/21 stellt insgesamt 256 Bytes internen Speicher zur Verfügung. (Der XRAM-Bereich sei hier nicht weiter betrachtet!) Die unteren 128 Bytes (Adressen 00hex bis 7Fhex) sind direkt und indirekt adressierbar. Warum können die oberen 128Bytes (Adressen 80hex bis FFhex) nur indirekt adressiert werden? Weil es sonst zu Überschneidungen mit den sfr's kommen kann.
91. Wann wird ein optimierender C-Compiler die unteren 128 Bytes des internen Datenspeichers vermutlich indirekt adressieren, obwohl diese auch direkt adressiert werden können? Spekulieren Sie und begründen Sie Ihre Vermutung! weil die Adresse nicht statisch ist bietet sich die indirekte Adressierung an. Der Zeiger kann dann dynamisch im Programm beschrieben werden.
92. Der externe Datenspeicher beim C8051F020/21 kann bis zu 64 kBytes groß sein. Wann ist es dennoch sinnvoll, den viel kleineren internen Speicher zu verwenden? Der Zugriff auf den internen Speicher ist sehr schnell, dafür aber stark begrenzt (auf 256bytes). Es ist sinnvoll den internen Datenspeicher zu verwenden, wenn es sich um häufig benötigte variablen handelt, da er schneller als der externe Datenspeicher ist.
93. Sie möchten eine Schleife mit einer Index-Variable programmieren, die möglichst schnell durchlaufen wird. Welchen Datenspeicher (intern oder extern) und welche Adressierungsart sollten Sie dafür verwenden, wenn Sie einen Mikro- controller der 8051-Familie einsetzen? Begründen Sie Ihre Antwort! Direkte Adressierung, Interner Speicher. Die direkte Adressierung ist besonders schnell, weil innerhalb des Maschinencodes die Speicheradresse mit nur einem Byte direkt angegeben wird. Der interne Speicher ist ebenfalls schneller als der externe.
94. Damit auf die unterschiedlichen Speicherbereiche des C8051F020/21 auch aus der Hochsprache C zugegriffen werden kann, wurden Schlüsselwörter für die jeweilige Speicherklasse eingeführt. Geben Sie an, welcher Bereich des Speichers mit welchem Schlüsselwort angesprochen werden kann:
95. Mit der Speicherklasse pdata kann nur eine Seite (256 Bytes) im externen Datenspeicher angesprochen werden, während mit xdata die kompletten 64 kBytes adressiert werden können. Warum bzw. in welchen Fällen kann ein Zugriff mit pdata dennoch sinnvoll sein? Wenn eine hohe Geschwindigkeit erforderlich ist, da die Adressierung von 256 Byte weniger Ressourcen benötigt als die des gesamten externen Speichers.
96. Der Keil C-Compiler für den C8051F020/21 erlaubt es auch, Variablen in den Programmspeicher (Flash-Speicher) zu legen. In welchen Fällen kann das sinnvoll sein? Geben Sie ein Beispiel dazu an! Dies ist sinnvoll um beispielsweise Konstanten oder LUTs abzulegen, die nur gelesen werden. Bsp. Ablage der Codierung einer Tastatur.
97. In C besteht die Möglichkeit, eine Variable mit dem Schlüsselwort const als Konstante zu deklarieren. In welchen Fällen kann das sinnvoll sein? Geben Sie ein Beispiel dazu an! Eine Variable, die mit const deklariert wurde, kann danach nicht verändert werden, sondern nur noch ausgelesen werden. Dies kann zum Beispiel bei der Deklaration von Naturkonstanten sinnvoll sein.
98. In einem C-Programm für den C8051F020/21 finden Sie nachfolgende Programmzeile: const unsigned char code LUT[10] = 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90 }; Wozu mag diese Programmzeile verwendet werden? Sie deklariert eine LUT, die konstant ist. Sie könnte z.B. zur Abfrage einer Tastatur verwendet werden.
99. Der Keil C-Compiler unterstützt die drei Speichermodelle SMALL, COMPACT und LARGE. Wozu werden Speichermodelle verwendet? Speicher Modelle ermöglichen es die Speicher Aufteilung dem Bedarf anzupassen und so zu optimieren.
100. Geben Sie die nachfolgenden Zahlen in binärer Schreibweise (8-Bit) an: +8,-8,+12,-12
Show full summary Hide full summary

Similar

Market failure and government intervention - Definitions
clm3496
I'm the king of the castle
archita.kmr
Suffragettes and Suffragists
Amula
Magnetism
joan.march
Psychology flashcards memory
eharveyhudl
GCSE Biology - Homeostasis and Classification Flashcards
Beth Coiley
Art & Design in Context
Chloe Scott
Test Primer Parcial - Tecnologías de la Información I
Ing. José Luis A. Hernández Jiménez
1PR101 2.test - Část 13.
Nikola Truong
CSA (115) ⊙ IITU 2017
Zhandos Ainabek
Jobs in Health Care
Carina Storm