Vorbereitung zu Versuch 1

Gbi, Algo, Mikrorechner - alles was es eben so gibt

Vorbereitung zu Versuch 1

Beitragvon mabl » 25.04.2009 13:44

1) Was ist eine Assemblersprache?
Assemblersprache ist eine direkte Repräsentation des Rechenwekbefehlsatz und daher architekturspezifisch. Die Befehle werden durch Mnemonics repräsentiert.

2) Wo liegt der wesentliche Unterschied zu höheren Sprachen wie z.B. C?
Assembler ist eine maschinennahe Sprache. Hochsprachen abstrahiert von der eigentlichen CPU und sind deswegen meist architekturunabhängig. Des weiteren bieten Hochsprachen durch die Abstraktion besser für den Menschen verständliche Kontrollstrukturen.

3) Welche Aufgabe haben die GPIOs des PSoC-Bausteins?
GPIOs bilden die Schnittstelle des yC mit der Peripherie, und verbinden daher die Ports mit den chipinternen analogen und digitalen Interconnects.

4) Nennen Sie jeweils 3 Komponenten der analogen und digitalen Blöcke.
Digital
  • Global Digital Interconnect
  • Digital PSoC Block Array
  • Row Input Configuration

Analog
  • Global Analog Interconnect
  • Analog PSoC Block Array
  • Analog Reference Voltages
  • Analog Input Muxing

5) Welche internen Register besitzt der M8C und welche Funktion haben sie?
  • Accumulator (A), ziel der Ergebnisse/Parameter der ALU (Rechenwerk) des M8C
  • Index (X), Mehrzweckregister
  • Program Counter (PC) [16 Bit breit], zeigt auf die aktuelle Adresse im Programmcode
  • Stack Pointer (SP), Zeigt auf die aktuelle Adresse auf dem Stack, ändert sich bei PUSH/POP
  • Flags (F), Flags die durch das Rechenwerk gesetzt werden (Carry Flag, Zero Flag, etc)

6) Welche Zweck erfüllen die Speicher RAM, SROM und Flash-ROM?
Ram hält alle flüchtigen Daten, welche wärend der Programmausführung anfallen. SROM beinhalten den Bootloader, Flash-ROM das Programm.

7) Was sind Usermodule?
Diese sind durch die IDE vorgefertigte Programmteile, die die Digital/Analogteile entsprechend einer Funktion verschalten.

8) Aus welchen Komponenten besteht ein Assemblerprogramm?
  • Label
  • Comment
  • Instuction
  • Directive

9) Wozu dient die Direktive AREA?
Diese Direktive definiert in welchen Speicherbereich/-typ der Code vom Linker platziert werden soll.

10) Nenne Sie 3 Adressierungsarten
  • “Source Immediate”
  • “Source Direct”
  • “Source Indexed”
  • “Destination Direct”
  • “Destination Indexed”
  • “Destination Direct Source Immediate”
  • “Destination Indexed Source Immediate”
  • “Destination Direct Source Direct”
  • “Source Indirect Post Increment”
  • “Destination Indirect Post Increment”

11) Berechnungen zu PWMs
\tau_{pwm}&=\mbox{OutputPeriod}=\frac{1}{f_{pwm}}=\unit[0,667]{s}\\&\\\mbox{PeriodValue}&=\frac{\mbox{OutputPeriod}}{t_{clk}}-1=\left(\mbox{OutputPeriod}\cdot f_{clk}\right)-1\\&=\left(\unit[0,667]{s}\cdot\unit[250]{Hz}\right)-1=249

Der Wert für PeriodValue ist also 249 und passt daher auch in ein 8-Bit Register, wie in der Aufgabe gefordert.

\mbox{CompareValue}&=\mbox{DutyCycle}\cdot\left(\mbox{PeriodValue}+1\right)\\&=0,6\cdot250=150
Dieser Wert passt natürlich auch in ein 8-Bit Register.

12) Berechnung zu SleepTimer
Ohne Taktfrequenz des Prozessors, und Dokumentation zu diesem Usermodul kann man diese Frage nicht beantworten?!
Benutzeravatar
mabl
Site Admin
 
Beiträge: 741
Registriert: 25.10.2008 11:28
Wohnort: Ettlingen, Karlsruhe

Re: Vorbereitung zu Versuch 1

Beitragvon miriam » 26.04.2009 14:31

zur 12)
in der 42 seitigen einführungs beschreibung ist das kapitel 4.4.7 über das usermodul sleeptimer. dort ist ein bisschen was erklärt. hast du so was mit dokumentation gemeint? vlt hilfst dir ja weiter. mir hat es nicht weiter geholfen. :?
miriam
 
Beiträge: 96
Registriert: 30.10.2008 15:45

Re: Vorbereitung zu Versuch 1

Beitragvon mabl » 26.04.2009 14:44

Das ist ja interessant, die Interruptrate ist unabhängig von der Taktfrequenz, bzw die Tabelle in ist schon auf unser Entwicklerboard angepasst. :arrow: Ja, es hilft :)

12) Berechnung zu SleepTimer
Wir brauchen also wie in der Aufgabe gefordert eine Interruptrate von 8Hz, laut Tabelle ist muss SleepTimer_SetInterval also 0x10 (das ist ein hexadezimaler Wert, in Dezimal ist das 16) sein. Wenn wir jetzt jede achtel Sekunde das Zählregister hochzählen, so muss SleepTimer_TickWait also 8 sein um eine Wartezeit von 1 Sekunde zu erreichen.
Benutzeravatar
mabl
Site Admin
 
Beiträge: 741
Registriert: 25.10.2008 11:28
Wohnort: Ettlingen, Karlsruhe

Re: Vorbereitung zu Versuch 1

Beitragvon Norilian » 26.04.2009 23:31

Hi erstmal,

Echt toll, dass du ne Lösung hochgeladen hast ... ich war schon am Verzweifeln mit der Aufgabe 11 und 12 ... (ich hab schon mit dem Ausschlussprinzip Zahlen und Begriffe kombiniert ;) )
So, einen kleinen Tippfehler hab ich noch gefunden .... bei der Aufgabe 11:
PeriodValue=([0,6667]s*[250]Hz) ----> die 250 sollte eigentlich 375 Hz sein, oder?
Das ist 1000mal besser als das, was ich mir da "mühsam" aus den Skripten zusammengereimt habe - Kompliment!

mfg flo
Norilian
 
Beiträge: 4
Registriert: 26.04.2009 23:09

Re: Vorbereitung zu Versuch 1

Beitragvon mabl » 27.04.2009 06:40

Jops, war nen typo, sollte 375Hz sein - am Ergebnis ändert das aber nichts. Danke dir für die Korrektur.
Benutzeravatar
mabl
Site Admin
 
Beiträge: 741
Registriert: 25.10.2008 11:28
Wohnort: Ettlingen, Karlsruhe


Zurück zu Informatik

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron