diff --git a/20181203/blink-0.c b/20181203/blink-0.c
new file mode 100644
index 0000000000000000000000000000000000000000..b0022c681fd1482ed0a6d9fded7bb0a54699de32
--- /dev/null
+++ b/20181203/blink-0.c
@@ -0,0 +1,9 @@
+#include <avr/io.h>
+
+int main (void)
+{
+  DDRD = 0x40;   /* binär: 0100 0000 */
+  PORTD = 0x40;  /* binär: 0100 0000 */
+  while (1);
+  return 0;
+}
diff --git a/20181203/blink-0a.c b/20181203/blink-0a.c
new file mode 100644
index 0000000000000000000000000000000000000000..38bc8ab94ce639f21b66d570759414586a1a1b1e
--- /dev/null
+++ b/20181203/blink-0a.c
@@ -0,0 +1,9 @@
+#include <avr/io.h>
+
+int main (void)
+{
+  DDRD = 0x7f;   /* binär: 0111 1111 */
+  PORTD = 0x40;  /* binär: 0100 0000 */
+  while (1);
+  return 0;
+}
diff --git a/20181203/blink-1.c b/20181203/blink-1.c
new file mode 100644
index 0000000000000000000000000000000000000000..6d28dce84f94375094c98479c30a54ace1b2a9d9
--- /dev/null
+++ b/20181203/blink-1.c
@@ -0,0 +1,18 @@
+#include <avr/io.h>
+
+#define F_CPU 16000000l
+#include <util/delay.h>
+
+int main (void)
+{
+  DDRD = 0x01;
+  PORTD |= 0x01;
+  while (1)
+    {
+      _delay_ms (500);
+      PORTD &= ~0x01;
+      _delay_ms (500);
+      PORTD |= 0x01;
+    }
+  return 0;
+}
diff --git a/20181203/blink-10.c b/20181203/blink-10.c
new file mode 100644
index 0000000000000000000000000000000000000000..1519fd02c731aa0429119d4d142a8c0c9effed98
--- /dev/null
+++ b/20181203/blink-10.c
@@ -0,0 +1,31 @@
+#include <avr/io.h>
+#include <avr/interrupt.h>
+#include <stdint.h>
+
+#define F_CPU 16000000l
+#include <util/delay.h>
+
+volatile uint8_t key_pressed = 0;
+
+ISR (INT0_vect)  /* PD2 */
+{
+  key_pressed = 1;
+}
+
+int main (void)
+{
+  cli ();
+  EICRA = 1 << ISC00 | 1 << ISC01;  /* INT0: steigende Flanke */
+  EIMSK = 1 << INT0;  /* INT0 einschalten */
+  sei ();
+  DDRD = 0xfb;   /* binär: 1111 1011 */
+  PORTD = 0x40;  /* binär: 0100 0000 */
+  while (1)
+    {
+      while (!key_pressed)
+        ;  /* just wait */
+      PORTD ^= 0x40;
+      key_pressed = 0;
+    }
+  return 0;
+}
diff --git a/20181203/blink-11.c b/20181203/blink-11.c
new file mode 100644
index 0000000000000000000000000000000000000000..696b2ed2a5bf07fe08177c3640ecb2db652269d5
--- /dev/null
+++ b/20181203/blink-11.c
@@ -0,0 +1,32 @@
+#include <avr/io.h>
+#include <avr/interrupt.h>
+#include <stdint.h>
+
+#define F_CPU 16000000l
+#include <util/delay.h>
+
+volatile uint8_t key_pressed = 0;
+
+ISR (INT0_vect)  /* PD2 */
+{
+  key_pressed = 1;
+}
+
+int main (void)
+{
+  cli ();
+  EICRA = 1 << ISC00 | 1 << ISC01;  /* INT0: steigende Flanke */
+  EIMSK = 1 << INT0;  /* INT0 einschalten */
+  sei ();
+  DDRD = 0xfb;   /* binär: 1111 1011 */
+  PORTD = 0x40;  /* binär: 0100 0000 */
+  while (1)
+    {
+      while (!key_pressed)
+        ;  /* just wait */
+      _delay_ms (1);
+      PORTD ^= 0x40;
+      key_pressed = 0;
+    }
+  return 0;
+}
diff --git a/20181203/blink-2.c b/20181203/blink-2.c
new file mode 100644
index 0000000000000000000000000000000000000000..b00eaf522563b1e8fa75f80e784de5b9f1af58e9
--- /dev/null
+++ b/20181203/blink-2.c
@@ -0,0 +1,16 @@
+#include <avr/io.h>
+
+#define F_CPU 16000000l
+#include <util/delay.h>
+
+int main (void)
+{
+  DDRD = 0x02;
+  PORTD = 0x02;
+  while (1)
+    {
+      _delay_ms (250);
+      PORTD ^= 0x02;
+    }
+  return 0;
+}
diff --git a/20181203/blink-3.c b/20181203/blink-3.c
new file mode 100644
index 0000000000000000000000000000000000000000..5268e7977f0f2a99b2005a81a2fa7560dfea481f
--- /dev/null
+++ b/20181203/blink-3.c
@@ -0,0 +1,17 @@
+#include <avr/io.h>
+
+#define F_CPU 16000000
+#include <util/delay.h>
+
+int main (void)
+{
+  DDRD = 0x01;
+  PORTD = 0x01;
+  while (1)
+    {
+      while ((PIND & 0x02) == 0)
+        ; /* just wait */
+      PORTD ^= 0x01;
+    }
+  return 0;
+}
diff --git a/20181203/blink-3a.c b/20181203/blink-3a.c
new file mode 100644
index 0000000000000000000000000000000000000000..c7d9c9994e886973cab41cdfcd08c39fb978c492
--- /dev/null
+++ b/20181203/blink-3a.c
@@ -0,0 +1,18 @@
+#include <avr/io.h>
+
+#define F_CPU 16000000
+#include <util/delay.h>
+
+int main (void)
+{
+  DDRD = 0x11;
+  PORTD = 0x11;
+  while (1)
+    {
+      while ((PIND & 0x02) == 0)
+        ; /* just wait */
+      _delay_ms (100);
+      PORTD ^= 0x01;
+    }
+  return 0;
+}
diff --git a/20181203/blink-4.c b/20181203/blink-4.c
new file mode 100644
index 0000000000000000000000000000000000000000..7344aa7ce19086d6e0a0dc4f8de78499f280931b
--- /dev/null
+++ b/20181203/blink-4.c
@@ -0,0 +1,18 @@
+#include <avr/io.h>
+
+#define F_CPU 16000000
+#include <util/delay.h>
+
+int main (void)
+{
+  DDRD = 0x01;
+  PORTD = 0x01;
+  while (1)
+    {
+      while ((PIND & 0x02) == 0)
+        ; /* just wait */
+      PORTD ^= 0x01;
+      _delay_ms (200);
+    }
+  return 0;
+}
diff --git a/20181203/blink-4a.c b/20181203/blink-4a.c
new file mode 100644
index 0000000000000000000000000000000000000000..f17e333034cce9d3dea78c3b9deb6d8832777212
--- /dev/null
+++ b/20181203/blink-4a.c
@@ -0,0 +1,18 @@
+#include <avr/io.h>
+
+#define F_CPU 16000000
+#include <util/delay.h>
+
+int main (void)
+{
+  DDRD = 0x01;   /* 00000001 */
+  PORTD = 0x03;  /* 00000011 */
+  while (1)
+    {
+      while ((PIND & 0x02) == 0)
+        ; /* just wait */
+      PORTD ^= 0x01;
+      _delay_ms (200);
+    }
+  return 0;
+}
diff --git a/20181203/blink-4b.c b/20181203/blink-4b.c
new file mode 100644
index 0000000000000000000000000000000000000000..afa99e919b37cf9824f671293313935bf77148f4
--- /dev/null
+++ b/20181203/blink-4b.c
@@ -0,0 +1,13 @@
+#include <avr/io.h>
+
+#define F_CPU 16000000
+#include <util/delay.h>
+
+int main (void)
+{
+  DDRD = 0x01;   /* 00000001 */
+  PORTD = 0x03;  /* 00000011 */
+  while (1)
+    ;  /* just wait */
+  return 0;
+}
diff --git a/20181203/blink-4c.c b/20181203/blink-4c.c
new file mode 100644
index 0000000000000000000000000000000000000000..a88c76b78c9c73a904dacfff9b60988785bc7653
--- /dev/null
+++ b/20181203/blink-4c.c
@@ -0,0 +1,16 @@
+#include <avr/io.h>
+
+#define F_CPU 16000000
+#include <util/delay.h>
+
+int main (void)
+{
+  DDRD = 0x01;   /* 00000001 */
+  PORTD = 0x03;  /* 00000011 */
+  while (1)
+    {
+      _delay_ms (500);
+      PORTD ^= 0x02;
+    }
+  return 0;
+}
diff --git a/20181203/blink-5.c b/20181203/blink-5.c
new file mode 100644
index 0000000000000000000000000000000000000000..bb755f0de02d3e224909f1d2a37789f3c14a0f03
--- /dev/null
+++ b/20181203/blink-5.c
@@ -0,0 +1,19 @@
+#include <avr/io.h>
+#include <avr/interrupt.h>
+
+ISR (TIMER0_COMPB_vect)
+{
+  PORTD ^= 0x40;
+}
+
+int main (void)
+{
+  cli ();
+  TCCR0B = (1 << CS01) | (1 << CS00);  /* Takt durch 64 dividieren */
+  TIMSK0 = 1 << OCIE0B;  /* Interrupt einschalten */
+  sei ();
+  DDRD = 0xfd;   /* binär: 1111 1101 */
+  PORTD = 0x40;  /* binär: 0100 0000 */
+  while (1);
+  return 0;
+}
diff --git a/20181203/blink-5a.c b/20181203/blink-5a.c
new file mode 100644
index 0000000000000000000000000000000000000000..9f26365fdb65006892febe54b329612af7f9263d
--- /dev/null
+++ b/20181203/blink-5a.c
@@ -0,0 +1,15 @@
+#include <avr/io.h>
+#include <avr/interrupt.h>
+
+ISR (TIMER0_COMPB_vect)
+{
+  PORTD ^= 0x40;
+}
+
+int main (void)
+{
+  DDRD = 0xfd;   /* binär: 1111 1101 */
+  PORTD = 0x40;  /* binär: 0100 0000 */
+  while (1);
+  return 0;
+}
diff --git a/20181203/blink-5b.c b/20181203/blink-5b.c
new file mode 100644
index 0000000000000000000000000000000000000000..b3835f9bc88dbc0fd9c2f4921356f974e88aeef8
--- /dev/null
+++ b/20181203/blink-5b.c
@@ -0,0 +1,15 @@
+#include <avr/io.h>
+#include <avr/interrupt.h>
+
+ISR (TIMER0_COMPB_vect)
+{
+  PORTD ^= 0x40;
+}
+
+int main (void)
+{
+  DDRD = 0xfd;   /* binär: 1111 1101 */
+  PORTD = 0x00;  /* binär: 0000 0000 */
+  while (1);
+  return 0;
+}
diff --git a/20181203/blink-6.c b/20181203/blink-6.c
new file mode 100644
index 0000000000000000000000000000000000000000..651ab6e4ac926242337a0520c11f2bbd935bdd22
--- /dev/null
+++ b/20181203/blink-6.c
@@ -0,0 +1,22 @@
+#include <avr/io.h>
+#include <avr/interrupt.h>
+#include <stdint.h>
+
+ISR (TIMER0_COMPB_vect)
+{
+  static uint8_t counter = 0;
+  if (counter++ == 0)
+    PORTD ^= 0x40;
+}
+
+int main (void)
+{
+  cli ();
+  TCCR0B = (1 << CS01) | (1 << CS00);  /* Takt durch 64 dividieren */
+  TIMSK0 = 1 << OCIE0B;  /* Interrupt einschalten */
+  sei ();
+  DDRD = 0xfd;   /* binär: 1111 1101 */
+  PORTD = 0x40;  /* binär: 0100 0000 */
+  while (1);
+  return 0;
+}
diff --git a/20181203/blink-6a.c b/20181203/blink-6a.c
new file mode 100644
index 0000000000000000000000000000000000000000..7f62899349ccddad1777a7c933f1199332e7bab7
--- /dev/null
+++ b/20181203/blink-6a.c
@@ -0,0 +1,23 @@
+#include <avr/io.h>
+#include <avr/interrupt.h>
+#include <stdint.h>
+
+ISR (TIMER0_COMPB_vect)
+{
+  static uint8_t counter = 0;
+  if (counter++ == 0)
+    PORTD ^= 0x40;
+}
+
+int main (void)
+{
+  cli ();
+  TCCR0B = (1 << CS01) | (1 << CS00);  /* Takt durch 64 dividieren */
+  TIMSK0 = 1 << OCIE0B;  /* Interrupt einschalten */
+  sei ();
+  DDRD = 0xfd;   /* binär: 1111 1101 */
+  PORTD = 0x40;  /* binär: 0100 0000 */
+  cli ();
+  while (1);
+  return 0;
+}
diff --git a/20181203/blink-7.c b/20181203/blink-7.c
new file mode 100644
index 0000000000000000000000000000000000000000..7ed39822752f61b636f001b77eb3742a57e953a9
--- /dev/null
+++ b/20181203/blink-7.c
@@ -0,0 +1,20 @@
+#include <avr/io.h>
+#include <avr/interrupt.h>
+#include <stdint.h>
+
+ISR (INT0_vect)  /* PD2 */
+{
+  PORTD ^= 0x40;
+}
+
+int main (void)
+{
+  cli ();
+  EICRA = 1 << ISC00 | 1 << ISC01;  /* INT0: steigende Flanke */
+  EIMSK = 1 << INT0;  /* INT0 einschalten */
+  sei ();
+  DDRD = 0xfb;   /* binär: 1111 1011 */
+  PORTD = 0x40;  /* binär: 0100 0000 */
+  while (1);
+  return 0;
+}
diff --git a/20181203/blink-8.c b/20181203/blink-8.c
new file mode 100644
index 0000000000000000000000000000000000000000..aba94f07176a75656619d1ba09e83093cbc66c89
--- /dev/null
+++ b/20181203/blink-8.c
@@ -0,0 +1,20 @@
+#include <avr/io.h>
+#include <avr/interrupt.h>
+#include <stdint.h>
+
+ISR (INT0_vect)  /* PD2 */
+{
+  PORTD ^= 0x40;
+}
+
+int main (void)
+{
+  cli ();
+  EICRA = 1 << ISC00 | 1 << ISC01;  /* INT0: steigende Flanke */
+  EIMSK = 1 << INT0;  /* INT0 einschalten */
+  sei ();
+  DDRD = 0xff;   /* binär: 1111 1111 */
+  PORTD = 0x40;  /* binär: 0100 0000 */
+  while (1);
+  return 0;
+}
diff --git a/20181203/blink-9.c b/20181203/blink-9.c
new file mode 100644
index 0000000000000000000000000000000000000000..0935978651f8a19197904a6f75f73e40a9be825b
--- /dev/null
+++ b/20181203/blink-9.c
@@ -0,0 +1,31 @@
+#include <avr/io.h>
+#include <avr/interrupt.h>
+#include <stdint.h>
+
+#define F_CPU 16000000l
+#include <util/delay.h>
+
+uint8_t key_pressed = 0;
+
+ISR (INT0_vect)  /* PD2 */
+{
+  key_pressed = 1;
+}
+
+int main (void)
+{
+  cli ();
+  EICRA = 1 << ISC00 | 1 << ISC01;  /* INT0: steigende Flanke */
+  EIMSK = 1 << INT0;  /* INT0 einschalten */
+  sei ();
+  DDRD = 0xfb;   /* binär: 1111 1011 */
+  PORTD = 0x40;  /* binär: 0100 0000 */
+  while (1)
+    {
+      while (!key_pressed)
+        ;  /* just wait */
+      PORTD ^= 0x40;
+      key_pressed = 0;
+    }
+  return 0;
+}
diff --git a/20181203/photo-20181203-173451.jpg b/20181203/photo-20181203-173451.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..fff9b4914ee6fb0f7948fcfe0b94e7bfd41370c7
Binary files /dev/null and b/20181203/photo-20181203-173451.jpg differ
diff --git a/20181203/photo-20181203-173451.txt b/20181203/photo-20181203-173451.txt
new file mode 100644
index 0000000000000000000000000000000000000000..a9ab2ac1a9e7a8d08cae9aacb8c76fd24f63cea8
--- /dev/null
+++ b/20181203/photo-20181203-173451.txt
@@ -0,0 +1 @@
+README: Pull-Down- und Pull-Up-Widerstand