<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.carluccio.de/index.php?action=history&amp;feed=atom&amp;title=Nixie_Clock</id>
	<title>Nixie Clock - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.carluccio.de/index.php?action=history&amp;feed=atom&amp;title=Nixie_Clock"/>
	<link rel="alternate" type="text/html" href="https://wiki.carluccio.de/index.php?title=Nixie_Clock&amp;action=history"/>
	<updated>2026-04-03T23:10:20Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Dario&#039;s Home</subtitle>
	<generator>MediaWiki 1.31.1</generator>
	<entry>
		<id>https://wiki.carluccio.de/index.php?title=Nixie_Clock&amp;diff=169&amp;oldid=prev</id>
		<title>Dario am 7. Mai 2008 um 19:17 Uhr</title>
		<link rel="alternate" type="text/html" href="https://wiki.carluccio.de/index.php?title=Nixie_Clock&amp;diff=169&amp;oldid=prev"/>
		<updated>2008-05-07T19:17:50Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;de&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Version vom 7. Mai 2008, 19:17 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Zeile 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Kategorie:Projekte]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Kategorie:Projekte]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Kategorie:AVR]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;Projektdatum: 2004&amp;#039;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;Projektdatum: 2004&amp;#039;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Bild:nixie-uhr.jpg|thumb|250px|Nixie Uhr ohne Gehäuse]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Bild:nixie-uhr.jpg|thumb|250px|Nixie Uhr ohne Gehäuse]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Dario</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.carluccio.de/index.php?title=Nixie_Clock&amp;diff=161&amp;oldid=prev</id>
		<title>Dario am 7. Mai 2008 um 19:15 Uhr</title>
		<link rel="alternate" type="text/html" href="https://wiki.carluccio.de/index.php?title=Nixie_Clock&amp;diff=161&amp;oldid=prev"/>
		<updated>2008-05-07T19:15:34Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;de&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Version vom 7. Mai 2008, 19:15 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Zeile 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Kategorie:Projekte]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;Projektdatum: 2004&amp;#039;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;Projektdatum: 2004&amp;#039;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Bild:nixie-uhr.jpg|thumb|250px|Nixie Uhr ohne Gehäuse]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Bild:nixie-uhr.jpg|thumb|250px|Nixie Uhr ohne Gehäuse]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Dario</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.carluccio.de/index.php?title=Nixie_Clock&amp;diff=130&amp;oldid=prev</id>
		<title>Dario am 6. Mai 2008 um 12:59 Uhr</title>
		<link rel="alternate" type="text/html" href="https://wiki.carluccio.de/index.php?title=Nixie_Clock&amp;diff=130&amp;oldid=prev"/>
		<updated>2008-05-06T12:59:58Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;de&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Version vom 6. Mai 2008, 12:59 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Zeile 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;Projektdatum: 2004&amp;#039;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;Projektdatum: 2004&amp;#039;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Bild:nixie-uhr.jpg|thumb|250px|Nixie Uhr ohne Gehäuse]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Bild:nixie-schaltplan.jpg|thumb|250px|Schaltplan der Nixie Uhr]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Bild:nixie-modell.jpg|thumb|250px|Gehäusestudie]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Schon lange wusste ich, dass die C Programmiersprache der Wahl bei&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Schon lange wusste ich, dass die C Programmiersprache der Wahl bei&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Dario</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.carluccio.de/index.php?title=Nixie_Clock&amp;diff=108&amp;oldid=prev</id>
		<title>Dario am 5. Mai 2008 um 22:48 Uhr</title>
		<link rel="alternate" type="text/html" href="https://wiki.carluccio.de/index.php?title=Nixie_Clock&amp;diff=108&amp;oldid=prev"/>
		<updated>2008-05-05T22:48:36Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;de&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Version vom 5. Mai 2008, 22:48 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Zeile 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;#039;&amp;#039;Projektdatum: 2004&amp;#039;&amp;#039;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Schon lange wusste ich, dass die C Programmiersprache der Wahl bei&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Schon lange wusste ich, dass die C Programmiersprache der Wahl bei&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Mikrocontrollern ist, bisher habe ich mich erfolgreich gegen C wehren können,&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Mikrocontrollern ist, bisher habe ich mich erfolgreich gegen C wehren können,&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Dario</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.carluccio.de/index.php?title=Nixie_Clock&amp;diff=6&amp;oldid=prev</id>
		<title>Dario: Die Seite wurde neu angelegt: Schon lange wusste ich, dass die C Programmiersprache der Wahl bei Mikrocontrollern ist, bisher habe ich mich erfolgreich gegen C wehren können, aber nun fand ich es a...</title>
		<link rel="alternate" type="text/html" href="https://wiki.carluccio.de/index.php?title=Nixie_Clock&amp;diff=6&amp;oldid=prev"/>
		<updated>2008-05-04T06:20:58Z</updated>

		<summary type="html">&lt;p&gt;Die Seite wurde neu angelegt: Schon lange wusste ich, dass die C Programmiersprache der Wahl bei Mikrocontrollern ist, bisher habe ich mich erfolgreich gegen C wehren können, aber nun fand ich es a...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Schon lange wusste ich, dass die C Programmiersprache der Wahl bei&lt;br /&gt;
