diff --git a/20191212/hp-20191212.tex b/20191212/hp-20191212.tex index a44fb1c291aa53c0dec848b17f53ee903a2a4b2c..92d6c381cc9629cb6ca5b64a1ae0a1485f032ec9 100644 --- a/20191212/hp-20191212.tex +++ b/20191212/hp-20191212.tex @@ -20,7 +20,7 @@ % Attribution-ShareAlike 3.0 Unported License along with this % document. If not, see <http://creativecommons.org/licenses/>. -% README: make, Byte-Reihenfolge - Endianness, Binärdarstellung negativer Zahlen, Speicherausrichtung - Alignment +% README: make, Byte-Reihenfolge - Endianness \documentclass[10pt,t]{beamer} diff --git a/20191212/pgscript.sty b/20191212/pgscript.sty deleted file mode 100644 index 0a36e84e6b3087a3369e74d1a5b33fd58902993d..0000000000000000000000000000000000000000 --- a/20191212/pgscript.sty +++ /dev/null @@ -1,137 +0,0 @@ -% pgscript.sty - LaTeX Settings for Lecture Notes -% Copyright (C) 2012, 2015, 2017, 2018 Peter Gerwinski -% -% This document is free software: you can redistribute it and/or -% modify it either under the terms of the Creative Commons -% Attribution-ShareAlike 3.0 License, or under the terms of the -% GNU General Public License as published by the Free Software -% Foundation, either version 3 of the License, or (at your option) -% any later version. -% -% This document is distributed in the hope that it will be useful, -% but WITHOUT ANY WARRANTY; without even the implied warranty of -% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -% GNU General Public License for more details. -% -% You should have received a copy of the GNU General Public License -% along with this document. If not, see <http://www.gnu.org/licenses/>. -% -% You should have received a copy of the Creative Commons -% Attribution-ShareAlike 3.0 Unported License along with this -% document. If not, see <http://creativecommons.org/licenses/>. - -\usepackage{amsfonts} -\usepackage[colorlinks,allcolors=blue]{hyperref} -\usepackage[british,german]{babel} % Yes, really "german" and not "ngerman". -\usepackage[utf8]{luainputenc} % Without this, umlauts are broken. Weird. -\usepackage{microtype} -\usepackage[T1]{fontenc} -\usepackage{times} -\usepackage{helvet} -\renewcommand*\familydefault{\sfdefault} -\usepackage{graphicx} -\usepackage{ifluatex} -\usepackage{xcolor} -\usepackage{enumerate} -\usepackage{ifthen} - -%% Repair kerning: Automatically insert "\kern{-0.15em}" between "//" % (in URLs). -%% PG20151206: This seems unnecessary here. Maybe due to \sf? -%\ifluatex -%\directlua{ -% local glyph = node.id ("glyph") -% local function my_kerning (head) -% for t in node.traverse (head) do -% if t.id == glyph and t.char == 47 then -% if t.next -% and t.next.next -% and t.next.next.id == glyph -% and t.next.next.char == 47 then -% local k = node.new ("kern") -% k.kern = tex.sp ("-0.15em") -% k.next = t.next -% k.prev = t -% t.next.prev = k -% t.next = k -% end -% end -% end -% node.kerning (head) -% end -% luatexbase.add_to_callback ("kerning", my_kerning, "URL kerning") -%} -%\fi - -\definecolor{blendedblue}{rgb}{0.2,0.2,0.7} -\definecolor{darkgreen}{rgb}{0.0,0.3,0.0} -\definecolor{darkred}{rgb}{0.7,0.0,0.0} -\definecolor{darkgrey}{rgb}{0.4,0.4,0.4} - -\newcommand{\breath}{\bigskip\goodbreak} -\newcommand{\subsubsubsection}[1]{\breath\par\textbf{#1}\nopagebreak\par} -\newenvironment{experts}{\color{darkgrey}}{} -\newenvironment{whiteout}{\definecolor{darkgreen}{rgb}{1.0,1.0,1.0}% - \definecolor{darkred}{rgb}{1.0,1.0,1.0}% - \color{white}}{} -\newenvironment{hint}{% - \begin{quote} - \addtolength{\leftskip}{0.6cm}% -% \includegraphics[width=1cm]{Zeichen_101_-_Gefahrstelle,_StVO_1970.pdf} - \makebox(0,0)[r]{\includegraphics[width=1cm]{Zeichen_101_-_Gefahrstelle,_StVO_1970.pdf}\hspace*{0.5em}}% -% \hangindent 1.2cm -% \hangafter 2 - \bfseries -% Foobar Foobar Foobar Foobar Foobar Foobar Foobar Foobar -% Foobar Foobar Foobar Foobar Foobar Foobar Foobar Foobar -% Foobar Foobar Foobar Foobar Foobar Foobar Foobar Foobar -% Foobar Foobar Foobar Foobar Foobar Foobar Foobar Foobar - \ignorespaces -}{% - \end{quote} -} -\urlstyle{sf} -\newcommand{\file}[1]{{\color{blendedblue}#1}} -\newcommand{\textarrow}{{\boldmath $\longrightarrow$}} -\newcommand{\arrowitem}{\item[\textarrow]} -\newcommand{\newterm}[1]{\emph{\color{darkgreen}#1}} - -\newcounter{exercise} -\newcommand{\exercise}[1]{\addtocounter{exercise}{1}\subsection*{Aufgabe \arabic{exercise}: #1}} -\newcommand{\solution}{\subsubsection*{Lösung}} - -\newcounter{points} -\newcommand{\points}[1]{\ifthenelse{#1=1}{(1 Punkt)}{(#1 Punkte)}\addtocounter{points}{#1}} - -\newcommand{\gitfile}[3]{\href{https://gitlab.cvh-server.de/pgerwinski/#1/raw/master/#2/#3}{\file{#3}}} - -\usepackage{listings} -\lstset{basicstyle=\color{blendedblue}, - language=C, - captionpos=b, - gobble=4, - xleftmargin=1em, - columns=fullflexible, - moredelim=**[is][\color{red}]{¡}{¿}} -\lstdefinestyle{numbered}{xleftmargin=2em, - numbers=left, - numberstyle=\footnotesize\color{gray}} -\lstdefinestyle{terminal}{basicstyle=\ttfamily\color{darkgreen}, - language={}, - columns=fixed, - moredelim=**[is][\color{darkred}]{¡}{¿}, - moredelim=**[is][\color{blendedblue}]{°}{¿}, - moredelim=**[is][\sffamily\it\lstset{columns=fullflexible}]{²}{¿}} -\lstdefinestyle{cmd}{basicstyle=\ttfamily\color{darkred}, - language={}, - columns=fixed, - moredelim=**[is][\color{darkgreen}]{¡}{¿}, - moredelim=**[is][\color{blendedblue}]{°}{¿}, - moredelim=**[is][\sffamily\it\lstset{columns=fullflexible}]{²}{¿}} - -\setlength{\textwidth}{16.5cm} -\setlength{\textheight}{26.0cm} -\setlength{\hoffset}{-1.5cm} -\setlength{\voffset}{-3.0cm} -\setlength{\parindent}{0pt} -\setlength{\parskip}{\medskipamount} -\setlength{\unitlength}{1cm} diff --git a/20191212/pgscript.sty b/20191212/pgscript.sty new file mode 120000 index 0000000000000000000000000000000000000000..95c888478c99ea7fda0fd11ccf669ae91be7178b --- /dev/null +++ b/20191212/pgscript.sty @@ -0,0 +1 @@ +../common/pgscript.sty \ No newline at end of file diff --git a/20191212/pgslides.sty b/20191212/pgslides.sty deleted file mode 100644 index 9a019ce99f03d27a17942facc56fe2145f46b6a6..0000000000000000000000000000000000000000 --- a/20191212/pgslides.sty +++ /dev/null @@ -1,233 +0,0 @@ -% pgslides.sty - LaTeX Settings for Lecture Slides -% Copyright (C) 2012, 2013 Peter Gerwinski -% -% This document is free software: you can redistribute it and/or -% modify it either under the terms of the Creative Commons -% Attribution-ShareAlike 3.0 License, or under the terms of the -% GNU General Public License as published by the Free Software -% Foundation, either version 3 of the License, or (at your option) -% any later version. -% -% This document is distributed in the hope that it will be useful, -% but WITHOUT ANY WARRANTY; without even the implied warranty of -% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -% GNU General Public License for more details. -% -% You should have received a copy of the GNU General Public License -% along with this document. If not, see <http://www.gnu.org/licenses/>. -% -% You should have received a copy of the Creative Commons -% Attribution-ShareAlike 3.0 Unported License along with this -% document. If not, see <http://creativecommons.org/licenses/>. - -\usepackage{amsfonts} -\usepackage[british,german]{babel} % Yes, really "german" and not "ngerman". -\usepackage[utf8]{luainputenc} % Without this, umlauts are broken. Weird. -\usepackage{microtype} -\usepackage[T1]{fontenc} -\usepackage{times} -\usepackage{helvet} -\renewcommand*\familydefault{\sfdefault} -\usepackage{graphicx} -\usepackage{pstricks} - -\hypersetup{colorlinks,allcolors=blue} - -%% @@@ Not necessary for slides. Why??? -%% Repair kerning: Automatically insert "\kern{-0.15em}" between "//" % (in URLs). -%\directlua{ -% local glyph = node.id ("glyph") -% local function my_kerning (head) -% for t in node.traverse (head) do -% if t.id == glyph and t.char == 47 then -% if t.next -% and t.next.next -% and t.next.next.id == glyph -% and t.next.next.char == 47 then -% local k = node.new ("kern") -% k.kern = tex.sp ("-0.15em") -% k.next = t.next -% k.prev = t -% t.next.prev = k -% t.next = k -% end -% end -% end -% node.kerning (head) -% end -% luatexbase.add_to_callback ("kerning", my_kerning, "URL kerning") -%} - -\usetheme{default} -\usefonttheme{structurebold} -\setbeamertemplate{navigation symbols}{} -\setbeamersize{text margin left = 0.3cm, text margin right = 0.2cm} -\setbeamertemplate{itemize item}{$\bullet$} -\setbeamertemplate{itemize subitem}{--} -\setbeamerfont{itemize/enumerate subbody}{size=\normalsize} -\setbeamerfont{itemize/enumerate subsubbody}{size=\normalsize} -\setbeamercolor{footline}{fg=gray} - -\newcommand{\sep}{~$\cdot$~} - -\newif\ifminimalistic -\minimalistictrue - -\institute[Hochschule Bochum\sep CVH]{% - \makebox(0,0.005)[tl]{\includegraphics[scale=0.72]{logo-hochschule-bochum-cvh-text-v2.pdf}}\hfill - \makebox(0,0)[tr]{\includegraphics[scale=0.5]{logo-hochschule-bochum.pdf}}% -} - -\setbeamertemplate{headline}{% - \leavevmode - \hbox to \textwidth{% - \ifminimalistic - \strut\hfill - \else - \rule{0pt}{5.7pt}% - \hspace*{8.55pt}\insertinstitute\hspace*{5.7pt}% - \raisebox{-30pt}{\rule{0pt}{1pt}}% - \fi - }% - \vskip0pt% -} - -\iffalse - \setbeamertemplate{footline}{} -\else - \setbeamertemplate{footline}{% - \leavevmode - \hbox to \textwidth{% - \usebeamercolor{footline}% - \usebeamerfont{footline}% - \ifminimalistic - \strut\hfill - \else - \,\insertshorttitle\sep - \insertshortauthor\sep - \insertshortinstitute\sep - \insertshortdate\hfill - \fi - \insertframenumber/\inserttotalframenumber - %Folie\,\insertframenumber\sep Seite\,\insertpagenumber\, - }% - \vskip0pt% - } -\fi - -\newcommand{\maketitleframe}{% - \ifminimalistic - \begin{frame}[t,plain] - \insertinstitute - \par\vfill - \begin{center} - {\LARGE\color{structure}\inserttitle\par}\bigskip\bigskip - {\large \insertauthor\par}\bigskip\medskip - \insertdate - \end{center} - \end{frame} - \else - \begin{frame} - \vfill - \begin{center} - {\LARGE\color{structure}\inserttitle\par}\bigskip\bigskip - {\large \insertauthor\par}\bigskip\medskip - \insertdate - \end{center} - \vfill - \end{frame} - \fi -} - -\definecolor{medgreen}{rgb}{0.0,0.5,0.0} -\definecolor{darkgreen}{rgb}{0.0,0.3,0.0} -\definecolor{lightred}{rgb}{1.0,0.7,0.7} -\definecolor{medred}{rgb}{0.5,0.0,0.0} -\definecolor{bored}{rgb}{0.89,0.0,0.098} -\definecolor{lightgray}{rgb}{0.85,0.85,0.85} -\definecolor{orange}{rgb}{1.0,0.5,0.0} -\definecolor{darkgray}{rgb}{0.4,0.4,0.4} - -\newenvironment{experts}{\color{darkgray}}{} - -\usepackage{listings} -\lstset{basicstyle=\color{structure}, - language=C, - captionpos=b, - gobble=4, - columns=fullflexible, - aboveskip=0pt, - belowskip=0pt, - moredelim=**[is][\color{structure}]{¡}{¿}, - moredelim=**[is][\only<2->{\color{structure}}]{²}{¿}, - moredelim=**[is][\only<3->{\color{structure}}]{³}{¿}, - moredelim=**[is][\only<4->{\color{structure}}]{°}{¿}, - moredelim=**[is][\only<5->{\color{structure}}]{¤}{¿}, - moredelim=**[is][\only<6->{\color{structure}}]{¢}{¿}, - moredelim=**[is][\only<7->{\color{structure}}]{æ}{¿}, - moredelim=**[is][\only<8->{\color{structure}}]{ø}{¿}} -\lstdefinestyle{terminal}{basicstyle=\ttfamily\color{darkgreen}, - language={}, - columns=fixed, - moredelim=**[is][\color{red}]{¡}{¿}, - moredelim=**[is][\color{blendedblue}]{°}{¿}, - moredelim=**[is][\sffamily\it\lstset{columns=fullflexible}]{²}{¿}} -\lstdefinestyle{cmd}{basicstyle=\ttfamily\color{red}, - language={}, - gobble=2, - columns=fixed, - moredelim=**[is][\color{darkgreen}]{¡}{¿}, - moredelim=**[is][\color{structure}]{°}{¿}, - moredelim=**[is][\sffamily\it\lstset{columns=fullflexible}]{²}{¿}} -\lstdefinestyle{shy}{basicstyle=\color{lightgray}} - -\setcounter{topnumber}{3} -\renewcommand\topfraction{0.7} -\setcounter{bottomnumber}{3} -\renewcommand\bottomfraction{0.7} -\setcounter{totalnumber}{5} -\renewcommand\textfraction{0.1} -\renewcommand\floatpagefraction{0.9} - -\setlength{\unitlength}{1cm} - -\newcommand{\protectfile}[1]{#1} -\urlstyle{sf} -\newcommand{\file}[1]{{\color{structure}\protectfile{#1}}} -\newcommand{\textarrow}{{\boldmath $\longrightarrow$}} -\newcommand{\arrowitem}{\item[\textarrow]} -\newcommand{\newterm}[1]{\emph{\color{darkgreen}#1}} -\newcommand{\BIGskip}{\vspace{1cm}} -\newcommand{\shy}{\color{lightgray}} -\newcommand{\hot}{\color{red}} -\newcommand{\shyhot}{\color{lightred}} - -\newcommand{\sectionnonumber}[1]{\section{#1}\addtocounter{section}{-1}} - -\def\showsectionnonumber{\hbox{\Large\color{structure}\bf - \vtop{\secname}\par}\bigskip} - -\newcommand{\nosectionnonumber}[1]{\gdef\nosectionnonumbername{#1}} - -\def\shownosectionnonumber{\hbox{\Large\color{structure}\bf - \vtop{\nosectionnonumbername}\par}\bigskip} - -\def\showsection{\hbox{\Large\color{structure}\bf - \vtop{\hbox{\arabic{section}}}\kern1em% - \vtop{\secname}\par}\bigskip} - -\newcommand{\subsectionnonumber}[1]{\subsection{#1}\addtocounter{subsection}{-1}} - -\def\showsubsectionnonumber{{\large\color{structure}\bf\subsecname\par}\bigskip} - -\def\showsubsection{\hbox{\large\color{structure}\bf - \vtop{\hbox{\arabic{section}.\arabic{subsection}}}\kern1em% - \vtop{\subsecname}\par}\bigskip} - -\newcommand{\subsubsectionnonumber}[1]{\subsubsection{#1}\addtocounter{subsubsection}{-1}} - -\def\showsubsubsectionnonumber{{\normalsize\color{structure}\bf\subsubsecname\par}\bigskip} - -\def\showsubsubsection{\hbox{\normalsize\color{structure}\bf - \vtop{\hbox{\arabic{section}.\arabic{subsection}.\arabic{subsubsection}}}\kern1em% - \vtop{\subsubsecname}\par}\bigskip} diff --git a/20191212/pgslides.sty b/20191212/pgslides.sty new file mode 120000 index 0000000000000000000000000000000000000000..5be1416f4216f076aa268901f52a15d775e43f64 --- /dev/null +++ b/20191212/pgslides.sty @@ -0,0 +1 @@ +../common/pgslides.sty \ No newline at end of file diff --git a/20191219/aufgabe-1.c b/20191219/aufgabe-1.c new file mode 100644 index 0000000000000000000000000000000000000000..2afae773ac2d564771ab6dfb473eed664070d3e2 --- /dev/null +++ b/20191219/aufgabe-1.c @@ -0,0 +1,10 @@ +#include <stdio.h> +#include <stdint.h> + +int main (void) +{ + uint64_t x = 4262939000843297096; + char *s = &x; + printf ("%s\n", s); + return 0; +} diff --git a/20191219/hp-uebung-20191219.pdf b/20191219/hp-uebung-20191219.pdf new file mode 100644 index 0000000000000000000000000000000000000000..a48fb20d1f7ee23c36cca2df71e4366275067160 Binary files /dev/null and b/20191219/hp-uebung-20191219.pdf differ diff --git a/20191219/hp-uebung-20191219.tex b/20191219/hp-uebung-20191219.tex new file mode 100644 index 0000000000000000000000000000000000000000..f05c0fc5bea6dcc390d30db5c13660053e887075 --- /dev/null +++ b/20191219/hp-uebung-20191219.tex @@ -0,0 +1,202 @@ +% hp-uebung-20191219.pdf - Exercises on Low-Level Programming +% Copyright (C) 2013, 2015, 2016, 2017, 2018, 2019 Peter Gerwinski +% +% This document is free software: you can redistribute it and/or +% modify it either under the terms of the Creative Commons +% Attribution-ShareAlike 3.0 License, or under the terms of the +% GNU General Public License as published by the Free Software +% Foundation, either version 3 of the License, or (at your option) +% any later version. +% +% This document is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this document. If not, see <http://www.gnu.org/licenses/>. +% +% You should have received a copy of the Creative Commons +% Attribution-ShareAlike 3.0 Unported License along with this +% document. If not, see <http://creativecommons.org/licenses/>. + +% README: Trickprogrammierung, Thermometer-Baustein an I²C-Bus + +\documentclass[a4paper]{article} + +\usepackage{pgscript} +\usepackage{gensymb} + +\newcommand{\ItwoC}{I\raisebox{0.5ex}{\footnotesize 2}C} +\newcommand{\ITWOC}{I\raisebox{0.5ex}{\normalsize 2}C} + +\begin{document} + + \thispagestyle{empty} + + \section*{Hardwarenahe Programmierung\\ + Übungsaufgaben -- 19.\ Dezember 2019} + + Diese Übung enthält Punkteangaben wie in einer Klausur. + Um zu "`bestehen"', müssen Sie innerhalb von 60 Minuten + unter Verwendung ausschließlich zugelassener Hilfsmittel + 10 Punkte (von insgesamt \totalpoints) erreichen. + + \exercise{Trickprogrammierung} + + Wir betrachten das folgende Programm (Datei: \gitfile{hp}{20181210}{aufgabe-1.c}): + \begin{lstlisting} + #include <stdio.h> + #include <stdint.h> + + int main (void) + { + uint64_t x = 4262939000843297096; + char *s = &x; + printf ("%s\n", s); + return 0; + } + \end{lstlisting} + Das Programm wird compiliert und auf einem 64-Bit-Little-Endian-Computer ausgeführt: + \begin{lstlisting}[style=terminal] + $ ¡gcc -Wall -O aufgabe-1.c -o aufgabe-1¿ + aufgabe-1.c: In function `main': + aufgabe-1.c:7:13: warning: initialization from incompatible pointer type [...] + $ ¡./aufgabe-1¿ + Hallo + \end{lstlisting} + + \begin{itemize} + \item[(a)] + Erklären Sie die Warnung beim Compilieren. \points{2} + \item[(b)] + Erklären Sie die Ausgabe des Programms. \points{5} + \item[(c)] + Wie würde die Ausgabe des Programms auf einem 64-Bit-Big-Endian-Computer lauten? \points{3} + \end{itemize} + Hinweis: Modifizieren Sie das Programm + und lassen Sie sich Speicherinhalte ausgeben. + + \exercise{Thermometer-Baustein an \ITWOC-Bus} + + Eine Firma stellt einen elektronischen Thermometer-Baustein her, + den man über die serielle Schnittstelle (RS-232) an einen PC anschließen kann, + um die Temperatur auszulesen. + Nun wird eine Variante des Thermo"-meter-Bausteins entwickelt, + die die Temperatur zusätzlich über einen \ItwoC-Bus bereitstellt. + + Um das neue Thermometer zu testen, wird es in ein Gefäß mit heißem Wasser gelegt, + das langsam auf Zimmertemperatur abkühlt. + Alle 10 Minuten liest ein Programm, das auf dem PC läuft, + die gemessene Temperatur über beide Schnittstellen aus + und erzeugt daraus die folgende Tabelle: + + \begin{center} + \renewcommand{\arraystretch}{1.2} + \begin{tabular}{|c|c|c|}\hline + Zeit /\,min. & Temperatur per RS-232 /\,\degree C & Temperatur per \ItwoC\ /\,\degree C \\\hline\hline + \phantom{0}0 & 94 & 122 \\\hline + 10 & 47 & 244 \\\hline + 20 & 30 & 120 \\\hline + 30 & 24 & \phantom{0}24 \\\hline + 40 & 21 & 168 \\\hline + \end{tabular} + \end{center} + + \begin{itemize} + \item[(a)] + Aus dem Vergleich der Meßdaten läßt sich + auf einen Fehler bei der \ItwoC-Übertragung schließen.\\ + Um welchen Fehler handelt es sich, + und wie ergibt sich dies aus den Meßdaten? + \points{5} + \item[(b)] + Schreiben Sie eine C-Funktion \lstinline{uint8_t repair (uint8_t data)}, + die eine über den \ItwoC-Bus empfangene fehlerhafte Temperatur \lstinline{data} korrigiert. + \points{5} + \end{itemize} + +\iffalse + + \exercise{Lauflicht} + + \begin{minipage}[t]{8cm} + An die vier Ports eines ATmega16-Mikrocontrollers sind Leuchtdioden angeschlossen: + \begin{itemize} + \item + von links nach rechts\\ + an die Ports A, B, C und D, + \item + von oben nach unten\\ + an die Bits Nr.\ 0 bis 7. + + \bigskip + + \includegraphics[width=3cm]{leds.jpg} + \end{itemize} + \end{minipage}\hfill + \begin{minipage}[t]{7cm} + Wir betrachten das folgende C-Programm (Datei: \gitfile{hp}{20181210}{aufgabe-2.c}) + für diesen Mikrocontroller: + + \begin{lstlisting}[gobble=6] + #include <avr/io.h> + #include <avr/interrupt.h> + + int counter = 0; + + ISR (TIMER0_COMP_vect) + { + PORTA = 1 << ((counter++ >> 6) & 7); + } + + int main (void) + { + cli (); + TCCR0 = (1 << CS01) | (1 << CS00); + TIMSK = 1 << OCIE0; + sei (); + DDRA = 0xff; + while (1); + return 0; + } + \end{lstlisting} + \end{minipage} + + \medskip + + Das Programm bewirkt ein periodisches Lauflicht in der linken Spalte von oben nach unten. + Eine Animation davon finden Sie in der Datei \gitfile{hp}{20181210}{aufgabe-2.gif}. + + \begin{itemize} + \item[(a)] + Wieso bewirkt das Programm überhaupt etwas, wenn doch das Hauptprogramm + nach dem Initialisieren lediglich eine Endlosschleife ausführt, + in der \emph{nichts\/} passiert? \points 3 + \item[(b)] + Erklären Sie, wie die Anweisung + \begin{lstlisting}[gobble=8] + PORTA = 1 << ((counter++ >> 6) & 7); + \end{lstlisting} + \vspace{-\medskipamount} + das LED-Blinkmuster hervorruft. \points 6 + + Hinweis: Zerlegen Sie die eine lange Anweisung in mehrere kürzere.\\ + Wenn nötig, verwenden Sie zusätzliche Variable für Zwischenergebnisse. + \item[(c)] + Was bedeutet "`\lstinline{ISR (TIMER0_COMP_vect)}"'? \points 1 + \item[(d)] + Wieso leuchten die Leuchtdioden PB2 und PD1? \points 2 + \end{itemize} + +\fi + + \begin{flushright} + \textit{Viel Erfolg!} + \end{flushright} + + \makeatletter + \immediate\write\@mainaux{\string\gdef\string\totalpoints{\arabic{points}}} + \makeatother + +\end{document} diff --git a/20191219/pgslides.sty b/20191219/pgslides.sty new file mode 120000 index 0000000000000000000000000000000000000000..5be1416f4216f076aa268901f52a15d775e43f64 --- /dev/null +++ b/20191219/pgslides.sty @@ -0,0 +1 @@ +../common/pgslides.sty \ No newline at end of file diff --git a/README.md b/README.md index deaf53c5bb5d48ce184d60e08a1dd10fb66dde75..10ea859e0293f92c7bb0c52d394eb76da53530af 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,8 @@ Vortragsfolien und Beispiele: * [21.11.2019: Interrupts, volatile-Variable, Bibliotheken: Einführung](https://gitlab.cvh-server.de/pgerwinski/hp/raw/master/20191121/hp-20191121.pdf) [**(Beispiele)**](https://gitlab.cvh-server.de/pgerwinski/hp/tree/master/20191121/) * [28.11.2019: Präprozessor, Bibliotheken](https://gitlab.cvh-server.de/pgerwinski/hp/raw/master/20191128/hp-20191128.pdf) [**(Beispiele)**](https://gitlab.cvh-server.de/pgerwinski/hp/tree/master/20191128/) * [05.12.2019: Bibliotheken, Differentialgleichungen](https://gitlab.cvh-server.de/pgerwinski/hp/raw/master/20191205/hp-20191205.pdf) [**(Beispiele)**](https://gitlab.cvh-server.de/pgerwinski/hp/tree/master/20191205/) - * [12.12.2019: make, Byte-Reihenfolge - Endianness, Binärdarstellung negativer Zahlen, Speicherausrichtung - Alignment](https://gitlab.cvh-server.de/pgerwinski/hp/raw/master/20191212/hp-20191212.pdf) [**(Beispiele)**](https://gitlab.cvh-server.de/pgerwinski/hp/tree/master/20191212/) + * [12.12.2019: make, Byte-Reihenfolge - Endianness](https://gitlab.cvh-server.de/pgerwinski/hp/raw/master/20191212/hp-20191212.pdf) [**(Beispiele)**](https://gitlab.cvh-server.de/pgerwinski/hp/tree/master/20191212/) + * [19.12.2019: Binärdarstellung negativer Zahlen, Speicherausrichtung - Alignment](https://gitlab.cvh-server.de/pgerwinski/hp/raw/master/20191219/hp-20191219.pdf) [**(Beispiele)**](https://gitlab.cvh-server.de/pgerwinski/hp/tree/master/20191219/) * [alle in 1 Datei](https://gitlab.cvh-server.de/pgerwinski/hp/raw/master/hp-slides-2019ws.pdf) Übungsaufgaben: @@ -41,6 +42,7 @@ Vortragsfolien und Beispiele: * [28.11.2019: Datum-Bibliothek, Text-Grafik-Bibliothek, LED-Blinkmuster](https://gitlab.cvh-server.de/pgerwinski/hp/raw/master/20191128/hp-uebung-20191128.pdf) * [05.12.2019: Löschen aus Strings, Hexdumps](https://gitlab.cvh-server.de/pgerwinski/hp/raw/master/20191205/hp-uebung-20191205.pdf) * [12.12.2019: Kondensator, hüpfender Ball](https://gitlab.cvh-server.de/pgerwinski/hp/raw/master/20191212/hp-uebung-20191212.pdf) + * [19.12.2019: Trickprogrammierung, Thermometer-Baustein an I²C-Bus](https://gitlab.cvh-server.de/pgerwinski/hp/raw/master/20191219/hp-uebung-20191219.pdf) Musterlösungen: ---------------