PTI Flashcards

1
Q

Eigenschaften von PIC12F675 Mikrocontroller

A
  • Kleiner Befehlssatz mit 35 Assemblerbefehlen
  • Minimaler Komponentenbedarf
  • Günstig
  • Für kleine Anwendungen geeignet
  • Einfache RISC Architektur
  • Gute verfügbarkeit
  • kostenlose IDE
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Was sind die grundlegenden Komponenten eines Von-Neumann-Rechners?

A
  • Steuerwerk
  • Rechenwerk
  • Hauptspeicher
  • Ein-/Ausgabe-Einheit, die über ein Bussystem verbunden sind.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Was ist ein Adress-orientierter Speicher?

A
  • Speicher, in dem Daten durch eine Adresse abgelegt und wiedergefunden werden können
  • Zugriff auf Daten erfordert immer die Adresse.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Wo können Informationen in einem Rechnersystem abgelegt werden?

A
  • RAM (Hauptspeicher)
  • CPU
  • ROM (Read-Only Memory)
  • EEPROM (Electrically Erasable Programmable Read Only Memory)
  • Cache
  • Sekundärspeicher (HDD oder SSD)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Was ist ein Register und welche Typen gibt es?

A
  • Speicherstruktur zur Speicherung binärer Informationen
  • Es gibt Allgemeine-Register (zur Berechnung)
  • Steuer-Register (zur Kontrolle von Befehlen).
  • Adress-Register (Speichert Adressen)
  • Status-Register (Zeigt Status von z.B. CPU)
  • Daten-Register (Speichert Daten)
  • Stackpointer (Zeig auf oberstes Element von Stack)
  • Base Register (Für Addressierung in großen Datenstrukturen)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Welche Befehlsgruppen gibt es im Maschinenbefehlssatz?

A
  • Transportbefehle
  • arithmetische Befehle
  • logische Befehle
  • Bit-Manipulationsbefehle
  • Schiebe- und Rotationsbefehle
  • Programmsteuerbefehle.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Welche Informationen hat ein Maschinenbefehl

A
  • den Opcode (Art der Operation)
  • Operanden (Daten)
  • Adressformat (Ort der Daten)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Welche Schritte umfasst der Von-Neumannsche Befehlszyklus?

A

„Fetch“ (Befehl holen), „Decode“ (Befehl decodieren), und „Execute“ (Befehl ausführen).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Wie unterscheidet sich ein Mikroprozessor von einem Mikrocontroller in der Informationsspeicherung?

A

Mikroprozessoren:
- verwenden RAM für alle Programmbefehle & Variablen
Mikrocontroller:
- Programmcode oft im unveränderlichen Flash-ROM gespeichert

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Welche Registertypen sind im PIC12F675 verfügbar?

A
  • W-Register (allgemeines Arbeitsregister)
  • Statusregister
  • Program Counter
  • GPIO
  • TRISIO-Register
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Was sind Mnemonics in der Assemblersprache?

A

Symbolische Abkürzungen für Maschinenbefehle, z. B. movlw (move literal to W), addwf (add W and f), goto

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Welche Adressierungsarten werden in der PIC-Assembler-Programmierung verwendet?

A

Direkte/absolute Adressierung und unmittelbare (Immediate-) Adressierung.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Wie wird ein Wert an eine Speicher-Variable zugewiesen?

A
  • Wert wird zuerst ins W-Register geladen
  • dann in die Speicher-Variable übertragen (z.B. f)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Wie funktioniert ein unbedingter Sprungbefehl im Assembler?

A
  • Mit goto-Befehl
  • Setzt PC auf Adresse des Sprungziels
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Wie wird eine if-else-Struktur in Assembler realisiert?

A
  • Mit Kombination von Prüf-Befehlen und Sprüngen, um bedingte Abläufe zu steuern
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Was ist ein Unterprogramm und wie wird es im Assembler aufgerufen?

A
  • Ist eine wiederverwendbare Befehlssequenz
  • Wird mit call-Befehl aufgerufen und mit return beendet
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Welche Debugging-Anzeigen sind in der MPLAB IDE nützlich?

A
  • File Registers (SRAM-Speicher)
  • IO-View
  • Logic-Analyzer.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Wie kann man Speicherplatz für Variablen reservieren?

A
  • Mit RES-Direktive
  • Reserviert Speicher im RAM
  • Weist Variable keinen Wert zu!
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Welche GPIO-Pins des PIC12F675 werden für den I2C-Bus genutzt?

A

Pin GP5 für SDA (Serial Data) und Pin GP4 für SCL (Serial Clock).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Was muss bei der Nutzung der GPIO-Pins für den I2C-Bus beachtet werden?

A
  • GPIO-Leitungen müssen als Ein- oder Ausgang konfiguriert werden,
  • Es ist wichtig, die richtige Speicherbank zu wählen.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Transportbefehle (Daten verschieben)
- movlw k
- movwf f
- movf f, d

A
  • movlw k
    Funktion: Überträgt einen unmittelbaren Wert k (Literal) in das W-Register.
    Beispiel: movlw D’10’ – Überträgt den Wert 10 ins W-Register.
  • movwf f
    Funktion: Überträgt den Inhalt des W-Registers in das RAM-Register an der Adresse f.
    Beispiel: movwf 0x20 – Überträgt den Wert aus dem W-Register ins RAM an Adresse 0x20.
  • movf f, d
    Funktion: Überträgt den Wert aus dem RAM-Register f ins W-Register (d=0) oder in sich selbst (d=1).
    Beispiel: movf 0x20, 0 – Überträgt den Wert an Adresse 0x20 ins W-Register.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Arithmetische Befehle (Rechenoperationen)
- addlw k
- addwf f, d
- sublw k

A

addlw k
Funktion: Addiert den unmittelbaren Wert k zum W-Register.
Beispiel: addlw D’5’ – Addiert 5 zum aktuellen Wert im W-Register.
addwf f, d
Funktion: Addiert den Wert im W-Register zum RAM-Register f und speichert das Ergebnis in f (d=1) oder W (d=0).
Beispiel: addwf 0x20, 0 – Addiert den Wert an Adresse 0x20 zum W-Register und speichert das Ergebnis in W.
sublw k
Funktion: Subtrahiert den W-Register-Wert vom Literal k und speichert das Ergebnis in W.
Beispiel: sublw D’10’ – Subtrahiert den W-Register-Wert von 10 und speichert das Ergebnis in W.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Logische Befehle
- andlw k
- iorlw k
- xorlw k

A
  • andlw k
    Funktion: Führt eine bitweise UND-Operation zwischen k und dem W-Register durch und speichert das Ergebnis in W.
    Beispiel: andlw B’11110000’ – Führt eine UND-Operation zwischen W und 11110000 durch.
  • iorlw k
    Funktion: Führt eine bitweise ODER-Operation zwischen k und dem W-Register durch.
    Beispiel: iorlw B’00001111’ – Führt eine ODER-Operation zwischen W und 00001111 durch.
  • xorlw k
    Funktion: Führt eine bitweise XOR-Operation zwischen k und dem W-Register durch.
    Beispiel: xorlw B’10101010’ – XOR zwischen W und 10101010.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Bit-Manipulationsbefehle
- bsf f, b
- bcf f, b
- btfsc f, b
- btfss f, b

A
  • bsf f, b
    Funktion: Setzt das Bit b im Register bei Adresse f auf 1.
    Beispiel: bsf 0x15, 3 – Setzt das vierte Bit (Bit 3) des Registers an Adresse 0x15 auf 1
  • bcf f, b
    Funktion: Löscht das Bit b im Register bei Adresse f, setzt es auf 0.
    Beispiel: bcf 0x10, 1 – Löscht das zweite Bit (Bit 1) des Registers an Adresse 0x10.
  • btfsc f, b
    Funktion: Prüft, ob Bit b im Register f 0 ist. Wenn ja, wird der nächste Befehl übersprungen.
    Beispiel: btfsc 0x22, 5 – Überspringt den nächsten Befehl, wenn das sechste Bit (Bit 5) des Registers an Adresse 0x22 0 ist.
  • btfss f, b
    Funktion: Prüft, ob Bit b im Register f 1 ist. Wenn ja, wird der nächste Befehl übersprungen.
    Beispiel: btfss 0x18, 4 – Überspringt den nächsten Befehl, wenn das fünfte Bit (Bit 4) des Registers an Adresse 0x18 1 ist.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q

Schiebe- und Rotationsbefehle
- rlf f, d
- rrf f, d

A
  • rlf f, d
    Funktion: Verschiebt den Inhalt von f um ein Bit nach links. Speichert das Ergebnis in f oder W.
    Beispiel: rlf 0x15, 1 – Verschiebt den Wert in 0x15 nach links und speichert das Ergebnis in 0x15.
  • rrf f, d
    Funktion: Verschiebt den Inhalt von f um ein Bit nach rechts. Speichert das Ergebnis in f oder W.
    Beispiel: rrf 0x10, 0 – Verschiebt den Wert in 0x10 nach rechts und speichert das Ergebnis in W.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q

Steuerbefehle (Programmfluss)
- goto label
- call label
- return
- retlw k

A
  • goto label
    Funktion: Unbedingter Sprung zu einer bestimmten Adresse oder einem Label.
    Beispiel: goto START – Springt zur Speicheradresse des Labels START.
  • call label
    Funktion: Springt zu einem Unterprogramm bei label und speichert die Rücksprungadresse im Stack.
    Beispiel: call SUB_ROUTINE – Ruft das Unterprogramm SUB_ROUTINE auf.
  • return
    Funktion: Beendet ein Unterprogramm und springt zur zuletzt gespeicherten Rücksprungadresse.
    Beispiel: return – Beendet das aktuelle Unterprogramm.
  • retlw k
    Funktion: Return from subroutine with literal in W. Speichert den Literal-Wert k in W und kehrt zum aufrufenden Programm zurück.
    Beispiel: retlw D’5’ – Setzt W auf 5 und kehrt zum Hauptprogramm zurück.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
27
Q

Schleifen und Bedingungen
- decfsz f, d
- incf f, d

A
  • decfsz f, d:
  • Dekrementiert f. Wenn Ergebnis 0, wird nächster Befehl übersprungen. Ergebnis in f (d=1) oder W (d=0)
  • incf f, d: Inkrementiert f. Ergebnis in f (d=1) oder W (d=0). (Wird nur 1 mal ausgeführt und stoppt)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
28
Q

Frage: Was ist der Ruhezustand auf dem I2C-Bus?

A

Im Ruhezustand sind sowohl die SDA- (Serial Data) als auch die SCL-Leitung (Serial Clock) auf HIGH.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
29
Q

“Wie wird das START-Signal im I2C-Protokoll erzeugt?”

A

Das START-Signal wird erzeugt, indem die SDA-Leitung von HIGH auf LOW wechselt, während die SCL-Leitung auf HIGH bleibt.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
30
Q

Wie funktioniert die Datenübertragung auf dem I2C-Bus?

A

Der Master gibt zuerst den SDA-Wert aus und erzeugt danach einen Impuls auf SCL, um die Daten zu senden.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
31
Q

Was ist ein ACK/NACK-Signal, und wie wird es erzeugt?

A
  • ACK-Signal wird gesendet, wenn Empfänger (Master oder Slave) bestätigt, dass ein Byte korrekt empfangen wurde (SDA 1, SCL 0)
  • NACK-Signal wird gesendet, wenn Empfänger das Byte nicht anerkennt oder die Kommunikation beendet (SDA 1, SCL 1)
  • Wichtig: Signale werden nicht durch SCL-Impuls erzeugt, sondern durch Zustand der SDA-Leitung während des 9. SCL-Pulses
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
32
Q

Welche I2C-Adressen hat der LM92 und wann werden sie verwendet?

A

0x97 für das Lesen (LM92_SLV_ADDR_RD) und 0x96 für das Schreiben (LM92_SLV_ADDR_WR) an den Sensor.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
33
Q

Welche Pins des PIC12F675 sind für SDA und SCL beim I2C-Bus zuständig?

A

SDA ist auf Pin 5 und SCL auf Pin 4 konfiguriert.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
34
Q

Wie werden SDA und SCL im Code angesprochen?

A

Konstanten wie SDA_PIN equ 05h und SCL_PIN equ 04h ermöglichen eine benutzerfreundliche Adressierung der Pins.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
35
Q

Welchen Temperaturbereich kann der LM92 messen und in welcher Auflösung?

A

Der LM92 kann Temperaturen von -55°C bis 150°C mit einer Auflösung von 0,0625°C pro Bit messen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
36
Q

Wie erfolgt die Temperaturübertragung vom LM92?

A
  • Temperatur wird in Binärwort mit 13 Bits im 2K übertragen
  • MSB gibt Vorzeichen an
37
Q

Wie wird die Temperatur in ganze °C umgewandelt?

A
  • Bits um ein Bit nach links verschieben
  • Wert wird auf nächste ganze Zahl gerundet, wenn nötig
38
Q

Wie wird die GPIO-Richtung für die I2C-Kommunikation konfiguriert?

A
  • GPIO-Leitungen werden über TRISIO- und ANSEL-Register als Eingang/Ausgang konfiguriert
  • je nachdem, ob Daten gelesen oder geschrieben werden.
39
Q

Wie kann ein GPIO-Pin auf LOW oder HIGH gesetzt werden

A

Durch bcf GPIO, Pin für LOW und bsf GPIO, Pin für HIGH.

40
Q

Warum muss die Speicherbank für GPIO-Konfigurationen gewechselt werden?

A
  • GPIO-Register befinden sich in verschiedenen Speicherbänken, die durch Bankwechsel erreichbar sind
  • STATUS-Register: Der Bankwechsel wird durch das RP0-Bit im STATUS-Register gesteuert.
41
Q

Was passiert, wenn ein Interrupt ausgelöst wird?

A
  • Program Counter wird auf festgelegte Adresse gesetzt, an der Interrupt-Service-Routine (ISR) beginnt.
42
Q

Warum müssen W- und Status-Register in der ISR gesichert werden?

A
  • Damit Zustand dieser Register nach der ISR wiederhergestellt wird und Programm korrekt weiterläuft
43
Q

Welcher Befehl wird verwendet, um sicher aus der ISR zurückzukehren?

A
  • retfie
  • Befehl zum sicheren Verlassen der ISR, Prozessor wird in Normalbetrieb zurückversetzt
  • Interrupts wieder aktiviert
44
Q

Wie wird die Interrupt-Frequenz für den LM92 eingestellt?

A
  • Timer0 wird so konfiguriert, dass ein Interrupt etwa alle 15 Hz auftritt
  • Temperatur wird nur bei jedem 32. Aufruf aktualisiert, um unnötige Wiederholungen zu vermeiden.
45
Q

Wofür wird das TMR0-Register verwendet?

A
  • Ist ein internes Zählregister, das beim Überlauf Interrupt auslöst
  • Speichert aktuellen Wert von Timer0
  • Ist für Zeiterfassung von Interrupt verantwortlich
46
Q

Welche Rolle spielt das Prescaler-Setting im OPTION-Register?

A
  • Prescaler bestimmt, wie viele Takte vergehen, bevor TMR0 um 1 erhöht wird (z. B. 32 Takte)
  • Beeinflusst die Interrupt-Frequenz.
47
Q

Welche Bits im INTCON-Register sind für die Interrupt-Konfiguration wichtig?

A
  • GIE (Global Interrupt Enable) und T0IE (Timer0 Interrupt Enable)
  • Bits werden auf 1 gesetzt, um Timer0-Interrupts zu aktivieren.
48
Q

Welche GPIO-Pins sollten im Logic Analyzer Window überwacht werden, und warum?

A

GPIO4 (SCL) und GPIO5 (SDA), da sie die I2C-Kommunikation darstellen und dort Start-, Stop- und Datenimpulse sichtbar gemacht werden können.

49
Q

Wie können Breakpoints im Simulator gesetzt werden?

A

Breakpoints können durch Klicken auf die Zeilennummer in der IDE gesetzt werden, um den Programmfluss zu stoppen und den Registerzustand zu analysieren.

50
Q

Welche Funktion zeigt die aktuelle Temperatur auf dem LCD an?

A

LCD_SHOW_TEMP, die den Wert in der globalen Variable vTemp anzeigt.

51
Q

Warum sollten die LCD-Funktionen nur in der Hauptschleife oder ISR aufgerufen werden?

A
  • Um Stack-Überlauf des PIC12F675 zu vermeiden
  • Da Mikrocontroller nur eine begrenzte Rücksprungtiefe unterstützt.
52
Q

Welche Befehle beeinflussen das Carry-Bit (C) im Status-Register?

A

addlw und addwf setzen das Carry-Bit, wenn der Übertrag auftritt.
sublw und subwf setzen das Carry-Bit, wenn kein Übertrag auftritt.

53
Q

Welcher Befehl beeinflusst das Zero-Bit (Z) im Status-Register?

A
  • Jeder Befehl, der W-Register oder anderes Ziel verändert (z. B. movlw, addlw, sublw),
  • Setzt Zero-Bit auf 1, wenn das Ergebnis 0 ist.
  • Setzt Zero-Bit auf 0 wenn Ergebnis !0.