Mikrocontrollern ist, bisher habe ich mich erfolgreich gegen C wehren können,&lt;br /&gt;
aber nun fand ich es an der Zeit auch einmal C zu lernen.&lt;br /&gt;
&lt;br /&gt;
Im IEEE-Spectrum habe ich einen Artikel über die alten Nixieröhren gelesen und&lt;br /&gt;
über Freaks, die aus diesen alten Röhren eine Uhr gebaut haben. &amp;quot;Das ist doch&lt;br /&gt;
auch was für mich&amp;quot;, dachte ich und daher habe ich beschlossen eine Nixie Uhr&lt;br /&gt;
mit DCF-Empfänger und einem Atmel Controller zu bauen und in C zu programmieren.&lt;br /&gt;
&lt;br /&gt;
Die Hochspannung für die Nixies wollte ich nicht mit einem zweiten Transformator&lt;br /&gt;
(zu gross) und erst recht nicht ohne galvanische Trennung (zu gefährlich)&lt;br /&gt;
erzeugen. Da der MC&amp;amp;nbsp;34063&amp;amp;nbsp;A von Reichelt nicht geliefert werden&lt;br /&gt;
konnte, habe ich Ihn aus einem Adapter ausgebaut, der eigentlich gedacht war&lt;br /&gt;
um meinen Palm im Auto zu laden.&lt;br /&gt;
&lt;br /&gt;
Die Schaltung ist unterteilt in die Anzeigeplatine mit 6&amp;amp;nbsp;Nixie Röhren&lt;br /&gt;
ZM-1210 einem DC/DC-Wandler, dem Decoder für Nixies (74141), der&lt;br /&gt;
Spannungsregler für 5V, sowie der Anodentreiber zum Multiplexen der einzelnen&lt;br /&gt;
Röhren. Diese Platine ist 3cm breit und 28cm lang (zusammengesetzt auf zwei&lt;br /&gt;
14cm Stücken Lochrasterplatine. Die Leitungen sind größtenteils gefädelt und&lt;br /&gt;
als Röhrensockel dienen 14-polige IC-Sockel.&lt;br /&gt;
&lt;br /&gt;
Leider paßte der Atmel nicht mehr mit auf die Platine, sodass ich eine zweite&lt;br /&gt;
Platine machen musste, wo dann der Atmel drauf ist.&lt;br /&gt;
&lt;br /&gt;
Die Frage des Gehäuses ist auch noch nicht geklärt. Da eine solche Uhr&lt;br /&gt;
Technologien eines Zeitraumes von einem halben Jahrhundert vereinigt, suche ich&lt;br /&gt;
nach einem möglichst edlen Gehäuse, das die Uhr dann auch ins rechte Licht&lt;br /&gt;
setzt. Die Abmaße habe ich schon in Form eines Papiermodells nachgebaut, aus&lt;br /&gt;
welchem Material das Gehäuse dann mal werden soll, weiss ich aber noch nicht.&lt;br /&gt;
Ich schwanke zwischen Holz und Stein, habe aber bei letzterem keine Ahnung wer&lt;br /&gt;
mir sowas preiswert anfertigen könnte. Hat jemand eine Idee?&lt;br /&gt;
&lt;br /&gt;
Programmiert ist das ganze in AVR-GCC. Leider habe ich jetzt festgestellt,&lt;br /&gt;
dass es extrem viele Bitfehler beim Empfangs gibt, insbesondere wenn die Uhr&lt;br /&gt;
in der Nähe von Monitoren steht. Es kommt so oft vor, dass die Bits so kippen,&lt;br /&gt;
dass die Parity-Bits wieder stimmen und eine völlig Falsche Uhrzeit dekodiert&lt;br /&gt;
wird.&lt;br /&gt;
&lt;br /&gt;
Also müsste die Decodier-Routine noch verfeinert werden indem mehrere&lt;br /&gt;
aufeinanderfolgende Zeiten verglichen werden und nur bei drei&lt;br /&gt;
aufeinanderfolgenden Zeiten im Abstand von je einer Minute der Wert in die&lt;br /&gt;
interne Uhr übernommen wird. Kann das jemand für mich einbauen?&lt;br /&gt;
Ferner schwingt der Quarz so ungenau, dass ich ohne DCF-Empfang eine Abweichung&lt;br /&gt;
von mehreren Minuten pro Tag habe, eventuell hat auch hier jamand einen&lt;br /&gt;
Vorschlag.&lt;br /&gt;
&lt;br /&gt;
Hier also der Quelltext meines ersten C-Programmes eventuell baut ja jemand&lt;br /&gt;
noch die oben genannten Korrekturen ein:&lt;br /&gt;
&lt;br /&gt;
 /********************************************************************&lt;br /&gt;
  *  Title:    Nixie DCF-Clock&lt;br /&gt;
  *  Author:   Dario Carluccio&lt;br /&gt;
  *  Date:     03/2004&lt;br /&gt;
  *  Purpose:  Receives and decodes the DCF-Signal.&lt;br /&gt;
  *            Build in internal Interrupt controlled Software Clock&lt;br /&gt;
  *            Shows Time multiplexed on 6 Nixie Tubes&lt;br /&gt;
  *  Software: AVR-GCC to compile&lt;br /&gt;
  *  Hardware: ATS90S2313&lt;br /&gt;
  *            DCF-Receiver (Not inverted) at INT0&lt;br /&gt;
  *            6 Nixies connected to:&lt;br /&gt;
  *              PB 0-5: Multiplxed Anodes driven by MPS 92/42&lt;br /&gt;
  *               PD 3-6: Kathodes driven by BCD-Decoder 74141&lt;br /&gt;
  *            High Voltage for Nixies generated with&lt;br /&gt;
  *              DC/DC Converter MC-34063&lt;br /&gt;
  *            You might find more AVR related stuff at my homepage:&lt;br /&gt;
  *                http://www.carluccio.de&lt;br /&gt;
  ********************************************************************/&lt;br /&gt;
 &lt;br /&gt;
 #include &amp;amp;lt;inttypes.h&amp;amp;gt;&lt;br /&gt;
 #include &amp;amp;lt;avr/io.h&amp;amp;gt;&lt;br /&gt;
 #include &amp;amp;lt;avr/interrupt.h&amp;amp;gt;&lt;br /&gt;
 #include &amp;amp;lt;avr/signal.h&amp;amp;gt;&lt;br /&gt;
 #include &amp;amp;lt;avr/pgmspace.h&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 /********************************************************************&lt;br /&gt;
  * Prototypes&lt;br /&gt;
  ********************************************************************/&lt;br /&gt;
 int main (void);&lt;br /&gt;
 void DCFBitReceived(uint8_t);&lt;br /&gt;
 void InitChip (void);&lt;br /&gt;
 void InternalClock(void);&lt;br /&gt;
 uint8_t GetDCFBitValue(uint8_t);&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 /********************************************************************&lt;br /&gt;
  * SET  OC1, OCR, DDROC according to Target&lt;br /&gt;
  ********************************************************************/&lt;br /&gt;
 #if defined(__AVR_AT90S2313__)&lt;br /&gt;
 #  define OC1 PB3&lt;br /&gt;
 #  define OCR OCR1&lt;br /&gt;
 #  define DDROC DDRB&lt;br /&gt;
 #elif defined(__AVR_AT90S2333__) || defined(__AVR_AT90S4433__)&lt;br /&gt;
 #  define OC1 PB1&lt;br /&gt;
 #  define DDROC DDRB&lt;br /&gt;
 #  define OCR OCR1&lt;br /&gt;
 #elif defined(__AVR_AT90S4414__) || defined(__AVR_AT90S8515__) || \&lt;br /&gt;
       defined(__AVR_AT90S4434__) || defined(__AVR_AT90S8535__) || \&lt;br /&gt;
       defined(__AVR_ATmega163__)&lt;br /&gt;
 #  define OC1 PD5&lt;br /&gt;
 #  define DDROC DDRD&lt;br /&gt;
 #  define OCR OCR1A&lt;br /&gt;
 #else&lt;br /&gt;
 #  error &amp;quot;Don&amp;#039;t know what kind of MCU you are compiling for&amp;quot;&lt;br /&gt;
 #endif&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 /********************************************************************&lt;br /&gt;
  * SET  XCOM11 according to Target&lt;br /&gt;
  ********************************************************************/&lt;br /&gt;
 #if defined(COM11)&lt;br /&gt;
 #  define XCOM11 COM11&lt;br /&gt;
 #elif defined(COM1A1)&lt;br /&gt;
 #  define XCOM11 COM1A1&lt;br /&gt;
 #else&lt;br /&gt;
 #  error &amp;quot;need either COM1A1 or COM11&amp;quot;&lt;br /&gt;
 #endif&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 /********************************************************************&lt;br /&gt;
  * Defines&lt;br /&gt;
  ********************************************************************/&lt;br /&gt;
 #define CRYSTAL_FREQ 9216000        // Crystal Frequency e.g. 9,216 Mhz&lt;br /&gt;
 #define UART_BAUD_RATE 9600         // Baud Rate e.g. 9600&lt;br /&gt;
 &lt;br /&gt;
 #define DCFLowMin   7               // min. duration Low:      80ms&lt;br /&gt;
 #define DCFLowMax   11              // max. duration Low:     100ms&lt;br /&gt;
 #define DCFHighMin  17              // min. duration High:    180ms&lt;br /&gt;
 #define DCFHighMax  21              // max. duration High:    200ms&lt;br /&gt;
 #define DCF59Min    170             // sec.59 min. dur. LOW: 1700ms&lt;br /&gt;
 #define DCF59Max    200             // sec.59 max. dur. LOW: 2000ms&lt;br /&gt;
 &lt;br /&gt;
 #define DCFYear     aDCFTime[5]     // DCF clock year&lt;br /&gt;
 #define DCFMonth    aDCFTime[4]     // DCF clock month&lt;br /&gt;
 #define DCFDay      aDCFTime[3]     // DCF clock day&lt;br /&gt;
 #define DCFHour     aDCFTime[2]     // DCF clock hours&lt;br /&gt;
 #define DCFMin      aDCFTime[1]     // DCF clock minutes&lt;br /&gt;
 #define DCFSec      aDCFTime[0]     // DCF clock seconds&lt;br /&gt;
 #define ITCYear     aITCTime[5]     // internal clock year&lt;br /&gt;
 #define ITCMonth    aITCTime[4]     // internal clock month&lt;br /&gt;
 #define ITCDay      aITCTime[3]     // internal clock day&lt;br /&gt;
 #define ITCHour     aITCTime[2]     // internal clock hours&lt;br /&gt;
 #define ITCMin      aITCTime[1]     // internal clock minutes&lt;br /&gt;
 #define ITCSec      aITCTime[0]     // internal clock seconds&lt;br /&gt;
 &lt;br /&gt;
 #define DCFPause    0               // valDcfSig: Pause received&lt;br /&gt;
 #define DCFPulse    1               // valDcfSig: Pulse received&lt;br /&gt;
 &lt;br /&gt;
 #define CtrlSecPuls 0               // CtrlReg:  Flag to do things once per second&lt;br /&gt;
 &lt;br /&gt;
 #define ErrParity   0               // ErrorReg: Parity Error            = 1&lt;br /&gt;
 #define ErrDcfBit   1               // ErrorReg: Bitduration Error       = 2&lt;br /&gt;
 #define ErrDCFStart 2               // ErrorReg:&lt;br /&gt;
 &lt;br /&gt;
 #define BitSet(Byte, BitNo)     Byte |= (1&amp;amp;lt;&amp;amp;lt;BitNo)&lt;br /&gt;
 #define BitClear(Byte, BitNo)   Byte &amp;amp;= ~(1&amp;amp;lt;&amp;amp;lt;BitNo)&lt;br /&gt;
 &lt;br /&gt;
 const uint8_t aDCFValues[] PROGMEM ={                                        \&lt;br /&gt;
   0x1,0x2,0x4,0x8,0xA,0x14,0x28,  0x0,0x1,0x2,0x4,0x8,0xA,0x14,              \&lt;br /&gt;
   0x0,0x1,0x2,0x4,0x8,0xA,0x14,   0x1,0x2,0x4,                               \&lt;br /&gt;
   0x1,0x2,0x4,0x8,0xA,            0x1,0x2,0x4,0x8,0xA,0x14,0x28,0x50,0x0};&lt;br /&gt;
 &lt;br /&gt;
 volatile uint8_t cntDcf;                // 10ms counter for DCF pulse measure&lt;br /&gt;
 volatile uint8_t cntIntClk;             // 10ms counter for internal clock&lt;br /&gt;
 volatile uint8_t DcfSigVal;             // DCFPulse or DCFPause&lt;br /&gt;
 volatile uint8_t DcfValue;              // Value for received DCF-Bit&lt;br /&gt;
 volatile uint8_t DcfParity;             // Parity for DCF-Signal&lt;br /&gt;
 volatile uint8_t LastSigVal;            // Last received DCF Signal&lt;br /&gt;
 volatile uint8_t DcfSigLen;             // duration of signal in 10ms&lt;br /&gt;
 volatile uint8_t CtrlReg;               // Control flag register&lt;br /&gt;
 volatile uint8_t ErrorReg;              // Error flag register&lt;br /&gt;
 volatile uint8_t aDCFTime[6];           // Time of DCF-Clock&lt;br /&gt;
 volatile uint8_t aITCTime[6];           // Time of Internal-Clock&lt;br /&gt;
 volatile uint8_t NixieH;                // Value for Nixie Valve 1+2&lt;br /&gt;
 volatile uint8_t NixieM;                // Value for Nixie Valve 3+4&lt;br /&gt;
 volatile uint8_t NixieS;                // Value for Nixie Valve 5+6&lt;br /&gt;
 uint8_t iCnt;                           // Interner Counter&lt;br /&gt;
 uint8_t Nixie;                          // Which Nixie is shown&lt;br /&gt;
 uint8_t NixZiffer;                      // What is shown on actual Nixie&lt;br /&gt;
  &lt;br /&gt;
 &lt;br /&gt;
 /********************************************************************&lt;br /&gt;
  *   Timer / Counter Interrupt every 2ms&lt;br /&gt;
  *   - increment DCF-pluse Counter every 10ms&lt;br /&gt;
  *   - increment internal Clock Counter every 10ms&lt;br /&gt;
  *   - multiplex Time to 6 Nixie Tubes&lt;br /&gt;
  ********************************************************************/&lt;br /&gt;
 SIGNAL (SIG_OUTPUT_COMPARE1A){&lt;br /&gt;
   if (++iCnt==5){           // increment Counters every 5 x 2ms = 10ms&lt;br /&gt;
       iCnt=0;&lt;br /&gt;
     cntDcf++;         // counter DCF-Pulse measure&lt;br /&gt;
     cntIntClk++;      // counter internal Clock&lt;br /&gt;
     }&lt;br /&gt;
   // Multiplexing of 6 nixie Tubes&lt;br /&gt;
   PORTB &amp;amp;amp;= 192;             // Turn all Nixies off (Reset PB 0-5)&lt;br /&gt;
   if (++Nixie==6){          // Next Nixie&lt;br /&gt;
     Nixie=0;&lt;br /&gt;
     }&lt;br /&gt;
     // get byte to bee show on actual nixie&lt;br /&gt;
   if ((Nixie==0) | (Nixie==1)){&lt;br /&gt;
     NixZiffer=NixieH;&lt;br /&gt;
     } else {&lt;br /&gt;
     if ((Nixie==2) | (Nixie==3)){&lt;br /&gt;
       NixZiffer=NixieM;&lt;br /&gt;
     } else {&lt;br /&gt;
       if ((Nixie==4) | (Nixie==5)){&lt;br /&gt;
       NixZiffer=NixieS;&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
     // upper or lower nibble?&lt;br /&gt;
   if ((Nixie==0)|(Nixie==2)|(Nixie==4)){&lt;br /&gt;
     NixZiffer &amp;amp;gt;&amp;amp;gt;= 4;&lt;br /&gt;
   } else {&lt;br /&gt;
     NixZiffer &amp;amp;amp;= 15;&lt;br /&gt;
   }&lt;br /&gt;
   PORTD &amp;amp;amp;= 3;               // Reset BCD-Values&lt;br /&gt;
   PORTD |= (NixZiffer&amp;amp;lt;&amp;amp;lt;3);  // BCD-Value to Nixie at PD 3-6&lt;br /&gt;
   PORTB |= (1&amp;amp;lt;&amp;amp;lt;Nixie);      // Turn on actual Nixie&lt;br /&gt;
 }&lt;br /&gt;
  &lt;br /&gt;
 &lt;br /&gt;
 /********************************************************************&lt;br /&gt;
  *   DCF Interrupt on raising/falling edge at INT1&lt;br /&gt;
  *   - detect raising / falling edge,&lt;br /&gt;
  *   - change int to other edge&lt;br /&gt;
  *   - set signal tag&lt;br /&gt;
  *   - set signal time&lt;br /&gt;
  *   - set LED on / off&lt;br /&gt;
  ********************************************************************/&lt;br /&gt;
 SIGNAL(SIG_INTERRUPT0){&lt;br /&gt;
   DcfSigLen=cntDcf;&lt;br /&gt;
   if (!(MCUCR &amp;amp;amp; (1&amp;amp;lt;&amp;amp;lt;ISC00))) {&lt;br /&gt;
     // This is done every falling edge (End of Pulse)&lt;br /&gt;
     BitSet(MCUCR, ISC00);       // next int on rising edge&lt;br /&gt;
     DcfSigVal = DCFPulse;       // HIGH received&lt;br /&gt;
     } else {&lt;br /&gt;
     // This is done every rising edge (End of Pause)&lt;br /&gt;
     BitClear(MCUCR, ISC00);     // next int on falling edge&lt;br /&gt;
     DcfSigVal = DCFPause;       // LOW  received&lt;br /&gt;
   }&lt;br /&gt;
   cntDcf=0;                           // reset DCF-counter&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 /********************************************************************&lt;br /&gt;
  *&lt;br /&gt;
  * main&lt;br /&gt;
  *&lt;br /&gt;
  ********************************************************************/&lt;br /&gt;
 int main (void)&lt;br /&gt;
 {&lt;br /&gt;
     // unsigned int chUart;&lt;br /&gt;
   uint8_t lNib;&lt;br /&gt;
   uint8_t hNib;&lt;br /&gt;
 &lt;br /&gt;
   // Init Ports, Timers, UART and Interrupts&lt;br /&gt;
   InitChip();&lt;br /&gt;
 &lt;br /&gt;
   // Enable Interrupts&lt;br /&gt;
   sei();&lt;br /&gt;
 &lt;br /&gt;
   // Main Loop&lt;br /&gt;
   for (;;) {&lt;br /&gt;
     // Internal Clock&lt;br /&gt;
     if (cntIntClk&amp;amp;gt;=100){                    // every 100 * 10ms&lt;br /&gt;
       cntIntClk -= 100;               // subtract 100 * 10ms from counter&lt;br /&gt;
       InternalClock();                // add 1 second&lt;br /&gt;
       BitSet (CtrlReg, CtrlSecPuls);  // set Flag second&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     // Set Values to be displayed on Nixies&lt;br /&gt;
     if (CtrlReg &amp;amp;amp; (1&amp;amp;lt;&amp;amp;lt;CtrlSecPuls)) {&lt;br /&gt;
       // Nixie 1 + 2&lt;br /&gt;
       hNib = ITCHour / 10;&lt;br /&gt;
       lNib = ITCHour - hNib * 10;&lt;br /&gt;
       NixieH = (16 * hNib + lNib);&lt;br /&gt;
       // Nixie 3 + 4&lt;br /&gt;
       hNib = ITCMin / 10;&lt;br /&gt;
       lNib = ITCMin - hNib * 10;&lt;br /&gt;
       NixieM = (16 * hNib + lNib);&lt;br /&gt;
       // Nixie 5 + 6&lt;br /&gt;
       hNib = ITCSec / 10;&lt;br /&gt;
       lNib = ITCSec - hNib * 10;&lt;br /&gt;
       NixieS = (16 * hNib + lNib);&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     // DCF-Signal: Status changed&lt;br /&gt;
     if (LastSigVal != DcfSigVal) {&lt;br /&gt;
       LastSigVal = DcfSigVal;&lt;br /&gt;
       if (DcfSigVal==DCFPulse) {&lt;br /&gt;
         // Pulse received&lt;br /&gt;
         if ((DcfSigLen&amp;amp;gt;DCFLowMin) &amp;amp;amp; (DcfSigLen&amp;amp;lt;DCFLowMax)){&lt;br /&gt;
           DCFBitReceived(0);&lt;br /&gt;
         } else {&lt;br /&gt;
           if ((DcfSigLen&amp;amp;gt;DCFHighMin) &amp;amp;amp; (DcfSigLen&amp;amp;lt;DCFHighMax)) {&lt;br /&gt;
             DCFBitReceived(1);&lt;br /&gt;
           } else {&lt;br /&gt;
             BitSet (ErrorReg, ErrDcfBit);&lt;br /&gt;
           }&lt;br /&gt;
         }&lt;br /&gt;
       } else if (DcfSigVal==DCFPause) {&lt;br /&gt;
         // Pause received&lt;br /&gt;
         DCFSec++;                                       // increment DCF second&lt;br /&gt;
         // Second 59 ?&lt;br /&gt;
         if ((DcfSigLen &amp;amp;gt;= DCF59Min) &amp;amp;amp; (DcfSigLen &amp;amp;lt;= DCF59Max)) {&lt;br /&gt;
           DCFSec=0;                               // set DCF second = 0&lt;br /&gt;
           // Set Internal Clock&lt;br /&gt;
           if (ErrorReg == 0) {&lt;br /&gt;
             cntIntClk=0;&lt;br /&gt;
             ITCSec=0;&lt;br /&gt;
             ITCMin=DCFMin;&lt;br /&gt;
             ITCHour=DCFHour;&lt;br /&gt;
             ITCDay=DCFDay;&lt;br /&gt;
             ITCMonth=DCFMonth;&lt;br /&gt;
             ITCYear=DCFYear;&lt;br /&gt;
           }&lt;br /&gt;
           ErrorReg = 0;        // clear all errors&lt;br /&gt;
         }&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     // delete second tag&lt;br /&gt;
     BitClear (CtrlReg, CtrlSecPuls);                                // Reset bit SecPuls&lt;br /&gt;
     }&lt;br /&gt;
     return (0);&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 /********************************************************************&lt;br /&gt;
  * Init Ports, Timers, UART and Interrupts&lt;br /&gt;
  *   - Port B: Output&lt;br /&gt;
  *   - Port D: Input&lt;br /&gt;
  *   - Int1: Interrupt&lt;br /&gt;
  *     - ISC11 (on falling edge )&lt;br /&gt;
  *     - INT1  (enable external int1)&lt;br /&gt;
  *   - Timer 1: Interrupt every 10 ms&lt;br /&gt;
  *     - CK/64 (CS11 + CS 10)&lt;br /&gt;
  *     - CTC1  (Clear Timer on Compare match)&lt;br /&gt;
  *     - OCR   (Output Compare Register: [ms]*CRYSTAL_FREQ/(1000*64)&lt;br /&gt;
  *     - OCIE1 (Output Compare Interrupt Enable)&lt;br /&gt;
  *   - Serial Port 1&lt;br /&gt;
  *     - Enable RxD&lt;br /&gt;
  *     - Enable TxD&lt;br /&gt;
  *     - Set Baud Rate: UBRR= (F_CPU / (16*BAUD) )-1&lt;br /&gt;
  ********************************************************************/&lt;br /&gt;
 void InitChip (void) {&lt;br /&gt;
   // Port B: Output&lt;br /&gt;
   DDRB = 255;               // PortB: Output&lt;br /&gt;
   PORTB = 0;                // clear all (activ High)&lt;br /&gt;
 &lt;br /&gt;
   // Port D: Input&lt;br /&gt;
   DDRD = 120;               // PortD: 0,1,2 In - 3,4,5,6 Out&lt;br /&gt;
   PORTD = (1&amp;amp;lt;&amp;amp;lt;2);           // activate Pull-Up on PD3&lt;br /&gt;
 &lt;br /&gt;
   // Int0: Interrupt&lt;br /&gt;
   //  - ISC01 (on falling edge )   //  - INT0  (enable external int0)&lt;br /&gt;
   MCUCR = (1&amp;amp;lt;&amp;amp;lt;ISC01);              // raise int0 on falling edge&lt;br /&gt;
   GIMSK = (1&amp;amp;lt;&amp;amp;lt;INT0);               // enable external int0&lt;br /&gt;
 &lt;br /&gt;
   // Timer 1: Interrupt every 10 ms&lt;br /&gt;
   //  - CK/64 (CS11 + CS 10)&lt;br /&gt;
   //  - CTC1  (Clear Timer on Compare match)&lt;br /&gt;
   //  - OCR   (Output Compare Register: [ms]*CRYSTAL_FREQ/(1000*64)&lt;br /&gt;
   //  - OCIE1 (Output Compare Interrupt Enable)&lt;br /&gt;
   TCCR1A = 0;                               // No Output, No PWM&lt;br /&gt;
   TCCR1B = (1&amp;amp;lt;&amp;amp;lt;CS11)|(1&amp;amp;lt;&amp;amp;lt;CS10)|(1&amp;amp;lt;&amp;amp;lt;CTC1);    // CK/64 , CTC1&lt;br /&gt;
   OCR = 2 * CRYSTAL_FREQ / 64000L;          // 2ms: 5A0h = 1440d&lt;br /&gt;
   TIMSK = (1&amp;amp;lt;&amp;amp;lt;OCIE1A);                      // Interrupt Enable&lt;br /&gt;
 &lt;br /&gt;
   // Serial Port 1&lt;br /&gt;
   //  - Enable RxD&lt;br /&gt;
   //  - Enable TxD&lt;br /&gt;
   //  - Set Baud Rate: UBRR= (F_CPU / (16*BAUD) )-1&lt;br /&gt;
   UCR = (1 &amp;amp;lt;&amp;amp;lt; RXEN) | (1 &amp;amp;lt;&amp;amp;lt; TXEN);&lt;br /&gt;
   UBRR = (CRYSTAL_FREQ / (UART_BAUD_RATE * 16L)) - 1;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 /********************************************************************&lt;br /&gt;
  * Inital Clock&lt;br /&gt;
  *   - raise time by one second every call&lt;br /&gt;
  ********************************************************************/&lt;br /&gt;
 void InternalClock(void){&lt;br /&gt;
   if (++ITCSec==60){                                                 // seconds&lt;br /&gt;
     ITCSec=0;&lt;br /&gt;
     if (++ITCMin==60){                                         // minutes&lt;br /&gt;
       ITCMin=0;&lt;br /&gt;
       if (++ITCHour==24){                                // hours&lt;br /&gt;
         ITCHour=0;&lt;br /&gt;
         if (++ITCDay==32){                         // days&lt;br /&gt;
           ITCMonth++;                        // month with 31 days&lt;br /&gt;
           ITCDay=1;&lt;br /&gt;
         } else if (ITCDay==31){                    // month with  30 days&lt;br /&gt;
           if ((ITCMonth==4)||(ITCMonth==6)||(ITCMonth==9)||(ITCMonth==11)){&lt;br /&gt;
             ITCMonth++;                // apr, may, sep, nov&lt;br /&gt;
             ITCDay=1;&lt;br /&gt;
           }&lt;br /&gt;
         } else if (ITCDay==30){                    // feb 29 days&lt;br /&gt;
           if(ITCMonth==2){&lt;br /&gt;
             ITCMonth++;&lt;br /&gt;
             ITCDay=1;&lt;br /&gt;
           }&lt;br /&gt;
         } else if (ITCDay==29){                    // feb 28 days&lt;br /&gt;
           if((ITCMonth==2) &amp;amp;amp;&amp;amp;amp; (ITCYear%4)){&lt;br /&gt;
             ITCMonth++;&lt;br /&gt;
             ITCDay=1;&lt;br /&gt;
           }&lt;br /&gt;
         }&lt;br /&gt;
         if (ITCMonth==13){                         // year&lt;br /&gt;
           ITCMonth=1;&lt;br /&gt;
           ITCYear++;&lt;br /&gt;
         }&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 /********************************************************************&lt;br /&gt;
  * Get value for each DCF Bit (second)&lt;br /&gt;
  ********************************************************************/&lt;br /&gt;
 uint8_t GetDCFBitValue(uint8_t nBitNo)&lt;br /&gt;
 {&lt;br /&gt;
     return(PRG_RDB(&amp;amp;amp;aDCFValues[nBitNo]));&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 /********************************************************************&lt;br /&gt;
  * DCF Bit recived routine&lt;br /&gt;
  ********************************************************************/&lt;br /&gt;
 void DCFBitReceived(uint8_t nBit){&lt;br /&gt;
   // from second 21 get value for DCF clock&lt;br /&gt;
   if (DCFSec&amp;amp;gt;=21) {&lt;br /&gt;
     if (nBit &amp;amp;amp; DCFPulse)&lt;br /&gt;
       DcfValue += GetDCFBitValue(DCFSec-21);  // add bit to DcfValue&lt;br /&gt;
     DcfParity ^= nBit;                          // DcfParity XOR received bit&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
   switch (DCFSec) {&lt;br /&gt;
     case 21:&lt;br /&gt;
     case 29:&lt;br /&gt;
     case 36:&lt;br /&gt;
       DcfParity=(nBit &amp;amp;amp; 1);                   // Reset Parity h, m, date&lt;br /&gt;
     break;&lt;br /&gt;
     case 27:&lt;br /&gt;
       DCFMin=DcfValue;                        // set DCF-Minute&lt;br /&gt;
       DcfValue=0;&lt;br /&gt;
     break;&lt;br /&gt;
     case 34:&lt;br /&gt;
       DCFHour = DcfValue;                     // set DCF-Hour&lt;br /&gt;
       DcfValue=0;&lt;br /&gt;
     break;&lt;br /&gt;
     case 41:&lt;br /&gt;
       DCFDay=DcfValue;                        // set DCF-Day&lt;br /&gt;
       DcfValue=0;&lt;br /&gt;
     break;&lt;br /&gt;
     case 44:&lt;br /&gt;
       DcfValue=0;                             // Reset DcfValue&lt;br /&gt;
     break;&lt;br /&gt;
     case 49:&lt;br /&gt;
       DCFMonth=DcfValue;                      // set DCF-Month&lt;br /&gt;
       DcfValue=0;&lt;br /&gt;
     break;&lt;br /&gt;
     case 28:&lt;br /&gt;
     case 35:&lt;br /&gt;
     case 58:&lt;br /&gt;
       if (DCFSec == 58){&lt;br /&gt;
         DCFYear=DcfValue;               // DCF-Year&lt;br /&gt;
         DcfValue=0;&lt;br /&gt;
       }&lt;br /&gt;
       if (DcfParity){                         // Check Parity 3 Times&lt;br /&gt;
         BitSet (ErrorReg, ErrParity);&lt;br /&gt;
         DcfParity=0;&lt;br /&gt;
       }&lt;br /&gt;
     break;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>Dario</name></author>
		
	</entry>
</feed>