54
Q

Welche Befehle beeinflussen das Digit Carry-Bit (DC) im Status-Register?

A
  • addlw, addwf, sublw und subwf setzen das DC-Bit
  • wenn bei Operationen mit niederwertigen Halbbyte ein Übertrag stattfindet.
  • DC Bit auf 1, wenn Übertrag, 0 wenn kein Übertrag in höheres Halbbyte
55
Q

Wie wird das RP0-Bit im Status-Register gesetzt, und warum?

A
  • Mit bsf STATUS, RP0 und bcf STATUS, RP0 wird das RP0-Bit gesetzt bzw. gelöscht
  • Um zwischen Speicherbank 0 und Bank 1 zu wechseln.
56
Q

Wie setzt man einen bestimmten GPIO-Pin auf HIGH?

A

bsf GPIO, Pin – Setzt den angegebenen Pin im GPIO-Register auf HIGH.

57
Q

Wie setzt man einen bestimmten GPIO-Pin auf LOW?

A

bcf GPIO, Pin – Setzt den angegebenen Pin im GPIO-Register auf LOW.

58
Q

Welcher Befehl prüft den Zustand Low beim GPIO Pin

A

btfsc GPIO, Pin – Testet, ob der angegebene GPIO-Pin auf LOW ist und überspringt den nächsten Befehl, wenn das Bit auf 0 ist.

59
Q

Welcher Befehl testet ein Bit und überspringt, wenn es HIGH ist?

A

btfss GPIO, Pin – Testet, ob der angegebene GPIO-Pin auf HIGH ist und überspringt den nächsten Befehl, wenn das Bit auf 1 ist.

60
Q

Wie konfiguriert man einen GPIO-Pin als Eingang oder Ausgang?

A

Über das TRISIO-Register –

bsf TRISIO, Pin konfiguriert den Pin als Eingang.
bcf TRISIO, Pin konfiguriert den Pin als Ausgang.

61
Q

Wie deaktiviert man die analoge Funktion eines GPIO-Pins?

A
  • Über das ANSEL-Register –
  • bcf ANSEL, Pin deaktiviert analoge Funktion des Pins.
62
Q

Wofür steht die Konstante LM92_SLV_ADDR_RD und wie wird sie verwendet

A
  • 7-Bit Slave Adresse des Sensors ergänzt Lesebit (LSB = 1)
  • Wert 0x97 (binär 10010111)
  • Verwendet zum Anfordern der Temperaturdaten vom Sensor
63
Q

Welche Funktion hat die Variable vGetTempCntr

A
  • Zählt bei jedem Timer-Interrupt herunter
  • Bei erreichen von 0 wird neuer Temp. Zyklus gestartet
  • Setzt Startwert nach jedem Zyklus zurück
64
Q

Was macht die Send_I2C_Start Funktion

A
  • Erzeugt Startbedingung für I2C Kommunikation
  • Schaltet SDA von High auf Low, während SCL High ist
  • Signalisiert allen I2C-Geräten Beginn der Datenübertragung
65
Q

Was passiert in der Interrupt-Service-Routine (ISR), wenn vGetTempCntr den Wert 0 erreicht

A
  • Read_Temp_LM92 wird aufgerufen
  • Kommunikation mit LM92 über I2C zum Lesen von Temperatur
  • Anzeige der Temp. auf dem LCD
  • Zurücksetzen von vGetTempCntr für nächsten Messzyklus
66
Q

Was ist die Aufgabe von Read_Byte_I2C

A
  • Liest Byte von der I2C-Leitung
  • Steuert Datenfluss durch Wechsel von SDA und SCL
  • Speichert empfangenes Byte im W-Register zur weiteren Verarbeitung
67
Q

Was bewirkt decfsz vGetTempCntr, F in der Timer Interrupt Routine

A
  • Reduziert vGetTempCntr um 1
  • Bei vGetTempCntr = 0 wird nächster Befehl übersprungen und startet Temperaturlesung
  • Ermöglicht zyklische Sensorabfrage
68
Q

Wie sendet SEND_ACKM eine Ack-Bestätigung in I2C

A
  • Setzt SDA auf Low um Ack zu senden
  • Signalisiert dem Slave, dass Master bereit für weitere Daten ist
  • Erfolgt durch Low-Pegel auf SDA und High-Pegel auf SCL
69
Q

Was macht INIT_TIMER0

A
  • Initislisiert Timer0 für regelmäßige Interrupt
  • Interrupts verringern vGetTempCntr
    Steuert zeitgesteuerte Abfrage des Sensors
70
Q

Was macht INIT_I2C

A
  • Bereitet SDA und SCL Leitungen für I2C Kommunikation vor
  • Konfiguriert als digitale Ausgänge, setzt auf high
  • Initialisiert I2C Bus für Datenübertragung
71
Q

Warum wird in der Funktion READ_TEMP_LM92 nach dem Empfang des zweiten Datenbytes ein NACK gesendet

A
  • NACK signalisiert Sensor das Ende von Datenanforderung
  • Beendet Leseübertragung
  • Ermöglicht ordnungsgemäßes schließen von I2C Verbindung
72
Q

Wie wird gelesene Temp auf LCD angezeigt

A
  • Temp.daten werden von Sensor gelesen und in vTemp gespeichert
  • LCD_Show_TEMP konvertiert und zeigt Temp auf LCD an
73
Q

Was macht SET_SDA_OUT

A
  • Konfiguriert SDA als Ausgang durch setzen von Trision bit auf 0
  • Wichtig für aktive Signalisierung auf SDA
  • Notwendig für Start und Stop Bedingung der I2C Kommunikation
74
Q

Warum wird INIT_TIMER0 in der Hauptschleife (MAIN_PROG) aufgerufen, und welche Rolle spielt dies im Programmablauf

A
  • Aktiviert Timer und zugehörige Interrupt Funktion
  • Sorgt für periodischen Start des Temperaturmesszyklus
  • Stellt sicher, dass Sensor regelmäßig abgefragt wird und Temperatur angezeigt wird
75
Q

Was macht SDA

A
  • Überträgt Daten zwischen Geräten
  • Kann Daten senden und empfangen
76
Q

Wie funktioniert SDA

A
  • Daten werden als Bits übertragen
  • Synchronisation erfolgt über den Takt (SCL)
77
Q

Was macht SCL

A
  • Stellt Taktsignal zur Synchronisation der Datenübertragung bereit
78
Q

Wer steuert SCL Leitung

A
  • Master steuert Leitung und legt Taktrate fest
79
Q

Wie beeinflusst SCL die Kommunikation auf der SDA Leitung

A
  • SCL synchronisiert Zeitpunkt, zu dem Daten auf SDA Leitung übertragen werden
80
Q

Was passiert wenn SCL nicht vorhanden ist

A
  • Geräte können keine Daten übertragen
  • Kommunikation kann ohne Takt nicht synchronisiert werden
81
Q

Wie wird mit SCL die Datenübertragung kontrolliert

A
  • SCL steuert Taktrate der Datenübertragung und bestimmt Geschwindigkeit, mit der Bits der SDA-Leitung übertragen werden
  • Daten auf SDA-Leitung müssen stabil bleiben, während SCL low ist, bevor nächstes Bit bei SCL high übertragen wird
82
Q

Status Register

A
  • Enthält Flags die den aktuellen Zustand der CPU anzeigen
  • Zeig z.B. ob Übertragung stattgefunden hat
83
Q

GPIO Register

A
  • Steuert Daten der Pins
  • Jedes Bit im Register entspricht einem Pin
  • Pin kann entweder Eingang oder Ausgang sein
84
Q

TRIS Register

A
  • Bestimmt Richtung der Pins (Eingang oder Ausgang)
85
Q

Option Register

A
  • Konfiguriert Optionen wie den Watchdog Timer und Taktquellen für den Timer
86
Q

ADC Register

A
  • Steuert Einstellungen des Analog Digital Wandlers
  • Wandelt analoge Signale in digitale Werte um
87
Q

Timer Register

A
  • Verwendet Timer-Funktion des Mikrocontroller um Zeitverzögerung oder Interrupt zu erzeugen
88
Q

Stack Pointer

A
  • Enthält Adresse des Aktuellen Stack-Frames um Rücksprungadressen bei Funktionsaufrufen zu speichern
89
Q

Warum muss die Speicherbank für TRISIO und ANSEL gewechselt werden?

A

TRISIO und ANSEL liegen in Bank 1, sodass bsf STATUS, RP0 vor Zugriff gesetzt und bcf STATUS, RP0 danach zurückgesetzt werden muss.