<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://www.mikrocontroller.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Sam1994</id>
	<title>Mikrocontroller.net - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://www.mikrocontroller.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Sam1994"/>
	<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/articles/Spezial:Beitr%C3%A4ge/Sam1994"/>
	<updated>2026-04-10T10:52:51Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.39.7</generator>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Mcruler&amp;diff=79522</id>
		<title>Mcruler</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Mcruler&amp;diff=79522"/>
		<updated>2013-11-10T11:46:33Z</updated>

		<summary type="html">&lt;p&gt;Sam1994: /* Vorbestellungen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Infos ==&lt;br /&gt;
&lt;br /&gt;
Hier soll eine Community Variante eines Lineals entstehen, nach Vorbild des µRuler von EEVBlog/Dave Jones:&lt;br /&gt;
&lt;br /&gt;
[[Datei:uRuler.jpg|1200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aktueller Stand:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[https://raw.github.com/maugsburger/ucruler/master/ucruler_top.png]&lt;br /&gt;
[https://raw.github.com/maugsburger/ucruler/master/ucruler_bot.png]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Thread im Forum:&#039;&#039;&#039; http://www.mikrocontroller.net/topic/313642&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Projekt-Seite auf GitHub:&#039;&#039;&#039; https://github.com/maugsburger/ucruler&lt;br /&gt;
&lt;br /&gt;
== Spezifikationen ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Maße             || 200 x 32 mm&lt;br /&gt;
|-&lt;br /&gt;
| PCB              || 0.5mm oder 0.8mm FR4 &#039;&#039;&#039;1-Layer&#039;&#039;&#039; 35µ (TBD)&lt;br /&gt;
|-&lt;br /&gt;
| Oberfläche       || gold (ENIG)&lt;br /&gt;
|-&lt;br /&gt;
| Lötstop          || beidseitig, Farbe TBD&lt;br /&gt;
|-&lt;br /&gt;
| Bestückungsdruck || beidseitig, weiß&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Preise&#039;&#039;&#039;     || ca. 2 € / MOQ: 5 Stück oder vielfaches von 3 (TBD)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Farbe des Lötstopplackes ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
grün    |&lt;br /&gt;
gelb    |&lt;br /&gt;
schwarz |++++++++++++&lt;br /&gt;
weiß    |+&lt;br /&gt;
rot     |++++++++&lt;br /&gt;
blau    |++++&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
einfach bitte ein Plus hinter die Farbe die euch als Lötstoplack am besten gefallen würde.&lt;br /&gt;
&lt;br /&gt;
== minimale Schriftgröße ==&lt;br /&gt;
&lt;br /&gt;
http://www.mikrocontroller.net/attachment/196856/ucruler.pdf ausdrucken und die eigenen Augen testen.&lt;br /&gt;
&lt;br /&gt;
Dann bitte eintragen, welche Größe gerade noch lesbar ist. Die normale Schrift wird eins größer werden, aber falls mal wirklich kein Platz mehr sein sollte würde ich darauf zurückgreifen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1,8 |&lt;br /&gt;
1,6 |&lt;br /&gt;
1,4 |&lt;br /&gt;
1,2 | +++&lt;br /&gt;
1,0 | ++++&lt;br /&gt;
0,8 |&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Anpassungen/Ergänzungen ==&lt;br /&gt;
&lt;br /&gt;
Bitte einfach ein + oder - ergänzen oder gar nichts eintragen (wichtig, brauch ich nicht, egal), so dass am Ende ein Stimmungsbild entsteht. Daraus ergeben sich dann Prioritäten, in deren Reihenfolge der Platz aufgefüllt wird.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Wertung !! Beschreibung&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Formelsamlung&lt;br /&gt;
||&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+| +++++&lt;br /&gt;
-| ------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
Vllt. könnte man auch ein paar Formeln unterbringen die oft verwendet werden und trotzdem gerne vergessen werden&lt;br /&gt;
&lt;br /&gt;
Vorschläge [[Mcnet-ruler#Vorschl.C3.A4ge_f.C3.BCr_Formelsammlung|siehe unten]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  Leiterbahnstärken &lt;br /&gt;
||&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1| +&lt;br /&gt;
2| +++++++++++++++&lt;br /&gt;
3|&lt;br /&gt;
4|&lt;br /&gt;
5|&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
Bitte genau eine Möglichkeit mit + wählen:&lt;br /&gt;
# Bahnen in mm und mil, beschriftet in mm und mil&lt;br /&gt;
# Bahnen in mm, beschriftet in mm und mil&lt;br /&gt;
# Bahnen in mil, beschriftet in mm und mil&lt;br /&gt;
# Bahnen in mm, beschriftet in mm&lt;br /&gt;
# Bahnen in mil, beschriftet in mil&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  Inches in mm &lt;br /&gt;
||&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+| ++++++++++++++++&lt;br /&gt;
-| -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
Bitte generell Inches in mm umrechnen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  Layout/Textfluss  mm/inch &lt;br /&gt;
||&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+|+ &lt;br /&gt;
-|-&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
Die Umrechnungstabelle mm/inch in den Textfluss drehen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  Isolationsabstände &lt;br /&gt;
||&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+| +++++++++++++++++++++&lt;br /&gt;
-|&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
Die Tabelle für Isolationsabstände (Luft-/Kriechstrecken) ggf. an  in Deutschland geltende Normen anpassen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  Kabel-Widerstände &lt;br /&gt;
||&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+| ++++++++++&lt;br /&gt;
-| -----&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
Wenn noch Platz ist, wäre eine Tabelle für Kabel-Widerstände gut (sortiert nach gängigen Querschnitten, pro m oder 10m Kabellänge).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  Widerstands-Farbcode-Tabelle &lt;br /&gt;
||&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+| ++++++++++++&lt;br /&gt;
-| -------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
Rückseite Widerstands-Farbcode-Tabelle&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  LM317 &lt;br /&gt;
||&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+| +++++&lt;br /&gt;
-| -------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
Tabelle für LM317-Widerstandswerte&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  Kapazitäts-/Induktivitätsbelag &lt;br /&gt;
||&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+|++++++ &lt;br /&gt;
-|---&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
Tabellen zum Kapazitäts-/Induktivitätsbelag von Leiterbahnen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  Wellenwiderstände &lt;br /&gt;
||&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+|++++++&lt;br /&gt;
-|----&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
Richtwerttabellen für Wellenwiderstände, Micro Striplines (insbes. für USB/Ethernet Routing), etc. auf gängigen PCBs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  Wechselstrom Ueff, Upp &lt;br /&gt;
||&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+| +++&lt;br /&gt;
-| --------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
Wenn immer noch Platz ist: Tabelle zur Umrechnung von Wechselstromgrößen (Ueff, Upp für gängige Trafowicklungen, 110V, 230V, 240V, 400V, 600V)&lt;br /&gt;
&lt;br /&gt;
Anm.: Sinnvoll für gängige Elko-Spannungen 16VDC, 25VDC, 50VDC, 63VDC, 80VDC.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  f/T-Umrechnung &lt;br /&gt;
||&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+| ++++&lt;br /&gt;
-| ------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
Und wenn dann noch Platz wäre: Tabelle mit f und T für gängige µC-Frequenzen und Samplingraten&lt;br /&gt;
&lt;br /&gt;
Anm.: Sinnvoll und platzsparend, wenn wie vorgeschlagen für einige wenige gängige Werte (z.B. &amp;quot;8 MHz / 125 ns&amp;quot; und &amp;quot;48 kHz / 20,8 µs&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  PCB-Kühlkörper &lt;br /&gt;
||&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+| +++++++++++++++&lt;br /&gt;
-| --&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
Was auch interessant waere ist eine Tabelle fuer Leiterplattenkuehlkoerper. K/W pro cm² für div. Kupferstärken!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  SMD-Footprints R &lt;br /&gt;
||&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+| +++++++++++++++++++++++&lt;br /&gt;
-| -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
Die Idee mit den SMD Footprints auf der Rückseite finde ich auch sehr gut.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  SMD-Größen R &lt;br /&gt;
||&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+| +++++++++++++&lt;br /&gt;
-| -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
Eine Tabelle mit den Größen (im Sinne von Maßen) von SMD Widerständen ist auch manchmal ganz gut.&lt;br /&gt;
Anm.: Vorschlag Widerstandsreihe siehe unten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  SMD-Footprints ElKo &lt;br /&gt;
||&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+| ++++++++++++++++++++&lt;br /&gt;
-|&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
Zudem wäre der Footprint von SMD Elkos wenn möglich auf der Rückseite auch ganz praktisch&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  SMD-Größen Elko &lt;br /&gt;
||&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+| +++++++++++++++++&lt;br /&gt;
-| &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
Eine Tabelle mit den Größen (im Sinne von Maßen) von SMD Elkos ist auch manchmal ganz gut.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  E-Reihen &lt;br /&gt;
||&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+| +++++++++&lt;br /&gt;
-| ------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
Abdruck der E24-Reihe mit Markierungen für E12, E6.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  TQFP, SOP und SOT Footprint &lt;br /&gt;
||&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+| ++++++++++++++&lt;br /&gt;
-| -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
Der Footprint von TQFP, SOT und SOP Bauteilen auf der Rückseite könnte sich auch als nützlich erweisen&lt;br /&gt;
&lt;br /&gt;
Vorschläge für Footprints [[Mcnet-ruler#Vorschl.C3.A4ge_f.C3.BCr_Footprints|siehe unten]].&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  THT Lochreihe &lt;br /&gt;
||&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+| +++++++&lt;br /&gt;
-| -----&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
Ebenso eine kurze Lochreihe im 2,54mm-Raster für THT.&lt;br /&gt;
&lt;br /&gt;
Anm.: Bitte eine lange Lochreihe ähnlich wie von [http://www.mikrocontroller.net/topic/313642#3389830 Chris gezeigt].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  Kleines Namensfeld &lt;br /&gt;
||&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+| ++++++++++++++++&lt;br /&gt;
-|--&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
Damit die Lineale nicht &amp;quot;verschwinden&amp;quot;, zum selbst beschriften.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  Tabelle Leitfähigkeit/spezifischer Widerstand &lt;br /&gt;
||&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+| ++++&lt;br /&gt;
-| -----&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
Eine Tabelle mit der Leitfähigkeit/spezifischer Widerstand von zb. Kufer, Aluminium, Eisen ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  Temperaturkoeffizent &lt;br /&gt;
||&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+| +++&lt;br /&gt;
-| -----&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
Eine Tabelle mit den Temperaturkoeffizenten (alpha in 1/k) von zb. Kufer, Aluminium, Eisen ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  Transistor-Schaltungssymbole &lt;br /&gt;
||&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+| +++++&lt;br /&gt;
-| -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
Aufdruck von Transistor-Schaltungssymbolen (bipolar/FET) und THT-LEDs, [http://www.adafruit.com/index.php?main_page=popup_image_additional&amp;amp;pID=1554&amp;amp;pic=1&amp;amp;products_image_large_additional=images/large/1554bottom_LRG.jpg siehe hier]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  Pin-Beschriftung für einige Footprints &lt;br /&gt;
||&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+| +++&lt;br /&gt;
-| &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
Einige Footprints (z.B. TO-92, SOT-23 etc.) sollten Beschriftungen für BCE/GDS für gängige Transistortypen bekommen, siehe [http://dmohankumar.files.wordpress.com/2011/05/table-showing-the-pins-of-common-transistors.pdf hier] und [http://www.radiomuseum.org/forum/transistor_connections.html hier]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  Kabelschablone&lt;br /&gt;
||&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+| ++&lt;br /&gt;
-| &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
Ähnlich dem [http://www.adafruit.com/index.php?main_page=popup_image_additional&amp;amp;pID=1554&amp;amp;pic=1&amp;amp;products_image_large_additional=images/large/1554bottom_LRG.jpg Adafruit Ruler], aber als Tabelle in AWG und mm.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Vorschläge für Formelsammlung ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Wertung !! Beschreibung&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| C/L &lt;br /&gt;
||&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+| +&lt;br /&gt;
-| -&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
||&lt;br /&gt;
http://upload.wikimedia.org/math/d/5/5/d550b39c146790974bae8a9a2e1830fb.png&lt;br /&gt;
&lt;br /&gt;
http://upload.wikimedia.org/math/0/9/a/09ab806c34320b749ddadca35a32fc8a.png&lt;br /&gt;
&lt;br /&gt;
http://de.wikipedia.org/wiki/Elektrische_Kapazit%C3%A4t#Kapazit.C3.A4t_bestimmter_Leiteranordnungen&lt;br /&gt;
&lt;br /&gt;
http://de.wikipedia.org/wiki/Induktivit%C3%A4t#Induktivit.C3.A4t_einer_Zylinderspule&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Eckfrequenz RC-Glied HP/LP &lt;br /&gt;
||&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+| +&lt;br /&gt;
-| --&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
||&lt;br /&gt;
http://upload.wikimedia.org/math/5/d/1/5d1295e236a3c860416fbdb9940fb043.png&lt;br /&gt;
&lt;br /&gt;
http://de.wikipedia.org/wiki/RC-Glied#Tiefpass&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| I(t) / U(t) für C/L &lt;br /&gt;
||&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+| ++&lt;br /&gt;
-| -&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
||&lt;br /&gt;
http://upload.wikimedia.org/math/0/b/9/0b93b4a1ce2832629d42509b43184894.png&lt;br /&gt;
&lt;br /&gt;
http://upload.wikimedia.org/math/9/e/6/9e6ea02a73a08f263454786c1c9d7e44.png&lt;br /&gt;
&lt;br /&gt;
http://de.wikipedia.org/wiki/Zeitkonstante#Kondensator&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Wärmewiderstand  &lt;br /&gt;
||&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+| +&lt;br /&gt;
-| -&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
||&lt;br /&gt;
http://upload.wikimedia.org/math/8/7/b/87b98460f0867373471f540167591ebb.png&lt;br /&gt;
&lt;br /&gt;
http://de.wikipedia.org/wiki/W%C3%A4rmewiderstand#Definition&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Vorschläge für Footprints ==&lt;br /&gt;
&lt;br /&gt;
Vorschläge für Footprints auf der Rückseite. Es werden die Pads in Kupfer ausgeführt (also theoretisch lötbar), der Rand des Bauteils im Bestückungsdruck.&lt;br /&gt;
&lt;br /&gt;
* http://www.fairchildsemi.com/package/&lt;br /&gt;
* http://www.maximintegrated.com/design/packaging/&lt;br /&gt;
* http://www.infineon.com/cms/de/product/technology/packages/index.html&lt;br /&gt;
* http://www.nxp.com/packages&lt;br /&gt;
* http://www.topline.tv/Drawings/PDF/QFP/TQFP_Library.pdf&lt;br /&gt;
* http://www.linear.com/designtools/packaging/&lt;br /&gt;
* http://ww1.microchip.com/downloads/en/PackagingSpec/00049AR.pdf&lt;br /&gt;
&lt;br /&gt;
Siehe auch [http://www.adafruit.com/blog/2013/10/11/new-product-adafruit-pcb-ruler-6/ Adafruit Ruler].&lt;br /&gt;
&lt;br /&gt;
http://www.adafruit.com/images/large/1554bottom_LRG.jpg&lt;br /&gt;
&lt;br /&gt;
=== Widerstände &amp;amp; Kondensatoren ===&lt;br /&gt;
Maße siehe z.B. http://www.panasonic.com/industrial/components/pdf/AOA0000CE1.pdf&lt;br /&gt;
&lt;br /&gt;
* 0201 (wenn der Fertiger des Lineal das kann...)&lt;br /&gt;
* 0402&lt;br /&gt;
* 0603&lt;br /&gt;
* 0805&lt;br /&gt;
* 1206&lt;br /&gt;
* 1210&lt;br /&gt;
* 1812 (wenn noch Platz ist)&lt;br /&gt;
* 2010 (wenn noch Platz ist)&lt;br /&gt;
* 2512 (wenn noch Platz ist)&lt;br /&gt;
&lt;br /&gt;
=== Transistoren &amp;amp; ICs ===&lt;br /&gt;
&lt;br /&gt;
* ✓ SC-70&lt;br /&gt;
* ✓ SOT-23&lt;br /&gt;
* ✓ SOT-23-6&lt;br /&gt;
* ✓ SOT-89&lt;br /&gt;
* ✓ SOT-223&lt;br /&gt;
* TO-252 / DPAK http://www.fairchildsemi.com/dwg/TO/TO252A03.pdf&lt;br /&gt;
* TO-263 / D2PAK http://www.fairchildsemi.com/dwg/TO/TO263A02.pdf&lt;br /&gt;
&lt;br /&gt;
=== Dioden &amp;amp; LEDs ===&lt;br /&gt;
&lt;br /&gt;
* SMA / DO-214AC http://www.fairchildsemi.com/dwg/DO/DO214AC.pdf&lt;br /&gt;
* SMB / DO-214AA http://www.fairchildsemi.com/dwg/DO/DO214AA.pdf&lt;br /&gt;
* SMC / DO-214AB http://www.fairchildsemi.com/dwg/DO/DO214AB.pdf&lt;br /&gt;
* Melf http://www.cdil.com/package/do213ab_dwng.pdf&lt;br /&gt;
* MiniMelf http://www.cdil.com/package/sod_80c.pdf&lt;br /&gt;
* MicroMelf http://www.vishay.com/docs/20003/smm0102.pdf&lt;br /&gt;
* PLCC-4 / 3528 http://catalog.osram-os.com/media/_en/Graphics/00042269_0.pdf&lt;br /&gt;
* PLCC-6 / 5050 http://ledversand24.de/media/pdf/ws2812preliminary51337f1c83131.pdf&lt;br /&gt;
&lt;br /&gt;
=== ICs ===&lt;br /&gt;
&lt;br /&gt;
* SOIC-24, 3.9mm-Body, ein Footprint, aber mit Bestückungsdruck-Linien die kleineren Varianten für 8,14,16,20,24 Pins anzeichen, Pinzahl ranschreiben&lt;br /&gt;
* SOIC-24, 7.5mm-Body, ein Footprint, aber mit Bestückungsdruck-Linien die kleineren Varianten für 8,14,16,20,24 Pins anzeichen, Pinzahl ranschreiben&lt;br /&gt;
Diese beiden SOIC-Breiten wenn möglich in einem Footprint zusammenfassen, also z.B. die linken Pins gemeinsam verwenden. Die beiden&lt;br /&gt;
Breiten dann über Bestückungsdruck-Linien kennzeichnen.&lt;br /&gt;
&lt;br /&gt;
* SSOP-24, 5,3mm-Body, 0,65mm Pitch. Das ist die gängigste Variante, es gibt aber leider auch einige Abweichler mit anderem Pitch und Bodybreite die sich auch SSOP nennen :(&lt;br /&gt;
* TSSOP-28, 4,4mm-Body, 0,65mm Pitch&lt;br /&gt;
Auch bei diesen beiden: ein Footprint, aber mit Bestückungsdruck-Linien die kleineren Varianten für 8,14,16,20,24,28 Pins anzeichen, Pinzahl ranschreiben&lt;br /&gt;
&lt;br /&gt;
Für die Maße: http://www.microchip.com/stellent/groups/techpub_sg/documents/packagingspec/en012702.pdf&lt;br /&gt;
&lt;br /&gt;
Wenn noch Platz:&lt;br /&gt;
* TQFP32, 0.8mm Pitch http://www.microchip.com/stellent/groups/techpub_sg/documents/packagingspec/en012702.pdf&lt;br /&gt;
* TQFP48 / LQFP48, 0.5mm Pitch http://www.nxp.com/documents/outline_drawing/sot313-2_po.pdf&lt;br /&gt;
* QFN32, 0.5mm Pitch http://www.linear.com/docs/38749&lt;br /&gt;
&lt;br /&gt;
== Vorbestellungen ==&lt;br /&gt;
Interessenten tragen sich bitte &#039;&#039;&#039;am Ende der Liste ein und aktualisieren den Zwischenstand&#039;&#039;&#039;!&lt;br /&gt;
&lt;br /&gt;
Mindestbestellmenge ist nach aktuellem Stand 5 Stück.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
10  Dominik S. (dasd)&lt;br /&gt;
 5  Dennis X. (debegr92) &lt;br /&gt;
 2  Arne M. (armut) &lt;br /&gt;
 3  Benedikt K. (benek) &lt;br /&gt;
 5  AVR (Gast) &lt;br /&gt;
 5  Jürgen (Gast) &lt;br /&gt;
 5  Uwe ... (uwegw) &lt;br /&gt;
15  Rene H. (promeus) &lt;br /&gt;
 5  hum (Gast) &lt;br /&gt;
 3  Werner A. (homebrew) &lt;br /&gt;
 2  Frank Werner (wesoft)&lt;br /&gt;
 5  Jan B. (diphthong) &lt;br /&gt;
 5  Thomas J. (tom16) &lt;br /&gt;
10  Felix Schulze (pepe) &lt;br /&gt;
 3  Patrick Berninghaus (patricck) &lt;br /&gt;
 5  B. B. (morgenmuffel) &lt;br /&gt;
 5  Bernd D. (bernd_d56)&lt;br /&gt;
 5  Daniel (Gast) &lt;br /&gt;
 5  Jan Dressler (keyman) &lt;br /&gt;
 3  Gerd E. (robberknight) &lt;br /&gt;
10  Ralf Engelhardt (r_e)&lt;br /&gt;
 5  D. S. (compuvidy) &lt;br /&gt;
 5  Michael R. (elektr-hobbyist) &lt;br /&gt;
 5  Samuel Hildebrandt (musicsammy) &lt;br /&gt;
 5  Martin H. (marrtn) &lt;br /&gt;
 5  Michael Becker (mich_at_el) &lt;br /&gt;
 5  Marco André (marphy) &lt;br /&gt;
 5  Chris (Gast) &lt;br /&gt;
 5  mr. mo (Gast) &lt;br /&gt;
10  René B. (reneb) &lt;br /&gt;
 5  Martin R. (martin84) &lt;br /&gt;
 3  J. S. (voochee) &lt;br /&gt;
 5  Andreas H. (ahz) &lt;br /&gt;
 5  Ronny Spiegel (duselbaer) &lt;br /&gt;
10  G. L. (lele) &lt;br /&gt;
 3  Axel Jäger (axeljaeger) &lt;br /&gt;
 5  Stephan G. (stephan_g35)&lt;br /&gt;
 5  Gibts Ne (schneeblau) &lt;br /&gt;
 5  Sascha G. (sascha-g) &lt;br /&gt;
 5  Richard Zink (Gast) &lt;br /&gt;
 5  Stephan K. (nightowl) &lt;br /&gt;
 5  Martin Wende (Firma: fritzler-avr.de) (fritzler) &lt;br /&gt;
 5  Jörg S. (Gast)&lt;br /&gt;
10  J. L. (lindenbaum) &lt;br /&gt;
10  Jan M. (mueschel) &lt;br /&gt;
 5  Bad Urban (bad_urban) &lt;br /&gt;
 5  Daniel M. (amad)&lt;br /&gt;
 5  Sascha S. (dec) &lt;br /&gt;
 5  A. S. (rava) &lt;br /&gt;
10  Jens M. (jens-m) &lt;br /&gt;
 5  Sascha E. (baracuss) &lt;br /&gt;
 5  avr avr (colombo010) &lt;br /&gt;
 5  Michael B. (michael_b25) &lt;br /&gt;
 5  Thomas Sch. (doschi_) &lt;br /&gt;
 5  K. J. (theborg0815)&lt;br /&gt;
 5  Daniel C. (cecky) &lt;br /&gt;
 3  Philipp E. (erlang) &lt;br /&gt;
 5  Thorsten Ostermann (Firma: mechapro GmbH) (ostermann)&lt;br /&gt;
10  vophatec (Manuel Z.)&lt;br /&gt;
 3  Carsten Peschke &lt;br /&gt;
 2  J.O. (Gast)&lt;br /&gt;
10  F. Fo (foldi)&lt;br /&gt;
 5  D. Braun (garag)&lt;br /&gt;
 5  Michael.S. (michael0307)&lt;br /&gt;
 5  Didi S. (kokisan2000)&lt;br /&gt;
 5  Thomas L. (ics1702)&lt;br /&gt;
 5  Sebastian Engel (s-engel)&lt;br /&gt;
 5  Peter Sieg (petersieg)&lt;br /&gt;
 5  Martin S. (martin_s91)&lt;br /&gt;
 5  Manuel Steiner (steinerhippo)&lt;br /&gt;
 5  Nico B. (vegetico)&lt;br /&gt;
 5  Axel P. (axel_p)&lt;br /&gt;
 5  Mh. M. (mhm)&lt;br /&gt;
 5  Friedrich K (*)&lt;br /&gt;
 5  O.Hagendorf (ohagendorf)&lt;br /&gt;
 5  Jonas K. (jonas k)&lt;br /&gt;
 5  Sam .. (sam1994)&lt;br /&gt;
-------------------------------------&lt;br /&gt;
420 ZWISCHENSTAND&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sam1994</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Datei:Synthesizer_-_SD-Karte.zip&amp;diff=74847</id>
		<title>Datei:Synthesizer - SD-Karte.zip</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Datei:Synthesizer_-_SD-Karte.zip&amp;diff=74847"/>
		<updated>2013-03-27T15:35:57Z</updated>

		<summary type="html">&lt;p&gt;Sam1994: hat eine neue Version von „Datei:Synthesizer - SD-Karte.zip“ hochgeladen&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sam1994</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Datei:Synthesizer_-_SD-Karte.zip&amp;diff=74844</id>
		<title>Datei:Synthesizer - SD-Karte.zip</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Datei:Synthesizer_-_SD-Karte.zip&amp;diff=74844"/>
		<updated>2013-03-27T12:59:01Z</updated>

		<summary type="html">&lt;p&gt;Sam1994: hat eine neue Version von „Datei:Synthesizer - SD-Karte.zip“ hochgeladen&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sam1994</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Datei:Synthesizer_-_Flash.zip&amp;diff=74843</id>
		<title>Datei:Synthesizer - Flash.zip</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Datei:Synthesizer_-_Flash.zip&amp;diff=74843"/>
		<updated>2013-03-27T12:58:51Z</updated>

		<summary type="html">&lt;p&gt;Sam1994: hat eine neue Version von „Datei:Synthesizer - Flash.zip“ hochgeladen&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sam1994</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Datei:Synthesizer.zip&amp;diff=74842</id>
		<title>Datei:Synthesizer.zip</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Datei:Synthesizer.zip&amp;diff=74842"/>
		<updated>2013-03-27T12:58:39Z</updated>

		<summary type="html">&lt;p&gt;Sam1994: hat eine neue Version von „Datei:Synthesizer.zip“ hochgeladen&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Source&lt;/div&gt;</summary>
		<author><name>Sam1994</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=AVR-Synthesizer&amp;diff=74841</id>
		<title>AVR-Synthesizer</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=AVR-Synthesizer&amp;diff=74841"/>
		<updated>2013-03-27T12:25:35Z</updated>

		<summary type="html">&lt;p&gt;Sam1994: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;von sam1994&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
&lt;br /&gt;
* 4 Instrumente&lt;br /&gt;
* Bassdrum, Snare, Hihat&lt;br /&gt;
* mehr als 20 gleichzeitig spielende Kanäle @20Mhz&lt;br /&gt;
* einstellbare Samplerate&lt;br /&gt;
* spielt konvertierte Midi-Dateien ab&lt;br /&gt;
* benötigt 7KB Flash, 500-900B Ram&lt;br /&gt;
&lt;br /&gt;
==Hardware==&lt;br /&gt;
&lt;br /&gt;
[[Bild:Pwm-wandler.svg]]&lt;br /&gt;
&lt;br /&gt;
Standardmäßig wird der OCR1A-Pin zur Ausgabe verwendet.&lt;br /&gt;
Ein externer Quarz ist nötig, wenn die Töne auf der richtigen Frequenz liegen sollen.&lt;br /&gt;
&lt;br /&gt;
==Software==&lt;br /&gt;
&lt;br /&gt;
Der Synthesizer besteht aus einem Synthesizer und einem Sequenzer. Beide müssen am Anfang initialisiert werden. Dem Sequenzer wird beim Laden einer Datei ein Zeiger auf eine Funktion übergeben, die immer das nächste Byte der Datei ausliest. Dadurch ist es ohne großen Aufwand möglich die Datei aus dem Flash oder von einer SD-Karte zu lesen.&lt;br /&gt;
&lt;br /&gt;
===Flash===&lt;br /&gt;
&lt;br /&gt;
Die Datei wird als Array im Flash gespeichert.&lt;br /&gt;
&amp;lt;c&amp;gt;const uint8_t datei[] PROGMEM = {...vom Konverter...};&amp;lt;/c&amp;gt;&lt;br /&gt;
Dem Sequenzer wird die vordefinierte Funktion ReadFlash übergeben, als Zeiger die Datei:&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
sei();&lt;br /&gt;
//Synthesizer init&lt;br /&gt;
synth_init();&lt;br /&gt;
//Datei vom Sequenzer laden&lt;br /&gt;
seq_load(ReadFlash, (uint8_t*)datei);&lt;br /&gt;
//Synthesizer und Sequenzer starten&lt;br /&gt;
synth_start();&lt;br /&gt;
seq_start();&lt;br /&gt;
for(;;)&lt;br /&gt;
    synth_update();&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===SD-Karte===&lt;br /&gt;
&lt;br /&gt;
Für die SD-Karte braucht man einen Puffer. Mit 256 Byte ist man auf der sicheren Seite, bei wenigen Kanälen kann man auch 128 oder 64 Byte nehmen.&lt;br /&gt;
Außerdem muss man eine Funktion definieren, die aus dem Puffer liest und dem Sequenzer übergeben wird. Der übergebene Zeiger wird hier als Index missbraucht.&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
#define MIDI_BUF_LEN 256&lt;br /&gt;
uint8_t midi[MIDI_BUF_LEN];	&lt;br /&gt;
&lt;br /&gt;
uint8_t ReadBuffer(uint8_t* pos)&lt;br /&gt;
{&lt;br /&gt;
    uint8_t index = (uint16_t)pos;&lt;br /&gt;
    return midi[index &amp;amp; (MIDI_BUF_LEN-1)];&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
Am Anfang muss der Puffer gefüllt und der Synthesizer initialisiert werden. In der Hauptschleife wird nur der Puffer nachgefüllt.&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
//Lesepuffer füllen&lt;br /&gt;
uint8_t i = 0;&lt;br /&gt;
do&lt;br /&gt;
    midi[i] = ffread();&lt;br /&gt;
while(++i != (MIDI_BUF_LEN &amp;amp; 0xFF));&lt;br /&gt;
//Leseindex auf 0 setzen&lt;br /&gt;
uint8_t write = 0;&lt;br /&gt;
&lt;br /&gt;
//Synthesizer init&lt;br /&gt;
synth_init();&lt;br /&gt;
//Datei vom Sequenzer laden&lt;br /&gt;
seq_load(ReadBuffer, 0);&lt;br /&gt;
//Synthesizer und Sequenzer starten&lt;br /&gt;
synth_start();&lt;br /&gt;
seq_start();&lt;br /&gt;
&lt;br /&gt;
for(;;)&lt;br /&gt;
{&lt;br /&gt;
    //Synthesizerupdate; Diese Funktion muss mindestens im 1ms Intervall aufgerufen werden&lt;br /&gt;
    synth_update();&lt;br /&gt;
    //Leseindex mit Schreibindex vergleichen&lt;br /&gt;
    uint8_t read = (uint8_t)(uint16_t)Seq.file;&lt;br /&gt;
    while(read != write)  //Buffer wieder auffüllen&lt;br /&gt;
        midi[write++ &amp;amp; (MIDI_BUF_LEN-1)] = ffread();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Downloads==&lt;br /&gt;
&lt;br /&gt;
===Synthesizer===&lt;br /&gt;
* [[Media:Synthesizer.zip|Synthesizer]]&lt;br /&gt;
* [[Media:Synthesizer_-_Flash.zip|Beispiel Flash]]&lt;br /&gt;
* [[Media:Synthesizer_-_SD-Karte.zip|Beispiel SD-Karte]]&lt;br /&gt;
&lt;br /&gt;
Hinweis: Die Beispiele nutzen den OC1A-Pin zur PWM-Erzeugung.&lt;br /&gt;
&lt;br /&gt;
===Konverter===&lt;br /&gt;
* [[Media:AVR-Synthesizer-Konverter.zip|Konverter (exe)]]&lt;br /&gt;
* [[Media:Midi2AvrSynthConverter.zip|Konverter (source)]]&lt;br /&gt;
&lt;br /&gt;
===Beispiele===&lt;br /&gt;
* [[Media:Mario.mp3|Mario.mp3]]&lt;br /&gt;
* [[Media:Marimba.mp3|Marimba.mp3]]&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
* http://www.mikrocontroller.net/topic/232845&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:AVR-Projekte]]&lt;br /&gt;
[[Kategorie:Audio]]&lt;/div&gt;</summary>
		<author><name>Sam1994</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Diskussion:AVR-Tutorial:_Vergleiche&amp;diff=72838</id>
		<title>Diskussion:AVR-Tutorial: Vergleiche</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Diskussion:AVR-Tutorial:_Vergleiche&amp;diff=72838"/>
		<updated>2013-02-24T19:01:54Z</updated>

		<summary type="html">&lt;p&gt;Sam1994: Die Seite wurde neu angelegt: „Das hier widerspricht sich:  Ist nach einem Vergleich zweier Register S=1, so ist der Wert des ersten Registers kleiner dem zweiten   BRLT - Branch if Less Than  …“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das hier widerspricht sich:&lt;br /&gt;
&lt;br /&gt;
Ist nach einem Vergleich zweier Register S=1, so ist der Wert des ersten Registers kleiner dem zweiten &lt;br /&gt;
&lt;br /&gt;
BRLT - Branch if Less Than&lt;br /&gt;
    Der Sprung wird durchgeführt, wenn das Signed-Flag (S) gesetzt ist. Wird dieser Branch direkt nach einer CP, CPI, SUB oder SUBI Operation eingesetzt, so findet der Sprung dann und nur dann statt, wenn der zweite Operand kleiner als der erste Operand ist.&lt;/div&gt;</summary>
		<author><name>Sam1994</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Temperatursensor&amp;diff=69228</id>
		<title>Temperatursensor</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Temperatursensor&amp;diff=69228"/>
		<updated>2012-11-18T17:08:52Z</updated>

		<summary type="html">&lt;p&gt;Sam1994: /* SHT1x/SHT7x */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Will man mit einem [[Mikrocontroller]] Temperaturen messen, dann braucht man&lt;br /&gt;
* einen [[Sensor]], der die Temperatur z.&amp;amp;nbsp;B. in eine Spannung oder einen Strom umsetzt&lt;br /&gt;
* einen [[ADC | AD-Wandler]], der das Signal digitalisiert. Der kann auf dem Sensor oder dem Mikrocontroller integriert sein.&lt;br /&gt;
&lt;br /&gt;
Temperatursensoren gibt es nun in allen möglichen Varianten. Vom temperaturabhängigen [[Widerstand]] bis zum fertig abgeglichenen All-in-one-Bauteil mit digitalem Ausgang. Wie bei allen Sensoren sollte man auch hier genau hinschauen und [[Auflösung und Genauigkeit]] unterscheiden.&lt;br /&gt;
&lt;br /&gt;
== Analoge Temperatursensoren ==&lt;br /&gt;
&lt;br /&gt;
=== PT100 ===&lt;br /&gt;
&lt;br /&gt;
Unter einem PT100 versteht man einen Platinwiderstand, der bei 0°C einen Widerstand von 100Ω hat.&lt;br /&gt;
Platinwiderstände sind temperaturabhängige Widerstände mit hoher Wiederholgenauigkeit und Konstanz[http://de.wikipedia.org/wiki/Konstante].  Wegen der relativ geringen Widerstandsänderung von nur ca. 0,4Ω pro Grad ist etwas mehr Schaltungsaufwand erforderlich als bei anderen Sensoren. Genauere Formeln zur Temperaturbestimmung gibt es u.a. bei [http://de.wikipedia.org/wiki/Pt100 Wikipedia]. Ein Schaltplan findet sich bei der [http://www.heise.de/ct/artikel/Sensibelchen-289608.html c&#039;t].&lt;br /&gt;
&lt;br /&gt;
Die Sensoren gibt es auch mit anderen Widerstandswerten, z.&amp;amp;nbsp;B. mit 1000&amp;amp;Omega; und heißen dann entsprechend PT1000.&lt;br /&gt;
&lt;br /&gt;
Vorteil:&lt;br /&gt;
* genormt&lt;br /&gt;
* großer Meßbereich&lt;br /&gt;
* hohe Linearität&lt;br /&gt;
* hohe Wiederholgenauigkeit&lt;br /&gt;
* einfach austauschbar&lt;br /&gt;
&lt;br /&gt;
Nachteil:&lt;br /&gt;
* relativ teuer (bei segor.de ab 3,80&amp;amp;euro;)&lt;br /&gt;
* brauchen aufwendigere Auswerteschaltung&lt;br /&gt;
&lt;br /&gt;
Links:&lt;br /&gt;
* [http://de.wikibooks.org/wiki/Linearisierung_von_resistiven_Sensoren/_Pt100 Wikibooks: Linearisierung von resistiven Sensoren - PT100]&lt;br /&gt;
* [http://www.heise.de/ct/04/22/236/ c&#039;t-Artikel: Mikrocontroller-Programmierung: Timer, Sensoren und Drehgeber (mit PT100 Schaltung)]&lt;br /&gt;
* [http://www.maxim-ic.com/app-notes/index.mvp/id/3450 Maxim AN3450 Positive Analog Feedback Compensates PT100 Transducer]&lt;br /&gt;
* [http://www.maxim-ic.com/app-notes/index.mvp/id/4875 Maxim AN4875 High-Accuracy Temperature Measurements Call for Platinum Resistance Temperature Detectors (PRTDs) and Precision Delta-Sigma ADCs]&lt;br /&gt;
* [http://ww1.microchip.com/downloads/en/AppNotes/01154a.pdf Microchip AN1154 Precision RTD Instrumentation for Temperature Sensing]&lt;br /&gt;
* [http://www.analog.com/static/imported-files/application_notes/AN709_0.pdf Analog Devices AN709 RTD Interfacing and Linearization Using an ADuC8xx MicroConverter]&lt;br /&gt;
&lt;br /&gt;
=== NTC/PTC ===&lt;br /&gt;
&lt;br /&gt;
NTC und PTC sind temperaturabhängige Widerstände.&lt;br /&gt;
&lt;br /&gt;
* NTC (engl. &#039;&#039;&#039;N&#039;&#039;&#039;egative &#039;&#039;&#039;T&#039;&#039;&#039;emperature &#039;&#039;&#039;C&#039;&#039;&#039;oefficient, Heißleiter), hat bei hohen Temperaturen seinen niedrigsten Widerstand, z.&amp;amp;nbsp;B. Silizium&lt;br /&gt;
* PTC (engl. &#039;&#039;&#039;P&#039;&#039;&#039;ositive &#039;&#039;&#039;T&#039;&#039;&#039;emperature &#039;&#039;&#039;C&#039;&#039;&#039;oefficient, Kaltleiter), hat bei niedrigen Temperaturen seinen geringsten Widerstand, z.&amp;amp;nbsp;B. Glühlampe&lt;br /&gt;
&lt;br /&gt;
Um den Widerstandswert zu messen schaltet man sie mit einem normalen Widerstand oder einer [[Konstantstromquelle]] in Reihe zu einem [[Spannungsteiler]] und misst den Spannungsabfall. Eine Beispielschaltung findet sich [http://www.mathar.com/msp_thermo1.html hier].&lt;br /&gt;
&lt;br /&gt;
Vorteil:&lt;br /&gt;
* billig (z.B. [http://www.reichelt.de/?ARTICLE=9594 KTY81-110] bei Reichelt  ~0,60&amp;amp;euro;)&lt;br /&gt;
&lt;br /&gt;
Nachteil:&lt;br /&gt;
* müssen für höhere Genauigkeiten abgeglichen werden&lt;br /&gt;
* brauchen A/D-Wandler&lt;br /&gt;
* sind nichtlinear&lt;br /&gt;
&lt;br /&gt;
Beispiele:&lt;br /&gt;
* KTY10-5&lt;br /&gt;
* KTY13-6&lt;br /&gt;
* KTY81-121&lt;br /&gt;
* KTY81-122&lt;br /&gt;
&lt;br /&gt;
Links:&lt;br /&gt;
* [http://www.sprut.de/electronic/temeratur/temp.htm Temperaturabhängige Stromquelle und NTC/PTC inclusive Linearisierung]&lt;br /&gt;
*[http://www.umnicom.de/Elektronik/Mikrokontroller/Atmel/AtFan/AtFan.html#2.2.2 Berechnung des Linearisierungswiderstandes für gewünschten Temperaturbereich] der fällt sonst immer vom Himmel&lt;br /&gt;
* [http://www.mikrocontroller.net/topic/208587#2065880 KTY 10-5 Formelprobleme]&lt;br /&gt;
* [http://www.mikrocontroller.net/topic/225563 Codesammlung: Beispiel mit 0,5°C Auflösung]&lt;br /&gt;
* [http://preis-ing.de/e_calc/index.php?seite=auternzc Automatisches Erzeugen von C-Code zur NTC Auswertung] Aus den NTC Parametern und den Anforderungen wird  ein schneller und schlanker C-Code generiert.&lt;br /&gt;
&lt;br /&gt;
=== LMx35 ===&lt;br /&gt;
&lt;br /&gt;
Eine IC-Familie, die pro Kelvin Temperaturänderung ihre Ausgangsspannung um 10&amp;amp;nbsp;mV ändert. Die ICs gibt es in verschiedenen Genauigkeiten und Temperaturbereichen mit den Bezeichnungen LM135(A), LM235(A) und LM335(A). Der günstigste ist der LM335 mit einem Temperaturbereich von −40 … +100°C.&lt;br /&gt;
In verschiedenen Bauformen erhältlich. Beispielschaltungen finden sich im [http://www.national.com/ds.cgi/LM/LM135.pdf Datenblatt] und [http://www.suessbrich.info/elek/elektherm1.html hier]&lt;br /&gt;
&lt;br /&gt;
Vorteile:&lt;br /&gt;
* hat auch ohne Kalibrierung eine Genauigkeit von einem Grad (bei 25°C)&lt;br /&gt;
* relativ billig (LM335 bei Reichelt ab 0,76&amp;amp;nbsp;€)&lt;br /&gt;
&lt;br /&gt;
Nachteile:&lt;br /&gt;
* benötigt A/D-Wandler&lt;br /&gt;
* bei längerer Anschlussleitung störanfällig&lt;br /&gt;
&lt;br /&gt;
Links:&lt;br /&gt;
* [http://www.schramm-software.de/tipps/temperaturmessung/analogsensoren.htm Test-Schaltungen und -Code zur Auswertung mit ADC (AVR-Assembler)]&lt;br /&gt;
&lt;br /&gt;
=== LM334 ===&lt;br /&gt;
&lt;br /&gt;
Ein IC ähnlich dem LM335 mit dem Unterschied, dass der durch das IC fließende Strom proportional von der Temperatur abhängt. Mit einer einfachen Schaltung aus nur zwei Widerständen kann man dann den Strom in einer Weise wandeln, dass pro Kelvin eine Spannungsänderung von 10mV ausgegeben wird. Da die Strom-Spannungswandlung auf der Platine (und damit nahe am AD-Wandler) stattfindet und die Übertragung des Messwerts durch einen Strom stattfindet, sind Störungen durch Netzbrumm etc. viel geringer als beim LM335&lt;br /&gt;
&lt;br /&gt;
Vorteile:&lt;br /&gt;
&amp;lt;!-- * hat auch ohne Kalibrierung eine Genauigkeit von einem Grad (bei 25°C) &lt;br /&gt;
Laut Datenblatt +-3°C&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
* relativ billig ([http://www.reichelt.de/?ARTICLE=10468 Reichelt 0,54 &amp;amp;euro;])&lt;br /&gt;
&lt;br /&gt;
Nachteile:&lt;br /&gt;
* benötigt A/D-Wandler&lt;br /&gt;
* Bereich 0°C-70°C&lt;br /&gt;
&lt;br /&gt;
Ähnliche ICs:&lt;br /&gt;
* AD592 (Ausgangsstrom 1µA pro Kelvin, absolute Temperatur) [http://www.reichelt.de/?ARTICLE=3825 Reichelt: 3,75 €], Conrad 174912 8,50 &amp;amp;euro;&lt;br /&gt;
&lt;br /&gt;
=== SMT160-30 ===&lt;br /&gt;
&lt;br /&gt;
Ist ein Zwischending zwischen Digital und Analog. Sein Ausgangssignal ist ein digitales PWM-Signal, zu dessen Messung man am besten den Input-Capture-Eingang eines Mikrocontrollers verwendet. Man kann ihn also wie einen analogen Sensor nur indirekt auslesen, anstatt über einen AD-Wandler hier über einen Timer.&lt;br /&gt;
&lt;br /&gt;
Vorteile:&lt;br /&gt;
* Digitales PWM-Signal ist unempfindlich gegen Störeinflüsse&lt;br /&gt;
* gibt es in SO8, TO18, TO92 und &amp;lt;b&amp;gt;TO220&amp;lt;/b&amp;gt;, gut befestigbar, z.B am Kühlkörper&lt;br /&gt;
* linear&lt;br /&gt;
* kein Abgleich nötig&lt;br /&gt;
&lt;br /&gt;
Nachteile (viele):&lt;br /&gt;
* benötigt Timer&lt;br /&gt;
* jittert extrem, genaue Messungen nur über Mittelung / Filterung möglich&lt;br /&gt;
* nicht nur das PWM-Verhältnis, sondern auf die Frequenz ist temp-abhängig (1-4kHz)&lt;br /&gt;
* teuer (Farnell 10,90&amp;amp;euro; +16%, Conrad 9,xx&amp;amp;euro; , www.hy-line.de ??).&lt;br /&gt;
* TO92 Gehäuse ist günstiger, dafür weniger genau&lt;br /&gt;
&lt;br /&gt;
Links:&lt;br /&gt;
* http://www.hy-line.de/co/sensor-tec/hersteller/smartec/smt-160-30/index.html&lt;br /&gt;
&lt;br /&gt;
=== Thermoelement ===&lt;br /&gt;
&lt;br /&gt;
Ein Thermoelement besteht im einfachsten Fall aus zwei ungleichen Metallendrähten, die an einem Punkt miteinander verbunden sind und bei dem die Verbindungsstelle einer anderen Temperatur ausgesetzt ist als die offenen Enden der Drähte. An den offenen Enden der Drähten entsteht eine Spannung (Thermospannung). Dieser Effekt wurde 1821 von Thomas Seebeck entdeckt ([http://de.wikipedia.org/wiki/Seebeck-Effekt Seebeck-Effekt] bei Wikipedia). Eine weitere Anwendung ist der thermoelektrische Generator (&amp;quot;Thermogenerator&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Vorteil:&lt;br /&gt;
* über einen sehr weiten Temperaturbereich einsetzbar&lt;br /&gt;
&lt;br /&gt;
Nachteil:&lt;br /&gt;
* die sehr geringen Temperaturspannungen im Mikrovoltbereich benötigen eine sehr gute Auswertelektronik (guter Analogteil + AD-Wandler).&lt;br /&gt;
&lt;br /&gt;
Links:&lt;br /&gt;
&amp;lt;!-- Der Link wird von NI umgebogen zur Homepage. Recherche nach dem Autor brachte nix hervor :-(&lt;br /&gt;
* [http://digital.ni.com/worldwide/germany.nsf/web/all/7A4F02BAEFEC22AC802567F6003E0D6E  Temperaturmessung mit Thermoelementen] - Eine Einführung von David Potter (deutsche Überarbeitung: G.Sinkovic) (inkl. Erläuterung der Kaltstellenkompensation) --&amp;gt;&lt;br /&gt;
* [http://www.sensorwell.at/fileadmin/templates/images/data_sheets/temperatur_messtechnik.pdf Warum Thermoelemente Relativtemperaturen messen! oder Was ist eine Kaltstelle?] - Technische Information von www.sensorwell.at (PDF, ca. 600kB)&lt;br /&gt;
&lt;br /&gt;
== Digitale Temperatursensoren ==&lt;br /&gt;
&lt;br /&gt;
=== DS1621 ===&lt;br /&gt;
&lt;br /&gt;
Der DS1621 ist Temperatursensor und A/D-Wandler in einem. Er gibt seine Daten per [[I²C]]-[[Bus]] aus. Ein Schaltplan für einen elektronischen Thermometer mit diesem IC findet sich [http://www.myplace.nu/avr/thermo/ hier].&lt;br /&gt;
&lt;br /&gt;
Vorteile:&lt;br /&gt;
* bereits kalibriert&lt;br /&gt;
* kein A/D-Wandler nötig&lt;br /&gt;
* da I²C ein Bus ist, kann man mehrere DS1621 und andere I²C-Bausteine zusammen anschließen und braucht dafür trotzdem nur zwei I/O-Ports.&lt;br /&gt;
* Messbereich -55°C to +125°C &lt;br /&gt;
* Genauigkeit +-0,5°C&lt;br /&gt;
* Auflösung besser 0,01°C, wenn man die beiden Zählerregister (Count-Remain und Count-per-C) auswertet&lt;br /&gt;
&lt;br /&gt;
Nachteile:&lt;br /&gt;
* teuer (Segor 5,80&amp;amp;euro;; RS 3,95&amp;amp;euro;; Conrad 5,22&amp;amp;euro;)&lt;br /&gt;
* obwohl die meisten Register [[Speicher#NVRAM | nichtflüchtig]] sind, kann man ihn nicht als Stand-Alone-Thermostat einsetzen, da er erst nach einem Start-Conversion-Befehl zu messen beginnt.&lt;br /&gt;
&lt;br /&gt;
Nachfolger:&lt;br /&gt;
* DS1631, DS1631A (Auto-Start-&amp;gt; Stand-Alone-Thermostat), DS1731&lt;br /&gt;
* weitere Stand-Alone-Thermostaten: DS1821, DS1629&lt;br /&gt;
&lt;br /&gt;
=== LM75 ===&lt;br /&gt;
&lt;br /&gt;
Der LM75 ist so ähnlich wie der DS1621, allerdings nur in SMD erhältlich und nicht so genau. Er ist aber öfters mal auf PC-Mainboards zu finden, so dass man beim Schlachten eines solchen günstig an einen Temperatursensor kommen kann. Eine Beispiel Schaltplan mit einem ATmega8 findet man [http://www.ucblog.de/2010/09/mikrocontroller-thermometer-schaltplan/ hier]&lt;br /&gt;
&lt;br /&gt;
Vorteile:&lt;br /&gt;
* bereits kalibriert&lt;br /&gt;
* kein A/D-Wandler nötig&lt;br /&gt;
* I²C-Bus Ausgang&lt;br /&gt;
* billiger als DS1621 (Reichelt 1,45 &amp;amp;euro;; RS 3V: 3,75&amp;amp;euro;; 5V: 2,72&amp;amp;euro;)&lt;br /&gt;
* Auflösung +-0,5°C&lt;br /&gt;
&lt;br /&gt;
Nachteile:&lt;br /&gt;
* nur im SMD-Gehäuse erhältlich&lt;br /&gt;
* relativ ungenau (+-2°C), kann man jedoch kalibrieren / kompensieren&lt;br /&gt;
&lt;br /&gt;
Kompatible Typen:&lt;br /&gt;
* AD7415ART&lt;br /&gt;
* DS7505S+&lt;br /&gt;
&lt;br /&gt;
=== LM76 ===&lt;br /&gt;
&lt;br /&gt;
Der LM76 ähnlich dem LM75, bietet aber eine 8-fach höhere Auflösung und eine Genauigkeit von 0.5 bzw. 1°C.&lt;br /&gt;
&lt;br /&gt;
Vorteile:&lt;br /&gt;
* höhere Auflösung&lt;br /&gt;
* höhere Genauigkeit&lt;br /&gt;
&lt;br /&gt;
Nachteil:&lt;br /&gt;
* schwerer zu beschaffen&lt;br /&gt;
&lt;br /&gt;
=== TMP175 / TMP75 ===&lt;br /&gt;
&lt;br /&gt;
Ähnelt dem LM75 stark! Temperatursensor von Texas Instruments.&lt;br /&gt;
&lt;br /&gt;
=== DS18S20 / DS18B20 ===&lt;br /&gt;
&lt;br /&gt;
Der DS18S20 (Nachfolger des DS1820) und DS18B20 sind scheinbar Temperatursensoren und A/D-Wandler in einem. Wenn man genauer hinschaut, stellt man fest, dass es sich um direktwandelnde Sensoren handelt. Die Temperatur wird ohne Umweg über eine analoge Zwischengröße (Spannung oder Strom) in ein digitales Signal überführt.&lt;br /&gt;
&lt;br /&gt;
Die Datenkommunikation erfolgt über ein 1-Wire-Interface, wodurch man am [[Mikrocontroller]] mit nur einem einzigen I/O-Pin auskommen kann. Außerdem beherrschen sie die parasitäre Stromversorgung, d.h., man braucht für Daten und Stromversorgung zusammen nur zwei Leitungen.&lt;br /&gt;
&lt;br /&gt;
Beim DS18B20 sind Auflösungen von 9, 10, 11 und 12 Bits konfigurierbar. Je kleiner die Auflösung, desto kürzer ist die Messzeit. Der DS18S20 hat eine feste Auflösung von 12 Bits, wobei die unteren 3 Bits aufwändiger auszuwerten sind als beim DS18B20. Der DS18S20 ist als Ersatz für den DS1820 gedacht. Der Hersteller empfiehlt den DS18B20 für Neuentwicklungen.&lt;br /&gt;
&lt;br /&gt;
Vorteile:&lt;br /&gt;
* bereits kalibriert&lt;br /&gt;
* Genauigkeit +-0,5°C&lt;br /&gt;
* 1-Wire-Ausgang&lt;br /&gt;
&lt;br /&gt;
Nachteil:&lt;br /&gt;
* relativ teuer: Reichelt: 2,50&amp;amp;euro; / CSD: 1,85&amp;amp;euro; / Conrad 5,08&amp;amp;euro;&lt;br /&gt;
&lt;br /&gt;
Links:&lt;br /&gt;
* [http://www.avr-projekte.de/ds18b20.htm Ein oder mehrere DS18B20 DS18S20 über Romcode einlesen. AVR-Assembler]&lt;br /&gt;
* [http://pic-projekte.de/wiki/index.php?title=Ansteuerung_eines_DS18S20 Ansteuern eines DS18S20 in C (PIC)]&lt;br /&gt;
* [http://pdfserv.maxim-ic.com/en/ds/DS18S20.pdf Datenblatt DS18S20] &lt;br /&gt;
* [http://pdfserv.maxim-ic.com/en/ds/DS18B20.pdf Datenblatt DS18B20]&lt;br /&gt;
* [http://www.maxim-ic.com/app-notes/index.mvp/id/4377 Vergleich DS18B20 &amp;lt;-&amp;gt; DS18S20]&lt;br /&gt;
* [http://www.mikrocontroller.net/topic/6505 Code zur Ansteuerung (ASM ATTiny12)]&lt;br /&gt;
* [http://www.mikrocontroller.net/topic/14792 Code zur Ansteuerung (AVR-GCC)]&lt;br /&gt;
* [http://gandalf.arubi.uni-kl.de/avr_projects/tempsensor/ Code zur Ansteuerung mit CRC-Prüfung (AVR-GCC)]&lt;br /&gt;
* [http://www.schramm-software.de/tipps/temperaturmessung/digitalsensoren.htm Code zur Ansteuerung mit CRC-Prüfung (AVR-Assembler)]&lt;br /&gt;
* [http://chaokhun.kmitl.ac.th/~kswichit/avrthermo/avrthermo.html LED-Thermometer mit AT90S2313 (C)]&lt;br /&gt;
* [http://www.mikrocontroller.net/forum/read-4-248219.html Webserver zur Ansteuerung von bis zu 63 Bausteinen]&lt;br /&gt;
* [http://www.teslabs.com/openplayer/docs/docs/other/ds18b20_pre1.pdf PDF Anleitung zur Beschaltung und Programmierung (C)]&lt;br /&gt;
*[http://www.digitemp.com/building.shtml Anleitung Sensorfühleraufbau (DigiTemp)]&lt;br /&gt;
* http://www.mikrocontroller.net/topic/14792 &lt;br /&gt;
* http://www.mikrocontroller.net/topic/232156 (Timing der parasitären Versorgung)&lt;br /&gt;
&lt;br /&gt;
=== DS1822 ===&lt;br /&gt;
&lt;br /&gt;
Ähnlich wie DS18S20, aber weniger genau (+-2°) und in großen Stückzahlen billiger. Wegen der geringeren Verbreitung kommt der Preisvorteil aber bei Einzelstücken nicht beim Kunden an. So kostet er bei Reichelt mit 3,50&amp;amp;euro; mehr als der DS18S20.&lt;br /&gt;
&lt;br /&gt;
=== DS1921 / DS1922 ===&lt;br /&gt;
&lt;br /&gt;
Sind wie die DS1821 1-wire-Sensoren mit zusätzlicher Logging-Funktion.&lt;br /&gt;
Im iButton-Gehäuse befindet sich eine Lithium-Zelle, eine RTC, CMOS-RAM und der Temp-Sensor. Nach umfangreicher Progammierung startet der Button seine Mission (Aufzeichnung des Temperaturverlaufs).&lt;br /&gt;
Gibt es auch mit zusätzlicher Feuchtemessung (DS1923).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== TSic ===&lt;br /&gt;
&lt;br /&gt;
Die TSic Sensoren werden baugleich von 3 Herstellern angeboten:&lt;br /&gt;
* ZMD ([http://www.zmd.biz/temp.php?group=temp&amp;amp;content=products Homepage]) ([http://tarr.uspto.gov/servlet/tarr?regser=serial&amp;amp;entry=78673282 Trademark])&lt;br /&gt;
* IST AG ([http://www.ist-ag.com/eh/ist-ag/de/home.nsf/contentview/8F5D32432CAC53C2C1257405003C2433 Homepage])&lt;br /&gt;
* Hygrosens ([http://www.hygrosens.de/english/shop/list.html?tx_ttproducts_pi1%5Bcat%5D=11&amp;amp;cHash=dcd89b823b Homepage])&lt;br /&gt;
&lt;br /&gt;
Die TSic Sensoren ([http://www.zmd.biz/pdf/ZMD%20TSic%20Data%20Sheet%20V3%207.pdf Datenblatt]) geben ihre Temperaturmessdaten automatisch in einem festen Intervall aus. Daher muss der Host nur warten bis die nächsten Messdaten rausgeschickt werden. Die TSic Sensoren die es im freien Handel gibt, geben ihre Messdaten alle 100ms (10Hz) aus. &lt;br /&gt;
Zur Übertragung wird das [http://www.zmd.biz/pdf/IST_TSic_ZACwire_V2.3%20Digital%20Output_17-Oct-06.pdf ZACwire] Protokoll benutzt. Es handelt sich um eine einfach zwei Byte Übertragung per Manchester-Code. Diese zwei Byte repräsentieren den digital gewandelten Temperaturwert. Im Gegensatz zu Sensoren wie den DS18xxx von Dallas muss dieser Wert aber erst auf einen dezimalen Wert umgerechnet werden. &lt;br /&gt;
Die Sensoren kommen mit 3 Pins aus (VCC, GND, Dout).&lt;br /&gt;
&lt;br /&gt;
Vorteile:&lt;br /&gt;
* Bereits kalibriert&lt;br /&gt;
* Verschiedene Genauigkeiten lieferbar&lt;br /&gt;
* Sehr einfaches Kommunikationsprotokoll&lt;br /&gt;
* Geringer Stromverbrauch&lt;br /&gt;
* Hochgenau: bis zu +/- 0.1°C (TSic 50x)&lt;br /&gt;
&lt;br /&gt;
Nachteil:&lt;br /&gt;
* Recht teuer (Reichelt: 4,70&amp;amp;euro; für den TSic206)&lt;br /&gt;
* Nur ein Sensor an einem I/O nutzbar (Kein Bussystem)&lt;br /&gt;
&lt;br /&gt;
Achtung! &lt;br /&gt;
Die TSic Sensoren gibt es auch als Version mit analog Ausgang. Bei der Typenbezeichnung gibt die 3. Stelle an ob es sich um die analog- oder Digitalversion handelt (1 = analog, 6 = digital). &lt;br /&gt;
Der TSic201 ist also analog, wärend der TSic206 ein digitaler ist.&lt;br /&gt;
&lt;br /&gt;
Links:&lt;br /&gt;
* [http://www.loetstelle.net/projekte2/tsic306/tsic306.php GCC AtMega8 Interruptgesteuerte Statemachine für TSIC206/306]&lt;br /&gt;
* [http://www.avr-projekte.de/zacwireasm.htm Zacwire Protokoll, AVR-Assembler]&lt;br /&gt;
* [http://www.mikrocontroller.net/topic/45573#347765 Ansatz zum Empfang der Daten]&lt;br /&gt;
* [http://www.mikrocontroller.net/topic/225554# Beispiel mit Strobe ohne Interrupt]&lt;br /&gt;
* [http://ethersex.de/index.php/Zacwire Fertige Ansteuerung durch AVR in Ethersex]&lt;br /&gt;
* [http://www.zmd.biz/temp.php?group=temp&amp;amp;content=products Herstellerseite mit Datenblättern und FAQ]&lt;br /&gt;
* [http://www.mikrocontroller.net/topic/82087 Diskussion mit Beispielcode (MSP430, AVR, PIC) blockierend]&lt;br /&gt;
* [http://www.mikrocontroller.net/topic/144424#1367539 C++ Interrupt]&lt;br /&gt;
* [http://www.mikrocontroller.net/topic/88847 noch mehr C, problematisch Interrupt]&lt;br /&gt;
* [http://www.mikrocontroller.net/topic/151791#1426974 C für ATmega8]&lt;br /&gt;
* [http://www.mikrocontroller.net/topic/159149#1510455 auch problematisch]&lt;br /&gt;
* [http://www.sinc.sunysb.edu/Stu/maman/ESE_381.htm Projekt mit tsic sensor, evtl. code]&lt;br /&gt;
* [http://www.mikrocontroller.net/topic/188462#1837622 fertiger Code zum Einlesen des Zacwire-Protokolls für PIC in ASM]&lt;br /&gt;
* [http://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=55103 RN: Bascom]&lt;br /&gt;
* [http://www.mikrocontroller.net/search?query=tsic* Suche in den Foren]&lt;br /&gt;
* [http://www.avr-projekte.de/tinyclock.htm TSIC206 Thermometer mit Uhr und Kalender. Komplette Bauanleitung mit ASM Quellcode für AT-Tiny2313]&lt;br /&gt;
&lt;br /&gt;
=== SHT1x/SHT7x ===&lt;br /&gt;
&lt;br /&gt;
Der SHT1x/SHT7x (SHT10, SHT11, SHT15, STH71, SHT75) sind kombinierte Temperatur- und Feuchtesensoren von [http://www.sensirion.com Sensirion]. Sie unterscheiden sich in Bauform und Genauigkeit.&lt;br /&gt;
&lt;br /&gt;
Vorteile:&lt;br /&gt;
* digitale Schnittstelle mit einfacher [[I²C]]-&#039;&#039;ähnlicher&#039;&#039; Ansteuerung&lt;br /&gt;
* keine Kalibrierung notwendig&lt;br /&gt;
* Beispielcode (C, MC51) auf der Sensirion-Seite verfügbar (relativ leicht portierbar)&lt;br /&gt;
* interne Heizelemente (Funktionsprüfung, &amp;quot;raue&amp;quot; Umgebung)&lt;br /&gt;
* Spannungsmonitor (&amp;quot;Battery fail&amp;quot;)&lt;br /&gt;
* sehr hohe Genauigkeit&lt;br /&gt;
&lt;br /&gt;
Nachteile:&lt;br /&gt;
* kann nicht am [[I²C]] Bus betrieben werden, theoretisch gleiche Clockleitung möglich, fixe Adresse&lt;br /&gt;
* relativ teuer (Farnell 18,60&amp;amp;euro;)(SHT11 bei CSD 14€)&lt;br /&gt;
&lt;br /&gt;
[http://www.sensirion.com/en/01_humidity_sensors/00_humidity_sensors.htm Übersicht] der Temperatur- /Feutchtigkeitssensoren von Sensirion.&lt;br /&gt;
&lt;br /&gt;
=== SHT21 ===&lt;br /&gt;
&lt;br /&gt;
[http://www.sensirion.com Sensirion] bietet auch den SHT21 Feuchtigkeits- und Temperatursensor an, welcher wesentlich genauer ist.&lt;br /&gt;
    &lt;br /&gt;
Vorteile:&lt;br /&gt;
* I2C digital, PWM and SDM/analog Volt Ausgabe&lt;br /&gt;
* Maximal 5 Messungen/s @ 14bit&lt;br /&gt;
* Temperaturbereich von -40 – +125°C&lt;br /&gt;
* Feuchtigkeit mit einer Genauigkeit von +-3%RH&lt;br /&gt;
&lt;br /&gt;
Nachteile:&lt;br /&gt;
*  teuer (Farnell 23 €, Segor 29 €)&lt;br /&gt;
* nur als SMD-Package&lt;br /&gt;
&lt;br /&gt;
Application Notes und Datenblätter findet man [http://www.sensirion.com/en/01_humidity_sensors/10_Overview.htm hier].&lt;br /&gt;
&lt;br /&gt;
=== ADT7310 ===&lt;br /&gt;
&lt;br /&gt;
Der [http://www.analog.com/en/sensors/digital-temperature-sensors/adt7310/products/product.html ADT7310] von [http://www.analog.com/ Analog Devices] besitzt eine Auflösung von 16 Bit und eine Genauigkeit von ±0.5°C im Bereich von −40°C bis +105°C.&lt;br /&gt;
&lt;br /&gt;
Vorteile:&lt;br /&gt;
* Ansteuerung per [[SPI]] (für [[I2C]] siehe [http://www.analog.com/en/sensors/digital-temperature-sensors/adt7410/products/product.html ADT7410])&lt;br /&gt;
* keine Kalibrierung notwendig&lt;br /&gt;
* hohe [[Auflösung und Genauigkeit]]&lt;br /&gt;
* programmierbarer [[Interrupt]]ausgang für Unter- und Übertemperatur&lt;br /&gt;
* relativ günstig (ca. 3€ bei Digi-Key, Stand 12/2011)&lt;br /&gt;
&lt;br /&gt;
Nachteile:&lt;br /&gt;
* TBD&lt;br /&gt;
&lt;br /&gt;
=== SE95 ===&lt;br /&gt;
&lt;br /&gt;
Der [http://www.nxp.com/documents/data_sheet/SE95.pdf SE95] von NXP hat 13 Bit Auflösung, Genauigkeit ±2°C im Messbereich von -55°C bis +125°C, I²C, Gehäuse SO8 und TSSOP8. Einzelstück-Preis bei Segor 1,50€ (2012/I)&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Sensorik]]&lt;/div&gt;</summary>
		<author><name>Sam1994</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Diskussion:Elektronikversender&amp;diff=67611</id>
		<title>Diskussion:Elektronikversender</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Diskussion:Elektronikversender&amp;diff=67611"/>
		<updated>2012-07-31T21:48:16Z</updated>

		<summary type="html">&lt;p&gt;Sam1994: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;kurze Suche zum Vergleich reichelt.de/digikey mit atmega8 und atmega162: digikey ist nur noch unwesentlich falls ueberhaupt guenstiger&lt;br /&gt;
&lt;br /&gt;
bitte eigene erfahrungen entweder gleich in die eintraege mitverarbeiten oder auf die diskussionsseite schreiben - danke.&lt;br /&gt;
&lt;br /&gt;
konkreter anlass schuricht: auf der website steht, dass er durchaus auch an private liefert, nur die gedruckten kataloge gibt es nur fuer gewerbe/schulen etc. stimmt das so? bitte um hinweise und entsprechende bearbeitung - danke! :)&lt;br /&gt;
--[[Benutzer:80.108.115.184|80.108.115.184]] 00:29, 25. Jul 2005 (CEST)&lt;br /&gt;
&lt;br /&gt;
ad Tec-Shop (Wolfgang Rompel Elektronik): im webshop finde ich als einziges produkt einen attiny15. wenn das wirklich so ist (also nicht an meinem browser liegt), wuerde ich diesen &amp;quot;shop&amp;quot; entfernen. wenn es an meinem browser liegt, wuerde ich das dazu vermerken. ich bitte Euch also das kurz auszuprobieren, ob Ihr auch nur ein produkt seht. danke! --[[Benutzer:80.108.115.184|80.108.115.184]] 22:02, 26. Aug 2005 (CEST)&lt;br /&gt;
&lt;br /&gt;
hier - http://www.almeder.at/~calm/elt/distrib.htm - gibt es auch eine liste, nicht nur mit versendern, sondern geschaeften insgesamt.&lt;br /&gt;
&lt;br /&gt;
bzgl. eltrix: ich habe den link ganz bewußt so abgeaendert, dass er direkt auf den shop zeigt. IMO geht es auf dieser seite um versender/shop, nicht um persoenliche bastel-homepages und die kinder des geschaeftsfuehrers.&lt;br /&gt;
&lt;br /&gt;
Wenn man bei Pollin als gewünschte Stückzahl für einen Artikel eine sehr große Zahl (z.B. 99999999) eingibt, wird sie beim Übernehmen der Änderungen automatisch auf die noch vorhandene Stückzahl des Artikels reduziert. -- [[Benutzer:79.240.65.8|79.240.65.8]] 17:08, 16. Sep. 2009 (CEST)&lt;br /&gt;
&lt;br /&gt;
Bei csd-electronics ist entgegen der Angaben keine Bestellung auf Rechnung oder mit Kreditkarte für Bestandskunden mehr möglich (neues Shop-System). Nur noch PayPal, Nachnahme und Vorkasse werden angeboten. Außerdem sollte man die gelieferten Mengen stets überprüfen. Bei mehreren Lieferungen in Folge waren bei größeren Stückzahlen Mindermengen zu verzeichnen. Teilweise von bis zu 10% bei bis zu 20% aller Positionen einer Lieferung. Fehlende Ware wurde früher nach Reklamation anstandslos nachgeliefert, in letzter Zeit wird aber häufig auf E-Mails mit Reklamationen nicht mehr reagiert. -- [[Benutzer:volkeru]] 19:25, 12. Mai 2012 (CEST)&lt;br /&gt;
&lt;br /&gt;
Aufnehmen von Ebay-Shops in die Versenderliste?&lt;br /&gt;
&lt;br /&gt;
Ich wollte Ebay-Shops in die Liste (vlt. mit eigenem Unterpunkt) eingliedern, vorher frag ich aber lieber nochmal nach...&lt;br /&gt;
&lt;br /&gt;
* betr. Kessler Elektronik *&lt;br /&gt;
Linkadresse falsch geschrieben. Es sollte &amp;quot;electronic&amp;quot; heißen statt &amp;quot;elektronik&amp;quot;, also: www.kessler-electronic.de&lt;br /&gt;
&lt;br /&gt;
Ähnlich bei HN Electronic Components GmbH &amp;amp; Co. KG&lt;br /&gt;
aktuelle Adresse&lt;br /&gt;
&lt;br /&gt;
netzteilshop.com&lt;br /&gt;
&lt;br /&gt;
Cheers!&lt;br /&gt;
Simon&lt;br /&gt;
*&lt;/div&gt;</summary>
		<author><name>Sam1994</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Elektronikversender&amp;diff=67610</id>
		<title>Elektronikversender</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Elektronikversender&amp;diff=67610"/>
		<updated>2012-07-31T21:47:23Z</updated>

		<summary type="html">&lt;p&gt;Sam1994: /* Voelkner */ Preis aktualisiert&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Die Vor- und Nachteile von verschiedenen Elektronik-Versand-Händlern werden relativ häufig im Forum diskutiert. Diese Diskussionen führen nicht selten zu weitestgehend gleichen Ergebnissen. In diesem Artikel sollen daher die Argumente, die für oder gegen einen bestimmten Elektronik-Versender sprechen, zusammengetragen werden. Sobald diese Liste einigermaßen vollständig ist, würde dies sicher einige Diskussions-Threads und/oder Flame-Wars überflüssig machen.&lt;br /&gt;
&lt;br /&gt;
Diese Liste erhebt keinerlei Anspruch auf Vollständigkeit, d.h. wenn ihr einen Versender kennt, der hier noch nicht aufgeführt ist, dann nennt wenigstens die URL und den Namen. Den Rest können auch andere besorgen, die den Versender ebenfalls kennen!&lt;br /&gt;
&lt;br /&gt;
Bitte ergänzt nur allgemeine Sachen (z.&amp;amp;nbsp;B. &amp;quot;liefert immer vollständig&amp;quot;, &amp;quot;günstig&amp;quot; oder &amp;quot;große Auswahl&amp;quot;), aber nicht Sachen wie &amp;quot;mein ATMega 128 hatte verbogene Beine&amp;quot;! Bitte auch die alphabetische Sortierung beibehalten!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Diese Seite kann nur von angemeldeten Benutzern bearbeitet werden!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Liste der Versender ==&lt;br /&gt;
&lt;br /&gt;
=== AATiS ===&lt;br /&gt;
Homepage: http://www.aatis.de&lt;br /&gt;
&lt;br /&gt;
* Arbeitskreis Amateurfunk und Technik in der Schule e.V.&lt;br /&gt;
* Bausätze speziell auch für Elektronik-Anfänger, Schüler&lt;br /&gt;
* Literatur, Seminare für Lehrer &lt;br /&gt;
&lt;br /&gt;
=== Actron ===&lt;br /&gt;
Homepage: http://www.actron.de&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;kein&#039;&#039;&#039; Online-Shop!&lt;br /&gt;
* alphanumerische LCDs und Graphikdisplays in großer Auswahl, auch mit Touchscreens&lt;br /&gt;
* für gewerbliche Kunden: etwas verhandeln schadet nie&lt;br /&gt;
* bei kleinen Stückzahlen nicht ganz billig&lt;br /&gt;
* liefern sehr schnell und stets zuverlässig&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=== Adapterprofi ===&lt;br /&gt;
Homepage: http://www.adapterprofi.de&lt;br /&gt;
&lt;br /&gt;
* Bauteile, Gehäuse, Netzteile&lt;br /&gt;
* Viele unterschiedliche HF-Adapter&lt;br /&gt;
* Seite aktuell nicht erreichbar (10.12.2011) ist wohl tot&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== AK Modul Bus Computer GmbH ===&lt;br /&gt;
Homepage: http://www.ak-modul-bus.com/stat/produkte.html&lt;br /&gt;
&lt;br /&gt;
* Interfaces, Messmodule, Funktionsmodelle, Experimentiersysteme&lt;br /&gt;
* Entwicklungssysteme, Baugruppen, Elektor, Zubehör, Bauelemente&lt;br /&gt;
* Software, Lernpakete, Bücher, Sonderposten&lt;br /&gt;
&lt;br /&gt;
=== Allpax ===&lt;br /&gt;
Homepage: http://www.allpax.de&lt;br /&gt;
&lt;br /&gt;
* Liefert auch an Privathaushalte&lt;br /&gt;
* Keine Elektronik an sich, aber ggf. nützliches Zubehör: Größeres, übersichtliches Sortiment an ESD-Beuteln und -Folien, offen und mit Zippverschluss, Pink Poly und Metallisiert (High Shield). Preislich über Farnell, dafür findet man sofort, was man sucht...&lt;br /&gt;
* außerdem Ultraschallreiniger, Waagen und Folienschweißgeräte, sowie viel Fachfremdes&lt;br /&gt;
* Versandkosten: 8,33€ nach Deutschland, diverse EU-Länder 17,85€, Schweiz 34,51€; Versandkostenfrei in D ab 178,50€&lt;br /&gt;
* Gewährt scheinbar auch Privatkunden die Zahlung per Rechnung; bei Bankeinzug 2% Rabatt, bei Vorkasse und Abholung 3%&lt;br /&gt;
&lt;br /&gt;
=== AME-Engineering ===&lt;br /&gt;
Homepage: http://www.ame-engineering.de&lt;br /&gt;
&lt;br /&gt;
* Hochfrequenz-Spezialitäten, Amateurfunk&lt;br /&gt;
&lt;br /&gt;
=== Amidon ===&lt;br /&gt;
Homepage: http://www.amidon.de&lt;br /&gt;
&lt;br /&gt;
* Sehr großes Sortiment, vorallem für seltene Bauteile, z.&amp;amp;nbsp;B. Dioden&lt;br /&gt;
&lt;br /&gt;
=== Andy&#039;s Funkladen ===&lt;br /&gt;
Homepage: http://www.andyfunk.de&lt;br /&gt;
&lt;br /&gt;
* Alles für Amateur- und CB-Funk&lt;br /&gt;
* Bauteile und Gehäuse&lt;br /&gt;
&lt;br /&gt;
=== Anvilex ===&lt;br /&gt;
Homepage: http://shop.anvilex.com/index.html&lt;br /&gt;
&lt;br /&gt;
* Liefert sehr günstige Break-Out Boards für diverse Packages&lt;br /&gt;
* Hat einige einfache und günstige Programmer auch für FPGAs etc&lt;br /&gt;
&lt;br /&gt;
=== Atlantis Shop 24 ===&lt;br /&gt;
Homepage: http://www.atlantis-shop24.de&lt;br /&gt;
&lt;br /&gt;
* Elektronik nur ein kleiner Teil des Angebotes. Ansonsten eher Drogerie bzw. Haushaltsbedarf&lt;br /&gt;
&lt;br /&gt;
=== Atzert-Elektronik Versand ===&lt;br /&gt;
Homepage: http://www.atzert-elektronik.de&lt;br /&gt;
&lt;br /&gt;
Früher &#039;&#039;EFB-Electronic Versand&#039;&#039;, davor &#039;&#039;MEGAKICK Electronic Stores&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* Mindestens schon der dritte Name und die dritte Webseite für den Endkunden-Versand von [[Elektronikversender#ETT|ETT]]. ETT liefert sonst nur an gewerbliche Kunden.&lt;br /&gt;
* Ladengeschäfte in Bielefeld, Braunschweig, Bremen, Hamburg und Berlin. &lt;br /&gt;
* Die Preise schwanken im Vergleich zu anderen Anbietern, welche ebenfalls ETT-importierte Produkte führen, mal nach oben, mal nach unten.&lt;br /&gt;
&lt;br /&gt;
=== Bassenberg Elektronik ===&lt;br /&gt;
Homepage: http://www.bassenberg.de&lt;br /&gt;
&lt;br /&gt;
* Ladengeschäfte in Braunschweig und Neumünster&lt;br /&gt;
* Beschafft auch nicht mehr gelistete und abgekündigte Bauteile&lt;br /&gt;
* Liefert auch an Privat&lt;br /&gt;
&lt;br /&gt;
=== Batronix ===&lt;br /&gt;
Homepage: http://www.batronix.com&lt;br /&gt;
* Grosses Sortiment an Geräten&lt;br /&gt;
* Bausätze für Microcontroller-Applikationen&lt;br /&gt;
* Liefert auch an Privat&lt;br /&gt;
&lt;br /&gt;
=== BAZ Spezialantennen ===&lt;br /&gt;
Homepage: http://www.spezialantennen.de&lt;br /&gt;
&lt;br /&gt;
* Antennen für Amateurfunk, ISM, WLAN usw.&lt;br /&gt;
&lt;br /&gt;
=== bed - elektronik ===&lt;br /&gt;
Homepage: http://www.bed-elektronik.de&lt;br /&gt;
&lt;br /&gt;
* Restposten aktive und passive Bauelemente&lt;br /&gt;
* sehr günstige Preise&lt;br /&gt;
* alles ab Lager lieferbar&lt;br /&gt;
* Versand an Privat&lt;br /&gt;
* ab 60 EUR versandkostenfrei&lt;br /&gt;
&lt;br /&gt;
=== Bfi-Optilas ===&lt;br /&gt;
Homepage: http://www.bfioptilas.de&lt;br /&gt;
&lt;br /&gt;
* Kein Onlineshop&lt;br /&gt;
* spezialisierter Distributor für Hochfrequenzhalbleiter und Optik&lt;br /&gt;
&lt;br /&gt;
=== BG-Electronics.de ===&lt;br /&gt;
Homepage: http://www.bg-electronics.de&lt;br /&gt;
&lt;br /&gt;
* Online Shop für aktive und passive elektronische Bauelememte&lt;br /&gt;
* günstige Preise&lt;br /&gt;
* alle Artikel ab Lager lieferbar, daher kurze Wartezeiten&lt;br /&gt;
* weltweiter Versand&lt;br /&gt;
* zahlreiche Mengenrabatte&lt;br /&gt;
* viele Ersatzteile aus dem Audio-, CarHiFi und TV-Bereich&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=== B &amp;amp; M electronics ===&lt;br /&gt;
Homepage: http://www.bmelectronics.de&lt;br /&gt;
&lt;br /&gt;
* Bauteile, Platinen und Baugruppen für Amateurfunk&lt;br /&gt;
Seite nicht erreichbar am 22.7.2012 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Box73 ===&lt;br /&gt;
Homepage: http://www.box73.de&lt;br /&gt;
&lt;br /&gt;
Onlineshop des Funkamateur.&lt;br /&gt;
&lt;br /&gt;
* Bauteile, Bausätze, Literatur aus dem Amateurfunkbereich&lt;br /&gt;
* Preise sind O.K.&lt;br /&gt;
* Bestellungen werden nur Di und Do bearbeitet&lt;br /&gt;
* Ab 50 EUR bei Bankeinzug portofrei.&lt;br /&gt;
&lt;br /&gt;
=== Bürklin OHG ===&lt;br /&gt;
Homepage: http://www.buerklin.com&lt;br /&gt;
&lt;br /&gt;
* große Auswahl, hohe Verfügbarkeit&lt;br /&gt;
* sehr schneller Versand&lt;br /&gt;
* Ladengeschäft in Oberhaching (südlicher Landkreis München)&lt;br /&gt;
* &amp;lt;s&amp;gt;nur an gewerbliche Abnehmer (lt. AGB), private Abnehmer können dennoch im Ladengeschäft einkaufen&amp;lt;br&amp;gt;Angeblich versendet Bürklin seit November 2010 auch an Privatpersonen. Allerdings verlangt Bürklin weiterhin in Adressformularen die Eingabe eines Firmennamens &amp;lt;br&amp;gt;Geben Sie einen Wert in das Feld &amp;quot;Firma&amp;quot; ein.&amp;lt;br&amp;gt;Daher ist diese Information eher mit Vorsicht zu genießen.&amp;lt;/s&amp;gt;&amp;lt;br&amp;gt;Mittlerweile muss man auch keinen Firmennamen mehr eingeben. Die AGB wurde ebenfalls angepasst.&lt;br /&gt;
* 35 EUR Mindestbestellwert (incl. MwSt), darunter 7 EUR Bearbeitungskosten&lt;br /&gt;
&lt;br /&gt;
=== CBsoft, s.r.o. (ltd.) ===&lt;br /&gt;
*Homepage: http://www.jjtubes.eu/&lt;br /&gt;
* Firma in der Slowakei&lt;br /&gt;
* Verkauft Röhren der Firma JJ&lt;br /&gt;
* englischsprachig&lt;br /&gt;
* Zahlungsmöglichkeiten in € mit Paypal und Kreditkarte&lt;br /&gt;
&lt;br /&gt;
=== chiptrade.com ===&lt;br /&gt;
siehe [[#SE Spezial-Electronic AG|SE Spezial-Electronic AG]]&lt;br /&gt;
&lt;br /&gt;
=== ConeleK Electronic ===&lt;br /&gt;
Homepage: http://www.conelek.com&lt;br /&gt;
&lt;br /&gt;
* Sehr kleines Bauteileangebot (Röhren, Röhrensockel)&lt;br /&gt;
* Elektronik-Laborbedarf, insbesondere Nachfüllpackungen mit Steckbrett-Drahtbrücken&lt;br /&gt;
* Werkzeug für Elektronik&lt;br /&gt;
* Stromversorgungen&lt;br /&gt;
* Versand an Privat&lt;br /&gt;
* Versandkosten bis 25kg, Vorkasse 5,90€ (Stand 04/2008)&lt;br /&gt;
&lt;br /&gt;
=== Conrad ===&lt;br /&gt;
Homepage: http://www.conrad.de und http://www.business.conrad.de&lt;br /&gt;
&lt;br /&gt;
* großes Angebot (für Bauteile den &amp;quot;Business&amp;quot;-Katalog beachten, der Hauptkatalog ist dahingehend etwas &amp;quot;dünn&amp;quot;) (Anm.: Bauteile, die nur im Business-Katalog aufgeführt sind, sind in Ladengeschäften nur über Sonderbestellung zu bekommen, d.h. dort in aller Regel nicht vorrätig.)&lt;br /&gt;
* Positiv: Wirklich jedes Bauteil kann einzeln gekauft werden und wird nicht in dämlichen Verpackungseinheiten verkauft, so wie es bei den meisten anderen Elektronik-Lieferanten der Fall ist. Dies ist vor Allem für den Prototypenbau sehr hilfreich.&lt;br /&gt;
* relativ teuer jedoch bis zu 10% Rabatt für Schulen (bei genügend Umsatz)&lt;br /&gt;
* 21 Ladengeschäfte in Deutschland, fünf in Österreich&lt;br /&gt;
* positiv: Bei Business-Kunden wird der Rechnungsbetrag erst nach 14 Tagen abgebucht.&lt;br /&gt;
* haben einen (teuren) 24 Std. Lieferservice für Notfälle - Conrad garantiert aber nicht 100%ig für die Einhaltung der 24 Stunden. Bei Nichteinhaltung gibt es kein Geld zurück.&lt;br /&gt;
* Verfügbarkeit in Filialen kann Online überprüft werden.&lt;br /&gt;
* Verfügbarkeit in Filialen kann über zentale Rufnummer erfragt werden. Abholung bestellter Ware in Filialen möglich, aber trotzdem gleiche Versandkosten.&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
Vorerst Auskommentiert - Subjektiv/Einzelerfahrung, veraltete Informationen (Filialen)&lt;br /&gt;
* Mit jeder Bestellung erhält man zusätzlich Werbung von unseriösen Firmen, wo Gewinne versprochen werden und man sich in Wirklichkeit für irgendwelche Abos verpflichtet. Wenn man bei Conrad anruft und sie zur Rede stellt, erhält man die Antwort, dass diese Werbung anscheinend aus Versehen hineingerutscht ist. So ein Zufall.&lt;br /&gt;
* sehr kulant bei Umtäuschen&lt;br /&gt;
* versuchen bei Rückgaben einen Teil oder den gesamten Betrag einzubehalten (schon mehrfach vorgekommen)&lt;br /&gt;
* Schlampig verpackte Artikel. ICs sind nicht Antistatik-Konform verpackt.&lt;br /&gt;
* Die Filiale München / Tal hat keine Telefonnummer mehr in den Verzeichnissen, anscheinend sind Kundenanfragen dort zu &amp;quot;lästig&amp;quot;. (Kommentar: andere Filialen auch nicht, wird nur noch über eine Sammelnummer über ein Callcenter abgewickelt. Die Ladenbestellung wird dann vom Callcenter per eMail an die Filiale weitergeleitet.)&lt;br /&gt;
* die Ladengeschäfte haben nicht das gesamte Programm vor Ort, man kann jedoch in den Geschäften anrufen und die Verfügbarkeit anfragen, evtl. sogar Teile für ein paar Stunden &amp;quot;zurücklegen lassen&amp;quot; (von Geschäft zu Geschäft verschieden).&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== csd-electronics ===&lt;br /&gt;
Homepage: [http://www.csd-electronics.de csd-electronics.de]&lt;br /&gt;
&lt;br /&gt;
* ATMEL, ICs, Passive und Mechanische Bauteile, Platinen- und Lötzubehör, u.a.&lt;br /&gt;
* ca. 4000 Bauteile lagernd&lt;br /&gt;
* günstig&lt;br /&gt;
* Mengenrabatte für fast jedes Produkt&lt;br /&gt;
* Versand innerhalb Deutschlands: &lt;br /&gt;
* DPD: 3,75€ (ab 50 EUR versandkostenfrei)&lt;br /&gt;
* DHL: 4,50€ (ab 100 EUR versandkostenfrei)&lt;br /&gt;
* Versand EU-weit ab 5,95 EUR&lt;br /&gt;
* kein Mindestbestellwert&lt;br /&gt;
* schnelle Lieferung, sofern die Artikel auf Lager sind, versandkostenfreie Nachlieferung&lt;br /&gt;
* Bauelemente, die nicht im Shop angeboten werden, können auf Anfrage beschafft werden.&lt;br /&gt;
* Zahlung per Vorkasse (2% Skonto), PayPal, Nachnahme. 1 EUR Aufschlag bei PayPal-Zahlung&lt;br /&gt;
* Zahlung per Bankabbuchung, Kreditkarte oder Rechnung nur für Stammkunden (ab 4 bis 5 Bestellung), Für Institute/Firmen direkt auf Rechnung möglich&lt;br /&gt;
* haben ein Forum, in dem man sich zu Sammelbestellungen organisieren kann und auch allgemeine Fragen stellen kann -zur Zeit (05/2008) offline-&lt;br /&gt;
&lt;br /&gt;
=== dad24 ===&lt;br /&gt;
Homepage, Shop: http://dad24.eu&lt;br /&gt;
E-Bay Shop:     http://stores.ebay.de/Shop-dad24&lt;br /&gt;
&lt;br /&gt;
* Unterschiedliche Preise in den beiden Shops&lt;br /&gt;
* Kleiner, nicht sonderlich schöner Onlineshop (dad24.eu)&lt;br /&gt;
* Kleines Angebot. Lupenleuchten, Lötstationen, Labornetzgeräte, Messgeräte, etc. aus dem unteren Preissegment&lt;br /&gt;
* Jede Woche eine neue &amp;quot;Kategorie der Woche&amp;quot; auf dad24.eu. Produkte aus der Kategorie werden erst im Warenkorb mit einem Rabatt angezeigt, der auch gewährt wird.&lt;br /&gt;
&lt;br /&gt;
=== Darisus ===&lt;br /&gt;
Homepage: http://www.darisus.de&lt;br /&gt;
&lt;br /&gt;
* kompetente Beratung&lt;br /&gt;
* liefert sehr zuverlässig, in Notfällen auch Express&lt;br /&gt;
* Versand innerhalb Deutschlands ab 4,50 EUR&lt;br /&gt;
* Hat auch eine gute Auswahl an CPLDs und einige FPGAs diverser Hersteller&lt;br /&gt;
&lt;br /&gt;
=== Daschke LTD ===&lt;br /&gt;
PDF-Katalog (Achtung, grosse Datei): http://www.daschke-ltd.de/Catalog/&lt;br /&gt;
&lt;br /&gt;
* Prompte Antwort und Hilfe via info ät obige adresse&lt;br /&gt;
* Bezahlung per Paypal und Rechnung möglich. Ist auch Ebay-Händler.&lt;br /&gt;
* sehr faire Preise für Bauteile und Versand&lt;br /&gt;
* Führt eine Vielzahl an unüblichen Steckern und Buchsen&lt;br /&gt;
* Nicht verfügbare Bauteile wurden proaktiv nachbestellt, trotz geringer Bestellmenge. Prima!&lt;br /&gt;
&lt;br /&gt;
=== DES - Der Elektroniker-Shop ===&lt;br /&gt;
Homepage: http://www.DerElektronikerShop.de&lt;br /&gt;
&lt;br /&gt;
* Bauteile&lt;br /&gt;
* Bauteilsätze der [http://www.DieElektronikerseite.de Elektronikerseite]&lt;br /&gt;
* Verkauf des BasicBeetle und Zubehör von [http://www.DieProjektseite.de der Projektseite]&lt;br /&gt;
* Ständig wachsendes Angebot&lt;br /&gt;
* Auch einige SMD-Bauteile verfügbar&lt;br /&gt;
* Kein Mindestbestellwert&lt;br /&gt;
* Versandkosten ab 3,50 EUR (Österreich/Europa ab 4,00 Eur)&lt;br /&gt;
* Versand auch nach Österreich (Europa auf Anfrage)&lt;br /&gt;
* Zahlung per Vorkasse&lt;br /&gt;
* Lieferzeit 1-3 Tage bei Verfügbarkeit&lt;br /&gt;
* PrePaid-Konto möglich&lt;br /&gt;
* Lieferungen auch an Privat&lt;br /&gt;
&lt;br /&gt;
=== Digi-Key ===&lt;br /&gt;
(tlw.) deutsche Homepage: http://de.digikey.com&lt;br /&gt;
&lt;br /&gt;
* optisch nicht besonders ansprechende, aber durchaus sehr funktionelle Website&lt;br /&gt;
* beheimatet in den USA, ein Logistikbüro gibt es in den Niederlanden&lt;br /&gt;
* kostenloser Versand ab 65&amp;amp;#8364;, darunter 18&amp;amp;#8364; Versandkosten&lt;br /&gt;
* macht merkwürdige Plausibilitäts-Checks: wenn man privat über ihrem Dollar Limit (z.B. 400 Dollar bestellt) kommt sofort die Rückfrage nach Firmenname und Firmenadresse&lt;br /&gt;
* Rückfragen nach dem Verwendungszweck kommen ebenfalls schon bei der Bestellung bei bestimmten Bauteilen die der Exportkontrolle unterliegen&lt;br /&gt;
* Versand direkt aus den USA, dafür sehr flott mit UPS Express (in rund zwei bis drei Tagen da)&lt;br /&gt;
* riesiges Angebot, gewissermaßen ein Distributor der auch Kleinmengen an Privatpersonen liefert, entscheidend ist, dass der Hersteller des Produkts geführt wird&lt;br /&gt;
* kein anderer Anbieter, bietet so viele verschiedene passive Bauteile in kleinen Stückzahlen, z.&amp;amp;nbsp;B. SMD Widerstände in Bauform 01005 bis 2512 meist in verschiedenen Toleranzklassen und von verschiedenen Herstellern&lt;br /&gt;
* alle Bauteile mit Herstellerangabe, Digikey kauft ausschließlich direkt vom Hersteller&lt;br /&gt;
* Preise sind auf der deutschen Website in Euro inklusive etwaigem Zoll angegeben, allerdings ohne Mehrwertsteuer, die korrekt abgerechnet wird (d.h. man zahlt bei Versand nach Österreich 20% Mwst., nach Deutschland m.W.n. 19%)&lt;br /&gt;
* Meistens deutlich teurer als Reichelt, doch häufig die beste Anlaufstelle für Privatkunden wenn es um Spezialbauteile geht, und der Hersteller sich im Programm von Digikey befindet&lt;br /&gt;
&amp;lt;!-- * wesentlich teurer als Reichelt, dafür jeder Artikel mit Herstellerangabe&lt;br /&gt;
=&amp;gt; &amp;quot;wesentlich&amp;quot; etwas zu pauschal (vgl. STK500 etc. selbst bei den verglw. hohen Versandkosten) - mt --&amp;gt;&lt;br /&gt;
* Zu beachten ist auch noch folgendes, um unliebsame zusatzkosten zu vermeiden: http://www.mikrocontroller.net/topic/90943#new. &#039;&#039;Anmerkung dazu: Digikey hat wohl zum 1.4.2011 den Versand umgestellt und importiert nun selbst. Zusatzkosten durch Verzollung sollten dann nicht mehr anfallen.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Display Electronics ===&lt;br /&gt;
&lt;br /&gt;
Homepage: http://www.distel.co.uk&lt;br /&gt;
&lt;br /&gt;
* In England&lt;br /&gt;
* Webseite = Augenkrebs &lt;br /&gt;
* Online-Shop versteckt hinter dem Search-Button auf der Homepage&lt;br /&gt;
* Restposten aller Art&lt;br /&gt;
* Mindestbestellwert 10 GBP&lt;br /&gt;
&lt;br /&gt;
=== eHaJo ===&lt;br /&gt;
Homepage: http://www.eHaJo.de&lt;br /&gt;
&lt;br /&gt;
* Bausätze &lt;br /&gt;
* Lötübungen&lt;br /&gt;
* AVR-ISP-Stick&lt;br /&gt;
&lt;br /&gt;
=== Eisch-Kafka-Electronic ===&lt;br /&gt;
Homepage: http://www.eisch-electronic.de&lt;br /&gt;
 &lt;br /&gt;
* Hochfrequenz Bausätze und Bauteile für Amateurfunk&lt;br /&gt;
&lt;br /&gt;
=== EleConT ===&lt;br /&gt;
Homepage: http://www.elecont.de/shop/&lt;br /&gt;
&lt;br /&gt;
* Carrierboards für gebräuchliche AVR&lt;br /&gt;
&lt;br /&gt;
=== Electropuces ===&lt;br /&gt;
Homepage: http://perso.wanadoo.fr/electropuces/&lt;br /&gt;
&lt;br /&gt;
* Gebrauchte Messgeräte aus Nantes, Frankreich  (teilweise engl. Menü)&lt;br /&gt;
&lt;br /&gt;
=== Electronic Search ===&lt;br /&gt;
&lt;br /&gt;
Homepage: http://www.electronic-search.de&lt;br /&gt;
&lt;br /&gt;
* Keine Mindestbestellmenge&lt;br /&gt;
* Verkauf auch an Privat/Bastler&lt;br /&gt;
* Fast alle Preise im Online-Shop nur &amp;quot;auf Anfrage&amp;quot;, und nicht im Shop angegeben.&lt;br /&gt;
&lt;br /&gt;
=== electronicpool Rheinstetten ===&lt;br /&gt;
Homepage: http://www.electronicpool.de&lt;br /&gt;
&lt;br /&gt;
* abgekündigte oder schwer beschaffbare elektronische Bauteile&lt;br /&gt;
&lt;br /&gt;
=== Elektronikladen ===&lt;br /&gt;
Homepage: http://www.elektronikladen.de&lt;br /&gt;
&lt;br /&gt;
* Spezialist für Mikrokontroller&lt;br /&gt;
* Entwicklungssysteme, keine Einzelbauteile&lt;br /&gt;
* entsprechende Literatur und Software&lt;br /&gt;
* &amp;quot;Kein Verkauf an Endverbraucher i.S.d. §13 BGB&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Elektronik-Kompendium ===&lt;br /&gt;
Homepage: http://www.elektronik-kompendium.de&lt;br /&gt;
&lt;br /&gt;
* Bausätze diverser Schaltungen (mit Anleitung und Funktionsbeschreibung)&lt;br /&gt;
* erspart lästiges Suchen in anderen Shops&lt;br /&gt;
* kurze Lieferzeiten&lt;br /&gt;
* günstiger Versand&lt;br /&gt;
&lt;br /&gt;
=== Elk Tronic ===&lt;br /&gt;
Homepage: http://www.elk-tronic.de&lt;br /&gt;
&lt;br /&gt;
* kleines Lieferprogramm Adapterplatinen (SMD -&amp;gt; 2,54mm-Raster) und Programmieradapter&lt;br /&gt;
* günstige Preise und Versandspesen&lt;br /&gt;
&lt;br /&gt;
=== Elko-Verkauf ===&lt;br /&gt;
Homepage: http://www.elko-verkauf.de&lt;br /&gt;
&lt;br /&gt;
* Nur Low-ESR-Elkos&lt;br /&gt;
* Elko-Sets für ein Gerät&lt;br /&gt;
&lt;br /&gt;
=== Ellmitron ===&lt;br /&gt;
Homepage: http://www.ellmitron.de/&lt;br /&gt;
Katalog: http://www.ellmitron.de/katalog.pdf&lt;br /&gt;
&lt;br /&gt;
Lehrmittel, Kleinbausätze vor allem für Schüler, Experimentierkästen&lt;br /&gt;
&lt;br /&gt;
=== Elpro Darmstadt ===&lt;br /&gt;
Homepage: http://www.elpro.org&lt;br /&gt;
&lt;br /&gt;
* Kein Mindestbestellwert, aber hohe Versandkosten für kleine Bestellungen. Stand September 2008:&lt;br /&gt;
** Bis 15€: 9,95€ Versandkosten&lt;br /&gt;
** Von €15 bis €75: 5,95€ Versandkosten&lt;br /&gt;
** Von €75 bis €200: 4,49€ Versandkosten&lt;br /&gt;
** Ab €200: Versandkostenfrei&lt;br /&gt;
* Große Auswahl an Mikrocontrollern&lt;br /&gt;
* Sehr große Auswahl an Schaltnetzteilen von Meanwell (geschlossen, offen, auf PCB lötbar, DIN-Schiene)&lt;br /&gt;
* Merkwürdig zu bedienende Shopsoftware, ständig klappt was auf und zu und wird irgendwas nachgeladen. Braucht JavaScript&lt;br /&gt;
* Keine AGBs online. Da Preisangaben ohne MwSt. richtet sich das Angebot vermutlich nicht an Endverbraucher (werden aber beliefert)&lt;br /&gt;
* Bearbeitungszeit (bis Warenausgang) 2-3 Tage.&lt;br /&gt;
* Versand bisher mit DHL&lt;br /&gt;
* gute bis sehr gute Verpackung&lt;br /&gt;
&lt;br /&gt;
=== Eltrix ===&lt;br /&gt;
Homepage: http://eltrix.de/Starteltrix.htm&lt;br /&gt;
&lt;br /&gt;
*  Verbrauchsmaterial, Tipps und Tricks fürs Leiterplattenherstellen und Löten&lt;br /&gt;
&lt;br /&gt;
=== ELV ===&lt;br /&gt;
Homepage: http://www.elv.de&lt;br /&gt;
&lt;br /&gt;
* nicht sehr große Auswahl an Einzelteilen&lt;br /&gt;
* riesiges Angebot an Zubehör für Hobbyisten&lt;br /&gt;
* viele z.T. pfiffige Eigenentwicklungen, Bausätze (auch zum Download auf der Website verfügbar)&lt;br /&gt;
* sonst Sortiment ähnlich Conrad, nicht billig&lt;br /&gt;
* im Allgemeinen nicht billig, merkwürdigerweise sind manche Artikel aber die günstigsten auf dem Markt&lt;br /&gt;
* mühsamer Onlinekatalog&lt;br /&gt;
* Immer mal wieder Fehllieferungen und Wartezeiten (zumindest in die Schweiz). Service erreichte in 3 Fällen nicht das inserierte Niveau.&lt;br /&gt;
* Versandkosten innerhalb Deutschland 4,5&amp;amp;#8364;, ab 150&amp;amp;#8364; Bestellwert versandkostenfrei&lt;br /&gt;
* nicht abwählbare Versandversicherung, die 0,85% des Bestellwertes kostet&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Erklärte am 31. August 2010 &amp;quot;... den Betrieb bis auf weiteres zu schließen.&amp;quot; &lt;br /&gt;
=== Embedit Mikrocontrollertechnik ===&lt;br /&gt;
Online Shop: http://shop.embedit.de&lt;br /&gt;
&lt;br /&gt;
* Gute Auswahl an AVR Controllern, aber nur aktuelle Typen, keine AT90Sxxxx. Teilweise exotische Typen wie MLF Gehäuse&lt;br /&gt;
* Atmel und Philips SmartARM Controller&lt;br /&gt;
* Module und Boards mit AVR Controllern&lt;br /&gt;
* Zubehör von Atmel wie STK500 oder AVRISP mkII&lt;br /&gt;
* Diverse aktive und passive Elektronikteile, ständig neue Teile&lt;br /&gt;
* Mechanikteile wie Zahnräder, Steckverbinder usw.&lt;br /&gt;
* Lieferzeit 1-4 Tage, je nachdem wie man zahlt (hab aber auch schon ne Vorauskasse innerhalb eines Tages per Expressbrief bekommen, zuvorkommender Service)&lt;br /&gt;
* Versandkosten ab 3,95 &amp;amp;#8364;, versicherter Versand, Vorauskasse und Nachnahme&lt;br /&gt;
* Keine Versandkosten ab 50 &amp;amp;#8364; Warenwert innerhalb Deutschlands, bei Zahlung per Vorauskasse und Lieferung per Hermes&lt;br /&gt;
* Lieferung in viele EU-Länder&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== ETT - Electronic Toys Trading  ===&lt;br /&gt;
Homepage: http://www.ett-online.de&lt;br /&gt;
&lt;br /&gt;
* Großhandel nur für Gewerbekunden.&lt;br /&gt;
* Zweitshop [[Elektronikversender#Atzert-Elektronik_Versand|Atzert-Elektronik Versand]] (früher EFB-Electronic Versand, davor Megakick Electronic-Stores) für Endkunden.&lt;br /&gt;
* Ladengeschäft in Braunschweig für jedermann. Weitere Atzert Ladengeschäfte in Bielefeld, Bremen, Hamburg und Berlin.&lt;br /&gt;
* Eigentümer der Marken McCHECK®, McPower®, McVoice® und anderer, unter denen ETT importierte Messgeräte, Labornetzteile, usw. an Großkunden und Händler vertreibt. Diese sind unter oben genannten Marken dann in vielen Shops anderer Firmen für Endkunden zu finden, nicht nur bei Atzert. Preisvergleiche lohnen.&lt;br /&gt;
&lt;br /&gt;
=== Ettinger GmbH ===&lt;br /&gt;
Homepage: http://www.ettinger.de&lt;br /&gt;
&lt;br /&gt;
* Für gewerbliche Kunden&lt;br /&gt;
* Mechanische Komponenten (Gehäuse, Abstandshalter, Drehknöpfe, usw.)&lt;br /&gt;
* LEDs&lt;br /&gt;
* Gewöhnungsbedürftiger Online-Shop&lt;br /&gt;
&lt;br /&gt;
=== EVE ===&lt;br /&gt;
Homepage: http://www.eve.de&lt;br /&gt;
&lt;br /&gt;
* Zitat aus den AGBs:&lt;br /&gt;
::&#039;&#039;&amp;quot;Zu Bestellungen im Rahmen des Online-Handels sind nur durch uns autorisierte, d. h. zugelassene Käufer berechtigt. Wir gewähren nach erfolgreicher Zertifizierung – ohne hierzu verpflichtet zu sein – dem jeweiligen Käufer das nicht übertragbare, nicht exklusive Recht im Rahmen des Online-Handels Bestellungen uns gegenüber “auszubringen”.&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:Dies darf man wohl getrost als Hinweis ansehen, dass Endverbraucher als Kunden nicht gewünscht sind.&lt;br /&gt;
* Versandhaus für elektronische Artikel in Emsdetten&lt;br /&gt;
* machen auch Kabelkonfektion&lt;br /&gt;
* Pb-freie Artikel markiert&lt;br /&gt;
&lt;br /&gt;
=== Farnell ===&lt;br /&gt;
Homepage: http://de.farnell.com&lt;br /&gt;
&lt;br /&gt;
* liefert nur an gewerbliche Abnehmer, Ausnahme sind Studenten und HTL-Schüler (Österreich, Farnell.at). Nachweis wird verlangt (Gewerbeschein oder Immatrikulation).&lt;br /&gt;
* Lieferungen an Privat:&lt;br /&gt;
:* Schweiz: Farnell Schweiz beliefert auch Privatkunden.&lt;br /&gt;
:* Deutschland: Über den Reseller [[#HBE_-_Heinz_B.C3.BCchner_Elektronik.2C_Messtechnik.2C_med._Elektronik_e.K.|HBE]] kann man Produkte aus dem Farnell-Sortiment zu bestellen.&lt;br /&gt;
:* Österreich: [[#Technik-Welt / Industrieshop.at|Technik-Welt / Industrieshop.at]]&lt;br /&gt;
* große Auswahl&lt;br /&gt;
* 12% Rabatt für Studenten und Lehreinrichtungen&lt;br /&gt;
* sehr schneller Versand, Ware ist in 99% aller Fälle am nächsten Tag da (UPS), fehlende Positionen werden relativ rasch versandkostenfrei nachgeliefert&lt;br /&gt;
* Versandkosten: Bestellung bis 49,99&amp;amp;#8364;: 7,95&amp;amp;#8364;;   50,- bis 149,99&amp;amp;#8364;: 5,95&amp;amp;#8364;;   ab EUR 150,- versandkostenfrei&lt;br /&gt;
* hat nach eigenen Aussagen umfangreichstes Sortiment an RoHS-konformen Bauteilen mit Suchfunktion im WWW&lt;br /&gt;
* leistungsfähige parametrische Suchfunktion / teils aber völlig nutzlos, da den Artikeln massenweise Tags fehlen, weswegen die Suchergebnisse unnötig eingeschränkt werden&lt;br /&gt;
* Datenblätter für die meisten Bauteile online&lt;br /&gt;
* Internetpräsenz fällt nachts oft aus (Hinweis auf angebliche geplante Wartungsarbeiten)&lt;br /&gt;
* Sortierfunktion wird bei der Suche ständig zurückgesetzt, im Warenkorb ist überhaupt keine sinnvolle Sortierung möglich&lt;br /&gt;
* Eigenwillige Preispolitik: Einiges sehr günstig, Anderes total überteuert&lt;br /&gt;
&lt;br /&gt;
=== Fibra-Brandt Zweibrücken ===&lt;br /&gt;
Homepage: http://www.fibra-brandt.com&lt;br /&gt;
&lt;br /&gt;
* lagert tausende veraltete und schwer zu findende elektronische Bauteile&lt;br /&gt;
* Halbleiter, IC&#039;s, Transistoren, Spulen und Kondensatoren.&lt;br /&gt;
* Sonderbeschaffung von abgekündigten Halbleitern.&lt;br /&gt;
&lt;br /&gt;
=== Fischer DK2FD ===&lt;br /&gt;
Homepage: http://www.dfe-online.de&lt;br /&gt;
&lt;br /&gt;
* Baugruppen für Hochfrequenzmesstechnik und Amateurfunk&lt;br /&gt;
&lt;br /&gt;
=== Funkamateur Online-Shop ===&lt;br /&gt;
&lt;br /&gt;
Siehe [[Elektronikversender#Box73]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Futurelec ===&lt;br /&gt;
Homepage: http://www.futurlec.com&lt;br /&gt;
&lt;br /&gt;
* günstiger Versender aus Übersee&lt;br /&gt;
* viele Stamp-Boards&lt;br /&gt;
* LED Matrix-Module&lt;br /&gt;
&lt;br /&gt;
=== Future Electronics ===&lt;br /&gt;
Homepage: http://de.futureelectronics.com&lt;br /&gt;
&lt;br /&gt;
* große Auswahl an Teilen&lt;br /&gt;
* Versand auch an Privatpersonen&lt;br /&gt;
* Preisangaben ohne MwSt.&lt;br /&gt;
* Zahlung nur mit Kreditkarte&lt;br /&gt;
* Versandkosten 7,14€ (Brutto)&lt;br /&gt;
* Versand aus den USA mit FedEx, Lieferzeit meist unter 5AT&lt;br /&gt;
* Verzollung usw. wird von FutureElectronics gemacht, keine Nachzahlungen etc.&lt;br /&gt;
&lt;br /&gt;
=== Geist Electronic-Versand GmbH ===&lt;br /&gt;
Homepage: http://www.geist-electronic.de&lt;br /&gt;
&lt;br /&gt;
* Liefern Bauteile für Elektor-Projekte&lt;br /&gt;
* D-78054 Villingen-Schwenningen&lt;br /&gt;
* Versandkosten: 5.40€&lt;br /&gt;
&lt;br /&gt;
=== Giga-Tech ===&lt;br /&gt;
Homepage: http://www.giga-tech.de&lt;br /&gt;
&lt;br /&gt;
* Spezialitäten für Hochfrequenz / Amateurfunk&lt;br /&gt;
* 68542 Heddesheim&lt;br /&gt;
&lt;br /&gt;
=== Grummes Elektronik ===&lt;br /&gt;
Homepage: http://www.grummes.de&lt;br /&gt;
&lt;br /&gt;
* Elektronikversender /CNC-Fräsmaschinen / Schrittmotorsteuerungen / Bauteile&lt;br /&gt;
* Homepage nicht aufrufbar (10.12.2011)&lt;br /&gt;
&lt;br /&gt;
=== Glyn (GLYNshop) ===&lt;br /&gt;
Homepage: https://www.glynshop.com/erp/welcome.do&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;B2B Shop&amp;quot; = nicht für Privatkunden&lt;br /&gt;
* Microcontroller, Evaluation Boards, TFT-Displays, LC-Displays, Memory Cards u.a.&lt;br /&gt;
&lt;br /&gt;
=== guloshop.de ===&lt;br /&gt;
Homepage: http://guloshop.de&lt;br /&gt;
&lt;br /&gt;
* kleiner Shop, konzentriert sich auf Standard-AVRs im DIP-Gehäuse, ist dabei aber meist der billigste Versender in Deutschland&lt;br /&gt;
* ATtiny, ATmega, Breakout-Boards, Programmer, Adapterkabel, IC-Fassungen&lt;br /&gt;
* AVR mit geflashtem Arduino-Bootloader&lt;br /&gt;
* äußerst niedrige Preise&lt;br /&gt;
* liefert schnell und zuverlässig, jedoch nur gegen Vorkasse&lt;br /&gt;
* kein Mindestbestellwert, Versandkosten für kleine Bestellungen: 2,40 EUR, darüber 4,40 EUR&lt;br /&gt;
* ansässig in 90489 Nürnberg&lt;br /&gt;
&lt;br /&gt;
=== H-Tronic ===&lt;br /&gt;
Homepage: http://www.h-tronic.eu/index.php&lt;br /&gt;
&lt;br /&gt;
* Online-Shop einer Entwicklungsfirma, in dem neben Baugruppen und Geräten auch einige Bauelemente und Elektronikzubehör angeboten werden&lt;br /&gt;
* kleines Angebot&lt;br /&gt;
&lt;br /&gt;
=== Hallmanns Elektronik ===&lt;br /&gt;
Homepage: http://www.hallmanns.com &amp;lt;br&amp;gt;&lt;br /&gt;
Adresse: Bruno Hallmanns, Weierstraße 41, 52349 Düren&lt;br /&gt;
&lt;br /&gt;
* Elektronikhändler mit Ladenlokal und Versand&lt;br /&gt;
* Ladentypisches Sortiment (Bauteile, Geräte, PC, Funk, Hifi...)&lt;br /&gt;
&lt;br /&gt;
=== Hari Seligenstadt ===&lt;br /&gt;
Homepage: http://www.hari-ham.com&lt;br /&gt;
&lt;br /&gt;
* Bausätze, Ringkerne, Geräte für Amateurfunk&lt;br /&gt;
&lt;br /&gt;
=== HBE - Heinz Büchner Elektronik, Messtechnik, med. Elektronik e.K. ===&lt;br /&gt;
Homepage: http://www.hbe-shop.de/katalog/&lt;br /&gt;
&lt;br /&gt;
* Bezeichnet sich als &#039;&#039;[[#Farnell|Farnell]] Fachhändler&#039;&#039;, bei dem nichtgewerbliche Kunden aus dem Farnell-Sortiment bestellen können.&lt;br /&gt;
* Preise für Farnell-Produkte normalerweise Farnell Netto-Preis + MwSt.&lt;br /&gt;
* Mindestbestellwert 25,- € (netto), Mindermengenzuschlag 5,- € (Stand 06/2010)&lt;br /&gt;
* Versandkosten 4,75 € (netto), ab 75,- € (netto) versandkostenfrei (Stand 06/2010)&lt;br /&gt;
&lt;br /&gt;
=== Heho-Elektronik ===&lt;br /&gt;
Homepage: http://www.heho-elektronik.de&lt;br /&gt;
* Halbleiter / Bauteile, Sortimente, Handy - Akkus, VELLEMAN - Bausätze&lt;br /&gt;
* Aktuelles Angebot, Ladegeräte / Akkuladegeräte, Blei - Akkus&lt;br /&gt;
* Spannungswandler, Audio / Video / USB - Kabel, Netzwerk - Kabel&lt;br /&gt;
* 1-2 Arbeitstage für Waren ab Lager&lt;br /&gt;
* Porto + Verpackung pauschal Euro 4,50&lt;br /&gt;
* Mindestbestellwert von &amp;amp;#8364; 10,00&lt;br /&gt;
&lt;br /&gt;
=== Hinkel ===&lt;br /&gt;
Homepage: http://www.hinkel-elektronik.de&lt;br /&gt;
&lt;br /&gt;
* Von der Webseite &amp;quot;Unser Angebot richtet sich an Schulen, Behörden, Handel, Handwerk und Industrie.&amp;quot;&lt;br /&gt;
* Batterien&lt;br /&gt;
* Knopfzellen, spezielle KZH, die man sonst lang sucht, findet man hier&lt;br /&gt;
* Mindestbestellwert von 20&amp;amp;#8364;&lt;br /&gt;
* Standardversand innerhalb Deutschlands 5,80&amp;amp;#8364;&lt;br /&gt;
&lt;br /&gt;
=== HN Electronic Components GmbH &amp;amp; Co. KG / Netzteilshop ===&lt;br /&gt;
Homepage gewerbliche Kunden: http://www.hn-electronic.de/&lt;br /&gt;
* Netzteile aller Art&lt;br /&gt;
* Es gibt keinen Onlineshop mehr, wahrscheinlich werden Endkunden nicht beliefert&lt;br /&gt;
** Homepage Endkunden: http://www.netzteilshop.com/hnshop.html&lt;br /&gt;
** Lieferung an Endkunden nur per UPS Nachnahme.&lt;br /&gt;
** Mindestbestellmenge für Endkunden 25 €&lt;br /&gt;
&lt;br /&gt;
=== HW-Electronics ===&lt;br /&gt;
Homepage: http://www.hw-electronics.de &amp;lt;br&amp;gt;&lt;br /&gt;
Homepage EU: http://hw-electronics.eu/&lt;br /&gt;
&lt;br /&gt;
* Tauch- und Sprühätzanlagen&lt;br /&gt;
* Entwicklungsgeräte&lt;br /&gt;
* Belichtungsgeräte, Materialsätze zum Selbstbau von Belichtungsgeräten&lt;br /&gt;
&lt;br /&gt;
=== ID-Elektronik ===&lt;br /&gt;
Homepage: http://www.id-elektronik.de&lt;br /&gt;
&lt;br /&gt;
* Amateurfunk-Baugruppen&lt;br /&gt;
&lt;br /&gt;
=== IT-WNS ===&lt;br /&gt;
Homepage: http://www.it-wns.de&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;Bauteile, Platinen, Bausätze&amp;quot; insbesondere mit ATMEGA und ENC28J60&lt;br /&gt;
* Bausätze zu Projekten aus dem Forum, z.&amp;amp;nbsp;B. USBprog, ChipBasic, Mikro-Webserver, Transistortester u.v.a.m.&lt;br /&gt;
* Atmega32/644 Experimentiersystem als Bausatz mit vielen Zusatzmodul-Bausätzen&lt;br /&gt;
* SD-Slots, RFID, Bluetooth-Module, AVR Mikrocontroller uvam.&lt;br /&gt;
* Bauelemente, die nicht im Shop angeboten werden, können auf Anfrage (Kontaktformular) beschafft werden &lt;br /&gt;
* günstige Preise und Versandkosten ab 1,90EUR, kein Mindestbestellwert&lt;br /&gt;
* schneller Versand, sofern die Artikel auf Lager sind, versandkostenfreie Nachlieferung&lt;br /&gt;
&lt;br /&gt;
=== Kabelscheune ===&lt;br /&gt;
Homepage: http://www.kabelscheune.de&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;Direktversand von Elektromaterial und Multimediaprodukten&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Kelemen ===&lt;br /&gt;
Homepage: http://www.kelemenantennen.de/Kelemen-Shop/&lt;br /&gt;
&lt;br /&gt;
* Messgeräte, Antennen und Zubehör für den Amateurfunk&lt;br /&gt;
&lt;br /&gt;
=== Kessler ===&lt;br /&gt;
Homepage: http://www.kessler-electronic.de&lt;br /&gt;
&lt;br /&gt;
* im Preis-Leistungsverhältnis mit Reichelt zu vergleichen (sprich: günstig)&lt;br /&gt;
* Sortiment kleiner als Reichelt und mit gewissen Abweichungen (z. B. andere FPGA und RAMs)&lt;br /&gt;
* oft lange Lieferzeiten&lt;br /&gt;
* Versandkosten innerhalb Deutschlands 4€ (Brief), 5€ (DHL-Paket), 10€ (DHL-Express-Paket)&lt;br /&gt;
&lt;br /&gt;
=== Klein-Electronic ===&lt;br /&gt;
Homepage: http://www.klein-electronic.de&lt;br /&gt;
&lt;br /&gt;
* Baugruppen zur Video- und 2,4GHz-Sendetechnik&lt;br /&gt;
&lt;br /&gt;
=== Konni-Antennen ===&lt;br /&gt;
Homepage: http://www.konni-antennen.de&lt;br /&gt;
&lt;br /&gt;
* Antennen für TV, Amateurfunk&lt;br /&gt;
* Zubehör, Einzelteile&lt;br /&gt;
* sehr netter kompetenter Service&lt;br /&gt;
&lt;br /&gt;
=== Köditz Nachrichtentechnik ===&lt;br /&gt;
Homepage: http://www.koeditz-nachrichtentechnik.de&lt;br /&gt;
&lt;br /&gt;
* Baugruppen und Bauteile für Amateurfunk und TV-Satellitenempfang&lt;br /&gt;
&lt;br /&gt;
=== Kuhne DB6NT ===&lt;br /&gt;
Homepage: http://www.kuhne-electronic.de&lt;br /&gt;
&lt;br /&gt;
* Baugruppen und Bausätze für Mikrowellenamateure&lt;br /&gt;
&lt;br /&gt;
=== LEDSEE Electronics ===&lt;br /&gt;
Homepage: http://www.ledsee.com&lt;br /&gt;
&lt;br /&gt;
* LEDs, LCDs, diverses&lt;br /&gt;
* Lieferung direkt aus China, daher sehr günstig und lange Lieferzeiten&lt;br /&gt;
&lt;br /&gt;
=== LED Microtechnics LTD ===&lt;br /&gt;
Homepage: http://www.ledmeile.de&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;LED Shop und Lampentechnik&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== LED-Tech LED-Shop ===&lt;br /&gt;
Homepage: http://www.led-tech.de&lt;br /&gt;
&lt;br /&gt;
* viele verschiedene LEDs zu sehr guten (meist den günstigsten) Preisen&lt;br /&gt;
* vor allem auf High-Power-LEDs spezialisiert&lt;br /&gt;
* viele verschiedene Treiber für High-Power-LEDs&lt;br /&gt;
* kostenloser Versand&lt;br /&gt;
* haben ein eigenes, sehr umfangreiches Forum&lt;br /&gt;
&lt;br /&gt;
=== Lieske Elektronik ===&lt;br /&gt;
Homepage: http://www.lieske-elektronik.de&lt;br /&gt;
&lt;br /&gt;
* liefert nur an Geschäftskunden&lt;br /&gt;
&lt;br /&gt;
=== LUMITRONIX LEDs-Shop ===&lt;br /&gt;
Homepage: http://www.leds.de&lt;br /&gt;
&lt;br /&gt;
* alles rund um LEDs (auch Zubehör und Lektüre)&lt;br /&gt;
* neben Standard-LEDs auch SMD- und SuperFlux-LEDs&lt;br /&gt;
&lt;br /&gt;
=== Marsch Elektronik, M. Schlimper ===&lt;br /&gt;
Homepage: http://www.marsch-elektronik.de&lt;br /&gt;
&lt;br /&gt;
* Online Shop für aktive und passive Bauelemente&lt;br /&gt;
* Versandkosten ab Euro 1,60&lt;br /&gt;
* kein Mindestbestellwert&lt;br /&gt;
* bietet auch Einsteigersortimente und Widerstandsortimente (auch SMD)&lt;br /&gt;
* liefert nur innerhalb Deutschlands&lt;br /&gt;
* nicht gelistete Artikel können angefragt werden und werden meist auch beschafft&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Mauritz Communication &amp;amp; Electronics ===&lt;br /&gt;
Homepage: http://www.mauritz-shop.eu&lt;br /&gt;
&lt;br /&gt;
* Online Shop für HF-Stecker und Kabel&lt;br /&gt;
* bietet HF-Stecker/Buchsen und Koaxkabel an&lt;br /&gt;
* große Auswahl, auch exotische Teile&lt;br /&gt;
* Kabelkonfektionierung nach Wunsch&lt;br /&gt;
* vernünftige Preise&lt;br /&gt;
* liefert nach Rücksprache auch weltweit&lt;br /&gt;
* Keine Mindestbestellwert, aber 5 € Aufschlag unter 15 €&lt;br /&gt;
* Versand bis 40 kg pauschal 5,95 € per GLS innerhalb DE&lt;br /&gt;
* schneller Versand&lt;br /&gt;
* Paypal oder Vorkasse&lt;br /&gt;
&lt;br /&gt;
=== Mein-Daarle ===&lt;br /&gt;
Homepage: http://www.mein-st-arnual.de/shop/saarbruecken/artikellisteL.html&lt;br /&gt;
&lt;br /&gt;
* Teileliste eines &amp;quot;Händlers aus Saarbrücken&amp;quot; (wahrscheinl.: Frank Skowronek ESS Elektronik Service), &amp;quot;bis sein Onlineshop ans Netz gehen kann&amp;quot;&lt;br /&gt;
* derzeit (4/2011) kein Onlineshop, Kontakt über Formular&lt;br /&gt;
&lt;br /&gt;
=== Micromaus ===&lt;br /&gt;
Homepage: http://www.micromaus.de&lt;br /&gt;
&lt;br /&gt;
* Sensoren&lt;br /&gt;
* Mikrokontroller&lt;br /&gt;
* kein Mindestbestellwert&lt;br /&gt;
* 22.7.2012: Totalausverkauf wegen Geschäftsaufgabe, 10% auf alle Artikel&lt;br /&gt;
&lt;br /&gt;
=== Microcontroller-Starterkits ===&lt;br /&gt;
Homepage: http://www.microcontroller-starterkits.de&lt;br /&gt;
&lt;br /&gt;
* 22.7.2012: Seite nicht erreichbar&lt;br /&gt;
* Bauteile: CAN, Ethernet, Mikrokontroller AVR und ARM, Linearregler 1,8V 3,3V 5V in SOT223&lt;br /&gt;
* Leerplatinen, Bausätze&lt;br /&gt;
* günstig&lt;br /&gt;
* Abholung in Hattingen möglich&lt;br /&gt;
* Versandkosten innerhalb Deutschlands ab 2,50&amp;amp;#8364;&lt;br /&gt;
* keine Kreditkartenzahlung möglich&lt;br /&gt;
&lt;br /&gt;
=== Mikrocontroller.net ===&lt;br /&gt;
Homepage: http://shop.mikrocontroller.net&lt;br /&gt;
&lt;br /&gt;
* Starterkits, Development Boards und Zubehör für AVR, AVR32, ARM und MSP430&lt;br /&gt;
&lt;br /&gt;
=== Mira Nürnberg ===&lt;br /&gt;
Homepage: http://www.mira-electronic.de&lt;br /&gt;
&lt;br /&gt;
* SMD-Bauteile, SMD-Sortimentboxen&lt;br /&gt;
* Verkauf und Preisangaben nur für Gewerbetreibende&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- 22.7.2012 Seite nicht erreichbar, Domain bei einem Domaingrabber&lt;br /&gt;
=== Karl Müller EME Messtechnik ===&lt;br /&gt;
Homepage: http://www.eme-hf-technik.de&lt;br /&gt;
&lt;br /&gt;
* Hochfrequenz-Messtechnik, HF-Komponenten&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Mouser ===&lt;br /&gt;
Homepage: http://de.mouser.com&lt;br /&gt;
&lt;br /&gt;
* Liefert an Privat&lt;br /&gt;
* Zügige Lieferung mit FedEx aus den USA&lt;br /&gt;
* Keine Halbleiter von Linear, National und Analog&lt;br /&gt;
&lt;br /&gt;
=== MS-Elektronik ===&lt;br /&gt;
Homepage: http://www.ms-elektronik.info&lt;br /&gt;
&lt;br /&gt;
* Liefert an Privat&lt;br /&gt;
* Zügige Lieferung&lt;br /&gt;
* Gute Qualität&lt;br /&gt;
* Viel in Richtung Audio&lt;br /&gt;
* Große Auswahl an Elkos -&amp;gt; kleine Preise&lt;br /&gt;
* kein allzu großes Sortiment&lt;br /&gt;
&lt;br /&gt;
=== Mütron ===&lt;br /&gt;
Homepage: http://www.muetronshop.de&lt;br /&gt;
&lt;br /&gt;
* Keine Privatkunden&lt;br /&gt;
&lt;br /&gt;
=== myAVR Shop ===&lt;br /&gt;
Hompage http://shop.myavr.de&lt;br /&gt;
&lt;br /&gt;
* Kleine Auswahl, aber die angebotene Ware ist sehr preiswert (meist preiswerter als bei Reichelt)&lt;br /&gt;
* Zügige Lieferung (1-2 Werktage)&lt;br /&gt;
* Diverse Zahlungsmöglichkeiten: Rechnung, Vorkasse, Lastschrift, Kreditkarte, PayPal&lt;br /&gt;
* Kein Mindestbestellwert&lt;br /&gt;
* Sehr günstige Versandkosten ab 1,95 Eur&lt;br /&gt;
* Mengenrabatt ab 10 gleichen Artikeln&lt;br /&gt;
&lt;br /&gt;
=== Neuhold-Elektronik ===&lt;br /&gt;
Homepage: http://www.neuhold-elektronik.at &amp;lt;br&amp;gt;&lt;br /&gt;
Shop: http://www.neuhold-elektronik.at/catshop/default.php?language=de&lt;br /&gt;
&lt;br /&gt;
* preiswerte Schnäppchen&lt;br /&gt;
* regelmäßig aktualisierte Angebotsliste herunterladbar&lt;br /&gt;
* Ab 60,- EUR versandkostenfrei in Österreich&lt;br /&gt;
&lt;br /&gt;
=== Octamex ===&lt;br /&gt;
Homepage: http://www.octamex.de&lt;br /&gt;
&lt;br /&gt;
* Leiterplattenchemie (Entwickler, Ätzmittel, CRC-Sprays)&lt;br /&gt;
* Chemisch Zinn&lt;br /&gt;
* Lötstopp-Laminat, Tentingresist, Bestückungsdruck&lt;br /&gt;
* Bungard Basismaterial in 0,5mm 1,0mm 1,5mm Dicke und 18µm, 35µm, 70µm Kupfer&lt;br /&gt;
* Bungard Alucorex für 19&amp;quot; Frontplatten&lt;br /&gt;
* Bungard Cotherm, Alukernbasismaterial&lt;br /&gt;
* Funkmodule 434MHz, 868MHz, 2.4GHz&lt;br /&gt;
* Löttechnik und Zubehör&lt;br /&gt;
* Gehäuse aller Art&lt;br /&gt;
* Messgeräte und Labornetzteile&lt;br /&gt;
* aktive, passive u. mechanische Bauelemente (Widerstände, Kondensatoren, Transistoren, Logik-ICs etc.)&lt;br /&gt;
* kein Mindestbestellwert&lt;br /&gt;
* Lieferung auch ins Ausland&lt;br /&gt;
* Versandkosten ab 4,50EUR&lt;br /&gt;
* Liefert nur gegen Vorkasse, ausser für Bestandskunden, die schon häufig bestellt haben&lt;br /&gt;
* Zahlung mit EC-Pay oder Kreditkarte nur gegen Aufschlag (bis zu 5%)&lt;br /&gt;
&lt;br /&gt;
=== Online Batterien ===&lt;br /&gt;
Homepage: http://www.online-batterien.de&lt;br /&gt;
&lt;br /&gt;
* Allerlei günstige Batterien &amp;amp; Akkus vieler Marken&lt;br /&gt;
* z.&amp;amp;nbsp;B. &#039;&#039;&#039;40 Stk.&#039;&#039;&#039; DURACELL PLUS LR6 AA 11,59€ (Jan 2010)&lt;br /&gt;
* Beleuchtungsartikel&lt;br /&gt;
* USV&lt;br /&gt;
* Versand ab 3,90€&lt;br /&gt;
&lt;br /&gt;
=== Oppermann ===&lt;br /&gt;
Homepage: http://www.oppermann-electronic.de&lt;br /&gt;
&lt;br /&gt;
* Restposten, auch HF Bauteile&lt;br /&gt;
* auch Privatkunden&lt;br /&gt;
* Lieferung nach üblicher Zeit&lt;br /&gt;
&lt;br /&gt;
=== PCB-Soldering ===&lt;br /&gt;
&lt;br /&gt;
Homepage, Online-Shop: http://www.pcb-soldering.co.uk&lt;br /&gt;
eBay: http://www.allendale-stores.co.uk&lt;br /&gt;
Firmen-Homepage: http://www.allendale-elec.co.uk&lt;br /&gt;
&lt;br /&gt;
* [http://www.aoyue.com/en/products.asp Aoyue] Lötstationen und preiswertes Zubehör (Lötspitzen) für diese. Bei Aoyue-Zubehör bessere Preise (Stand 10/2008) als [[#WilTec_Wildanger_Technik_GmbH|WilTec]]&lt;br /&gt;
* Schnelle Lieferung&lt;br /&gt;
* Dank [http://www.zoll.de/b0_zoll_und_steuern/a0_zoelle/a1_grundlage_zollrecht/b0_zollgebiet/index.html EU Binnenmarkt] nur britische Mehrwertsteuer (VAT), kein Zoll, keine [http://www.zoll.de/b0_zoll_und_steuern/a3_einfuhrumsatzsteuer/index.html Einfuhrumsatzsteuer] fällig.&lt;br /&gt;
* Zwei von drei E-Mails wurden nicht beantwortet&lt;br /&gt;
* Versandart wurde eigenmächtig von &amp;quot;Standard&amp;quot; auf teureres &amp;quot;Signed for&amp;quot; (Einschreiben) geändert&lt;br /&gt;
&lt;br /&gt;
=== Pollin Electronic ===&lt;br /&gt;
Homepage: http://www.pollin.de&lt;br /&gt;
&lt;br /&gt;
* Günstige Restposten aller Art (z.&amp;amp;nbsp;B. &amp;quot;250 g verschiedene ICs&amp;quot; u.dgl.)&lt;br /&gt;
* Produktkategorien:&lt;br /&gt;
** Computer und Zubehör&lt;br /&gt;
** Telefone und Zubehör&lt;br /&gt;
** Antennentechnik&lt;br /&gt;
** HiFi/Car-HiFi/Video/TV&lt;br /&gt;
** Stromversorgung&lt;br /&gt;
** Lichttechnik&lt;br /&gt;
** Messtechnik / Uhren&lt;br /&gt;
** Haustechnik&lt;br /&gt;
** Werkstatt&lt;br /&gt;
** Bauelemente&lt;br /&gt;
** KFZ- und Zweirad&lt;br /&gt;
** Motoren&lt;br /&gt;
** Bausätze&lt;br /&gt;
** Fundgrube&lt;br /&gt;
* Produkte teils schnell ausverkauft &lt;br /&gt;
* Qualität schwankend. Man kann gute Schnäppchen machen aber auch reinfallen. Umtausch ist dann aber problemlos.&lt;br /&gt;
* Es wird öfters von sorgloser Verpackung berichtet, trotz Verpackungspauschale von 0,85 % des Warenwerts (empfindliche und schwere Produkte besser nicht zusammen bestellen). Reklamationen bei Beschädigungen werden freundlich behandelt.&lt;br /&gt;
* Lieferzeit i.d.r. 2-3 Werktage / knappe Woche bei neuer Sonderliste&lt;br /&gt;
* Ladengeschäft in 85104 Pförring&lt;br /&gt;
* Versandkosten  innerhalb Deutschlands 4,50 &amp;amp;#8364; (ab 150&amp;amp;#8364; versandkostenfrei); dazu 0,85 % Verpackungspauschale&lt;br /&gt;
* Zahlung per Nachnahme (+2,50 €) oder Bankeinzug (keine Kreditkarte, keine Überweisung)&lt;br /&gt;
&lt;br /&gt;
=== proma / Isel ===&lt;br /&gt;
Homepage: http://www.isel.com/en/proma_systro.php&lt;br /&gt;
&lt;br /&gt;
The proMa systro GmbH has completed its business transactions since the 20th February 2009.&lt;br /&gt;
Nachfolger: http://idimod.iselshop.de/&lt;br /&gt;
&amp;lt;s&amp;gt;&lt;br /&gt;
* fotobeschichtete Leiterplatten Platinenfrästechnik&lt;br /&gt;
* Chemikalien für die Platinenherstellung: Ätzmittel, Flussmittel für Lötanlagen, etc.&lt;br /&gt;
* Profilgehäuse, u.a. von Conrad und Reichelt vertrieben&lt;br /&gt;
&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== QRP-project ===&lt;br /&gt;
Homepage: http://www.qrpshop.de/&lt;br /&gt;
&lt;br /&gt;
* Bausätze vor allem einfache Kurzwellen-Funkgeräte&lt;br /&gt;
&lt;br /&gt;
=== Reichelt ===&lt;br /&gt;
Homepage: http://www.reichelt.de&lt;br /&gt;
&lt;br /&gt;
* relativ große Auswahl, aber nicht viele &amp;quot;brandaktuelle&amp;quot; Bauteile&lt;br /&gt;
* wenn man höflich fragt, liefern sie ganz selten auch Bauteile, die nicht im Katalog stehen zu &amp;quot;normalen&amp;quot; Preisen (vorausgesetzt der Hersteller ist im Sortiment), z.&amp;amp;nbsp;B. Xilinx XC2S50, aber meist erhält man die Antwort, dass der Artikel nicht im Sortiment ist, obwohl auf der Homepage unter Service extra ein Punkt angeführt ist: &amp;quot;Ich benötige einen Artikel, der nicht im Programm ist&amp;quot;&lt;br /&gt;
* reagiert aber teilweise auch auf Anregungen, neue Produkte in das Angebot aufzunehmen; siehe dazu auch den Artikel [[Reichelt-Wishlist]]&lt;br /&gt;
* liefert schnell und vollständig; wenn etwas ausnahmsweise nicht verfügbar ist, dann liefern sie es auf eigene Kosten nach, wenn der Artikel in absehbarer Zeit wieder vorrätig ist (selbst wenn er nur 0,20€ wert ist).&lt;br /&gt;
* lässt einen dennoch manchmal warten, wenn ein Artikel nicht lieferbar ist! Daher bei der Bestellung immer darauf hinweisen, dass man auch eine Teillieferung akzeptiert. (Laut Auskunft dauert das länger, besser nach der Inet-Bestellung anrufen und nicht lieferbare Teile aus der Bestellung streichen lassen)&lt;br /&gt;
* Lieferzeiten normalerweise 2 - 4 Arbeitstage&lt;br /&gt;
* niedrige Preise (aber unbedingt Qualität des Artikel checken)&lt;br /&gt;
* Versandkosten 5,60€ (Deutschland); 10€ Österreich; Schweiz 16€; EU 15 - 19€;&lt;br /&gt;
* 10€ Mindestbestellwert für alle Länder&lt;br /&gt;
* auch in die Schweiz sehr guter Service&lt;br /&gt;
* holt sich auch ohne Erlaubnis Bankauskünfte bei großen Bestellungen ein&lt;br /&gt;
&lt;br /&gt;
=== RFW Elektronik ===&lt;br /&gt;
Homepage: http://www.rfw-elektronik.de&lt;br /&gt;
&lt;br /&gt;
* HF Bauelemente&lt;br /&gt;
&lt;br /&gt;
=== Ribu ===&lt;br /&gt;
Homepage: http://www.ribu.at&lt;br /&gt;
&lt;br /&gt;
* Sehr guter Elektronikversand in Österreich mit zahlreichen Entwicklungsboards und zahlreichen Elektroniklösungen.&lt;br /&gt;
* Liefert sehr schnell und hat eine ausgezeichnete Beratung. &lt;br /&gt;
* Online-Shop ist sehr übersichtlich und einfach zu bedienen.&lt;br /&gt;
* Lieferstatusanzeige für alle Artikel. Bei Auslaufartikeln ist sogar die noch verfügbare Stückzahl sichbar.&lt;br /&gt;
* Günstige Sonderangebote&lt;br /&gt;
* innerhalb Österreichs 4,90&amp;amp;#8364; Versandkosten, ab 80,- keine Versandkosten&lt;br /&gt;
* ausserhalb Österreichs 13&amp;amp;#8364; Versandkosten, ab 225&amp;amp;#8364; versandkostenfrei&lt;br /&gt;
* liefert auch an Privatkunden&lt;br /&gt;
* Mindestbestellwert innerhalb Österreichs 10&amp;amp;#8364;, ausserhalb 30&amp;amp;#8364;&lt;br /&gt;
&lt;br /&gt;
=== Richardson Electronic ===&lt;br /&gt;
Homepage: http://www.richardsonrfpd.com/&lt;br /&gt;
&lt;br /&gt;
* Hochfrequenz-Halbleiter, HF-Röhren,&lt;br /&gt;
&lt;br /&gt;
=== Riedl Elektronik ===&lt;br /&gt;
Homepage: http://www.riedl-electronic.at&lt;br /&gt;
&lt;br /&gt;
* großes Angebot v.a. ICs und Trafos&lt;br /&gt;
* recht günstig&lt;br /&gt;
* Rabatt für Schüler/Student&lt;br /&gt;
* Versand nach AT: 3,95€ bis 1kg, ab 100€ frei Haus&lt;br /&gt;
* Versand AT über 1kg sowie Ausland: Nach Aufwand (wird nicht direkt angezeigt)&lt;br /&gt;
&lt;br /&gt;
=== RLX COMPONENTS s.r.o. ===&lt;br /&gt;
Homepage: http://www.rlx.sk&lt;br /&gt;
&lt;br /&gt;
* Man spricht Deutsch&lt;br /&gt;
* Messgeräte, Mikrocontroller-Boards, Bauelemente&lt;br /&gt;
&lt;br /&gt;
=== RM Computertechnik GmbH ===&lt;br /&gt;
Homepage: http://www.rm-computertechnik.de&lt;br /&gt;
&lt;br /&gt;
* Kerngeschäft ist PC-Technik, aber auch großes Sortiment an Kabeln, Litzen und Steckverbindern&lt;br /&gt;
* handelt auch mit einigen Bauelementen, wie LED&#039;s&lt;br /&gt;
&lt;br /&gt;
=== Robotikhardware===&lt;br /&gt;
Homepage: http://www.robotikhardware.de&lt;br /&gt;
&lt;br /&gt;
* Microcontroller&lt;br /&gt;
* Entwicklungsboards&lt;br /&gt;
* Sensoren&lt;br /&gt;
* Robotik-Zubehör&lt;br /&gt;
* günstige Angebote für Hobbyelektroniker&lt;br /&gt;
* auch einzelne Platinen&lt;br /&gt;
&lt;br /&gt;
=== Robotik-Teile.de===&lt;br /&gt;
Homepage: http://www.robotik-teile.de&lt;br /&gt;
&lt;br /&gt;
* Große Auswahl an Elektronik Produkten &lt;br /&gt;
* Microcontroller, Sensoren, Zubehör, u.v.m.&lt;br /&gt;
* Versandkosten betragen immer 4,90 €&lt;br /&gt;
* Zahlbar ber PayPal, Sofortüberweisung, Vorkasse und Nachnahme&lt;br /&gt;
&lt;br /&gt;
=== Benno Rößle Elektronik ===&lt;br /&gt;
Homepage: http://www.roessle-elektronik.de&lt;br /&gt;
&lt;br /&gt;
* Masten, Antennen, Befestigungsmat.,Zubehör, Geräte, Anpassteile, HF-Stecker&lt;br /&gt;
&lt;br /&gt;
=== RS Components ===&lt;br /&gt;
Homepage: http://de.rs-online.com&lt;br /&gt;
&lt;br /&gt;
* lt. AGB nur an gewerbliche Abnehmer und an Studenten. Bei Internetbestellungen wird per Mail nach Belegen gefragt.&lt;br /&gt;
* gute Auswahl insbesondere an &amp;quot;mechanischen Bauteilen&amp;quot;&lt;br /&gt;
* gute Verfügbarkeit&lt;br /&gt;
* sehr schneller Versand, Ware ist in 99% aller Fälle am nächsten Tag da (GP)&lt;br /&gt;
* Preise wurden angepasst, gute Preis/Leistung&lt;br /&gt;
* Preis im Onlineshop sind ohne MwSt angegeben&lt;br /&gt;
* Bei Onlinekauf ist der Versand kostenfrei, ohne Mindesbestellwert.&lt;br /&gt;
* Notify-Me Service für Produktabkündigung&lt;br /&gt;
* Auch größere Stückzahlen über Allied möglich&lt;br /&gt;
* Relativ große Auswahl an Sortimenten (Widerstände, Kondensatoren), Einzelteile können teilweise nachgekauft werden&lt;br /&gt;
* Verfügbarkeitsanzeige im Internet ist ziemlich hilfreich&lt;br /&gt;
* Nützliche Tipps zum Thema RoHS&lt;br /&gt;
* Macht anscheinend Abfragen bei SCHUFA &amp;amp; Co. ohne Einverständnis oder Hinweis in den AGB.&lt;br /&gt;
&lt;br /&gt;
=== Sander Elektronik ===&lt;br /&gt;
Homepage: http://www.sander-electronic.de&lt;br /&gt;
&lt;br /&gt;
* beliefert auch Privatkunden, Bankeinzug möglich&lt;br /&gt;
* ähnlich Segor ein Berliner Versender&lt;br /&gt;
* Hier findet man manche [[MSP430]], die es sonst nicht in kleinen Stückzahlen gibt&lt;br /&gt;
* Herr Sander ist sehr kompetent und selbst Autor von Fachartikeln&lt;br /&gt;
* selbst abgekündigte Halbleiter können noch beschafft werden&lt;br /&gt;
* Bezahlung auch mit Kreditkarte möglich&lt;br /&gt;
* Versandkosten innerhalb Deutschlands ab 3,35&amp;amp;#8364;, innerhalb Europas ab 6&amp;amp;#8364;&lt;br /&gt;
&lt;br /&gt;
=== Sasco Holz ===&lt;br /&gt;
Homepage: http://www.sasco.de&lt;br /&gt;
&lt;br /&gt;
* Wie Spoerle eine Tochter von Arrow. &lt;br /&gt;
* Distributor für Analog Devices... &lt;br /&gt;
* Liefert wie Spoerle und Arrow in Deutschland nicht an Privatkunden.&lt;br /&gt;
&lt;br /&gt;
=== Sat-Schneider ===&lt;br /&gt;
Homepage: http://www.sat-schneider.de&lt;br /&gt;
* Bauteile, Ersatzteile  Online-Shop&lt;br /&gt;
* Baugruppen zum Empfang des Digitalen Kurzwellenrundfunks DRM&lt;br /&gt;
&lt;br /&gt;
=== Satistronics ===&lt;br /&gt;
Homepage: http://www.satistronics.com&lt;br /&gt;
&lt;br /&gt;
* typischer &amp;quot;China-Versender&amp;quot;, mit allen Vor- und Nachteilen&lt;br /&gt;
* Lieferzeit bei Standardversand sehr lange (etwa 1 Monat nach D), aber schnellere Lieferung gegen Aufpreis möglich&lt;br /&gt;
* tritt auch bei eBay in Erscheinung ([http://stores.ebay.de/satistronicsstore eBay-Shop]), die Preise dort sind in der Regel aber etwas höher als im Online-Shop&lt;br /&gt;
&lt;br /&gt;
=== Otto Schubert GmbH ===&lt;br /&gt;
Homepage: http://www.schubert-gehaeuse.de&lt;br /&gt;
&lt;br /&gt;
* Kein Online-Shop. Bestellungen nur per Telefon, Fax oder E-Mail &lt;br /&gt;
* Weissblechgehäuse, Gerätegehäuse, wetterfeste Gehäuse&lt;br /&gt;
* Drehkondensatoren&lt;br /&gt;
* Sonderanfertigungen&lt;br /&gt;
* ansässig in 90574 Roßtal&lt;br /&gt;
&lt;br /&gt;
=== Schramm-Software ===&lt;br /&gt;
Homepage: http://www.schramm-software.de/bausatz/&lt;br /&gt;
* Online-Shop, bietet Elektronik-Bausätze mit Mikrocontrollern&lt;br /&gt;
* Bausätze als Lehrmaterial geeignet, da ausführliches Begleitheft mitgeliefert wird (Aufbauanleitung, Schaltung, Controllerprogramm, Experimente...)&lt;br /&gt;
* bisher nur ein relativ kleines Sortiment, soll ergänzt werden&lt;br /&gt;
* Versandkosten innerhalb Deutschlands 2,50 &amp;amp;#8364;, innerhalb der EU 3,50 &amp;amp;#8364;&lt;br /&gt;
&lt;br /&gt;
=== Schukat elektronic ===&lt;br /&gt;
Homepage: http://www.schukat.de&lt;br /&gt;
&lt;br /&gt;
* liefert nicht an privaten Endverbraucher&lt;br /&gt;
* einfache und passiver Bauteile oft nur in großen Mindeststückzahlen&lt;br /&gt;
* ICs teilweise recht preiswert (vor allem bei mehr als 1 Stück, z.&amp;amp;nbsp;B. auch AVR)&lt;br /&gt;
* LCDs sehr preiswert und auch als Einzelstücke&lt;br /&gt;
* aktuelle Preise und Verfügbarkeit im Internet (aber nur nach Anmeldung -jetzt nicht mehr bei kleinen Stückzahlen), ebenso Bilder von Gehäusefootprints u.dgl.&lt;br /&gt;
* Abholung in Monheim am Rhein nach Vereinbarung möglich&lt;br /&gt;
* Versandkosten innerhalb Deutschlands ab 5&amp;amp;#8364; (bis 10kg!)&lt;br /&gt;
&lt;br /&gt;
=== Schuricht ===&lt;br /&gt;
Homepage: http://www.schuricht.de&lt;br /&gt;
&lt;br /&gt;
* deutscher Ableger der Distrelec- (Elektronik) und Disdata-Gruppe (Computertechnik)&lt;br /&gt;
* Liefert auch an Privatkunden (getrennte AGBs für gewerbliche und Privatkunden, Lieferung an Privat per Nachnahme: Versandkosten ab 6,54€ plus 4,76€ Nachnahmegebühr).&lt;br /&gt;
** Online-Bestellung von Privatkunde scheiterte daran, dass die  Onlineshop-Bestellformulare nur für gewerbliche Kunden ausgelegt sind und der Onlineshop Bestellungen ohne Firmenangaben nicht annimmt oder gar mit einer internen Fehlermeldung quittierte.&lt;br /&gt;
**Online Bestellung mit &amp;quot;Privat&amp;quot; als Firmenangabe funktionierte einwandfrei.&lt;br /&gt;
**Telefonische Bestellung von Privat funktioniert. Nette, freundliche Behandlung am Telefon, kein Callcenter. Versprochener Rückruf erfolgte mit gewünschten Informationen. Neben Nachnahme wurde für einen relativ teuren Artikel persönliche Abholung angeboten. Angegebene Lieferfrist wurde leicht unterschritten.&lt;br /&gt;
* Papierkatalog über 2000 Seiten, durchgehend farbig, nur für Geschäftskunden erhältlich.&lt;br /&gt;
* Ziemlich teuer&lt;br /&gt;
&lt;br /&gt;
=== Schuro Elektronik GmbH ===&lt;br /&gt;
Homepage: http://www.schuro.de&lt;br /&gt;
&lt;br /&gt;
* Elektronische Bauelemente und Bauteile für den Audio- und Lautsprecherbau (Kondensatoren, Spulen u.dgl.)&lt;br /&gt;
* kein Mindestbestellwert&lt;br /&gt;
* Versandkosten innerhalb Deutschlands gewichtsabhängig ab 5,75&amp;amp;#8364;&lt;br /&gt;
&lt;br /&gt;
=== Segor-electronics ===&lt;br /&gt;
Homepage: http://www.segor.de&lt;br /&gt;
&lt;br /&gt;
* Spezialist für Halbleiter, die ansonsten für nicht-gewerbliche Abnehmer nur schwer erhältlich sind (Preise dahingehend &amp;quot;angemessen&amp;quot;)&lt;br /&gt;
* auch Privatkunden gerne gesehen&lt;br /&gt;
* Ladengeschäft in Berlin&lt;br /&gt;
* kein Mindestbestellwert bei Versand innerhalb der EU&lt;br /&gt;
&lt;br /&gt;
=== SE Spezial-Electronic AG ===&lt;br /&gt;
Homepage: http://www.spezial.de&lt;br /&gt;
&lt;br /&gt;
* Distributor&lt;br /&gt;
* Laut AGB auch Verkauf an Privat.&lt;br /&gt;
* Große Verpackungseinheiten/Mindestbestellmengen pro Bauteil&lt;br /&gt;
* Versandkosten pauschal 9,- €  (Deutschland) (Stand 08/2008)&lt;br /&gt;
&lt;br /&gt;
=== Shortec Electronics ===&lt;br /&gt;
Homepage: http://www.shortec.com&lt;br /&gt;
&lt;br /&gt;
* Unabhängiger Distributor von elektronischen und elektromechanischen Bauelementen aller Hersteller.&lt;br /&gt;
&lt;br /&gt;
=== Small Control Shop ===&lt;br /&gt;
Homepage: http://www.small-control.de&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;Bernd Walter Computer Technology&amp;quot;&lt;br /&gt;
* kleines Lieferprogramm aber ein paar interessante Produkte&lt;br /&gt;
&lt;br /&gt;
=== SMG Diffusion - F1GE ===&lt;br /&gt;
Homepage: http://www.smgdiffusion.com&lt;br /&gt;
( Seite nur französisch )&lt;br /&gt;
&lt;br /&gt;
* Videotechnik, &lt;br /&gt;
* 1,2 GHz / 2,4GHz Module&lt;br /&gt;
* Gebraucht-Messgeräte HP, Tek, Philips  u.a.&lt;br /&gt;
* GHz-Halbleiter&lt;br /&gt;
* Koax-Adapter&lt;br /&gt;
* Antennen&lt;br /&gt;
&lt;br /&gt;
=== Spoerle ===&lt;br /&gt;
Homepage: http://www.spoerle.de&lt;br /&gt;
&lt;br /&gt;
* Früher eine Tochterfirma von Arror. Mittlerweile komplett in Arrow aufgegangen, Webseite leitet auf Arrow um.&lt;br /&gt;
* Aus dem Webshop: &amp;quot;Unser Angebot richtet sich nur an Kaufleute und nicht an Verbraucher.&amp;quot;&lt;br /&gt;
* Wenn es wirklich über Arrow sein muss, dann kann man es als Privatperson bei Arrow Electronics North American Components http://www.arrownac.com/ versuchen, die sich normalerweise nicht weigern ihre Produkte zu verkaufen. Allerdings muss man mit großen Mindestmengen (z.&amp;amp;nbsp;B. BC547 in Schritten von 2000 Stück) und hohen Kosten rechnen.&lt;br /&gt;
:Zu den Kosten gehören zum Beispiel ein mehrfacher Mindermengenzuschlag (&#039;&#039;$10 handling charge will be added to each line item less than $30&#039;&#039;), eine satte &#039;&#039;handling and energy fee of $10.22&#039;&#039; (mehr als 10x zu hoch wie die vergleichbare Gebühr für amerikanische Besteller), hohe Versandkosten (ab $20 nach Deutschland). Dazu kommen die üblichen Kosten für den Import aus dem Ausland (Einfuhrumsatzsteuer, Kreditkartengebühr, ...)&lt;br /&gt;
&lt;br /&gt;
=== SR-Systems ===&lt;br /&gt;
Homepage: http://www.sr-systems.de&lt;br /&gt;
&lt;br /&gt;
* Baugruppen für Digital-TV, Sende- und Empfangstechnik&lt;br /&gt;
* DVB-S, DVB-T&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Strixner&amp;amp;Holzinger ===&lt;br /&gt;
Homepage: http://www.sh-halbleiter.de&lt;br /&gt;
&lt;br /&gt;
* Ladengeschäft in München&lt;br /&gt;
* Versand &lt;br /&gt;
* riesiges Angebot an Halbleiter, auch schwer beschaffbare&lt;br /&gt;
* Online-Shop&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== TAUTEC-ELECTRONICS ===&lt;br /&gt;
Homepage: http://www.tautec-electronics.de&lt;br /&gt;
&lt;br /&gt;
* Online Shop für aktive elektronische Bauelemente&lt;br /&gt;
* günstige Preise (Vorsicht, Preisangaben enthalten keine Mehrwertsteuer) aber Mindestbestellwert 100 Euro&lt;br /&gt;
* alle Artikel ab Lager lieferbar, daher kurze Wartezeiten&lt;br /&gt;
* weltweiter Versand&lt;br /&gt;
* zahlreiche Mengenrabatte&lt;br /&gt;
* viele Ersatzteile aus dem Audio-, Car-HiFi und TV-Bereich&lt;br /&gt;
&lt;br /&gt;
=== TCB-Versand ===&lt;br /&gt;
Homepage: http://www.tcb-versand.de&lt;br /&gt;
&lt;br /&gt;
* insbesondere für Modellbauer ein sehr interresantes Sortiment&lt;br /&gt;
* Stecker,Kabel etc. recht günstig und kleine Mengen abnehmbar &lt;br /&gt;
* Lieferung normal zwischen 1 und 3 Tage&lt;br /&gt;
* leider nur Online-Shop&lt;br /&gt;
&lt;br /&gt;
=== Tec-Shop (Wolfgang Rompel Elektronik) ===&lt;br /&gt;
Homepage: http://www.tec-shop.de&lt;br /&gt;
&lt;br /&gt;
* Kleines, aber ausgesuchtes Sortiment&lt;br /&gt;
* Interessantes Angebot an Sensoren&lt;br /&gt;
&lt;br /&gt;
=== Technik-Welt / Industrieshop.at ===&lt;br /&gt;
Homepage: http://www.industrieshop.at&lt;br /&gt;
&lt;br /&gt;
* Laut Homepage richtet man sich &amp;quot;an den industriellen Kunden&amp;quot;. Laut AGB sieht man das jedoch nicht so eng, Zitat:&lt;br /&gt;
:: &#039;&#039;TW schließt online Verträge nur mit Kunden ab, die natürliche oder juristischen Personen sind, die ihren Wohnsitz oder Sitz in Österreich, einem Mitgliedsstaat der Europäischen Union (EU25) oder der Schweiz haben.&#039;&#039;&lt;br /&gt;
* [[#Farnell|Farnell]] Teile&lt;br /&gt;
* In Österreich&lt;br /&gt;
* Schnelle Lieferung (2 Tage)&lt;br /&gt;
&lt;br /&gt;
=== TIGAL KG ===&lt;br /&gt;
Homepage: http://www.tigal.com&lt;br /&gt;
&lt;br /&gt;
* Boards und Tools für Embedded-Elektronik&lt;br /&gt;
* In Österreich &lt;br /&gt;
* Versandkosten ab € 7,00 in Österreich, ab € 10,00 nach Deutschland.&lt;br /&gt;
* Preisangaben ohne MWSt. Für Privatkunden kommen 20% österreichische Mehrwertsteuer hinzu.&lt;br /&gt;
* U.a. ZeroLogic Logik-Analysatoren.&lt;br /&gt;
&lt;br /&gt;
=== TME (Transfer Multisort Elektronik) ===&lt;br /&gt;
Homepage: [http://www.tme.eu/de]&lt;br /&gt;
&lt;br /&gt;
* Firmensitz in Łódź, Polen&lt;br /&gt;
* Zahlungsabwicklung über deutsches Konto oder PayPal&lt;br /&gt;
* Firmenvertretung in Leipzig, man spricht deutsch&lt;br /&gt;
* Versand mit UPS (etwa 8 Euro inkl. MwSt.); Trackingnummer wird sofort nach Kommissionierung zugesendet&lt;br /&gt;
* als Privatkunde: Mehrwertsteuer beachten (23%). Seit neuestem 17,6% &amp;quot;Strafaufschlag&amp;quot; auf Bruttopreis bei Privatbestellung. Effektiv ergibt dies ca. 45% (!) auf den Nettopreis. Zitat auf Nachfrage: &amp;quot;Bei Rechnungserstellung für Privatkunden wird der angezeigt Preis + 15% (Rabatt für Firmenkunden) + 23% poln. Mwst. ausgewiesen&amp;quot;.&lt;br /&gt;
* sehr großes günstiges SMD Sortiment&lt;br /&gt;
* unmittelbar aktualisierter Lagerbestand, Mindestmengen und Vielfache beachten&lt;br /&gt;
&lt;br /&gt;
=== Trade-Shop / AIR Electronics GmbH ===&lt;br /&gt;
Homepage: http://www.trade-shop.de&lt;br /&gt;
&lt;br /&gt;
* Trotz knackiger Sprüche auf der englischen Version der Webseite (&amp;quot;Electronic Components Superstore&amp;quot;) eher kleines Angebot elektronischer Bauteile&lt;br /&gt;
* 20 Euro Mindestbestellmenge (Stand Februar 2008)&lt;br /&gt;
* ab 6,90 Euro Versandkosten (Deutschland, bis 1kg)  (Stand Februar 2008)&lt;br /&gt;
&lt;br /&gt;
=== Trenkenchu &amp;amp; Stadler GbR ===&lt;br /&gt;
Homepage: http://www.ts-audio.de&lt;br /&gt;
&lt;br /&gt;
* die meisten Artikel sind deutlich teurer als der Marktpreis, nur bei exotischen Bauelementen kann man durchaus ein Schnäppchen machen&lt;br /&gt;
&lt;br /&gt;
=== TV-Ersatzteile ===&lt;br /&gt;
Homepage: http://www.tversatzteile.de&lt;br /&gt;
&lt;br /&gt;
* TV-, Audio-, Video-Ersatzteile, Aktive / Passive Bauteile&lt;br /&gt;
* Fernbedienungen Haushaltstechnik&lt;br /&gt;
&lt;br /&gt;
=== UKW-Berichte ===&lt;br /&gt;
Homepage: http://www.ukw-berichte.de&lt;br /&gt;
&lt;br /&gt;
* Antennen, Bauteile, Bausätze, Literatur für Amateurfunk&lt;br /&gt;
* ansässig in 91081 Baiersdorf&lt;br /&gt;
&lt;br /&gt;
=== Voelkner ===&lt;br /&gt;
Homepage: Kein Link, entsprechend der Vorgabe des Betreibers der Voelkner Webseite im Impressum:&lt;br /&gt;
&amp;lt;i&amp;gt;&amp;lt;blockquote&amp;gt;voelkner - direkt günstiger&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
wird produziert und betreut von&amp;lt;br/&amp;gt;&lt;br /&gt;
Re-In Retail International GmbH &amp;lt;br/&amp;gt;&lt;br /&gt;
...&amp;lt;br/&amp;gt;&lt;br /&gt;
Eine Verlinkung auf die Website der Firma Re-In Retail International GmbH bedarf einer schriftlichen Genehmigung. &amp;lt;/blockquote&amp;gt;&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Großer Teil des Conrad-Programms, identische Nummern, identische Aufkleber auf der Ware, Preise identisch oder nur ein paar Cent abweichend&lt;br /&gt;
* Versandkosten Deutschland: 4,95€; ab 25€ Warenwert und Sofortüberweisung.de versandkostenfrei / Versandkosten-Flatrate für 15€ pro Jahr&lt;br /&gt;
* Versandkosten EU: 9,95€&lt;br /&gt;
* Möglichkeit der Versandkostenflatrate (D): Einmalig 14,95€ / gültig für ein Jahr&lt;br /&gt;
* Legt jeder Bestellung gleich wieder einen Gutschein über 5€ bei MBW 25€ bei (Flat nur bei häufigen, kleinen Bestellungen sinnvoll); außerdem kommt etwa alle 2-3 Monate selbiger Gutschein + versandkostenfreie Lieferung per Mail, ebenfalls MBW 25€&lt;br /&gt;
* Verpackungsqualität wechselnd, mal brauchbar, mal eher Pollin-Niveau. Selbst kleine Bestellungen, die gefahrlos per Brief/Großbrief verschickt werden könnten werden in einem großen Paket versendet.&lt;br /&gt;
&lt;br /&gt;
=== VOTI Webshop ===&lt;br /&gt;
Homepage: http://www.voti.nl/shop/catalog.html&lt;br /&gt;
&lt;br /&gt;
* relativ kleines Lieferprogramm&lt;br /&gt;
* einige interessante Restposten (Surplus)&lt;br /&gt;
&amp;lt;!-- nicht mehr: * verkauft auch VID/PID-Paare für USB-Applikationen --&amp;gt;&lt;br /&gt;
* Sitz in Amersfoort, Niederlande&lt;br /&gt;
&lt;br /&gt;
=== Walter elektronik ===&lt;br /&gt;
Homepage: http://www.walter-elektronik.de&lt;br /&gt;
&lt;br /&gt;
* Bauteile, Röhren&lt;br /&gt;
&lt;br /&gt;
=== Watterott electronic GmbH===&lt;br /&gt;
Homepage: http://www.watterott.com&lt;br /&gt;
&lt;br /&gt;
* Distributor für Arduino, BeagleBoard, FriendlyARM, Pololu, Seeed Studio, Solarbotics, SparkFun...vollständige [http://www.watterott.net/about#distri Liste hier]&lt;br /&gt;
* Entwicklungskits von Atmel, Luminary Micro, Microchip, Raisonance, TI&lt;br /&gt;
* Spezialbauteile von Davicom, FTDI, VLSI, WIZnet&lt;br /&gt;
* Bungard Basismaterial + Chemie&lt;br /&gt;
* kein Mindestbestellwert&lt;br /&gt;
* Zahlung: Vorkasse, Sofortüberweisung, PayPal, Nachnahme, Kreditkarte (Visa/Mastercard), Rechnung (nur gewerbliche Kunden)&lt;br /&gt;
* Versandkosten Dtl. (UPS): &lt;br /&gt;
** bis  25 EUR Warenwert: 3,50 Euro&lt;br /&gt;
** bis  50 EUR Warenwert: 2,90 Euro&lt;br /&gt;
** bis 150 EUR Warenwert: 2,00 Euro&lt;br /&gt;
** ab  150 EUR Warenwert: versandkostenfrei&lt;br /&gt;
* Versandkosten EU (UPS): &lt;br /&gt;
** bis 150 EUR Warenwert: 10,00 Euro&lt;br /&gt;
** bis 250 EUR Warenwert:  8,90 Euro&lt;br /&gt;
** bis 500 EUR Warenwert:  7,00 Euro&lt;br /&gt;
** ab  500 EUR Warenwert:  versandkostenfrei&lt;br /&gt;
* Schneller, entgegenkommender Service&lt;br /&gt;
&lt;br /&gt;
=== Westfalia ===&lt;br /&gt;
Homepage Deutschland: http://www.westfalia.de&lt;br /&gt;
Homepage Österreich: http://www.westfalia-versand.at&lt;br /&gt;
&lt;br /&gt;
* Vor 85 Jahren in Hagen, Westfalen gegründet&lt;br /&gt;
* Elektronik nur ein kleiner Teil des Angebotes. Eher insgesamt Haushalts-, Werkstätten-, Agrar- und Gartenbedarf&lt;br /&gt;
* Elektroniksortiment stark schwankend. Momentan (Juni 2008) wenig Auswahl.&lt;br /&gt;
* Mindestbestellwert 18 €, bei Neukundenbestellungen mit Prämienanforderungen (wenig wertiges Geschenk) sogar 50 €.&lt;br /&gt;
* 4,95&amp;amp;#8364; Versandkosten, ab 150&amp;amp;#8364; Bestellwert versandkostenfrei&lt;br /&gt;
* Transportversicherung wird zusätzlich mit einem Zuschlag von 0,8% des Warenwertes berechnet.&lt;br /&gt;
* Einmalige Bestellung führte zu jahrelanger Zusendung von Werbung für Westfalia-Angeboten mit Gewinnspielen (Glücksnummern, Rubbellose, Glücksschlüssel, etc.)&lt;br /&gt;
* Verpackung ähnlich &amp;quot;sorgfältig&amp;quot; wie bei [[#Pollin_Electronic|Pollin Electronic]]. Übergroße Kartons, wenig Verpackungsmaterial, schweres Teil (Labornetzgerät) flog lose im Karton herum und zertrümmerte andere Ware.&lt;br /&gt;
&lt;br /&gt;
=== WilTec Wildanger Technik GmbH ===&lt;br /&gt;
Homepage: http://shop.wiltec.info&lt;br /&gt;
&lt;br /&gt;
* Aoyue Lötgeräte (Heißluft, Löten, Entlöten), Netzteile, Werkzeuge&lt;br /&gt;
* Aoyue Zubehör (Lötspitzen, Heißluftdüsen), Ersatzteile&lt;br /&gt;
* Andere, nicht Elektronik-Angebote, wie KFZ-Tuningteile&lt;br /&gt;
* Versand. Bei Voranmeldung auch Lagerverkauf.&lt;br /&gt;
&lt;br /&gt;
=== Wüstens frag-jan-zuerst ===&lt;br /&gt;
Homepage: http://www.die-wuestens.de/dindex.htm&lt;br /&gt;
&lt;br /&gt;
* Röhrentechnik&lt;br /&gt;
* Hochspannungs-Spezialteile&lt;br /&gt;
&lt;br /&gt;
=== WIMO ===&lt;br /&gt;
Homepage: http://www.wimo.de&lt;br /&gt;
&lt;br /&gt;
* Große Auswahl an Amateurfunktechnik&lt;br /&gt;
&lt;br /&gt;
=== Zech DG0VE ===&lt;br /&gt;
Homepage: http://www.dg0ve.de&lt;br /&gt;
&lt;br /&gt;
* Baugruppen für Amateurfunk&lt;br /&gt;
&lt;br /&gt;
=== Diverse ===&lt;br /&gt;
* http://www.chip-flip.com - Europäisches Bauelementesuchsystem, franchised Lieferantensuche, Datenblätter und viele nützliche Informationen&lt;br /&gt;
* http://www.ecomponents-store.com/ Elektronische Bauelemente kaufen - Hier finden Sie eine große Auswahl an elektronischen und elektromechanischen Bauelementen von über 40 Herstellern.&lt;br /&gt;
* http://www.franchised-distributors.eu/ - Finden Sie Vertragsdistributoren von über 800 Halbleiterherstellern für elektronische und elektromechanische Bauelemente.&lt;br /&gt;
&lt;br /&gt;
TODO: elektronik-fundgrube&lt;br /&gt;
&lt;br /&gt;
==Ebay-Shops==&lt;br /&gt;
&lt;br /&gt;
===Ego-China===&lt;br /&gt;
http://stores.ebay.de/Ego-China-Electronics   TFTs und LCDs &amp;lt;br /&amp;gt; Versand aus China (2-3 Wochen)&lt;br /&gt;
&lt;br /&gt;
===Sure-Electronics===&lt;br /&gt;
http://stores.ebay.de/Sure-Electronics   Highpower LEDs und Verstärker &amp;lt;br /&amp;gt;&lt;br /&gt;
Hat auch einen eigenen Shop: http://www.sureelectronics.net/ &amp;lt;br /&amp;gt;&lt;br /&gt;
Versand aus China&lt;br /&gt;
&lt;br /&gt;
===Ether-Deal===&lt;br /&gt;
http://stores.ebay.de/ether-deal   Unter sonstiges viele versch. Elektronik-teile &amp;lt;br /&amp;gt; Versand aus China&lt;br /&gt;
&lt;br /&gt;
===NooElec===&lt;br /&gt;
http://stores.ebay.de/NooElec USB-AVR Boards (mega32u2) und rgbled-matrizen &amp;lt;br /&amp;gt; Versand aus Kanada&lt;br /&gt;
&lt;br /&gt;
==Messgeräte ==&lt;br /&gt;
=== Neue Messgeräte ===&lt;br /&gt;
&lt;br /&gt;
Viele der oben genannten Elektronikversender verkaufen auch Messgeräte. Darüber hinaus gibt es diverse Versender, die sich hauptsächlich oder ausschließlich auf Messgeräte spezialisiert haben. Allerdings verkaufen viele davon nicht an Privat.&lt;br /&gt;
&lt;br /&gt;
==== CalPlus GmbH ====&lt;br /&gt;
Homepage: http://www.calplus.de &amp;lt;br /&amp;gt;&lt;br /&gt;
Shop: http://www.scopeshop.de&lt;br /&gt;
&lt;br /&gt;
==== Cosinus ComputerMesstechnik ====&lt;br /&gt;
Homepage: http://www.cosinus.de&lt;br /&gt;
&lt;br /&gt;
* Nicht an Privat&lt;br /&gt;
&lt;br /&gt;
==== dataTec ====&lt;br /&gt;
Homepage: http://www.datatec.de&lt;br /&gt;
&lt;br /&gt;
* Große Auswahl&lt;br /&gt;
* &amp;lt;s&amp;gt;(Nicht an Privat)&amp;lt;/s&amp;gt; Bestellung von Privat problemlos möglich, Privatpersonen werden laut ABG per Vorkasse beliefert&lt;br /&gt;
* Studenten bekommen Rabatt, je nach dem, was bestellt wird&lt;br /&gt;
* Umständlicher Bestellvorgang, seitens DataTec teilweise auf dem Postweg -&amp;gt; Es dauert teil sehr lange bis die Ware ankommt&lt;br /&gt;
* Sehr freundlicher und kompetenter Service, per eMail als auch telefonisch&lt;br /&gt;
&lt;br /&gt;
==== Donald4646 ====&lt;br /&gt;
Homepage: http://www.donald4646.co.uk&lt;br /&gt;
&lt;br /&gt;
* In Schottland&lt;br /&gt;
* Als eBay-Shop gestartet&lt;br /&gt;
* Einfache, No-Name und Billigmarken (z.&amp;amp;nbsp;B. Oszilloskope)&lt;br /&gt;
&lt;br /&gt;
==== Elektronik-Kontor Messtechnik GmbH ====&lt;br /&gt;
Homepage: http://www.ekomess.de&lt;br /&gt;
&lt;br /&gt;
==== Meilhaus Electronic GmbH ====&lt;br /&gt;
Homepage: http://www.meilhaus.de&lt;br /&gt;
&lt;br /&gt;
* Diverse Markenhersteller&lt;br /&gt;
* Eigenmarken&lt;br /&gt;
&lt;br /&gt;
==== PinSonne-Elektronik ====&lt;br /&gt;
Homepage: http://www.pinsonne-elektronik.de&lt;br /&gt;
&lt;br /&gt;
* Onlineshop&lt;br /&gt;
* Sehr kleines Sortiment&lt;br /&gt;
* UNI-T, RIGOL und andere asiatische Firmen&lt;br /&gt;
&lt;br /&gt;
==== PK elektronik Poppe GmbH ====&lt;br /&gt;
Homepage: http://www.pk-elektronik.de&lt;br /&gt;
&lt;br /&gt;
* U.a. Fluke Distributor.&lt;br /&gt;
&lt;br /&gt;
====Präzitronic Hennig / Messgeräte Chemnitz====&lt;br /&gt;
Homepage: http://www.messgeraete-chemnitz.de&lt;br /&gt;
&lt;br /&gt;
* Owon&lt;br /&gt;
* Selbst übersetzte deutsche Owon-Handbücher&lt;br /&gt;
* Fluke&lt;br /&gt;
* Zusätzlich kleines Angebot an Gebrauchtgeräten&lt;br /&gt;
&lt;br /&gt;
==== ScopeShop Hamburg ====&lt;br /&gt;
&lt;br /&gt;
* Von CalPlus übernommen, siehe [[#CalPlus_GmbH|CalPlus]]&lt;br /&gt;
&lt;br /&gt;
==== SI Scientific Instruments GmbH ====&lt;br /&gt;
Homepage: http://www.si-scientific.de (Onlineshop) &amp;lt;br /&amp;gt;&lt;br /&gt;
Homepage: http://www.si-gmbh.de (komplettes Programm)&lt;br /&gt;
&lt;br /&gt;
* Onlineshop auf si-scientific.de&lt;br /&gt;
* Akzeptiert PayPal&lt;br /&gt;
 &lt;br /&gt;
==== SKY Messtechnik GmbH ====&lt;br /&gt;
Homepage: http://www.sky-messtechnik.de&lt;br /&gt;
&lt;br /&gt;
* Kein Onlineshop (E-Mail oder Telefon)&lt;br /&gt;
&lt;br /&gt;
==== TESTEC ====&lt;br /&gt;
Homepage: http://www.testec.info&lt;br /&gt;
&lt;br /&gt;
* Tastköpfe-Hersteller&lt;br /&gt;
* Hameg Vertriebspartner&lt;br /&gt;
* B+K Precision Generalimporteur&lt;br /&gt;
&lt;br /&gt;
==== Zeitech ====&lt;br /&gt;
Homepage: http://zeitech.eu/shop/&lt;br /&gt;
&lt;br /&gt;
* Diverses (Rigol, Owon, etc.)&lt;br /&gt;
&lt;br /&gt;
=== Gebrauchte Messgeräte ===&lt;br /&gt;
&lt;br /&gt;
Dieser Abschnitt enthält Anbieter bei denen gebrauchte Messgeräte erhältlich sind.&lt;br /&gt;
&lt;br /&gt;
==== Astro Electronic ====&lt;br /&gt;
Homepage: http://www.astro-electronic.de&lt;br /&gt;
&lt;br /&gt;
==== eumex GmbH ====&lt;br /&gt;
Homepage: http://www.eumes.com/pub/de/&lt;br /&gt;
&lt;br /&gt;
* Gebrauchte Messgeräte&lt;br /&gt;
&lt;br /&gt;
==== HTB-Elektronik ====&lt;br /&gt;
Homepage: http://www.htb-elektronik.com&lt;br /&gt;
&lt;br /&gt;
* Gebrauchte Messgeräte&lt;br /&gt;
&lt;br /&gt;
==== IX Instrumex ====&lt;br /&gt;
Homepage: http://www.instrumex.de/index.cgi?User:LANGUAGE=de&lt;br /&gt;
&lt;br /&gt;
* Gebrauchte Messgeräte&lt;br /&gt;
&lt;br /&gt;
==== Christoph Lüders MessTechnik ====&lt;br /&gt;
Homepage: http://www.CLMT.de &amp;lt;br&amp;gt;&lt;br /&gt;
Online-Shop: http://www.shop-016.de/shop-CLMT.html &amp;lt;br&amp;gt;&lt;br /&gt;
eBay: http://myworld.ebay.de/c_h_r/&lt;br /&gt;
&lt;br /&gt;
* Hat 2010 die Restbestände von Förtig übernommen&lt;br /&gt;
&lt;br /&gt;
==== mbmt Messtechnik ====&lt;br /&gt;
Homepage: http://www.mbmt.com&lt;br /&gt;
&lt;br /&gt;
* Gebrauchte Messgeräte&lt;br /&gt;
* Verkauf nur an Gewerbetreibende&lt;br /&gt;
&lt;br /&gt;
==== Rosenkranz Elektronik ====&lt;br /&gt;
Homepage: http://www.rosenkranz-elektronik.de&amp;lt;br&amp;gt;&lt;br /&gt;
eBay Shop: http://stores.ebay.de/Rosenkranz-Elektronik-GmbH-Shop&lt;br /&gt;
&lt;br /&gt;
* Gebrauchte Messgeräte&lt;br /&gt;
* Auch auf eBay zu finden&lt;br /&gt;
&lt;br /&gt;
==== Helmut-Singer-Elektronik ====&lt;br /&gt;
Homepage: http://www.helmut-singer.de&lt;br /&gt;
&lt;br /&gt;
* Gebrauchte Messgeräte&lt;br /&gt;
* Verkauf auch an Privat&lt;br /&gt;
* An den meisten Samstagen im Jahr auch Lagerverkauf, sonst Versand&lt;br /&gt;
&lt;br /&gt;
==== Sphere ====&lt;br /&gt;
Homepage: http://www.sphere.bc.ca&amp;lt;br&amp;gt;&lt;br /&gt;
Messgeräte und Ersatzteile: http://www.sphere.bc.ca/test/index.html&lt;br /&gt;
&lt;br /&gt;
* Gebrauchte Messgeräte&lt;br /&gt;
* Ersatzteile&lt;br /&gt;
** Besonders bekannt für Tektronix-Ersatzteile&lt;br /&gt;
&lt;br /&gt;
==== Tektronix TekSelect ====&lt;br /&gt;
Homepage: http://www.tek.com/Measurement/tekselect/&lt;br /&gt;
&lt;br /&gt;
* Tektronix verkauft selber gebrauchte und überarbeitete Tektronix-Messgeräte unter dem Label &#039;&#039;TekSelect&#039;&#039;.&lt;br /&gt;
* Original Tektronix-Garantie&lt;br /&gt;
* Der Bestellvorgang nervt, man muss Kontaktaufnahme durch einen &amp;quot;Representative&amp;quot; erbeten.&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [[Platinenhersteller]]&lt;br /&gt;
* [[Lokale Elektroniklieferanten]]&lt;br /&gt;
* [[Eisenwarenversender]]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* http://www.xs4all.nl/~ganswijk/chipdir/ Suche nach integrierten Schaltkreisen&lt;br /&gt;
* http://www.alldatasheet.com                Datenblätter&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Bauteile|!]]&lt;br /&gt;
[[Kategorie:Lieferanten]]&lt;/div&gt;</summary>
		<author><name>Sam1994</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Datei:AVR-Synthesizer-Konverter.zip&amp;diff=67507</id>
		<title>Datei:AVR-Synthesizer-Konverter.zip</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Datei:AVR-Synthesizer-Konverter.zip&amp;diff=67507"/>
		<updated>2012-07-25T11:24:08Z</updated>

		<summary type="html">&lt;p&gt;Sam1994: hat eine neue Version von „Datei:AVR-Synthesizer-Konverter.zip“ hochgeladen&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sam1994</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Datei:Synthesizer_-_SD-Karte.zip&amp;diff=67497</id>
		<title>Datei:Synthesizer - SD-Karte.zip</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Datei:Synthesizer_-_SD-Karte.zip&amp;diff=67497"/>
		<updated>2012-07-24T17:48:34Z</updated>

		<summary type="html">&lt;p&gt;Sam1994: hat eine neue Version von „Datei:Synthesizer - SD-Karte.zip“ hochgeladen&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sam1994</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Datei:Synthesizer_-_SD-Karte.zip&amp;diff=67496</id>
		<title>Datei:Synthesizer - SD-Karte.zip</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Datei:Synthesizer_-_SD-Karte.zip&amp;diff=67496"/>
		<updated>2012-07-24T17:47:35Z</updated>

		<summary type="html">&lt;p&gt;Sam1994: hat eine neue Version von „Datei:Synthesizer - SD-Karte.zip“ hochgeladen&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sam1994</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Datei:Midi2AvrSynthConverter.zip&amp;diff=67495</id>
		<title>Datei:Midi2AvrSynthConverter.zip</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Datei:Midi2AvrSynthConverter.zip&amp;diff=67495"/>
		<updated>2012-07-24T17:23:34Z</updated>

		<summary type="html">&lt;p&gt;Sam1994: hat eine neue Version von „Datei:Midi2AvrSynthConverter.zip“ hochgeladen&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;source&lt;/div&gt;</summary>
		<author><name>Sam1994</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Datei:AVR-Synthesizer-Konverter.zip&amp;diff=67494</id>
		<title>Datei:AVR-Synthesizer-Konverter.zip</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Datei:AVR-Synthesizer-Konverter.zip&amp;diff=67494"/>
		<updated>2012-07-24T17:23:05Z</updated>

		<summary type="html">&lt;p&gt;Sam1994: hat eine neue Version von „Datei:AVR-Synthesizer-Konverter.zip“ hochgeladen&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sam1994</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=AVR-Synthesizer&amp;diff=67493</id>
		<title>AVR-Synthesizer</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=AVR-Synthesizer&amp;diff=67493"/>
		<updated>2012-07-24T17:15:28Z</updated>

		<summary type="html">&lt;p&gt;Sam1994: /* Konverter */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;von sam1994&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
&lt;br /&gt;
* 4 Instrumente&lt;br /&gt;
* Bassdrum, Snare, Hihat&lt;br /&gt;
* mehr als 20 gleichzeitig spielende Kanäle @20Mhz&lt;br /&gt;
* einstellbare Samplerate&lt;br /&gt;
* spielt konvertierte Midi-Dateien ab&lt;br /&gt;
* benötigt 7KB Flash, 500-900B Ram&lt;br /&gt;
&lt;br /&gt;
==Hardware==&lt;br /&gt;
&lt;br /&gt;
[[Bild:Pwm-wandler.svg]]&lt;br /&gt;
&lt;br /&gt;
Standardmäßig wird der OCR1A-Pin zur Ausgabe verwendet.&lt;br /&gt;
&lt;br /&gt;
==Software==&lt;br /&gt;
&lt;br /&gt;
Der Synthesizer besteht aus einem Synthesizer und einem Sequenzer. Beide müssen am Anfang initialisiert werden. Dem Sequenzer wird beim Laden einer Datei ein Zeiger auf eine Funktion übergeben, die immer das nächste Byte der Datei ausliest. Dadurch ist es ohne großen Aufwand möglich die Datei aus dem Flash oder von einer SD-Karte zu lesen.&lt;br /&gt;
&lt;br /&gt;
===Flash===&lt;br /&gt;
&lt;br /&gt;
Die Datei wird als Array im Flash gespeichert.&lt;br /&gt;
&amp;lt;c&amp;gt;const uint8_t datei[] PROGMEM = {...vom Konverter...};&amp;lt;/c&amp;gt;&lt;br /&gt;
Dem Sequenzer wird die vordefinierte Funktion ReadFlash übergeben, als Zeiger die Datei:&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
sei();&lt;br /&gt;
//Synthesizer init&lt;br /&gt;
synth_init();&lt;br /&gt;
//Datei vom Sequenzer laden&lt;br /&gt;
seq_load(ReadFlash, (uint8_t*)datei);&lt;br /&gt;
//Synthesizer und Sequenzer starten&lt;br /&gt;
synth_start();&lt;br /&gt;
seq_start();&lt;br /&gt;
for(;;)&lt;br /&gt;
    synth_update();&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===SD-Karte===&lt;br /&gt;
&lt;br /&gt;
Für die SD-Karte braucht man einen Puffer. Mit 256 Byte ist man auf der sicheren Seite, bei wenigen Kanälen kann man auch 128 oder 64 Byte nehmen.&lt;br /&gt;
Außerdem muss man eine Funktion definieren, die aus dem Puffer liest und dem Sequenzer übergeben wird. Der übergebene Zeiger wird hier als Index missbraucht.&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
#define MIDI_BUF_LEN 256&lt;br /&gt;
uint8_t midi[MIDI_BUF_LEN];	&lt;br /&gt;
&lt;br /&gt;
uint8_t ReadBuffer(uint8_t* pos)&lt;br /&gt;
{&lt;br /&gt;
    uint8_t index = (uint16_t)pos;&lt;br /&gt;
    return midi[index &amp;amp; (MIDI_BUF_LEN-1)];&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
Am Anfang muss der Puffer gefüllt und der Synthesizer initialisiert werden. In der Hauptschleife wird nur der Puffer nachgefüllt.&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
//Lesepuffer füllen&lt;br /&gt;
uint8_t i = 0;&lt;br /&gt;
do&lt;br /&gt;
    midi[i] = ffread();&lt;br /&gt;
while(++i != (MIDI_BUF_LEN &amp;amp; 0xFF));&lt;br /&gt;
//Leseindex auf 0 setzen&lt;br /&gt;
uint8_t write = 0;&lt;br /&gt;
&lt;br /&gt;
//Synthesizer init&lt;br /&gt;
synth_init();&lt;br /&gt;
//Datei vom Sequenzer laden&lt;br /&gt;
seq_load(ReadBuffer, 0);&lt;br /&gt;
//Synthesizer und Sequenzer starten&lt;br /&gt;
synth_start();&lt;br /&gt;
seq_start();&lt;br /&gt;
&lt;br /&gt;
for(;;)&lt;br /&gt;
{&lt;br /&gt;
    //Synthesizerupdate; Diese Funktion muss mindestens im 1ms Intervall aufgerufen werden&lt;br /&gt;
    synth_update();&lt;br /&gt;
    //Leseindex mit Schreibindex vergleichen&lt;br /&gt;
    uint8_t read = (uint8_t)(uint16_t)Seq.file;&lt;br /&gt;
    while(read != write)  //Buffer wieder auffüllen&lt;br /&gt;
        midi[write++ &amp;amp; (MIDI_BUF_LEN-1)] = ffread();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Downloads==&lt;br /&gt;
&lt;br /&gt;
===Synthesizer===&lt;br /&gt;
* [[Media:Synthesizer.zip|Synthesizer]]&lt;br /&gt;
* [[Media:Synthesizer_-_Flash.zip|Beispiel Flash]]&lt;br /&gt;
* [[Media:Synthesizer_-_SD-Karte.zip|Beispiel SD-Karte]]&lt;br /&gt;
&lt;br /&gt;
Hinweis: Die Beispiele nutzen den OC1A-Pin zur PWM-Erzeugung.&lt;br /&gt;
&lt;br /&gt;
===Konverter===&lt;br /&gt;
* [[Media:AVR-Synthesizer-Konverter.zip|Konverter (exe)]]&lt;br /&gt;
* [[Media:Midi2AvrSynthConverter.zip|Konverter (source)]]&lt;br /&gt;
&lt;br /&gt;
===Beispiele===&lt;br /&gt;
* [[Media:Mario.mp3|Mario.mp3]]&lt;br /&gt;
* [[Media:Marimba.mp3|Marimba.mp3]]&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
* http://www.mikrocontroller.net/topic/232845&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:AVR-Projekte]]&lt;/div&gt;</summary>
		<author><name>Sam1994</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Datei:Synthesizer_-_SD-Karte.zip&amp;diff=67492</id>
		<title>Datei:Synthesizer - SD-Karte.zip</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Datei:Synthesizer_-_SD-Karte.zip&amp;diff=67492"/>
		<updated>2012-07-24T17:12:42Z</updated>

		<summary type="html">&lt;p&gt;Sam1994: hat eine neue Version von „Datei:Synthesizer - SD-Karte.zip“ hochgeladen&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sam1994</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Datei:Synthesizer_-_Flash.zip&amp;diff=67491</id>
		<title>Datei:Synthesizer - Flash.zip</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Datei:Synthesizer_-_Flash.zip&amp;diff=67491"/>
		<updated>2012-07-24T17:10:14Z</updated>

		<summary type="html">&lt;p&gt;Sam1994: hat eine neue Version von „Datei:Synthesizer - Flash.zip“ hochgeladen&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sam1994</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=AVR-Synthesizer&amp;diff=67490</id>
		<title>AVR-Synthesizer</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=AVR-Synthesizer&amp;diff=67490"/>
		<updated>2012-07-24T17:05:02Z</updated>

		<summary type="html">&lt;p&gt;Sam1994: /* Flash */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;von sam1994&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
&lt;br /&gt;
* 4 Instrumente&lt;br /&gt;
* Bassdrum, Snare, Hihat&lt;br /&gt;
* mehr als 20 gleichzeitig spielende Kanäle @20Mhz&lt;br /&gt;
* einstellbare Samplerate&lt;br /&gt;
* spielt konvertierte Midi-Dateien ab&lt;br /&gt;
* benötigt 7KB Flash, 500-900B Ram&lt;br /&gt;
&lt;br /&gt;
==Hardware==&lt;br /&gt;
&lt;br /&gt;
[[Bild:Pwm-wandler.svg]]&lt;br /&gt;
&lt;br /&gt;
Standardmäßig wird der OCR1A-Pin zur Ausgabe verwendet.&lt;br /&gt;
&lt;br /&gt;
==Software==&lt;br /&gt;
&lt;br /&gt;
Der Synthesizer besteht aus einem Synthesizer und einem Sequenzer. Beide müssen am Anfang initialisiert werden. Dem Sequenzer wird beim Laden einer Datei ein Zeiger auf eine Funktion übergeben, die immer das nächste Byte der Datei ausliest. Dadurch ist es ohne großen Aufwand möglich die Datei aus dem Flash oder von einer SD-Karte zu lesen.&lt;br /&gt;
&lt;br /&gt;
===Flash===&lt;br /&gt;
&lt;br /&gt;
Die Datei wird als Array im Flash gespeichert.&lt;br /&gt;
&amp;lt;c&amp;gt;const uint8_t datei[] PROGMEM = {...vom Konverter...};&amp;lt;/c&amp;gt;&lt;br /&gt;
Dem Sequenzer wird die vordefinierte Funktion ReadFlash übergeben, als Zeiger die Datei:&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
sei();&lt;br /&gt;
//Synthesizer init&lt;br /&gt;
synth_init();&lt;br /&gt;
//Datei vom Sequenzer laden&lt;br /&gt;
seq_load(ReadFlash, (uint8_t*)datei);&lt;br /&gt;
//Synthesizer und Sequenzer starten&lt;br /&gt;
synth_start();&lt;br /&gt;
seq_start();&lt;br /&gt;
for(;;)&lt;br /&gt;
    synth_update();&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===SD-Karte===&lt;br /&gt;
&lt;br /&gt;
Für die SD-Karte braucht man einen Puffer. Mit 256 Byte ist man auf der sicheren Seite, bei wenigen Kanälen kann man auch 128 oder 64 Byte nehmen.&lt;br /&gt;
Außerdem muss man eine Funktion definieren, die aus dem Puffer liest und dem Sequenzer übergeben wird. Der übergebene Zeiger wird hier als Index missbraucht.&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
#define MIDI_BUF_LEN 256&lt;br /&gt;
uint8_t midi[MIDI_BUF_LEN];	&lt;br /&gt;
&lt;br /&gt;
uint8_t ReadBuffer(uint8_t* pos)&lt;br /&gt;
{&lt;br /&gt;
    uint8_t index = (uint16_t)pos;&lt;br /&gt;
    return midi[index &amp;amp; (MIDI_BUF_LEN-1)];&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
Am Anfang muss der Puffer gefüllt und der Synthesizer initialisiert werden. In der Hauptschleife wird nur der Puffer nachgefüllt.&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
//Lesepuffer füllen&lt;br /&gt;
uint8_t i = 0;&lt;br /&gt;
do&lt;br /&gt;
    midi[i] = ffread();&lt;br /&gt;
while(++i != (MIDI_BUF_LEN &amp;amp; 0xFF));&lt;br /&gt;
//Leseindex auf 0 setzen&lt;br /&gt;
uint8_t write = 0;&lt;br /&gt;
&lt;br /&gt;
//Synthesizer init&lt;br /&gt;
synth_init();&lt;br /&gt;
//Datei vom Sequenzer laden&lt;br /&gt;
seq_load(ReadBuffer, 0);&lt;br /&gt;
//Synthesizer und Sequenzer starten&lt;br /&gt;
synth_start();&lt;br /&gt;
seq_start();&lt;br /&gt;
&lt;br /&gt;
for(;;)&lt;br /&gt;
{&lt;br /&gt;
    //Synthesizerupdate; Diese Funktion muss mindestens im 1ms Intervall aufgerufen werden&lt;br /&gt;
    synth_update();&lt;br /&gt;
    //Leseindex mit Schreibindex vergleichen&lt;br /&gt;
    uint8_t read = (uint8_t)(uint16_t)Seq.file;&lt;br /&gt;
    while(read != write)  //Buffer wieder auffüllen&lt;br /&gt;
        midi[write++ &amp;amp; (MIDI_BUF_LEN-1)] = ffread();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Konverter==&lt;br /&gt;
&lt;br /&gt;
Der Konverter kann Midi-Dateien in das Format des Avr-Synthesizers konvertieren. Dazu muss zuerst eine Midi-Datei geladen werden. Für die konvertierte Datei lässt sich ein Tempo-Teiler einstellen. Über Convert/Test lässt sich das Tempo der konvertierten Datei ermitteln, so dass man diesen Teiler passend einstellen kann. &lt;br /&gt;
Die Instrumente der Midi-Datei kann man während des Konvertierens den Instrumenten des Synthesizers zuordnen.&lt;br /&gt;
&lt;br /&gt;
==Downloads==&lt;br /&gt;
&lt;br /&gt;
===Synthesizer===&lt;br /&gt;
* [[Media:Synthesizer.zip|Synthesizer]]&lt;br /&gt;
* [[Media:Synthesizer_-_Flash.zip|Beispiel Flash]]&lt;br /&gt;
* [[Media:Synthesizer_-_SD-Karte.zip|Beispiel SD-Karte]]&lt;br /&gt;
&lt;br /&gt;
Hinweis: Die Beispiele nutzen den OC1A-Pin zur PWM-Erzeugung.&lt;br /&gt;
&lt;br /&gt;
===Konverter===&lt;br /&gt;
* [[Media:AVR-Synthesizer-Konverter.zip|Konverter (exe)]]&lt;br /&gt;
* [[Media:Midi2AvrSynthConverter.zip|Konverter (source)]]&lt;br /&gt;
&lt;br /&gt;
===Beispiele===&lt;br /&gt;
* [[Media:Mario.mp3|Mario.mp3]]&lt;br /&gt;
* [[Media:Marimba.mp3|Marimba.mp3]]&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
* http://www.mikrocontroller.net/topic/232845&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:AVR-Projekte]]&lt;/div&gt;</summary>
		<author><name>Sam1994</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=AVR-Synthesizer&amp;diff=67489</id>
		<title>AVR-Synthesizer</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=AVR-Synthesizer&amp;diff=67489"/>
		<updated>2012-07-24T16:57:10Z</updated>

		<summary type="html">&lt;p&gt;Sam1994: /* Flash */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;von sam1994&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
&lt;br /&gt;
* 4 Instrumente&lt;br /&gt;
* Bassdrum, Snare, Hihat&lt;br /&gt;
* mehr als 20 gleichzeitig spielende Kanäle @20Mhz&lt;br /&gt;
* einstellbare Samplerate&lt;br /&gt;
* spielt konvertierte Midi-Dateien ab&lt;br /&gt;
* benötigt 7KB Flash, 500-900B Ram&lt;br /&gt;
&lt;br /&gt;
==Hardware==&lt;br /&gt;
&lt;br /&gt;
[[Bild:Pwm-wandler.svg]]&lt;br /&gt;
&lt;br /&gt;
Standardmäßig wird der OCR1A-Pin zur Ausgabe verwendet.&lt;br /&gt;
&lt;br /&gt;
==Software==&lt;br /&gt;
&lt;br /&gt;
Der Synthesizer besteht aus einem Synthesizer und einem Sequenzer. Beide müssen am Anfang initialisiert werden. Dem Sequenzer wird beim Laden einer Datei ein Zeiger auf eine Funktion übergeben, die immer das nächste Byte der Datei ausliest. Dadurch ist es ohne großen Aufwand möglich die Datei aus dem Flash oder von einer SD-Karte zu lesen.&lt;br /&gt;
&lt;br /&gt;
===Flash===&lt;br /&gt;
&lt;br /&gt;
Die Datei wird als Array im Flash gespeichert.&lt;br /&gt;
&amp;lt;c&amp;gt;const uint8_t datei[] PROGMEM = {...vom Konverter...};&amp;lt;/c&amp;gt;&lt;br /&gt;
Dem Sequenzer wird die vordefinierte Funktion ReadFlash übergeben, als Zeiger die Datei:&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
sei();&lt;br /&gt;
//Synthesizer init&lt;br /&gt;
synth_init();&lt;br /&gt;
//Datei vom Sequenzer laden&lt;br /&gt;
seq_load(ReadFlash, datei);&lt;br /&gt;
//Synthesizer und Sequenzer starten&lt;br /&gt;
synth_start();&lt;br /&gt;
seq_start();&lt;br /&gt;
for(;;)&lt;br /&gt;
    synth_update();&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===SD-Karte===&lt;br /&gt;
&lt;br /&gt;
Für die SD-Karte braucht man einen Puffer. Mit 256 Byte ist man auf der sicheren Seite, bei wenigen Kanälen kann man auch 128 oder 64 Byte nehmen.&lt;br /&gt;
Außerdem muss man eine Funktion definieren, die aus dem Puffer liest und dem Sequenzer übergeben wird. Der übergebene Zeiger wird hier als Index missbraucht.&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
#define MIDI_BUF_LEN 256&lt;br /&gt;
uint8_t midi[MIDI_BUF_LEN];	&lt;br /&gt;
&lt;br /&gt;
uint8_t ReadBuffer(uint8_t* pos)&lt;br /&gt;
{&lt;br /&gt;
    uint8_t index = (uint16_t)pos;&lt;br /&gt;
    return midi[index &amp;amp; (MIDI_BUF_LEN-1)];&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
Am Anfang muss der Puffer gefüllt und der Synthesizer initialisiert werden. In der Hauptschleife wird nur der Puffer nachgefüllt.&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
//Lesepuffer füllen&lt;br /&gt;
uint8_t i = 0;&lt;br /&gt;
do&lt;br /&gt;
    midi[i] = ffread();&lt;br /&gt;
while(++i != (MIDI_BUF_LEN &amp;amp; 0xFF));&lt;br /&gt;
//Leseindex auf 0 setzen&lt;br /&gt;
uint8_t write = 0;&lt;br /&gt;
&lt;br /&gt;
//Synthesizer init&lt;br /&gt;
synth_init();&lt;br /&gt;
//Datei vom Sequenzer laden&lt;br /&gt;
seq_load(ReadBuffer, 0);&lt;br /&gt;
//Synthesizer und Sequenzer starten&lt;br /&gt;
synth_start();&lt;br /&gt;
seq_start();&lt;br /&gt;
&lt;br /&gt;
for(;;)&lt;br /&gt;
{&lt;br /&gt;
    //Synthesizerupdate; Diese Funktion muss mindestens im 1ms Intervall aufgerufen werden&lt;br /&gt;
    synth_update();&lt;br /&gt;
    //Leseindex mit Schreibindex vergleichen&lt;br /&gt;
    uint8_t read = (uint8_t)(uint16_t)Seq.file;&lt;br /&gt;
    while(read != write)  //Buffer wieder auffüllen&lt;br /&gt;
        midi[write++ &amp;amp; (MIDI_BUF_LEN-1)] = ffread();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Konverter==&lt;br /&gt;
&lt;br /&gt;
Der Konverter kann Midi-Dateien in das Format des Avr-Synthesizers konvertieren. Dazu muss zuerst eine Midi-Datei geladen werden. Für die konvertierte Datei lässt sich ein Tempo-Teiler einstellen. Über Convert/Test lässt sich das Tempo der konvertierten Datei ermitteln, so dass man diesen Teiler passend einstellen kann. &lt;br /&gt;
Die Instrumente der Midi-Datei kann man während des Konvertierens den Instrumenten des Synthesizers zuordnen.&lt;br /&gt;
&lt;br /&gt;
==Downloads==&lt;br /&gt;
&lt;br /&gt;
===Synthesizer===&lt;br /&gt;
* [[Media:Synthesizer.zip|Synthesizer]]&lt;br /&gt;
* [[Media:Synthesizer_-_Flash.zip|Beispiel Flash]]&lt;br /&gt;
* [[Media:Synthesizer_-_SD-Karte.zip|Beispiel SD-Karte]]&lt;br /&gt;
&lt;br /&gt;
Hinweis: Die Beispiele nutzen den OC1A-Pin zur PWM-Erzeugung.&lt;br /&gt;
&lt;br /&gt;
===Konverter===&lt;br /&gt;
* [[Media:AVR-Synthesizer-Konverter.zip|Konverter (exe)]]&lt;br /&gt;
* [[Media:Midi2AvrSynthConverter.zip|Konverter (source)]]&lt;br /&gt;
&lt;br /&gt;
===Beispiele===&lt;br /&gt;
* [[Media:Mario.mp3|Mario.mp3]]&lt;br /&gt;
* [[Media:Marimba.mp3|Marimba.mp3]]&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
* http://www.mikrocontroller.net/topic/232845&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:AVR-Projekte]]&lt;/div&gt;</summary>
		<author><name>Sam1994</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Datei:Synthesizer.zip&amp;diff=67488</id>
		<title>Datei:Synthesizer.zip</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Datei:Synthesizer.zip&amp;diff=67488"/>
		<updated>2012-07-24T16:44:22Z</updated>

		<summary type="html">&lt;p&gt;Sam1994: hat eine neue Version von „Datei:Synthesizer.zip“ hochgeladen&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Source&lt;/div&gt;</summary>
		<author><name>Sam1994</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=AVR-Synthesizer&amp;diff=67487</id>
		<title>AVR-Synthesizer</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=AVR-Synthesizer&amp;diff=67487"/>
		<updated>2012-07-24T16:38:30Z</updated>

		<summary type="html">&lt;p&gt;Sam1994: /* Flash */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;von sam1994&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
&lt;br /&gt;
* 4 Instrumente&lt;br /&gt;
* Bassdrum, Snare, Hihat&lt;br /&gt;
* mehr als 20 gleichzeitig spielende Kanäle @20Mhz&lt;br /&gt;
* einstellbare Samplerate&lt;br /&gt;
* spielt konvertierte Midi-Dateien ab&lt;br /&gt;
* benötigt 7KB Flash, 500-900B Ram&lt;br /&gt;
&lt;br /&gt;
==Hardware==&lt;br /&gt;
&lt;br /&gt;
[[Bild:Pwm-wandler.svg]]&lt;br /&gt;
&lt;br /&gt;
Standardmäßig wird der OCR1A-Pin zur Ausgabe verwendet.&lt;br /&gt;
&lt;br /&gt;
==Software==&lt;br /&gt;
&lt;br /&gt;
Der Synthesizer besteht aus einem Synthesizer und einem Sequenzer. Beide müssen am Anfang initialisiert werden. Dem Sequenzer wird beim Laden einer Datei ein Zeiger auf eine Funktion übergeben, die immer das nächste Byte der Datei ausliest. Dadurch ist es ohne großen Aufwand möglich die Datei aus dem Flash oder von einer SD-Karte zu lesen.&lt;br /&gt;
&lt;br /&gt;
===Flash===&lt;br /&gt;
&lt;br /&gt;
Die Datei wird als Array im Flash gespeichert.&lt;br /&gt;
&amp;lt;c&amp;gt;const uint8_t datei[] PROGMEM = {...vom Konverter...};&amp;lt;/c&amp;gt;&lt;br /&gt;
Dem Sequenzer wird die vordefinierte Funktion ReadFlash übergeben, als Zeiger die Datei:&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
//Synthesizer init&lt;br /&gt;
synth_init();&lt;br /&gt;
//Datei vom Sequenzer laden&lt;br /&gt;
seq_load(ReadFlash, datei);&lt;br /&gt;
//Synthesizer und Sequenzer starten&lt;br /&gt;
synth_start();&lt;br /&gt;
seq_start();&lt;br /&gt;
for(;;)&lt;br /&gt;
    synth_update();&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===SD-Karte===&lt;br /&gt;
&lt;br /&gt;
Für die SD-Karte braucht man einen Puffer. Mit 256 Byte ist man auf der sicheren Seite, bei wenigen Kanälen kann man auch 128 oder 64 Byte nehmen.&lt;br /&gt;
Außerdem muss man eine Funktion definieren, die aus dem Puffer liest und dem Sequenzer übergeben wird. Der übergebene Zeiger wird hier als Index missbraucht.&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
#define MIDI_BUF_LEN 256&lt;br /&gt;
uint8_t midi[MIDI_BUF_LEN];	&lt;br /&gt;
&lt;br /&gt;
uint8_t ReadBuffer(uint8_t* pos)&lt;br /&gt;
{&lt;br /&gt;
    uint8_t index = (uint16_t)pos;&lt;br /&gt;
    return midi[index &amp;amp; (MIDI_BUF_LEN-1)];&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
Am Anfang muss der Puffer gefüllt und der Synthesizer initialisiert werden. In der Hauptschleife wird nur der Puffer nachgefüllt.&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
//Lesepuffer füllen&lt;br /&gt;
uint8_t i = 0;&lt;br /&gt;
do&lt;br /&gt;
    midi[i] = ffread();&lt;br /&gt;
while(++i != (MIDI_BUF_LEN &amp;amp; 0xFF));&lt;br /&gt;
//Leseindex auf 0 setzen&lt;br /&gt;
uint8_t write = 0;&lt;br /&gt;
&lt;br /&gt;
//Synthesizer init&lt;br /&gt;
synth_init();&lt;br /&gt;
//Datei vom Sequenzer laden&lt;br /&gt;
seq_load(ReadBuffer, 0);&lt;br /&gt;
//Synthesizer und Sequenzer starten&lt;br /&gt;
synth_start();&lt;br /&gt;
seq_start();&lt;br /&gt;
&lt;br /&gt;
for(;;)&lt;br /&gt;
{&lt;br /&gt;
    //Synthesizerupdate; Diese Funktion muss mindestens im 1ms Intervall aufgerufen werden&lt;br /&gt;
    synth_update();&lt;br /&gt;
    //Leseindex mit Schreibindex vergleichen&lt;br /&gt;
    uint8_t read = (uint8_t)(uint16_t)Seq.file;&lt;br /&gt;
    while(read != write)  //Buffer wieder auffüllen&lt;br /&gt;
        midi[write++ &amp;amp; (MIDI_BUF_LEN-1)] = ffread();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Konverter==&lt;br /&gt;
&lt;br /&gt;
Der Konverter kann Midi-Dateien in das Format des Avr-Synthesizers konvertieren. Dazu muss zuerst eine Midi-Datei geladen werden. Für die konvertierte Datei lässt sich ein Tempo-Teiler einstellen. Über Convert/Test lässt sich das Tempo der konvertierten Datei ermitteln, so dass man diesen Teiler passend einstellen kann. &lt;br /&gt;
Die Instrumente der Midi-Datei kann man während des Konvertierens den Instrumenten des Synthesizers zuordnen.&lt;br /&gt;
&lt;br /&gt;
==Downloads==&lt;br /&gt;
&lt;br /&gt;
===Synthesizer===&lt;br /&gt;
* [[Media:Synthesizer.zip|Synthesizer]]&lt;br /&gt;
* [[Media:Synthesizer_-_Flash.zip|Beispiel Flash]]&lt;br /&gt;
* [[Media:Synthesizer_-_SD-Karte.zip|Beispiel SD-Karte]]&lt;br /&gt;
&lt;br /&gt;
Hinweis: Die Beispiele nutzen den OC1A-Pin zur PWM-Erzeugung.&lt;br /&gt;
&lt;br /&gt;
===Konverter===&lt;br /&gt;
* [[Media:AVR-Synthesizer-Konverter.zip|Konverter (exe)]]&lt;br /&gt;
* [[Media:Midi2AvrSynthConverter.zip|Konverter (source)]]&lt;br /&gt;
&lt;br /&gt;
===Beispiele===&lt;br /&gt;
* [[Media:Mario.mp3|Mario.mp3]]&lt;br /&gt;
* [[Media:Marimba.mp3|Marimba.mp3]]&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
* http://www.mikrocontroller.net/topic/232845&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:AVR-Projekte]]&lt;/div&gt;</summary>
		<author><name>Sam1994</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=AVR-Synthesizer&amp;diff=67486</id>
		<title>AVR-Synthesizer</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=AVR-Synthesizer&amp;diff=67486"/>
		<updated>2012-07-24T16:22:22Z</updated>

		<summary type="html">&lt;p&gt;Sam1994: /* Hinweise */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;von sam1994&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
&lt;br /&gt;
* 4 Instrumente&lt;br /&gt;
* Bassdrum, Snare, Hihat&lt;br /&gt;
* mehr als 20 gleichzeitig spielende Kanäle @20Mhz&lt;br /&gt;
* einstellbare Samplerate&lt;br /&gt;
* spielt konvertierte Midi-Dateien ab&lt;br /&gt;
* benötigt 7KB Flash, 500-900B Ram&lt;br /&gt;
&lt;br /&gt;
==Hardware==&lt;br /&gt;
&lt;br /&gt;
[[Bild:Pwm-wandler.svg]]&lt;br /&gt;
&lt;br /&gt;
Standardmäßig wird der OCR1A-Pin zur Ausgabe verwendet.&lt;br /&gt;
&lt;br /&gt;
==Software==&lt;br /&gt;
&lt;br /&gt;
Der Synthesizer besteht aus einem Synthesizer und einem Sequenzer. Beide müssen am Anfang initialisiert werden. Dem Sequenzer wird beim Laden einer Datei ein Zeiger auf eine Funktion übergeben, die immer das nächste Byte der Datei ausliest. Dadurch ist es ohne großen Aufwand möglich die Datei aus dem Flash oder von einer SD-Karte zu lesen.&lt;br /&gt;
&lt;br /&gt;
===Flash===&lt;br /&gt;
&lt;br /&gt;
Die Datei wird als Array im Flash gespeichert.&lt;br /&gt;
&amp;lt;c&amp;gt;const uint8_t datei PROGMEM = {...vom Konverter...};&amp;lt;/c&amp;gt;&lt;br /&gt;
Dem Sequenzer wird die vordefinierte Funktion ReadFlash übergeben, als Zeiger die Datei:&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
//Synthesizer init&lt;br /&gt;
synth_init();&lt;br /&gt;
//Datei vom Sequenzer laden&lt;br /&gt;
seq_load(ReadFlash, datei);&lt;br /&gt;
//Synthesizer und Sequenzer starten&lt;br /&gt;
synth_start();&lt;br /&gt;
seq_start();&lt;br /&gt;
for(;;)&lt;br /&gt;
    synth_update();&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===SD-Karte===&lt;br /&gt;
&lt;br /&gt;
Für die SD-Karte braucht man einen Puffer. Mit 256 Byte ist man auf der sicheren Seite, bei wenigen Kanälen kann man auch 128 oder 64 Byte nehmen.&lt;br /&gt;
Außerdem muss man eine Funktion definieren, die aus dem Puffer liest und dem Sequenzer übergeben wird. Der übergebene Zeiger wird hier als Index missbraucht.&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
#define MIDI_BUF_LEN 256&lt;br /&gt;
uint8_t midi[MIDI_BUF_LEN];	&lt;br /&gt;
&lt;br /&gt;
uint8_t ReadBuffer(uint8_t* pos)&lt;br /&gt;
{&lt;br /&gt;
    uint8_t index = (uint16_t)pos;&lt;br /&gt;
    return midi[index &amp;amp; (MIDI_BUF_LEN-1)];&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
Am Anfang muss der Puffer gefüllt und der Synthesizer initialisiert werden. In der Hauptschleife wird nur der Puffer nachgefüllt.&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
//Lesepuffer füllen&lt;br /&gt;
uint8_t i = 0;&lt;br /&gt;
do&lt;br /&gt;
    midi[i] = ffread();&lt;br /&gt;
while(++i != (MIDI_BUF_LEN &amp;amp; 0xFF));&lt;br /&gt;
//Leseindex auf 0 setzen&lt;br /&gt;
uint8_t write = 0;&lt;br /&gt;
&lt;br /&gt;
//Synthesizer init&lt;br /&gt;
synth_init();&lt;br /&gt;
//Datei vom Sequenzer laden&lt;br /&gt;
seq_load(ReadBuffer, 0);&lt;br /&gt;
//Synthesizer und Sequenzer starten&lt;br /&gt;
synth_start();&lt;br /&gt;
seq_start();&lt;br /&gt;
&lt;br /&gt;
for(;;)&lt;br /&gt;
{&lt;br /&gt;
    //Synthesizerupdate; Diese Funktion muss mindestens im 1ms Intervall aufgerufen werden&lt;br /&gt;
    synth_update();&lt;br /&gt;
    //Leseindex mit Schreibindex vergleichen&lt;br /&gt;
    uint8_t read = (uint8_t)(uint16_t)Seq.file;&lt;br /&gt;
    while(read != write)  //Buffer wieder auffüllen&lt;br /&gt;
        midi[write++ &amp;amp; (MIDI_BUF_LEN-1)] = ffread();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Konverter==&lt;br /&gt;
&lt;br /&gt;
Der Konverter kann Midi-Dateien in das Format des Avr-Synthesizers konvertieren. Dazu muss zuerst eine Midi-Datei geladen werden. Für die konvertierte Datei lässt sich ein Tempo-Teiler einstellen. Über Convert/Test lässt sich das Tempo der konvertierten Datei ermitteln, so dass man diesen Teiler passend einstellen kann. &lt;br /&gt;
Die Instrumente der Midi-Datei kann man während des Konvertierens den Instrumenten des Synthesizers zuordnen.&lt;br /&gt;
&lt;br /&gt;
==Downloads==&lt;br /&gt;
&lt;br /&gt;
===Synthesizer===&lt;br /&gt;
* [[Media:Synthesizer.zip|Synthesizer]]&lt;br /&gt;
* [[Media:Synthesizer_-_Flash.zip|Beispiel Flash]]&lt;br /&gt;
* [[Media:Synthesizer_-_SD-Karte.zip|Beispiel SD-Karte]]&lt;br /&gt;
&lt;br /&gt;
Hinweis: Die Beispiele nutzen den OC1A-Pin zur PWM-Erzeugung.&lt;br /&gt;
&lt;br /&gt;
===Konverter===&lt;br /&gt;
* [[Media:AVR-Synthesizer-Konverter.zip|Konverter (exe)]]&lt;br /&gt;
* [[Media:Midi2AvrSynthConverter.zip|Konverter (source)]]&lt;br /&gt;
&lt;br /&gt;
===Beispiele===&lt;br /&gt;
* [[Media:Mario.mp3|Mario.mp3]]&lt;br /&gt;
* [[Media:Marimba.mp3|Marimba.mp3]]&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
* http://www.mikrocontroller.net/topic/232845&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:AVR-Projekte]]&lt;/div&gt;</summary>
		<author><name>Sam1994</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=AVR-Synthesizer&amp;diff=67485</id>
		<title>AVR-Synthesizer</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=AVR-Synthesizer&amp;diff=67485"/>
		<updated>2012-07-24T16:21:35Z</updated>

		<summary type="html">&lt;p&gt;Sam1994: /* SD-Karte */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;von sam1994&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
&lt;br /&gt;
* 4 Instrumente&lt;br /&gt;
* Bassdrum, Snare, Hihat&lt;br /&gt;
* mehr als 20 gleichzeitig spielende Kanäle @20Mhz&lt;br /&gt;
* einstellbare Samplerate&lt;br /&gt;
* spielt konvertierte Midi-Dateien ab&lt;br /&gt;
* benötigt 7KB Flash, 500-900B Ram&lt;br /&gt;
&lt;br /&gt;
==Hardware==&lt;br /&gt;
&lt;br /&gt;
[[Bild:Pwm-wandler.svg]]&lt;br /&gt;
&lt;br /&gt;
Standardmäßig wird der OCR1A-Pin zur Ausgabe verwendet.&lt;br /&gt;
&lt;br /&gt;
==Software==&lt;br /&gt;
&lt;br /&gt;
Der Synthesizer besteht aus einem Synthesizer und einem Sequenzer. Beide müssen am Anfang initialisiert werden. Dem Sequenzer wird beim Laden einer Datei ein Zeiger auf eine Funktion übergeben, die immer das nächste Byte der Datei ausliest. Dadurch ist es ohne großen Aufwand möglich die Datei aus dem Flash oder von einer SD-Karte zu lesen.&lt;br /&gt;
&lt;br /&gt;
===Flash===&lt;br /&gt;
&lt;br /&gt;
Die Datei wird als Array im Flash gespeichert.&lt;br /&gt;
&amp;lt;c&amp;gt;const uint8_t datei PROGMEM = {...vom Konverter...};&amp;lt;/c&amp;gt;&lt;br /&gt;
Dem Sequenzer wird die vordefinierte Funktion ReadFlash übergeben, als Zeiger die Datei:&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
//Synthesizer init&lt;br /&gt;
synth_init();&lt;br /&gt;
//Datei vom Sequenzer laden&lt;br /&gt;
seq_load(ReadFlash, datei);&lt;br /&gt;
//Synthesizer und Sequenzer starten&lt;br /&gt;
synth_start();&lt;br /&gt;
seq_start();&lt;br /&gt;
for(;;)&lt;br /&gt;
    synth_update();&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===SD-Karte===&lt;br /&gt;
&lt;br /&gt;
Für die SD-Karte braucht man einen Puffer. Mit 256 Byte ist man auf der sicheren Seite, bei wenigen Kanälen kann man auch 128 oder 64 Byte nehmen.&lt;br /&gt;
Außerdem muss man eine Funktion definieren, die aus dem Puffer liest und dem Sequenzer übergeben wird. Der übergebene Zeiger wird hier als Index missbraucht.&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
#define MIDI_BUF_LEN 256&lt;br /&gt;
uint8_t midi[MIDI_BUF_LEN];	&lt;br /&gt;
&lt;br /&gt;
uint8_t ReadBuffer(uint8_t* pos)&lt;br /&gt;
{&lt;br /&gt;
    uint8_t index = (uint16_t)pos;&lt;br /&gt;
    return midi[index &amp;amp; (MIDI_BUF_LEN-1)];&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
Am Anfang muss der Puffer gefüllt und der Synthesizer initialisiert werden. In der Hauptschleife wird nur der Puffer nachgefüllt.&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
//Lesepuffer füllen&lt;br /&gt;
uint8_t i = 0;&lt;br /&gt;
do&lt;br /&gt;
    midi[i] = ffread();&lt;br /&gt;
while(++i != (MIDI_BUF_LEN &amp;amp; 0xFF));&lt;br /&gt;
//Leseindex auf 0 setzen&lt;br /&gt;
uint8_t write = 0;&lt;br /&gt;
&lt;br /&gt;
//Synthesizer init&lt;br /&gt;
synth_init();&lt;br /&gt;
//Datei vom Sequenzer laden&lt;br /&gt;
seq_load(ReadBuffer, 0);&lt;br /&gt;
//Synthesizer und Sequenzer starten&lt;br /&gt;
synth_start();&lt;br /&gt;
seq_start();&lt;br /&gt;
&lt;br /&gt;
for(;;)&lt;br /&gt;
{&lt;br /&gt;
    //Synthesizerupdate; Diese Funktion muss mindestens im 1ms Intervall aufgerufen werden&lt;br /&gt;
    synth_update();&lt;br /&gt;
    //Leseindex mit Schreibindex vergleichen&lt;br /&gt;
    uint8_t read = (uint8_t)(uint16_t)Seq.file;&lt;br /&gt;
    while(read != write)  //Buffer wieder auffüllen&lt;br /&gt;
        midi[write++ &amp;amp; (MIDI_BUF_LEN-1)] = ffread();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Konverter==&lt;br /&gt;
&lt;br /&gt;
Der Konverter kann Midi-Dateien in das Format des Avr-Synthesizers konvertieren. Dazu muss zuerst eine Midi-Datei geladen werden. Für die konvertierte Datei lässt sich ein Tempo-Teiler einstellen. Über Convert/Test lässt sich das Tempo der konvertierten Datei ermitteln, so dass man diesen Teiler passend einstellen kann. &lt;br /&gt;
Die Instrumente der Midi-Datei kann man während des Konvertierens den Instrumenten des Synthesizers zuordnen.&lt;br /&gt;
&lt;br /&gt;
==Downloads==&lt;br /&gt;
&lt;br /&gt;
===Synthesizer===&lt;br /&gt;
* [[Media:Synthesizer.zip|Synthesizer]]&lt;br /&gt;
* [[Media:Synthesizer_-_Flash.zip|Beispiel Flash]]&lt;br /&gt;
* [[Media:Synthesizer_-_SD-Karte.zip|Beispiel SD-Karte]]&lt;br /&gt;
&lt;br /&gt;
Hinweis: Die Beispiele nutzen den OC1A-Pin zur PWM-Erzeugung.&lt;br /&gt;
&lt;br /&gt;
===Konverter===&lt;br /&gt;
* [[Media:AVR-Synthesizer-Konverter.zip|Konverter (exe)]]&lt;br /&gt;
* [[Media:Midi2AvrSynthConverter.zip|Konverter (source)]]&lt;br /&gt;
&lt;br /&gt;
===Beispiele===&lt;br /&gt;
* [[Media:Mario.mp3|Mario.mp3]]&lt;br /&gt;
* [[Media:Marimba.mp3|Marimba.mp3]]&lt;br /&gt;
&lt;br /&gt;
==Hinweise==&lt;br /&gt;
&lt;br /&gt;
Sollte der Synthesizer die Dateien nicht sauber abspielen, kann das an der zu kleinen Puffergröße des Synthesizers (synth_config.h) oder der SD-Karte liegen. Wenn die Datei mehr Kanäle haben sollte, als in der synth_config.h eingestellt sind, werden die Noten nicht mehr zum richtigen Zeitpunkt gespielt. Zu viel eingestellte Kanäle brauchen jedoch viel Leistung, was auch zu Fehlern führen kann.&lt;br /&gt;
Ebenso kann der Synthesizer übersteuern. In diesem Fall sollte man die Startlautstärke verringern (Sequencer.c, synth.oscillators[i].temp = 20;).&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
* http://www.mikrocontroller.net/topic/232845&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:AVR-Projekte]]&lt;/div&gt;</summary>
		<author><name>Sam1994</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=AVR-Synthesizer&amp;diff=67484</id>
		<title>AVR-Synthesizer</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=AVR-Synthesizer&amp;diff=67484"/>
		<updated>2012-07-24T16:21:21Z</updated>

		<summary type="html">&lt;p&gt;Sam1994: /* SD-Karte */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;von sam1994&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
&lt;br /&gt;
* 4 Instrumente&lt;br /&gt;
* Bassdrum, Snare, Hihat&lt;br /&gt;
* mehr als 20 gleichzeitig spielende Kanäle @20Mhz&lt;br /&gt;
* einstellbare Samplerate&lt;br /&gt;
* spielt konvertierte Midi-Dateien ab&lt;br /&gt;
* benötigt 7KB Flash, 500-900B Ram&lt;br /&gt;
&lt;br /&gt;
==Hardware==&lt;br /&gt;
&lt;br /&gt;
[[Bild:Pwm-wandler.svg]]&lt;br /&gt;
&lt;br /&gt;
Standardmäßig wird der OCR1A-Pin zur Ausgabe verwendet.&lt;br /&gt;
&lt;br /&gt;
==Software==&lt;br /&gt;
&lt;br /&gt;
Der Synthesizer besteht aus einem Synthesizer und einem Sequenzer. Beide müssen am Anfang initialisiert werden. Dem Sequenzer wird beim Laden einer Datei ein Zeiger auf eine Funktion übergeben, die immer das nächste Byte der Datei ausliest. Dadurch ist es ohne großen Aufwand möglich die Datei aus dem Flash oder von einer SD-Karte zu lesen.&lt;br /&gt;
&lt;br /&gt;
===Flash===&lt;br /&gt;
&lt;br /&gt;
Die Datei wird als Array im Flash gespeichert.&lt;br /&gt;
&amp;lt;c&amp;gt;const uint8_t datei PROGMEM = {...vom Konverter...};&amp;lt;/c&amp;gt;&lt;br /&gt;
Dem Sequenzer wird die vordefinierte Funktion ReadFlash übergeben, als Zeiger die Datei:&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
//Synthesizer init&lt;br /&gt;
synth_init();&lt;br /&gt;
//Datei vom Sequenzer laden&lt;br /&gt;
seq_load(ReadFlash, datei);&lt;br /&gt;
//Synthesizer und Sequenzer starten&lt;br /&gt;
synth_start();&lt;br /&gt;
seq_start();&lt;br /&gt;
for(;;)&lt;br /&gt;
    synth_update();&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===SD-Karte===&lt;br /&gt;
&lt;br /&gt;
Für die SD-Karte braucht man einen Puffer. Mit 256 Byte ist man auf der sicheren Seite, bei wenigen Kanälen kann man auch 128 oder 64 Byte nehmen.&lt;br /&gt;
Außerdem muss man eine Funktion definieren, die aus dem Puffer liest und dem Sequenzer übergeben wird. Der übergebene Zeiger wird hier als Index missbraucht.&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
#define MIDI_BUF_LEN 256&lt;br /&gt;
uint8_t midi[MIDI_BUF_LEN];	&lt;br /&gt;
&lt;br /&gt;
uint8_t ReadBuffer(uint8_t* pos)&lt;br /&gt;
{&lt;br /&gt;
	uint8_t index = (uint16_t)pos;&lt;br /&gt;
	return midi[index &amp;amp; (MIDI_BUF_LEN-1)];&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
Am Anfang muss der Puffer gefüllt und der Synthesizer initialisiert werden. In der Hauptschleife wird nur der Puffer nachgefüllt.&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
//Lesepuffer füllen&lt;br /&gt;
uint8_t i = 0;&lt;br /&gt;
do&lt;br /&gt;
    midi[i] = ffread();&lt;br /&gt;
while(++i != (MIDI_BUF_LEN &amp;amp; 0xFF));&lt;br /&gt;
//Leseindex auf 0 setzen&lt;br /&gt;
uint8_t write = 0;&lt;br /&gt;
&lt;br /&gt;
//Synthesizer init&lt;br /&gt;
synth_init();&lt;br /&gt;
//Datei vom Sequenzer laden&lt;br /&gt;
seq_load(ReadBuffer, 0);&lt;br /&gt;
//Synthesizer und Sequenzer starten&lt;br /&gt;
synth_start();&lt;br /&gt;
seq_start();&lt;br /&gt;
&lt;br /&gt;
for(;;)&lt;br /&gt;
{&lt;br /&gt;
    //Synthesizerupdate; Diese Funktion muss mindestens im 1ms Intervall aufgerufen werden&lt;br /&gt;
    synth_update();&lt;br /&gt;
    //Leseindex mit Schreibindex vergleichen&lt;br /&gt;
    uint8_t read = (uint8_t)(uint16_t)Seq.file;&lt;br /&gt;
    while(read != write)  //Buffer wieder auffüllen&lt;br /&gt;
        midi[write++ &amp;amp; (MIDI_BUF_LEN-1)] = ffread();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Konverter==&lt;br /&gt;
&lt;br /&gt;
Der Konverter kann Midi-Dateien in das Format des Avr-Synthesizers konvertieren. Dazu muss zuerst eine Midi-Datei geladen werden. Für die konvertierte Datei lässt sich ein Tempo-Teiler einstellen. Über Convert/Test lässt sich das Tempo der konvertierten Datei ermitteln, so dass man diesen Teiler passend einstellen kann. &lt;br /&gt;
Die Instrumente der Midi-Datei kann man während des Konvertierens den Instrumenten des Synthesizers zuordnen.&lt;br /&gt;
&lt;br /&gt;
==Downloads==&lt;br /&gt;
&lt;br /&gt;
===Synthesizer===&lt;br /&gt;
* [[Media:Synthesizer.zip|Synthesizer]]&lt;br /&gt;
* [[Media:Synthesizer_-_Flash.zip|Beispiel Flash]]&lt;br /&gt;
* [[Media:Synthesizer_-_SD-Karte.zip|Beispiel SD-Karte]]&lt;br /&gt;
&lt;br /&gt;
Hinweis: Die Beispiele nutzen den OC1A-Pin zur PWM-Erzeugung.&lt;br /&gt;
&lt;br /&gt;
===Konverter===&lt;br /&gt;
* [[Media:AVR-Synthesizer-Konverter.zip|Konverter (exe)]]&lt;br /&gt;
* [[Media:Midi2AvrSynthConverter.zip|Konverter (source)]]&lt;br /&gt;
&lt;br /&gt;
===Beispiele===&lt;br /&gt;
* [[Media:Mario.mp3|Mario.mp3]]&lt;br /&gt;
* [[Media:Marimba.mp3|Marimba.mp3]]&lt;br /&gt;
&lt;br /&gt;
==Hinweise==&lt;br /&gt;
&lt;br /&gt;
Sollte der Synthesizer die Dateien nicht sauber abspielen, kann das an der zu kleinen Puffergröße des Synthesizers (synth_config.h) oder der SD-Karte liegen. Wenn die Datei mehr Kanäle haben sollte, als in der synth_config.h eingestellt sind, werden die Noten nicht mehr zum richtigen Zeitpunkt gespielt. Zu viel eingestellte Kanäle brauchen jedoch viel Leistung, was auch zu Fehlern führen kann.&lt;br /&gt;
Ebenso kann der Synthesizer übersteuern. In diesem Fall sollte man die Startlautstärke verringern (Sequencer.c, synth.oscillators[i].temp = 20;).&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
* http://www.mikrocontroller.net/topic/232845&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:AVR-Projekte]]&lt;/div&gt;</summary>
		<author><name>Sam1994</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=AVR-Synthesizer&amp;diff=67483</id>
		<title>AVR-Synthesizer</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=AVR-Synthesizer&amp;diff=67483"/>
		<updated>2012-07-24T16:20:27Z</updated>

		<summary type="html">&lt;p&gt;Sam1994: /* SD-Karte */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;von sam1994&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
&lt;br /&gt;
* 4 Instrumente&lt;br /&gt;
* Bassdrum, Snare, Hihat&lt;br /&gt;
* mehr als 20 gleichzeitig spielende Kanäle @20Mhz&lt;br /&gt;
* einstellbare Samplerate&lt;br /&gt;
* spielt konvertierte Midi-Dateien ab&lt;br /&gt;
* benötigt 7KB Flash, 500-900B Ram&lt;br /&gt;
&lt;br /&gt;
==Hardware==&lt;br /&gt;
&lt;br /&gt;
[[Bild:Pwm-wandler.svg]]&lt;br /&gt;
&lt;br /&gt;
Standardmäßig wird der OCR1A-Pin zur Ausgabe verwendet.&lt;br /&gt;
&lt;br /&gt;
==Software==&lt;br /&gt;
&lt;br /&gt;
Der Synthesizer besteht aus einem Synthesizer und einem Sequenzer. Beide müssen am Anfang initialisiert werden. Dem Sequenzer wird beim Laden einer Datei ein Zeiger auf eine Funktion übergeben, die immer das nächste Byte der Datei ausliest. Dadurch ist es ohne großen Aufwand möglich die Datei aus dem Flash oder von einer SD-Karte zu lesen.&lt;br /&gt;
&lt;br /&gt;
===Flash===&lt;br /&gt;
&lt;br /&gt;
Die Datei wird als Array im Flash gespeichert.&lt;br /&gt;
&amp;lt;c&amp;gt;const uint8_t datei PROGMEM = {...vom Konverter...};&amp;lt;/c&amp;gt;&lt;br /&gt;
Dem Sequenzer wird die vordefinierte Funktion ReadFlash übergeben, als Zeiger die Datei:&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
//Synthesizer init&lt;br /&gt;
synth_init();&lt;br /&gt;
//Datei vom Sequenzer laden&lt;br /&gt;
seq_load(ReadFlash, datei);&lt;br /&gt;
//Synthesizer und Sequenzer starten&lt;br /&gt;
synth_start();&lt;br /&gt;
seq_start();&lt;br /&gt;
for(;;)&lt;br /&gt;
    synth_update();&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===SD-Karte===&lt;br /&gt;
&lt;br /&gt;
Für die SD-Karte braucht man einen Puffer. Mit 256 Byte ist man auf der sicheren Seite, bei wenigen Kanälen kann man auch 128 oder 64 Byte nehmen.&lt;br /&gt;
Außerdem muss man eine Funktion definieren, die aus dem Puffer liest und dem Sequenzer übergeben wird. Der übergebene Zeiger wird hier als Index missbraucht.&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
#define MIDI_BUF_LEN 256&lt;br /&gt;
uint8_t midi[MIDI_BUF_LEN];	&lt;br /&gt;
&lt;br /&gt;
uint8_t ReadBuffer(uint8_t* pos)&lt;br /&gt;
{&lt;br /&gt;
    return midi[((uint8_t)(uint16_t)pos) &amp;amp; (MIDI_BUF_LEN-1)];&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
Am Anfang muss der Puffer gefüllt und der Synthesizer initialisiert werden. In der Hauptschleife wird nur der Puffer nachgefüllt.&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
//Lesepuffer füllen&lt;br /&gt;
uint8_t i = 0;&lt;br /&gt;
do&lt;br /&gt;
    midi[i] = ffread();&lt;br /&gt;
while(++i != (MIDI_BUF_LEN &amp;amp; 0xFF));&lt;br /&gt;
//Leseindex auf 0 setzen&lt;br /&gt;
uint8_t write = 0;&lt;br /&gt;
&lt;br /&gt;
//Synthesizer init&lt;br /&gt;
synth_init();&lt;br /&gt;
//Datei vom Sequenzer laden&lt;br /&gt;
seq_load(ReadBuffer, 0);&lt;br /&gt;
//Synthesizer und Sequenzer starten&lt;br /&gt;
synth_start();&lt;br /&gt;
seq_start();&lt;br /&gt;
&lt;br /&gt;
for(;;)&lt;br /&gt;
{&lt;br /&gt;
    //Synthesizerupdate; Diese Funktion muss mindestens im 1ms Intervall aufgerufen werden&lt;br /&gt;
    synth_update();&lt;br /&gt;
    //Leseindex mit Schreibindex vergleichen&lt;br /&gt;
    uint8_t read = (uint8_t)(uint16_t)Seq.file;&lt;br /&gt;
    while(read != write)  //Buffer wieder auffüllen&lt;br /&gt;
        midi[write++ &amp;amp; (MIDI_BUF_LEN-1)] = ffread();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Konverter==&lt;br /&gt;
&lt;br /&gt;
Der Konverter kann Midi-Dateien in das Format des Avr-Synthesizers konvertieren. Dazu muss zuerst eine Midi-Datei geladen werden. Für die konvertierte Datei lässt sich ein Tempo-Teiler einstellen. Über Convert/Test lässt sich das Tempo der konvertierten Datei ermitteln, so dass man diesen Teiler passend einstellen kann. &lt;br /&gt;
Die Instrumente der Midi-Datei kann man während des Konvertierens den Instrumenten des Synthesizers zuordnen.&lt;br /&gt;
&lt;br /&gt;
==Downloads==&lt;br /&gt;
&lt;br /&gt;
===Synthesizer===&lt;br /&gt;
* [[Media:Synthesizer.zip|Synthesizer]]&lt;br /&gt;
* [[Media:Synthesizer_-_Flash.zip|Beispiel Flash]]&lt;br /&gt;
* [[Media:Synthesizer_-_SD-Karte.zip|Beispiel SD-Karte]]&lt;br /&gt;
&lt;br /&gt;
Hinweis: Die Beispiele nutzen den OC1A-Pin zur PWM-Erzeugung.&lt;br /&gt;
&lt;br /&gt;
===Konverter===&lt;br /&gt;
* [[Media:AVR-Synthesizer-Konverter.zip|Konverter (exe)]]&lt;br /&gt;
* [[Media:Midi2AvrSynthConverter.zip|Konverter (source)]]&lt;br /&gt;
&lt;br /&gt;
===Beispiele===&lt;br /&gt;
* [[Media:Mario.mp3|Mario.mp3]]&lt;br /&gt;
* [[Media:Marimba.mp3|Marimba.mp3]]&lt;br /&gt;
&lt;br /&gt;
==Hinweise==&lt;br /&gt;
&lt;br /&gt;
Sollte der Synthesizer die Dateien nicht sauber abspielen, kann das an der zu kleinen Puffergröße des Synthesizers (synth_config.h) oder der SD-Karte liegen. Wenn die Datei mehr Kanäle haben sollte, als in der synth_config.h eingestellt sind, werden die Noten nicht mehr zum richtigen Zeitpunkt gespielt. Zu viel eingestellte Kanäle brauchen jedoch viel Leistung, was auch zu Fehlern führen kann.&lt;br /&gt;
Ebenso kann der Synthesizer übersteuern. In diesem Fall sollte man die Startlautstärke verringern (Sequencer.c, synth.oscillators[i].temp = 20;).&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
* http://www.mikrocontroller.net/topic/232845&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:AVR-Projekte]]&lt;/div&gt;</summary>
		<author><name>Sam1994</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=AVR-Synthesizer&amp;diff=67482</id>
		<title>AVR-Synthesizer</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=AVR-Synthesizer&amp;diff=67482"/>
		<updated>2012-07-24T16:20:14Z</updated>

		<summary type="html">&lt;p&gt;Sam1994: /* Flash */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;von sam1994&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
&lt;br /&gt;
* 4 Instrumente&lt;br /&gt;
* Bassdrum, Snare, Hihat&lt;br /&gt;
* mehr als 20 gleichzeitig spielende Kanäle @20Mhz&lt;br /&gt;
* einstellbare Samplerate&lt;br /&gt;
* spielt konvertierte Midi-Dateien ab&lt;br /&gt;
* benötigt 7KB Flash, 500-900B Ram&lt;br /&gt;
&lt;br /&gt;
==Hardware==&lt;br /&gt;
&lt;br /&gt;
[[Bild:Pwm-wandler.svg]]&lt;br /&gt;
&lt;br /&gt;
Standardmäßig wird der OCR1A-Pin zur Ausgabe verwendet.&lt;br /&gt;
&lt;br /&gt;
==Software==&lt;br /&gt;
&lt;br /&gt;
Der Synthesizer besteht aus einem Synthesizer und einem Sequenzer. Beide müssen am Anfang initialisiert werden. Dem Sequenzer wird beim Laden einer Datei ein Zeiger auf eine Funktion übergeben, die immer das nächste Byte der Datei ausliest. Dadurch ist es ohne großen Aufwand möglich die Datei aus dem Flash oder von einer SD-Karte zu lesen.&lt;br /&gt;
&lt;br /&gt;
===Flash===&lt;br /&gt;
&lt;br /&gt;
Die Datei wird als Array im Flash gespeichert.&lt;br /&gt;
&amp;lt;c&amp;gt;const uint8_t datei PROGMEM = {...vom Konverter...};&amp;lt;/c&amp;gt;&lt;br /&gt;
Dem Sequenzer wird die vordefinierte Funktion ReadFlash übergeben, als Zeiger die Datei:&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
//Synthesizer init&lt;br /&gt;
synth_init();&lt;br /&gt;
//Datei vom Sequenzer laden&lt;br /&gt;
seq_load(ReadFlash, datei);&lt;br /&gt;
//Synthesizer und Sequenzer starten&lt;br /&gt;
synth_start();&lt;br /&gt;
seq_start();&lt;br /&gt;
for(;;)&lt;br /&gt;
    synth_update();&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===SD-Karte===&lt;br /&gt;
&lt;br /&gt;
Für die SD-Karte braucht man einen Puffer. Mit 256 Byte ist man auf der sicheren Seite, bei wenigen Kanälen kann man auch 128 oder 64 Byte nehmen.&lt;br /&gt;
Außerdem muss man eine Funktion definieren, die aus dem Puffer liest und dem Sequenzer übergeben wird. Der übergebene Zeiger wird hier als Index missbraucht.&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
#define MIDI_BUF_LEN 256&lt;br /&gt;
uint8_t midi[MIDI_BUF_LEN];	&lt;br /&gt;
&lt;br /&gt;
uint8_t ReadBuffer(uint8_t* pos)&lt;br /&gt;
{&lt;br /&gt;
	return midi[((uint8_t)(uint16_t)pos) &amp;amp; (MIDI_BUF_LEN-1)];&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
Am Anfang muss der Puffer gefüllt und der Synthesizer initialisiert werden. In der Hauptschleife wird nur der Puffer nachgefüllt.&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
//Lesepuffer füllen&lt;br /&gt;
uint8_t i = 0;&lt;br /&gt;
do&lt;br /&gt;
    midi[i] = ffread();&lt;br /&gt;
while(++i != (MIDI_BUF_LEN &amp;amp; 0xFF));&lt;br /&gt;
//Leseindex auf 0 setzen&lt;br /&gt;
uint8_t write = 0;&lt;br /&gt;
&lt;br /&gt;
//Synthesizer init&lt;br /&gt;
synth_init();&lt;br /&gt;
//Datei vom Sequenzer laden&lt;br /&gt;
seq_load(ReadBuffer, 0);&lt;br /&gt;
//Synthesizer und Sequenzer starten&lt;br /&gt;
synth_start();&lt;br /&gt;
seq_start();&lt;br /&gt;
&lt;br /&gt;
for(;;)&lt;br /&gt;
{&lt;br /&gt;
    //Synthesizerupdate; Diese Funktion muss mindestens im 1ms Intervall aufgerufen werden&lt;br /&gt;
    synth_update();&lt;br /&gt;
    //Leseindex mit Schreibindex vergleichen&lt;br /&gt;
    uint8_t read = (uint8_t)(uint16_t)Seq.file;&lt;br /&gt;
    while(read != write)  //Buffer wieder auffüllen&lt;br /&gt;
        midi[write++ &amp;amp; (MIDI_BUF_LEN-1)] = ffread();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Konverter==&lt;br /&gt;
&lt;br /&gt;
Der Konverter kann Midi-Dateien in das Format des Avr-Synthesizers konvertieren. Dazu muss zuerst eine Midi-Datei geladen werden. Für die konvertierte Datei lässt sich ein Tempo-Teiler einstellen. Über Convert/Test lässt sich das Tempo der konvertierten Datei ermitteln, so dass man diesen Teiler passend einstellen kann. &lt;br /&gt;
Die Instrumente der Midi-Datei kann man während des Konvertierens den Instrumenten des Synthesizers zuordnen.&lt;br /&gt;
&lt;br /&gt;
==Downloads==&lt;br /&gt;
&lt;br /&gt;
===Synthesizer===&lt;br /&gt;
* [[Media:Synthesizer.zip|Synthesizer]]&lt;br /&gt;
* [[Media:Synthesizer_-_Flash.zip|Beispiel Flash]]&lt;br /&gt;
* [[Media:Synthesizer_-_SD-Karte.zip|Beispiel SD-Karte]]&lt;br /&gt;
&lt;br /&gt;
Hinweis: Die Beispiele nutzen den OC1A-Pin zur PWM-Erzeugung.&lt;br /&gt;
&lt;br /&gt;
===Konverter===&lt;br /&gt;
* [[Media:AVR-Synthesizer-Konverter.zip|Konverter (exe)]]&lt;br /&gt;
* [[Media:Midi2AvrSynthConverter.zip|Konverter (source)]]&lt;br /&gt;
&lt;br /&gt;
===Beispiele===&lt;br /&gt;
* [[Media:Mario.mp3|Mario.mp3]]&lt;br /&gt;
* [[Media:Marimba.mp3|Marimba.mp3]]&lt;br /&gt;
&lt;br /&gt;
==Hinweise==&lt;br /&gt;
&lt;br /&gt;
Sollte der Synthesizer die Dateien nicht sauber abspielen, kann das an der zu kleinen Puffergröße des Synthesizers (synth_config.h) oder der SD-Karte liegen. Wenn die Datei mehr Kanäle haben sollte, als in der synth_config.h eingestellt sind, werden die Noten nicht mehr zum richtigen Zeitpunkt gespielt. Zu viel eingestellte Kanäle brauchen jedoch viel Leistung, was auch zu Fehlern führen kann.&lt;br /&gt;
Ebenso kann der Synthesizer übersteuern. In diesem Fall sollte man die Startlautstärke verringern (Sequencer.c, synth.oscillators[i].temp = 20;).&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
* http://www.mikrocontroller.net/topic/232845&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:AVR-Projekte]]&lt;/div&gt;</summary>
		<author><name>Sam1994</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=AVR-Synthesizer&amp;diff=67481</id>
		<title>AVR-Synthesizer</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=AVR-Synthesizer&amp;diff=67481"/>
		<updated>2012-07-24T16:19:51Z</updated>

		<summary type="html">&lt;p&gt;Sam1994: /* SD-Karte */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;von sam1994&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
&lt;br /&gt;
* 4 Instrumente&lt;br /&gt;
* Bassdrum, Snare, Hihat&lt;br /&gt;
* mehr als 20 gleichzeitig spielende Kanäle @20Mhz&lt;br /&gt;
* einstellbare Samplerate&lt;br /&gt;
* spielt konvertierte Midi-Dateien ab&lt;br /&gt;
* benötigt 7KB Flash, 500-900B Ram&lt;br /&gt;
&lt;br /&gt;
==Hardware==&lt;br /&gt;
&lt;br /&gt;
[[Bild:Pwm-wandler.svg]]&lt;br /&gt;
&lt;br /&gt;
Standardmäßig wird der OCR1A-Pin zur Ausgabe verwendet.&lt;br /&gt;
&lt;br /&gt;
==Software==&lt;br /&gt;
&lt;br /&gt;
Der Synthesizer besteht aus einem Synthesizer und einem Sequenzer. Beide müssen am Anfang initialisiert werden. Dem Sequenzer wird beim Laden einer Datei ein Zeiger auf eine Funktion übergeben, die immer das nächste Byte der Datei ausliest. Dadurch ist es ohne großen Aufwand möglich die Datei aus dem Flash oder von einer SD-Karte zu lesen.&lt;br /&gt;
&lt;br /&gt;
===Flash===&lt;br /&gt;
&lt;br /&gt;
Die Datei wird als Array im Flash gespeichert.&lt;br /&gt;
&amp;lt;c&amp;gt;const uint8_t datei PROGMEM = {...vom Konverter...};&amp;lt;/c&amp;gt;&lt;br /&gt;
Dem Sequenzer wird die vordefinierte Funktion ReadFlash übergeben, als Zeiger die Datei:&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
        //Synthesizer init&lt;br /&gt;
	synth_init();&lt;br /&gt;
	//Datei vom Sequenzer laden&lt;br /&gt;
	seq_load(ReadFlash, datei);&lt;br /&gt;
	//Synthesizer und Sequenzer starten&lt;br /&gt;
	synth_start();&lt;br /&gt;
	seq_start();&lt;br /&gt;
        for(;;)&lt;br /&gt;
            synth_update();&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===SD-Karte===&lt;br /&gt;
&lt;br /&gt;
Für die SD-Karte braucht man einen Puffer. Mit 256 Byte ist man auf der sicheren Seite, bei wenigen Kanälen kann man auch 128 oder 64 Byte nehmen.&lt;br /&gt;
Außerdem muss man eine Funktion definieren, die aus dem Puffer liest und dem Sequenzer übergeben wird. Der übergebene Zeiger wird hier als Index missbraucht.&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
#define MIDI_BUF_LEN 256&lt;br /&gt;
uint8_t midi[MIDI_BUF_LEN];	&lt;br /&gt;
&lt;br /&gt;
uint8_t ReadBuffer(uint8_t* pos)&lt;br /&gt;
{&lt;br /&gt;
	return midi[((uint8_t)(uint16_t)pos) &amp;amp; (MIDI_BUF_LEN-1)];&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
Am Anfang muss der Puffer gefüllt und der Synthesizer initialisiert werden. In der Hauptschleife wird nur der Puffer nachgefüllt.&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
//Lesepuffer füllen&lt;br /&gt;
uint8_t i = 0;&lt;br /&gt;
do&lt;br /&gt;
    midi[i] = ffread();&lt;br /&gt;
while(++i != (MIDI_BUF_LEN &amp;amp; 0xFF));&lt;br /&gt;
//Leseindex auf 0 setzen&lt;br /&gt;
uint8_t write = 0;&lt;br /&gt;
&lt;br /&gt;
//Synthesizer init&lt;br /&gt;
synth_init();&lt;br /&gt;
//Datei vom Sequenzer laden&lt;br /&gt;
seq_load(ReadBuffer, 0);&lt;br /&gt;
//Synthesizer und Sequenzer starten&lt;br /&gt;
synth_start();&lt;br /&gt;
seq_start();&lt;br /&gt;
&lt;br /&gt;
for(;;)&lt;br /&gt;
{&lt;br /&gt;
    //Synthesizerupdate; Diese Funktion muss mindestens im 1ms Intervall aufgerufen werden&lt;br /&gt;
    synth_update();&lt;br /&gt;
    //Leseindex mit Schreibindex vergleichen&lt;br /&gt;
    uint8_t read = (uint8_t)(uint16_t)Seq.file;&lt;br /&gt;
    while(read != write)  //Buffer wieder auffüllen&lt;br /&gt;
        midi[write++ &amp;amp; (MIDI_BUF_LEN-1)] = ffread();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Konverter==&lt;br /&gt;
&lt;br /&gt;
Der Konverter kann Midi-Dateien in das Format des Avr-Synthesizers konvertieren. Dazu muss zuerst eine Midi-Datei geladen werden. Für die konvertierte Datei lässt sich ein Tempo-Teiler einstellen. Über Convert/Test lässt sich das Tempo der konvertierten Datei ermitteln, so dass man diesen Teiler passend einstellen kann. &lt;br /&gt;
Die Instrumente der Midi-Datei kann man während des Konvertierens den Instrumenten des Synthesizers zuordnen.&lt;br /&gt;
&lt;br /&gt;
==Downloads==&lt;br /&gt;
&lt;br /&gt;
===Synthesizer===&lt;br /&gt;
* [[Media:Synthesizer.zip|Synthesizer]]&lt;br /&gt;
* [[Media:Synthesizer_-_Flash.zip|Beispiel Flash]]&lt;br /&gt;
* [[Media:Synthesizer_-_SD-Karte.zip|Beispiel SD-Karte]]&lt;br /&gt;
&lt;br /&gt;
Hinweis: Die Beispiele nutzen den OC1A-Pin zur PWM-Erzeugung.&lt;br /&gt;
&lt;br /&gt;
===Konverter===&lt;br /&gt;
* [[Media:AVR-Synthesizer-Konverter.zip|Konverter (exe)]]&lt;br /&gt;
* [[Media:Midi2AvrSynthConverter.zip|Konverter (source)]]&lt;br /&gt;
&lt;br /&gt;
===Beispiele===&lt;br /&gt;
* [[Media:Mario.mp3|Mario.mp3]]&lt;br /&gt;
* [[Media:Marimba.mp3|Marimba.mp3]]&lt;br /&gt;
&lt;br /&gt;
==Hinweise==&lt;br /&gt;
&lt;br /&gt;
Sollte der Synthesizer die Dateien nicht sauber abspielen, kann das an der zu kleinen Puffergröße des Synthesizers (synth_config.h) oder der SD-Karte liegen. Wenn die Datei mehr Kanäle haben sollte, als in der synth_config.h eingestellt sind, werden die Noten nicht mehr zum richtigen Zeitpunkt gespielt. Zu viel eingestellte Kanäle brauchen jedoch viel Leistung, was auch zu Fehlern führen kann.&lt;br /&gt;
Ebenso kann der Synthesizer übersteuern. In diesem Fall sollte man die Startlautstärke verringern (Sequencer.c, synth.oscillators[i].temp = 20;).&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
* http://www.mikrocontroller.net/topic/232845&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:AVR-Projekte]]&lt;/div&gt;</summary>
		<author><name>Sam1994</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Datei:Synthesizer.zip&amp;diff=67480</id>
		<title>Datei:Synthesizer.zip</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Datei:Synthesizer.zip&amp;diff=67480"/>
		<updated>2012-07-24T16:18:04Z</updated>

		<summary type="html">&lt;p&gt;Sam1994: hat eine neue Version von „Datei:Synthesizer.zip“ hochgeladen&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Source&lt;/div&gt;</summary>
		<author><name>Sam1994</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=AVR-Synthesizer&amp;diff=67479</id>
		<title>AVR-Synthesizer</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=AVR-Synthesizer&amp;diff=67479"/>
		<updated>2012-07-24T15:23:51Z</updated>

		<summary type="html">&lt;p&gt;Sam1994: /* Hardware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;von sam1994&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
&lt;br /&gt;
* 4 Instrumente&lt;br /&gt;
* Bassdrum, Snare, Hihat&lt;br /&gt;
* mehr als 20 gleichzeitig spielende Kanäle @20Mhz&lt;br /&gt;
* einstellbare Samplerate&lt;br /&gt;
* spielt konvertierte Midi-Dateien ab&lt;br /&gt;
* benötigt 7KB Flash, 500-900B Ram&lt;br /&gt;
&lt;br /&gt;
==Hardware==&lt;br /&gt;
&lt;br /&gt;
[[Bild:Pwm-wandler.svg]]&lt;br /&gt;
&lt;br /&gt;
Standardmäßig wird der OCR1A-Pin zur Ausgabe verwendet.&lt;br /&gt;
&lt;br /&gt;
==Software==&lt;br /&gt;
&lt;br /&gt;
Der Synthesizer besteht aus einem Synthesizer und einem Sequenzer. Beide müssen am Anfang initialisiert werden. Dem Sequenzer wird beim Laden einer Datei ein Zeiger auf eine Funktion übergeben, die immer das nächste Byte der Datei ausliest. Dadurch ist es ohne großen Aufwand möglich die Datei aus dem Flash oder von einer SD-Karte zu lesen.&lt;br /&gt;
&lt;br /&gt;
===Flash===&lt;br /&gt;
&lt;br /&gt;
Die Datei wird als Array im Flash gespeichert.&lt;br /&gt;
&amp;lt;c&amp;gt;const uint8_t datei PROGMEM = {...vom Konverter...};&amp;lt;/c&amp;gt;&lt;br /&gt;
Dem Sequenzer wird die vordefinierte Funktion ReadFlash übergeben, als Zeiger die Datei:&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
        //Synthesizer init&lt;br /&gt;
	synth_init();&lt;br /&gt;
	//Datei vom Sequenzer laden&lt;br /&gt;
	seq_load(ReadFlash, datei);&lt;br /&gt;
	//Synthesizer und Sequenzer starten&lt;br /&gt;
	synth_start();&lt;br /&gt;
	seq_start();&lt;br /&gt;
        for(;;)&lt;br /&gt;
            synth_update();&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===SD-Karte===&lt;br /&gt;
&lt;br /&gt;
Für die SD-Karte braucht man einen Puffer. Mit 256 Byte ist man auf der sicheren Seite, bei wenigen Kanälen kann man auch 128 oder 64 Byte nehmen.&lt;br /&gt;
Außerdem muss man eine Funktion definieren, die aus dem Puffer liest und dem Sequenzer übergeben wird. Der übergebene Zeiger wird hier als Index missbraucht.&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
#define MIDI_BUF_LEN 256&lt;br /&gt;
uint8_t midi[MIDI_BUF_LEN];	&lt;br /&gt;
&lt;br /&gt;
uint8_t ReadBuffer(uint8_t* pos)&lt;br /&gt;
{&lt;br /&gt;
	return midi[((uint8_t)(uint16_t)pos) &amp;amp; (MIDI_BUF_LEN-1)];&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
Am Anfang muss der Puffer gefüllt und der Synthesizer initialisiert werden. In der Hauptschleife wird nur der Puffer nachgefüllt.&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
	//Lesepuffer füllen&lt;br /&gt;
	uint8_t i = 0;&lt;br /&gt;
	do&lt;br /&gt;
		midi[i] = ffread();&lt;br /&gt;
	while(++i != (MIDI_BUF_LEN &amp;amp; 0xFF));&lt;br /&gt;
	//Leseindex auf 0 setzen&lt;br /&gt;
	uint8_t write = 0;&lt;br /&gt;
&lt;br /&gt;
	//Synthesizer init&lt;br /&gt;
	synth_init();&lt;br /&gt;
	//Datei vom Sequenzer laden&lt;br /&gt;
	seq_load(ReadBuffer, 0);&lt;br /&gt;
	//Synthesizer und Sequenzer starten&lt;br /&gt;
	synth_start();&lt;br /&gt;
	seq_start();&lt;br /&gt;
&lt;br /&gt;
	for(;;)&lt;br /&gt;
	{&lt;br /&gt;
		//Synthesizerupdate; Diese Funktion muss mindestens im 1ms Intervall aufgerufen werden&lt;br /&gt;
		synth_update();&lt;br /&gt;
		//Leseindex mit Schreibindex vergleichen&lt;br /&gt;
		uint8_t read = (uint8_t)(uint16_t)Seq.file;&lt;br /&gt;
		while(read != write)  //Buffer wieder auffüllen&lt;br /&gt;
			midi[write++ &amp;amp; (MIDI_BUF_LEN-1)] = ffread();&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Konverter==&lt;br /&gt;
&lt;br /&gt;
Der Konverter kann Midi-Dateien in das Format des Avr-Synthesizers konvertieren. Dazu muss zuerst eine Midi-Datei geladen werden. Für die konvertierte Datei lässt sich ein Tempo-Teiler einstellen. Über Convert/Test lässt sich das Tempo der konvertierten Datei ermitteln, so dass man diesen Teiler passend einstellen kann. &lt;br /&gt;
Die Instrumente der Midi-Datei kann man während des Konvertierens den Instrumenten des Synthesizers zuordnen.&lt;br /&gt;
&lt;br /&gt;
==Downloads==&lt;br /&gt;
&lt;br /&gt;
===Synthesizer===&lt;br /&gt;
* [[Media:Synthesizer.zip|Synthesizer]]&lt;br /&gt;
* [[Media:Synthesizer_-_Flash.zip|Beispiel Flash]]&lt;br /&gt;
* [[Media:Synthesizer_-_SD-Karte.zip|Beispiel SD-Karte]]&lt;br /&gt;
&lt;br /&gt;
Hinweis: Die Beispiele nutzen den OC1A-Pin zur PWM-Erzeugung.&lt;br /&gt;
&lt;br /&gt;
===Konverter===&lt;br /&gt;
* [[Media:AVR-Synthesizer-Konverter.zip|Konverter (exe)]]&lt;br /&gt;
* [[Media:Midi2AvrSynthConverter.zip|Konverter (source)]]&lt;br /&gt;
&lt;br /&gt;
===Beispiele===&lt;br /&gt;
* [[Media:Mario.mp3|Mario.mp3]]&lt;br /&gt;
* [[Media:Marimba.mp3|Marimba.mp3]]&lt;br /&gt;
&lt;br /&gt;
==Hinweise==&lt;br /&gt;
&lt;br /&gt;
Sollte der Synthesizer die Dateien nicht sauber abspielen, kann das an der zu kleinen Puffergröße des Synthesizers (synth_config.h) oder der SD-Karte liegen. Wenn die Datei mehr Kanäle haben sollte, als in der synth_config.h eingestellt sind, werden die Noten nicht mehr zum richtigen Zeitpunkt gespielt. Zu viel eingestellte Kanäle brauchen jedoch viel Leistung, was auch zu Fehlern führen kann.&lt;br /&gt;
Ebenso kann der Synthesizer übersteuern. In diesem Fall sollte man die Startlautstärke verringern (Sequencer.c, synth.oscillators[i].temp = 20;).&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
* http://www.mikrocontroller.net/topic/232845&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:AVR-Projekte]]&lt;/div&gt;</summary>
		<author><name>Sam1994</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=MMC-_und_SD-Karten&amp;diff=65550</id>
		<title>MMC- und SD-Karten</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=MMC-_und_SD-Karten&amp;diff=65550"/>
		<updated>2012-04-09T16:10:03Z</updated>

		<summary type="html">&lt;p&gt;Sam1994: /* Bibliotheken zur Ansteuerung */ doppelter Eintrag&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MMC- und SD-Speicherkarten lassen sich im [[SPI]]-Modus relativ einfach mit einem Mikrocontroller ansteuern. Prinzipiell gibt es zwischen SD-Card und MMC nicht viele Unterschiede, allerdings sind SD-Karten weiter verbreitet, in der Regel schneller als MMCs, und haben ein besser implementiertes SPI-Interface. Es existieren diverse Varianten (miniSD, microSD), die zur normalen SD-Card weitgehend kompatibel sind.&lt;br /&gt;
&lt;br /&gt;
Die Karte liest das anliegende Datenbit mit der steigenden Taktflanke ein, als SPI-Modi eignen sich somit Mode 0 (CPOL=0, CPHA=0) und Mode 3 (CPOL=1, CPHA=1) (siehe auch [[Serial Peripheral Interface]]). Bei MMCs ist der SPI-Modus nicht genau spezifiziert, somit kommt es durchaus mal vor dass der SPI-Modus je nach Karte unterschiedlich gewählt werden muss, oder dass die Karte überhaupt nicht zuverlässig funktioniert (siehe [http://www.mikrocontroller.net/forum/read-1-343528.html Beitrag im Forum]).&lt;br /&gt;
&lt;br /&gt;
== DOs und DON&#039;Ts bei der Ansteuerung ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Lasst euch nicht verrückt machen&#039;&#039;&#039; wenn es einfach nicht funktioniert, sondern probiert zu allererst mal eine SD-Karte eines anderen Herstellers aus. Die MMC-Implementierung für AVR von Elm Chan z.&amp;amp;nbsp;B. funktioniert mit SanDisk problemlos hat aber mit Platinum Karten ein Problem.&lt;br /&gt;
* Taktfrequenz bei der Initialisierung nicht höher als 400kHz&lt;br /&gt;
* Ein Pullup-Widerstand am Ausgang der MMC/SD Karte (DO) ist für eine saubere Initialisierung per SPI notwendig! [http://www.mikrocontroller.net/topic/112421#1001693 (Thread mit Erklärung dazu)]&lt;br /&gt;
* Saubere Versorgung: Kein Dioden-Pfusch, mit dem eine vorhandene 5V Versorgung mittels in Reihe geschalteter Dioden auf irgendwas im Bereich 3V &amp;quot;geregelt&amp;quot; wird. Stattdessen einen guten 3,3V-Regler verwenden. Die Karte mag es nicht, wenn mehr als 60mV Ripple auf Vcc ist. LM317 oder LM1117-ADC/-3.3 mit entspechenden Kondensatoren reicht zumindest bei Basteleien allemal.&lt;br /&gt;
* Sauberer Anschluss der Digitalschnittstelle: Spannungsteiler &amp;quot;verschleifen&amp;quot; die Signale bei hohen Frequenzen und die Übertragungsrate muss dann begrenzt werden. Also entweder ein [http://www.mikrocontroller.net/articles/Pegelwandler Pegelwandler] oder gleich an ein 3,3V I/O anschließen.&lt;br /&gt;
* Ein Pullup-Widerstand an der Select-Leitung (/CS) schadet nicht und stellt sicher, dass die Karte erst mit Absicht selektiert wird.&lt;br /&gt;
* Nachdem die Karte deselektiert wurde (/CS auf high), die Taktleitung noch einige Male pulsen, damit die Karte DO hochohmig/tri-state schaltet (vgl. Chans Erläuterungen).&lt;br /&gt;
* Die Karten verfügen weder über einen Reset- noch einen Sleep-Anschluss. Moderne Karten reduzieren bei Nichtbenutzung ihren Stromverbrauch, einen vollständigen Reset kann man jedoch nicht per Software auslösen. Daher sollten die Karten per P-Channel-FET oder Spannungsregler/-wandler mit Enable-Funktion so angeschlossen werden, dass über Versorgung an/aus ein (Power-On-)Reset ausgelöst werden kann. Dabei darauf achten, dass vorhandene Pull-Up-Widerstände bei abgeschalteter Versorgung ebenfalls deaktiviert werden (vgl. z.&amp;amp;nbsp;B. Schaltplan für den Anschluss von SD-Card/MMC per SPI an AVR in Chans Beispielen. Link unten).&lt;br /&gt;
* Guter Kontakt im Steckplatz, sehr gut eignen sich mit der Zange verbogene Stiftleisten, oft sieht es aus als ob es &amp;quot;passt&amp;quot;, aber es gibt doch keinen Kontakt, daher bei Fehlern: Immer Durchmessen! Auch zu erwähnen wären da alte ISA-Bus Buchsen, die auf jedem alten PC Mainboard drauf sind. Um sicher zu gehen, dass der Kontakt wirklich gut ist, sollte man aber trotzdem SD-Slots benutzen. Diese bekommt man u.a. bei CSD (günstig), Reichelt (teuer) oder aus alten Kartenlesern.&lt;br /&gt;
* Guter Kontakt #2: Was sich im übrigen auch sehr gut eignet sind Adapter von MiniSD auf normales SD-Format, um dann MiniSD zu benutzen. Wenn man eine Stiftleiste im 2.54mm-Format oder Lötnägel im selben Format auf der Platine hat, kann man daran wunderbar den SD-Kartenadapter anlöten. Das ist mechanisch recht stabil. Ein kleines Manko ist allerdings, daß dann eine Gold-Lötzinn-Legierung durch die vergoldeten Kontakte entsteht und das soll ja dem Lötzinn langfristig nicht sehr zuträglich sein. Aber für&#039;s Hobby funktioniert das wunderbar.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
||[[Bild:SD Steck Stift.jpg]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;sup&amp;gt;(Liefere Bild in besserer Qualität nach!)&amp;lt;/sup&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Bibliotheken zur Ansteuerung ==&lt;br /&gt;
&lt;br /&gt;
* [http://elm-chan.org/fsw/ff/00index_e.html ELM ChaN FatFs]  FAT(12,16,32)-Dateisystem. Klein und übersichtlich, hochoptimiert, frei auch für kommerzielle Anwendung. Beispiele für AVR, H8, LPC2k mit MCI u.a. enthalten (&amp;quot;samples&amp;quot;), neuere Versionen mit LFN-Unterstützung. Beispiel für AT91SAM7 inkl. DMA im Projekt [[ARM MP3/AAC Player]]. (siehe auch [http://www.siwawi.arubi.uni-kl.de/avr_projects/arm_projects/arm_memcards/ M. Thomas&#039; ARM+SD/MMC Seite])&lt;br /&gt;
&lt;br /&gt;
* [http://elm-chan.org/fsw/ff/00index_p.html ELM ChaN Petit FatFS] FAT(12,16,32)-Dateisystem. Sehr klein. Beispiele für AVR.&lt;br /&gt;
&lt;br /&gt;
* [http://sourceforge.net/projects/efsl EFSL] FAT16/32-Dateisystem, unterstützt Partitionen und Superfloppys, Beispielcode für AVR, LPC2000 und AT91SAM7 enthalten (siehe auch [http://www.siwawi.arubi.uni-kl.de/avr_projects/arm_projects/arm_memcards/ M. Thomas&#039; ARM+SD/MMC Seite])&lt;br /&gt;
&lt;br /&gt;
* [http://www.holger-klabunde.de/avr/avrboard.htm#cf Holger Klabundes FAT16/32] mit Beispielen für AVR MMC/SD und CF, LPC2k mit SPI&lt;br /&gt;
&lt;br /&gt;
* libfat aus dem [http://sourceforge.net/projects/devkitpro devkitpro-Projekt] u.a. LFN-Unterstützung.&lt;br /&gt;
&lt;br /&gt;
* [http://www.mikro-control.de/Joomla/index.php?option=com_content&amp;amp;task=view&amp;amp;id=18&amp;amp;Itemid=30 SD-Logger] - FAT 16, für den privaten Einsatz kostenfrei&lt;br /&gt;
&lt;br /&gt;
* [http://www.mikrocontroller.net/forum/read-4-125350.html MMC-Ansteuerung mit FAT16 von Ulrich Radig]&lt;br /&gt;
&lt;br /&gt;
* [http://www.zws.com/products/dosfs/index.html DOSFS Free FAT12/FAT16/FAT32 Filesystem] &amp;quot;DOSFS is a free FAT-compatible filesystem intended for fairly low-end embedded applications. Intended target systems would be in the ballpark of 1K RAM, 4K ROM or more&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* [http://www.mikrocontroller.net/topic/48481 MMC/SD-Karte mit FAT16 an AVR] von Roland Riegel&lt;br /&gt;
&lt;br /&gt;
* [ftp://ftp.circuitcellar.com/pub/Circuit_Cellar/2005/176/Sham176.zip Circuit Cellar FAT16 MMC/SD] mit MMC/SD Hardwaretreiber für MSP430&lt;br /&gt;
&lt;br /&gt;
* [http://www.analog.com &amp;quot;Implementing FAT32 File Systems on ADSP-BF533 Blackfin Processors&amp;quot;] Application Note und Code von ADI&lt;br /&gt;
&lt;br /&gt;
* [http://www.atmel.com/dyn/products/tools.asp?family_id=682 FAT-Code in Atmel&#039;s AVR32 UC3 Software-Library]&lt;br /&gt;
&lt;br /&gt;
* [http://www.mikrocontroller.net/articles/FAT32 AVR FAT16/32] Bibliothek mit Wiki. Unterstützt LFN und Ordner Rekursiv löschen. SVN für neuste Version.&lt;br /&gt;
&lt;br /&gt;
* [http://www.embedded-os.de/index.html?pcfat_port.htm pC/FAT driver] &amp;quot;using SPI for sector read/write to MMC/MMCplus/HD-MMC/M-Bridge/SD/SDHC-cards on different platforms&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* [http://www.dharmanitech.com/2009/01/sd-card-interfacing-with-atmega8-fat32.html SD Card Interfacing with ATmega8] (FAT32 implementation) by CC Dharmani&lt;br /&gt;
&lt;br /&gt;
== Allgemeine Informationen ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.digitalspirit.org/file/index.php/obj/docs/sd/ Datenblätter] ( [http://www.digitalspirit.org/file/index.php/obj-download/docs/sd/ProductManualSDCardv2.2final.pdf SD Card Product Manual 2.2] )&lt;br /&gt;
&lt;br /&gt;
* [http://elm-chan.org/docs/mmc/mmc_e.html ELM ChaN - How to Use an MMC]&lt;br /&gt;
&lt;br /&gt;
* [http://elm-chan.org/fsw/ff/00index_e.html ELM ChaN - MMC/SD Benchmarks]&lt;br /&gt;
&lt;br /&gt;
* [http://www.mikrocontroller.net/forum/list-1-1.html?filter=MMC*+SD Beiträge zum Thema MMC/SD im Forum (ca. 200 Threads)]&lt;br /&gt;
&lt;br /&gt;
* [http://www.shop.display3000.com/elektronikmodule/sd-speicherkartenplatine.html Weiter unten im Text (runterscrollen) gibt es interessante Oszi-Bilder zu den oft genannten Spannungsteilern oder Transistorlösungen als Pegelwandler]&lt;br /&gt;
&lt;br /&gt;
* [http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&amp;amp;nodeId=2680&amp;amp;dDocName=en547784 Microchip Memory Disk Drive System mit FAT32 und SDHC Unterstützung]&lt;br /&gt;
&lt;br /&gt;
* [http://www.ifas.htwk-leipzig.de/easytoweb/download/D&amp;amp;E_11_2006_Anbindung_von_SD-Karten.pdf Gute Beschreibung der SDIO-Architektur und wie man eine SD-Karte mit ARM bzw. AVR benutzt]&lt;br /&gt;
&lt;br /&gt;
== Bauteile ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.instructables.com/id/EZD6Q18LYGES1762SJ/ DIY SD-Card Fassung aus einem alten Floppy Kabel]&lt;br /&gt;
&lt;br /&gt;
* [http://www.watterott.com/index.php?page=search&amp;amp;page_action=query&amp;amp;desc=on&amp;amp;sdesc=on&amp;amp;keywords=multicomp&amp;amp;x=0&amp;amp;y=0 Halter für SD-Karten] (Shop www.watterott.com)&lt;br /&gt;
&lt;br /&gt;
* [http://www.shop.display3000.com/elektronikmodule/sd-speicherkartenplatine.html günstige Komplettlösung mit bidirektionalem Pegelwandler, Spannungsregler, Kartenhalter]&lt;br /&gt;
&lt;br /&gt;
== Projekte ==&lt;br /&gt;
&lt;br /&gt;
* [http://retromaster.wordpress.com/ufe/ Ultimate Floppy Emulator] von Retromaster (PIC32 @ 80 Mhz, 16 Mb SDRAM)&lt;br /&gt;
&lt;br /&gt;
[[Category:Bauteile]]&lt;br /&gt;
[[Category:Datenübertragung]]&lt;br /&gt;
[[Kategorie:Speicher und Dateisysteme]]&lt;/div&gt;</summary>
		<author><name>Sam1994</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=AVR-Synthesizer&amp;diff=65228</id>
		<title>AVR-Synthesizer</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=AVR-Synthesizer&amp;diff=65228"/>
		<updated>2012-03-24T16:50:10Z</updated>

		<summary type="html">&lt;p&gt;Sam1994: /* Synthesizer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;von sam1994&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
&lt;br /&gt;
* 4 Instrumente&lt;br /&gt;
* Bassdrum, Snare, Hihat&lt;br /&gt;
* mehr als 20 gleichzeitig spielende Kanäle @20Mhz&lt;br /&gt;
* einstellbare Samplerate&lt;br /&gt;
* spielt konvertierte Midi-Dateien ab&lt;br /&gt;
* benötigt 7KB Flash, 500-900B Ram&lt;br /&gt;
&lt;br /&gt;
==Hardware==&lt;br /&gt;
&lt;br /&gt;
siehe http://www.mikrocontroller.net/articles/Klangerzeugung#PWM&lt;br /&gt;
&lt;br /&gt;
==Software==&lt;br /&gt;
&lt;br /&gt;
Der Synthesizer besteht aus einem Synthesizer und einem Sequenzer. Beide müssen am Anfang initialisiert werden. Dem Sequenzer wird beim Laden einer Datei ein Zeiger auf eine Funktion übergeben, die immer das nächste Byte der Datei ausliest. Dadurch ist es ohne großen Aufwand möglich die Datei aus dem Flash oder von einer SD-Karte zu lesen.&lt;br /&gt;
&lt;br /&gt;
===Flash===&lt;br /&gt;
&lt;br /&gt;
Die Datei wird als Array im Flash gespeichert.&lt;br /&gt;
&amp;lt;c&amp;gt;const uint8_t datei PROGMEM = {...vom Konverter...};&amp;lt;/c&amp;gt;&lt;br /&gt;
Dem Sequenzer wird die vordefinierte Funktion ReadFlash übergeben, als Zeiger die Datei:&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
        //Synthesizer init&lt;br /&gt;
	synth_init();&lt;br /&gt;
	//Datei vom Sequenzer laden&lt;br /&gt;
	seq_load(ReadFlash, datei);&lt;br /&gt;
	//Synthesizer und Sequenzer starten&lt;br /&gt;
	synth_start();&lt;br /&gt;
	seq_start();&lt;br /&gt;
        for(;;)&lt;br /&gt;
            synth_update();&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===SD-Karte===&lt;br /&gt;
&lt;br /&gt;
Für die SD-Karte braucht man einen Puffer. Mit 256 Byte ist man auf der sicheren Seite, bei wenigen Kanälen kann man auch 128 oder 64 Byte nehmen.&lt;br /&gt;
Außerdem muss man eine Funktion definieren, die aus dem Puffer liest und dem Sequenzer übergeben wird. Der übergebene Zeiger wird hier als Index missbraucht.&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
#define MIDI_BUF_LEN 256&lt;br /&gt;
uint8_t midi[MIDI_BUF_LEN];	&lt;br /&gt;
&lt;br /&gt;
uint8_t ReadBuffer(uint8_t* pos)&lt;br /&gt;
{&lt;br /&gt;
	return midi[((uint8_t)(uint16_t)pos) &amp;amp; (MIDI_BUF_LEN-1)];&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
Am Anfang muss der Puffer gefüllt und der Synthesizer initialisiert werden. In der Hauptschleife wird nur der Puffer nachgefüllt.&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
	//Lesepuffer füllen&lt;br /&gt;
	uint8_t i = 0;&lt;br /&gt;
	do&lt;br /&gt;
		midi[i] = ffread();&lt;br /&gt;
	while(++i != (MIDI_BUF_LEN &amp;amp; 0xFF));&lt;br /&gt;
	//Leseindex auf 0 setzen&lt;br /&gt;
	uint8_t write = 0;&lt;br /&gt;
&lt;br /&gt;
	//Synthesizer init&lt;br /&gt;
	synth_init();&lt;br /&gt;
	//Datei vom Sequenzer laden&lt;br /&gt;
	seq_load(ReadBuffer, 0);&lt;br /&gt;
	//Synthesizer und Sequenzer starten&lt;br /&gt;
	synth_start();&lt;br /&gt;
	seq_start();&lt;br /&gt;
&lt;br /&gt;
	for(;;)&lt;br /&gt;
	{&lt;br /&gt;
		//Synthesizerupdate; Diese Funktion muss mindestens im 1ms Intervall aufgerufen werden&lt;br /&gt;
		synth_update();&lt;br /&gt;
		//Leseindex mit Schreibindex vergleichen&lt;br /&gt;
		uint8_t read = (uint8_t)(uint16_t)Seq.file;&lt;br /&gt;
		while(read != write)  //Buffer wieder auffüllen&lt;br /&gt;
			midi[write++ &amp;amp; (MIDI_BUF_LEN-1)] = ffread();&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Konverter==&lt;br /&gt;
&lt;br /&gt;
Der Konverter kann Midi-Dateien in das Format des Avr-Synthesizers konvertieren. Dazu muss zuerst eine Midi-Datei geladen werden. Für die konvertierte Datei lässt sich ein Tempo-Teiler einstellen. Über Convert/Test lässt sich das Tempo der konvertierten Datei ermitteln, so dass man diesen Teiler passend einstellen kann. &lt;br /&gt;
Die Instrumente der Midi-Datei kann man während des Konvertierens den Instrumenten des Synthesizers zuordnen.&lt;br /&gt;
&lt;br /&gt;
==Downloads==&lt;br /&gt;
&lt;br /&gt;
===Synthesizer===&lt;br /&gt;
* [[Media:Synthesizer.zip|Synthesizer]]&lt;br /&gt;
* [[Media:Synthesizer_-_Flash.zip|Beispiel Flash]]&lt;br /&gt;
* [[Media:Synthesizer_-_SD-Karte.zip|Beispiel SD-Karte]]&lt;br /&gt;
&lt;br /&gt;
Hinweis: Die Beispiele nutzen den OC1A-Pin zur PWM-Erzeugung.&lt;br /&gt;
&lt;br /&gt;
===Konverter===&lt;br /&gt;
* [[Media:AVR-Synthesizer-Konverter.zip|Konverter (exe)]]&lt;br /&gt;
* [[Media:Midi2AvrSynthConverter.zip|Konverter (source)]]&lt;br /&gt;
&lt;br /&gt;
===Beispiele===&lt;br /&gt;
* [[Media:Mario.mp3|Mario.mp3]]&lt;br /&gt;
* [[Media:Marimba.mp3|Marimba.mp3]]&lt;br /&gt;
&lt;br /&gt;
==Hinweise==&lt;br /&gt;
&lt;br /&gt;
Sollte der Synthesizer die Dateien nicht sauber abspielen, kann das an der zu kleinen Puffergröße des Synthesizers (synth_config.h) oder der SD-Karte liegen. Wenn die Datei mehr Kanäle haben sollte, als in der synth_config.h eingestellt sind, werden die Noten nicht mehr zum richtigen Zeitpunkt gespielt. Zu viel eingestellte Kanäle brauchen jedoch viel Leistung, was auch zu Fehlern führen kann.&lt;br /&gt;
Ebenso kann der Synthesizer übersteuern. In diesem Fall sollte man die Startlautstärke verringern (Sequencer.c, synth.oscillators[i].temp = 20;).&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
* http://www.mikrocontroller.net/topic/232845&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:AVR-Projekte]]&lt;/div&gt;</summary>
		<author><name>Sam1994</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=AVR-Synthesizer&amp;diff=65227</id>
		<title>AVR-Synthesizer</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=AVR-Synthesizer&amp;diff=65227"/>
		<updated>2012-03-24T16:49:55Z</updated>

		<summary type="html">&lt;p&gt;Sam1994: Änderung 65225 von Sam1994 (Diskussion) wurde rückgängig gemacht.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;von sam1994&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
&lt;br /&gt;
* 4 Instrumente&lt;br /&gt;
* Bassdrum, Snare, Hihat&lt;br /&gt;
* mehr als 20 gleichzeitig spielende Kanäle @20Mhz&lt;br /&gt;
* einstellbare Samplerate&lt;br /&gt;
* spielt konvertierte Midi-Dateien ab&lt;br /&gt;
* benötigt 7KB Flash, 500-900B Ram&lt;br /&gt;
&lt;br /&gt;
==Hardware==&lt;br /&gt;
&lt;br /&gt;
siehe http://www.mikrocontroller.net/articles/Klangerzeugung#PWM&lt;br /&gt;
&lt;br /&gt;
==Software==&lt;br /&gt;
&lt;br /&gt;
Der Synthesizer besteht aus einem Synthesizer und einem Sequenzer. Beide müssen am Anfang initialisiert werden. Dem Sequenzer wird beim Laden einer Datei ein Zeiger auf eine Funktion übergeben, die immer das nächste Byte der Datei ausliest. Dadurch ist es ohne großen Aufwand möglich die Datei aus dem Flash oder von einer SD-Karte zu lesen.&lt;br /&gt;
&lt;br /&gt;
===Flash===&lt;br /&gt;
&lt;br /&gt;
Die Datei wird als Array im Flash gespeichert.&lt;br /&gt;
&amp;lt;c&amp;gt;const uint8_t datei PROGMEM = {...vom Konverter...};&amp;lt;/c&amp;gt;&lt;br /&gt;
Dem Sequenzer wird die vordefinierte Funktion ReadFlash übergeben, als Zeiger die Datei:&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
        //Synthesizer init&lt;br /&gt;
	synth_init();&lt;br /&gt;
	//Datei vom Sequenzer laden&lt;br /&gt;
	seq_load(ReadFlash, datei);&lt;br /&gt;
	//Synthesizer und Sequenzer starten&lt;br /&gt;
	synth_start();&lt;br /&gt;
	seq_start();&lt;br /&gt;
        for(;;)&lt;br /&gt;
            synth_update();&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===SD-Karte===&lt;br /&gt;
&lt;br /&gt;
Für die SD-Karte braucht man einen Puffer. Mit 256 Byte ist man auf der sicheren Seite, bei wenigen Kanälen kann man auch 128 oder 64 Byte nehmen.&lt;br /&gt;
Außerdem muss man eine Funktion definieren, die aus dem Puffer liest und dem Sequenzer übergeben wird. Der übergebene Zeiger wird hier als Index missbraucht.&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
#define MIDI_BUF_LEN 256&lt;br /&gt;
uint8_t midi[MIDI_BUF_LEN];	&lt;br /&gt;
&lt;br /&gt;
uint8_t ReadBuffer(uint8_t* pos)&lt;br /&gt;
{&lt;br /&gt;
	return midi[((uint8_t)(uint16_t)pos) &amp;amp; (MIDI_BUF_LEN-1)];&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
Am Anfang muss der Puffer gefüllt und der Synthesizer initialisiert werden. In der Hauptschleife wird nur der Puffer nachgefüllt.&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
	//Lesepuffer füllen&lt;br /&gt;
	uint8_t i = 0;&lt;br /&gt;
	do&lt;br /&gt;
		midi[i] = ffread();&lt;br /&gt;
	while(++i != (MIDI_BUF_LEN &amp;amp; 0xFF));&lt;br /&gt;
	//Leseindex auf 0 setzen&lt;br /&gt;
	uint8_t write = 0;&lt;br /&gt;
&lt;br /&gt;
	//Synthesizer init&lt;br /&gt;
	synth_init();&lt;br /&gt;
	//Datei vom Sequenzer laden&lt;br /&gt;
	seq_load(ReadBuffer, 0);&lt;br /&gt;
	//Synthesizer und Sequenzer starten&lt;br /&gt;
	synth_start();&lt;br /&gt;
	seq_start();&lt;br /&gt;
&lt;br /&gt;
	for(;;)&lt;br /&gt;
	{&lt;br /&gt;
		//Synthesizerupdate; Diese Funktion muss mindestens im 1ms Intervall aufgerufen werden&lt;br /&gt;
		synth_update();&lt;br /&gt;
		//Leseindex mit Schreibindex vergleichen&lt;br /&gt;
		uint8_t read = (uint8_t)(uint16_t)Seq.file;&lt;br /&gt;
		while(read != write)  //Buffer wieder auffüllen&lt;br /&gt;
			midi[write++ &amp;amp; (MIDI_BUF_LEN-1)] = ffread();&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Konverter==&lt;br /&gt;
&lt;br /&gt;
Der Konverter kann Midi-Dateien in das Format des Avr-Synthesizers konvertieren. Dazu muss zuerst eine Midi-Datei geladen werden. Für die konvertierte Datei lässt sich ein Tempo-Teiler einstellen. Über Convert/Test lässt sich das Tempo der konvertierten Datei ermitteln, so dass man diesen Teiler passend einstellen kann. &lt;br /&gt;
Die Instrumente der Midi-Datei kann man während des Konvertierens den Instrumenten des Synthesizers zuordnen.&lt;br /&gt;
&lt;br /&gt;
==Downloads==&lt;br /&gt;
&lt;br /&gt;
===Synthesizer===&lt;br /&gt;
* [[Media:Synthesizer.zip|Synthesizer]]&lt;br /&gt;
* [[Media:Synthesizer_-_Flash.zip|Beispiel Flash]]&lt;br /&gt;
* [[Media:Synthesizer_-_SD-Karte.zip|Beispiel SD-Karte]]&lt;br /&gt;
&lt;br /&gt;
===Konverter===&lt;br /&gt;
* [[Media:AVR-Synthesizer-Konverter.zip|Konverter (exe)]]&lt;br /&gt;
* [[Media:Midi2AvrSynthConverter.zip|Konverter (source)]]&lt;br /&gt;
&lt;br /&gt;
===Beispiele===&lt;br /&gt;
* [[Media:Mario.mp3|Mario.mp3]]&lt;br /&gt;
* [[Media:Marimba.mp3|Marimba.mp3]]&lt;br /&gt;
&lt;br /&gt;
==Hinweise==&lt;br /&gt;
&lt;br /&gt;
Sollte der Synthesizer die Dateien nicht sauber abspielen, kann das an der zu kleinen Puffergröße des Synthesizers (synth_config.h) oder der SD-Karte liegen. Wenn die Datei mehr Kanäle haben sollte, als in der synth_config.h eingestellt sind, werden die Noten nicht mehr zum richtigen Zeitpunkt gespielt. Zu viel eingestellte Kanäle brauchen jedoch viel Leistung, was auch zu Fehlern führen kann.&lt;br /&gt;
Ebenso kann der Synthesizer übersteuern. In diesem Fall sollte man die Startlautstärke verringern (Sequencer.c, synth.oscillators[i].temp = 20;).&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
* http://www.mikrocontroller.net/topic/232845&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:AVR-Projekte]]&lt;/div&gt;</summary>
		<author><name>Sam1994</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=AVR-Synthesizer&amp;diff=65225</id>
		<title>AVR-Synthesizer</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=AVR-Synthesizer&amp;diff=65225"/>
		<updated>2012-03-24T16:49:26Z</updated>

		<summary type="html">&lt;p&gt;Sam1994: /* Beispiele */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;von sam1994&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
&lt;br /&gt;
* 4 Instrumente&lt;br /&gt;
* Bassdrum, Snare, Hihat&lt;br /&gt;
* mehr als 20 gleichzeitig spielende Kanäle @20Mhz&lt;br /&gt;
* einstellbare Samplerate&lt;br /&gt;
* spielt konvertierte Midi-Dateien ab&lt;br /&gt;
* benötigt 7KB Flash, 500-900B Ram&lt;br /&gt;
&lt;br /&gt;
==Hardware==&lt;br /&gt;
&lt;br /&gt;
siehe http://www.mikrocontroller.net/articles/Klangerzeugung#PWM&lt;br /&gt;
&lt;br /&gt;
==Software==&lt;br /&gt;
&lt;br /&gt;
Der Synthesizer besteht aus einem Synthesizer und einem Sequenzer. Beide müssen am Anfang initialisiert werden. Dem Sequenzer wird beim Laden einer Datei ein Zeiger auf eine Funktion übergeben, die immer das nächste Byte der Datei ausliest. Dadurch ist es ohne großen Aufwand möglich die Datei aus dem Flash oder von einer SD-Karte zu lesen.&lt;br /&gt;
&lt;br /&gt;
===Flash===&lt;br /&gt;
&lt;br /&gt;
Die Datei wird als Array im Flash gespeichert.&lt;br /&gt;
&amp;lt;c&amp;gt;const uint8_t datei PROGMEM = {...vom Konverter...};&amp;lt;/c&amp;gt;&lt;br /&gt;
Dem Sequenzer wird die vordefinierte Funktion ReadFlash übergeben, als Zeiger die Datei:&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
        //Synthesizer init&lt;br /&gt;
	synth_init();&lt;br /&gt;
	//Datei vom Sequenzer laden&lt;br /&gt;
	seq_load(ReadFlash, datei);&lt;br /&gt;
	//Synthesizer und Sequenzer starten&lt;br /&gt;
	synth_start();&lt;br /&gt;
	seq_start();&lt;br /&gt;
        for(;;)&lt;br /&gt;
            synth_update();&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===SD-Karte===&lt;br /&gt;
&lt;br /&gt;
Für die SD-Karte braucht man einen Puffer. Mit 256 Byte ist man auf der sicheren Seite, bei wenigen Kanälen kann man auch 128 oder 64 Byte nehmen.&lt;br /&gt;
Außerdem muss man eine Funktion definieren, die aus dem Puffer liest und dem Sequenzer übergeben wird. Der übergebene Zeiger wird hier als Index missbraucht.&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
#define MIDI_BUF_LEN 256&lt;br /&gt;
uint8_t midi[MIDI_BUF_LEN];	&lt;br /&gt;
&lt;br /&gt;
uint8_t ReadBuffer(uint8_t* pos)&lt;br /&gt;
{&lt;br /&gt;
	return midi[((uint8_t)(uint16_t)pos) &amp;amp; (MIDI_BUF_LEN-1)];&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
Am Anfang muss der Puffer gefüllt und der Synthesizer initialisiert werden. In der Hauptschleife wird nur der Puffer nachgefüllt.&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
	//Lesepuffer füllen&lt;br /&gt;
	uint8_t i = 0;&lt;br /&gt;
	do&lt;br /&gt;
		midi[i] = ffread();&lt;br /&gt;
	while(++i != (MIDI_BUF_LEN &amp;amp; 0xFF));&lt;br /&gt;
	//Leseindex auf 0 setzen&lt;br /&gt;
	uint8_t write = 0;&lt;br /&gt;
&lt;br /&gt;
	//Synthesizer init&lt;br /&gt;
	synth_init();&lt;br /&gt;
	//Datei vom Sequenzer laden&lt;br /&gt;
	seq_load(ReadBuffer, 0);&lt;br /&gt;
	//Synthesizer und Sequenzer starten&lt;br /&gt;
	synth_start();&lt;br /&gt;
	seq_start();&lt;br /&gt;
&lt;br /&gt;
	for(;;)&lt;br /&gt;
	{&lt;br /&gt;
		//Synthesizerupdate; Diese Funktion muss mindestens im 1ms Intervall aufgerufen werden&lt;br /&gt;
		synth_update();&lt;br /&gt;
		//Leseindex mit Schreibindex vergleichen&lt;br /&gt;
		uint8_t read = (uint8_t)(uint16_t)Seq.file;&lt;br /&gt;
		while(read != write)  //Buffer wieder auffüllen&lt;br /&gt;
			midi[write++ &amp;amp; (MIDI_BUF_LEN-1)] = ffread();&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Konverter==&lt;br /&gt;
&lt;br /&gt;
Der Konverter kann Midi-Dateien in das Format des Avr-Synthesizers konvertieren. Dazu muss zuerst eine Midi-Datei geladen werden. Für die konvertierte Datei lässt sich ein Tempo-Teiler einstellen. Über Convert/Test lässt sich das Tempo der konvertierten Datei ermitteln, so dass man diesen Teiler passend einstellen kann. &lt;br /&gt;
Die Instrumente der Midi-Datei kann man während des Konvertierens den Instrumenten des Synthesizers zuordnen.&lt;br /&gt;
&lt;br /&gt;
==Downloads==&lt;br /&gt;
&lt;br /&gt;
===Synthesizer===&lt;br /&gt;
* [[Media:Synthesizer.zip|Synthesizer]]&lt;br /&gt;
* [[Media:Synthesizer_-_Flash.zip|Beispiel Flash]]&lt;br /&gt;
* [[Media:Synthesizer_-_SD-Karte.zip|Beispiel SD-Karte]]&lt;br /&gt;
&lt;br /&gt;
===Konverter===&lt;br /&gt;
* [[Media:AVR-Synthesizer-Konverter.zip|Konverter (exe)]]&lt;br /&gt;
* [[Media:Midi2AvrSynthConverter.zip|Konverter (source)]]&lt;br /&gt;
&lt;br /&gt;
===Beispiele===&lt;br /&gt;
* [[Media:Mario.mp3|Mario.mp3]]&lt;br /&gt;
* [[Media:Marimba.mp3|Marimba.mp3]]&lt;br /&gt;
&lt;br /&gt;
Hinweis: Die Beispiele nutzen den OC1A-Pin zur PWM-Erzeugung.&lt;br /&gt;
&lt;br /&gt;
==Hinweise==&lt;br /&gt;
&lt;br /&gt;
Sollte der Synthesizer die Dateien nicht sauber abspielen, kann das an der zu kleinen Puffergröße des Synthesizers (synth_config.h) oder der SD-Karte liegen. Wenn die Datei mehr Kanäle haben sollte, als in der synth_config.h eingestellt sind, werden die Noten nicht mehr zum richtigen Zeitpunkt gespielt. Zu viel eingestellte Kanäle brauchen jedoch viel Leistung, was auch zu Fehlern führen kann.&lt;br /&gt;
Ebenso kann der Synthesizer übersteuern. In diesem Fall sollte man die Startlautstärke verringern (Sequencer.c, synth.oscillators[i].temp = 20;).&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
* http://www.mikrocontroller.net/topic/232845&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:AVR-Projekte]]&lt;/div&gt;</summary>
		<author><name>Sam1994</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Datei:AVR-Synthesizer-Konverter.zip&amp;diff=64561</id>
		<title>Datei:AVR-Synthesizer-Konverter.zip</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Datei:AVR-Synthesizer-Konverter.zip&amp;diff=64561"/>
		<updated>2012-02-26T11:48:48Z</updated>

		<summary type="html">&lt;p&gt;Sam1994: hat eine neue Version von „Datei:AVR-Synthesizer-Konverter.zip“ hochgeladen:&amp;amp;#32;Bug behoben&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sam1994</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=AVR-Synthesizer&amp;diff=64508</id>
		<title>AVR-Synthesizer</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=AVR-Synthesizer&amp;diff=64508"/>
		<updated>2012-02-22T16:55:49Z</updated>

		<summary type="html">&lt;p&gt;Sam1994: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;von sam1994&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
&lt;br /&gt;
* 4 Instrumente&lt;br /&gt;
* Bassdrum, Snare, Hihat&lt;br /&gt;
* mehr als 20 gleichzeitig spielende Kanäle @20Mhz&lt;br /&gt;
* einstellbare Samplerate&lt;br /&gt;
* spielt konvertierte Midi-Dateien ab&lt;br /&gt;
* benötigt 7KB Flash, 500-900B Ram&lt;br /&gt;
&lt;br /&gt;
==Hardware==&lt;br /&gt;
&lt;br /&gt;
siehe http://www.mikrocontroller.net/articles/Klangerzeugung#PWM&lt;br /&gt;
&lt;br /&gt;
==Software==&lt;br /&gt;
&lt;br /&gt;
Der Synthesizer besteht aus einem Synthesizer und einem Sequenzer. Beide müssen am Anfang initialisiert werden. Dem Sequenzer wird beim Laden einer Datei ein Zeiger auf eine Funktion übergeben, die immer das nächste Byte der Datei ausliest. Dadurch ist es ohne großen Aufwand möglich die Datei aus dem Flash oder von einer SD-Karte zu lesen.&lt;br /&gt;
&lt;br /&gt;
===Flash===&lt;br /&gt;
&lt;br /&gt;
Die Datei wird als Array im Flash gespeichert.&lt;br /&gt;
&amp;lt;c&amp;gt;const uint8_t datei PROGMEM = {...vom Konverter...};&amp;lt;/c&amp;gt;&lt;br /&gt;
Dem Sequenzer wird die vordefinierte Funktion ReadFlash übergeben, als Zeiger die Datei:&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
        //Synthesizer init&lt;br /&gt;
	synth_init();&lt;br /&gt;
	//Datei vom Sequenzer laden&lt;br /&gt;
	seq_load(ReadFlash, datei);&lt;br /&gt;
	//Synthesizer und Sequenzer starten&lt;br /&gt;
	synth_start();&lt;br /&gt;
	seq_start();&lt;br /&gt;
        for(;;)&lt;br /&gt;
            synth_update();&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===SD-Karte===&lt;br /&gt;
&lt;br /&gt;
Für die SD-Karte braucht man einen Puffer. Mit 256 Byte ist man auf der sicheren Seite, bei wenigen Kanälen kann man auch 128 oder 64 Byte nehmen.&lt;br /&gt;
Außerdem muss man eine Funktion definieren, die aus dem Puffer liest und dem Sequenzer übergeben wird. Der übergebene Zeiger wird hier als Index missbraucht.&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
#define MIDI_BUF_LEN 256&lt;br /&gt;
uint8_t midi[MIDI_BUF_LEN];	&lt;br /&gt;
&lt;br /&gt;
uint8_t ReadBuffer(uint8_t* pos)&lt;br /&gt;
{&lt;br /&gt;
	return midi[((uint8_t)(uint16_t)pos) &amp;amp; (MIDI_BUF_LEN-1)];&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
Am Anfang muss der Puffer gefüllt und der Synthesizer initialisiert werden. In der Hauptschleife wird nur der Puffer nachgefüllt.&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
	//Lesepuffer füllen&lt;br /&gt;
	uint8_t i = 0;&lt;br /&gt;
	do&lt;br /&gt;
		midi[i] = ffread();&lt;br /&gt;
	while(++i != (MIDI_BUF_LEN &amp;amp; 0xFF));&lt;br /&gt;
	//Leseindex auf 0 setzen&lt;br /&gt;
	uint8_t write = 0;&lt;br /&gt;
&lt;br /&gt;
	//Synthesizer init&lt;br /&gt;
	synth_init();&lt;br /&gt;
	//Datei vom Sequenzer laden&lt;br /&gt;
	seq_load(ReadBuffer, 0);&lt;br /&gt;
	//Synthesizer und Sequenzer starten&lt;br /&gt;
	synth_start();&lt;br /&gt;
	seq_start();&lt;br /&gt;
&lt;br /&gt;
	for(;;)&lt;br /&gt;
	{&lt;br /&gt;
		//Synthesizerupdate; Diese Funktion muss mindestens im 1ms Intervall aufgerufen werden&lt;br /&gt;
		synth_update();&lt;br /&gt;
		//Leseindex mit Schreibindex vergleichen&lt;br /&gt;
		uint8_t read = (uint8_t)(uint16_t)Seq.file;&lt;br /&gt;
		while(read != write)  //Buffer wieder auffüllen&lt;br /&gt;
			midi[write++ &amp;amp; (MIDI_BUF_LEN-1)] = ffread();&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Konverter==&lt;br /&gt;
&lt;br /&gt;
Der Konverter kann Midi-Dateien in das Format des Avr-Synthesizers konvertieren. Dazu muss zuerst eine Midi-Datei geladen werden. Für die konvertierte Datei lässt sich ein Tempo-Teiler einstellen. Über Convert/Test lässt sich das Tempo der konvertierten Datei ermitteln, so dass man diesen Teiler passend einstellen kann. &lt;br /&gt;
Die Instrumente der Midi-Datei kann man während des Konvertierens den Instrumenten des Synthesizers zuordnen.&lt;br /&gt;
&lt;br /&gt;
==Downloads==&lt;br /&gt;
&lt;br /&gt;
===Synthesizer===&lt;br /&gt;
* [[Media:Synthesizer.zip|Synthesizer]]&lt;br /&gt;
* [[Media:Synthesizer_-_Flash.zip|Beispiel Flash]]&lt;br /&gt;
* [[Media:Synthesizer_-_SD-Karte.zip|Beispiel SD-Karte]]&lt;br /&gt;
&lt;br /&gt;
===Konverter===&lt;br /&gt;
* [[Media:AVR-Synthesizer-Konverter.zip|Konverter (exe)]]&lt;br /&gt;
* [[Media:Midi2AvrSynthConverter.zip|Konverter (source)]]&lt;br /&gt;
&lt;br /&gt;
===Beispiele===&lt;br /&gt;
* [[Media:Mario.mp3|Mario.mp3]]&lt;br /&gt;
* [[Media:Marimba.mp3|Marimba.mp3]]&lt;br /&gt;
&lt;br /&gt;
==Hinweise==&lt;br /&gt;
&lt;br /&gt;
Sollte der Synthesizer die Dateien nicht sauber abspielen, kann das an der zu kleinen Puffergröße des Synthesizers (synth_config.h) oder der SD-Karte liegen. Wenn die Datei mehr Kanäle haben sollte, als in der synth_config.h eingestellt sind, werden die Noten nicht mehr zum richtigen Zeitpunkt gespielt. Zu viel eingestellte Kanäle brauchen jedoch viel Leistung, was auch zu Fehlern führen kann.&lt;br /&gt;
Ebenso kann der Synthesizer übersteuern. In diesem Fall sollte man die Startlautstärke verringern (Sequencer.c, synth.oscillators[i].temp = 20;).&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
* http://www.mikrocontroller.net/topic/232845&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:AVR-Projekte]]&lt;/div&gt;</summary>
		<author><name>Sam1994</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=AVR-Synthesizer&amp;diff=64489</id>
		<title>AVR-Synthesizer</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=AVR-Synthesizer&amp;diff=64489"/>
		<updated>2012-02-21T21:49:27Z</updated>

		<summary type="html">&lt;p&gt;Sam1994: /* Features */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;von sam1994&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
&lt;br /&gt;
* 4 Instrumente&lt;br /&gt;
* Bassdrum, Snare, Hihat&lt;br /&gt;
* mehr als 20 gleichzeitig spielende Kanäle @20Mhz&lt;br /&gt;
* einstellbare Samplerate&lt;br /&gt;
* spielt konvertierte Midi-Dateien ab&lt;br /&gt;
* benötigt 7KB Flash, 500-900B Ram&lt;br /&gt;
&lt;br /&gt;
==Hardware==&lt;br /&gt;
&lt;br /&gt;
siehe http://www.mikrocontroller.net/articles/Klangerzeugung#PWM&lt;br /&gt;
&lt;br /&gt;
==Software==&lt;br /&gt;
&lt;br /&gt;
Der Synthesizer besteht aus einem Synthesizer und einem Sequenzer. Beide müssen am Anfang initialisiert werden. Dem Sequenzer wird beim Laden einer Datei ein Zeiger auf eine Funktion übergeben, die immer das nächste Byte der Datei ausliest. Dadurch ist es ohne großen Aufwand möglich die Datei aus dem Flash oder von einer SD-Karte zu lesen.&lt;br /&gt;
&lt;br /&gt;
===Flash===&lt;br /&gt;
&lt;br /&gt;
Die Datei wird als Array im Flash gespeichert.&lt;br /&gt;
&amp;lt;c&amp;gt;const uint8_t datei PROGMEM = {...vom Konverter...};&amp;lt;/c&amp;gt;&lt;br /&gt;
Dem Sequenzer wird die vordefinierte Funktion ReadFlash übergeben, als Zeiger die Datei:&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
        //Synthesizer init&lt;br /&gt;
	synth_init();&lt;br /&gt;
	//Datei vom Sequenzer laden&lt;br /&gt;
	seq_load(ReadFlash, datei);&lt;br /&gt;
	//Synthesizer und Sequenzer starten&lt;br /&gt;
	synth_start();&lt;br /&gt;
	seq_start();&lt;br /&gt;
        for(;;)&lt;br /&gt;
            synth_update();&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===SD-Karte===&lt;br /&gt;
&lt;br /&gt;
Für die SD-Karte braucht man einen Puffer. Mit 256 Byte ist man auf der sicheren Seite, bei wenigen Kanälen kann man auch 128 oder 64 Byte nehmen.&lt;br /&gt;
Außerdem muss man eine Funktion definieren, die aus dem Puffer liest und dem Sequenzer übergeben wird. Der übergebene Zeiger wird hier als Index missbraucht.&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
#define MIDI_BUF_LEN 256&lt;br /&gt;
uint8_t midi[MIDI_BUF_LEN];	&lt;br /&gt;
&lt;br /&gt;
uint8_t ReadBuffer(uint8_t* pos)&lt;br /&gt;
{&lt;br /&gt;
	return midi[((uint8_t)(uint16_t)pos) &amp;amp; (MIDI_BUF_LEN-1)];&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
Am Anfang muss der Puffer gefüllt und der Synthesizer initialisiert werden. In der Hauptschleife wird nur der Puffer nachgefüllt.&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
	//Lesepuffer füllen&lt;br /&gt;
	uint8_t i = 0;&lt;br /&gt;
	do&lt;br /&gt;
		midi[i] = ffread();&lt;br /&gt;
	while(++i != (MIDI_BUF_LEN &amp;amp; 0xFF));&lt;br /&gt;
	//Leseindex auf 0 setzen&lt;br /&gt;
	uint8_t write = 0;&lt;br /&gt;
&lt;br /&gt;
	//Synthesizer init&lt;br /&gt;
	synth_init();&lt;br /&gt;
	//Datei vom Sequenzer laden&lt;br /&gt;
	seq_load(ReadBuffer, 0);&lt;br /&gt;
	//Synthesizer und Sequenzer starten&lt;br /&gt;
	synth_start();&lt;br /&gt;
	seq_start();&lt;br /&gt;
&lt;br /&gt;
	for(;;)&lt;br /&gt;
	{&lt;br /&gt;
		//Synthesizerupdate; Diese Funktion muss mindestens im 1ms Intervall aufgerufen werden&lt;br /&gt;
		synth_update();&lt;br /&gt;
		//Leseindex mit Schreibindex vergleichen&lt;br /&gt;
		uint8_t read = (uint8_t)(uint16_t)Seq.file;&lt;br /&gt;
		while(read != write)  //Buffer wieder auffüllen&lt;br /&gt;
			midi[write++ &amp;amp; (MIDI_BUF_LEN-1)] = ffread();&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Konverter==&lt;br /&gt;
&lt;br /&gt;
Der Konverter kann Midi-Dateien in das Format des Avr-Synthesizers konvertieren. Dazu muss zuerst eine Midi-Datei geladen werden. Für die konvertierte Datei lässt sich ein Tempo-Teiler einstellen. Über Convert/Test lässt sich das Tempo der konvertierten Datei ermitteln, so dass man diesen Teiler passend einstellen kann. &lt;br /&gt;
Die Instrumente der Midi-Datei kann man während des Konvertierens den Instrumenten des Synthesizers zuordnen.&lt;br /&gt;
&lt;br /&gt;
==Downloads==&lt;br /&gt;
&lt;br /&gt;
===Synthesizer===&lt;br /&gt;
* [[Media:Synthesizer.zip|Synthesizer]]&lt;br /&gt;
* [[Media:Synthesizer_-_Flash.zip|Beispiel Flash]]&lt;br /&gt;
* [[Media:Synthesizer_-_SD-Karte.zip|Beispiel SD-Karte]]&lt;br /&gt;
&lt;br /&gt;
===Konverter===&lt;br /&gt;
* [[Media:AVR-Synthesizer-Konverter.zip|Konverter (exe)]]&lt;br /&gt;
* [[Media:Midi2AvrSynthConverter.zip|Konverter (source)]]&lt;br /&gt;
&lt;br /&gt;
===Beispiele===&lt;br /&gt;
* [[Media:Mario.mp3]]&lt;br /&gt;
* [[Media:Marimba.mp3]]&lt;br /&gt;
&lt;br /&gt;
==Hinweise==&lt;br /&gt;
&lt;br /&gt;
Sollte der Synthesizer die Dateien nicht sauber abspielen, kann das an der zu kleinen Puffergröße des Synthesizers (synth_config.h) oder der SD-Karte liegen. Wenn die Datei mehr Kanäle haben sollte, als in der synth_config.h eingestellt sind, werden die Noten nicht mehr zum richtigen Zeitpunkt gespielt. Zu viel eingestellte Kanäle brauchen jedoch viel Leistung, was auch zu Fehlern führen kann.&lt;br /&gt;
Ebenso kann der Synthesizer übersteuern. In diesem Fall sollte man die Startlautstärke verringern (Sequencer.c, synth.oscillators[i].temp = 20;).&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
* http://www.mikrocontroller.net/topic/232845&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:AVR-Projekte]]&lt;/div&gt;</summary>
		<author><name>Sam1994</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=AVR-Synthesizer&amp;diff=64488</id>
		<title>AVR-Synthesizer</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=AVR-Synthesizer&amp;diff=64488"/>
		<updated>2012-02-21T21:48:52Z</updated>

		<summary type="html">&lt;p&gt;Sam1994: /* Features */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;von sam1994&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
&lt;br /&gt;
* 4 Instrumente&lt;br /&gt;
* Bassdrum, Snare, Hihat&lt;br /&gt;
* mehr als 20 gleichzeitig spielende Kanäle @20Mhz&lt;br /&gt;
* einstellbare Samplerate&lt;br /&gt;
* spielt konvertierte Midi-Dateien ab&lt;br /&gt;
* 7KB Flash, 500-900B Ram&lt;br /&gt;
&lt;br /&gt;
==Hardware==&lt;br /&gt;
&lt;br /&gt;
siehe http://www.mikrocontroller.net/articles/Klangerzeugung#PWM&lt;br /&gt;
&lt;br /&gt;
==Software==&lt;br /&gt;
&lt;br /&gt;
Der Synthesizer besteht aus einem Synthesizer und einem Sequenzer. Beide müssen am Anfang initialisiert werden. Dem Sequenzer wird beim Laden einer Datei ein Zeiger auf eine Funktion übergeben, die immer das nächste Byte der Datei ausliest. Dadurch ist es ohne großen Aufwand möglich die Datei aus dem Flash oder von einer SD-Karte zu lesen.&lt;br /&gt;
&lt;br /&gt;
===Flash===&lt;br /&gt;
&lt;br /&gt;
Die Datei wird als Array im Flash gespeichert.&lt;br /&gt;
&amp;lt;c&amp;gt;const uint8_t datei PROGMEM = {...vom Konverter...};&amp;lt;/c&amp;gt;&lt;br /&gt;
Dem Sequenzer wird die vordefinierte Funktion ReadFlash übergeben, als Zeiger die Datei:&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
        //Synthesizer init&lt;br /&gt;
	synth_init();&lt;br /&gt;
	//Datei vom Sequenzer laden&lt;br /&gt;
	seq_load(ReadFlash, datei);&lt;br /&gt;
	//Synthesizer und Sequenzer starten&lt;br /&gt;
	synth_start();&lt;br /&gt;
	seq_start();&lt;br /&gt;
        for(;;)&lt;br /&gt;
            synth_update();&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===SD-Karte===&lt;br /&gt;
&lt;br /&gt;
Für die SD-Karte braucht man einen Puffer. Mit 256 Byte ist man auf der sicheren Seite, bei wenigen Kanälen kann man auch 128 oder 64 Byte nehmen.&lt;br /&gt;
Außerdem muss man eine Funktion definieren, die aus dem Puffer liest und dem Sequenzer übergeben wird. Der übergebene Zeiger wird hier als Index missbraucht.&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
#define MIDI_BUF_LEN 256&lt;br /&gt;
uint8_t midi[MIDI_BUF_LEN];	&lt;br /&gt;
&lt;br /&gt;
uint8_t ReadBuffer(uint8_t* pos)&lt;br /&gt;
{&lt;br /&gt;
	return midi[((uint8_t)(uint16_t)pos) &amp;amp; (MIDI_BUF_LEN-1)];&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
Am Anfang muss der Puffer gefüllt und der Synthesizer initialisiert werden. In der Hauptschleife wird nur der Puffer nachgefüllt.&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
	//Lesepuffer füllen&lt;br /&gt;
	uint8_t i = 0;&lt;br /&gt;
	do&lt;br /&gt;
		midi[i] = ffread();&lt;br /&gt;
	while(++i != (MIDI_BUF_LEN &amp;amp; 0xFF));&lt;br /&gt;
	//Leseindex auf 0 setzen&lt;br /&gt;
	uint8_t write = 0;&lt;br /&gt;
&lt;br /&gt;
	//Synthesizer init&lt;br /&gt;
	synth_init();&lt;br /&gt;
	//Datei vom Sequenzer laden&lt;br /&gt;
	seq_load(ReadBuffer, 0);&lt;br /&gt;
	//Synthesizer und Sequenzer starten&lt;br /&gt;
	synth_start();&lt;br /&gt;
	seq_start();&lt;br /&gt;
&lt;br /&gt;
	for(;;)&lt;br /&gt;
	{&lt;br /&gt;
		//Synthesizerupdate; Diese Funktion muss mindestens im 1ms Intervall aufgerufen werden&lt;br /&gt;
		synth_update();&lt;br /&gt;
		//Leseindex mit Schreibindex vergleichen&lt;br /&gt;
		uint8_t read = (uint8_t)(uint16_t)Seq.file;&lt;br /&gt;
		while(read != write)  //Buffer wieder auffüllen&lt;br /&gt;
			midi[write++ &amp;amp; (MIDI_BUF_LEN-1)] = ffread();&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Konverter==&lt;br /&gt;
&lt;br /&gt;
Der Konverter kann Midi-Dateien in das Format des Avr-Synthesizers konvertieren. Dazu muss zuerst eine Midi-Datei geladen werden. Für die konvertierte Datei lässt sich ein Tempo-Teiler einstellen. Über Convert/Test lässt sich das Tempo der konvertierten Datei ermitteln, so dass man diesen Teiler passend einstellen kann. &lt;br /&gt;
Die Instrumente der Midi-Datei kann man während des Konvertierens den Instrumenten des Synthesizers zuordnen.&lt;br /&gt;
&lt;br /&gt;
==Downloads==&lt;br /&gt;
&lt;br /&gt;
===Synthesizer===&lt;br /&gt;
* [[Media:Synthesizer.zip|Synthesizer]]&lt;br /&gt;
* [[Media:Synthesizer_-_Flash.zip|Beispiel Flash]]&lt;br /&gt;
* [[Media:Synthesizer_-_SD-Karte.zip|Beispiel SD-Karte]]&lt;br /&gt;
&lt;br /&gt;
===Konverter===&lt;br /&gt;
* [[Media:AVR-Synthesizer-Konverter.zip|Konverter (exe)]]&lt;br /&gt;
* [[Media:Midi2AvrSynthConverter.zip|Konverter (source)]]&lt;br /&gt;
&lt;br /&gt;
===Beispiele===&lt;br /&gt;
* [[Media:Mario.mp3]]&lt;br /&gt;
* [[Media:Marimba.mp3]]&lt;br /&gt;
&lt;br /&gt;
==Hinweise==&lt;br /&gt;
&lt;br /&gt;
Sollte der Synthesizer die Dateien nicht sauber abspielen, kann das an der zu kleinen Puffergröße des Synthesizers (synth_config.h) oder der SD-Karte liegen. Wenn die Datei mehr Kanäle haben sollte, als in der synth_config.h eingestellt sind, werden die Noten nicht mehr zum richtigen Zeitpunkt gespielt. Zu viel eingestellte Kanäle brauchen jedoch viel Leistung, was auch zu Fehlern führen kann.&lt;br /&gt;
Ebenso kann der Synthesizer übersteuern. In diesem Fall sollte man die Startlautstärke verringern (Sequencer.c, synth.oscillators[i].temp = 20;).&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
* http://www.mikrocontroller.net/topic/232845&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:AVR-Projekte]]&lt;/div&gt;</summary>
		<author><name>Sam1994</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=AVR-Synthesizer&amp;diff=64486</id>
		<title>AVR-Synthesizer</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=AVR-Synthesizer&amp;diff=64486"/>
		<updated>2012-02-21T14:44:59Z</updated>

		<summary type="html">&lt;p&gt;Sam1994: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;von sam1994&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
&lt;br /&gt;
* 4 Instrumente&lt;br /&gt;
* Bassdrum, Snare, Hihat&lt;br /&gt;
* mehr als 20 gleichzeitig spielende Kanäle @20Mhz&lt;br /&gt;
* einstellbare Samplerate&lt;br /&gt;
* spielt konvertierte Midi-Dateien ab&lt;br /&gt;
&lt;br /&gt;
==Hardware==&lt;br /&gt;
&lt;br /&gt;
siehe http://www.mikrocontroller.net/articles/Klangerzeugung#PWM&lt;br /&gt;
&lt;br /&gt;
==Software==&lt;br /&gt;
&lt;br /&gt;
Der Synthesizer besteht aus einem Synthesizer und einem Sequenzer. Beide müssen am Anfang initialisiert werden. Dem Sequenzer wird beim Laden einer Datei ein Zeiger auf eine Funktion übergeben, die immer das nächste Byte der Datei ausliest. Dadurch ist es ohne großen Aufwand möglich die Datei aus dem Flash oder von einer SD-Karte zu lesen.&lt;br /&gt;
&lt;br /&gt;
===Flash===&lt;br /&gt;
&lt;br /&gt;
Die Datei wird als Array im Flash gespeichert.&lt;br /&gt;
&amp;lt;c&amp;gt;const uint8_t datei PROGMEM = {...vom Konverter...};&amp;lt;/c&amp;gt;&lt;br /&gt;
Dem Sequenzer wird die vordefinierte Funktion ReadFlash übergeben, als Zeiger die Datei:&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
        //Synthesizer init&lt;br /&gt;
	synth_init();&lt;br /&gt;
	//Datei vom Sequenzer laden&lt;br /&gt;
	seq_load(ReadFlash, datei);&lt;br /&gt;
	//Synthesizer und Sequenzer starten&lt;br /&gt;
	synth_start();&lt;br /&gt;
	seq_start();&lt;br /&gt;
        for(;;)&lt;br /&gt;
            synth_update();&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===SD-Karte===&lt;br /&gt;
&lt;br /&gt;
Für die SD-Karte braucht man einen Puffer. Mit 256 Byte ist man auf der sicheren Seite, bei wenigen Kanälen kann man auch 128 oder 64 Byte nehmen.&lt;br /&gt;
Außerdem muss man eine Funktion definieren, die aus dem Puffer liest und dem Sequenzer übergeben wird. Der übergebene Zeiger wird hier als Index missbraucht.&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
#define MIDI_BUF_LEN 256&lt;br /&gt;
uint8_t midi[MIDI_BUF_LEN];	&lt;br /&gt;
&lt;br /&gt;
uint8_t ReadBuffer(uint8_t* pos)&lt;br /&gt;
{&lt;br /&gt;
	return midi[((uint8_t)(uint16_t)pos) &amp;amp; (MIDI_BUF_LEN-1)];&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
Am Anfang muss der Puffer gefüllt und der Synthesizer initialisiert werden. In der Hauptschleife wird nur der Puffer nachgefüllt.&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
	//Lesepuffer füllen&lt;br /&gt;
	uint8_t i = 0;&lt;br /&gt;
	do&lt;br /&gt;
		midi[i] = ffread();&lt;br /&gt;
	while(++i != (MIDI_BUF_LEN &amp;amp; 0xFF));&lt;br /&gt;
	//Leseindex auf 0 setzen&lt;br /&gt;
	uint8_t write = 0;&lt;br /&gt;
&lt;br /&gt;
	//Synthesizer init&lt;br /&gt;
	synth_init();&lt;br /&gt;
	//Datei vom Sequenzer laden&lt;br /&gt;
	seq_load(ReadBuffer, 0);&lt;br /&gt;
	//Synthesizer und Sequenzer starten&lt;br /&gt;
	synth_start();&lt;br /&gt;
	seq_start();&lt;br /&gt;
&lt;br /&gt;
	for(;;)&lt;br /&gt;
	{&lt;br /&gt;
		//Synthesizerupdate; Diese Funktion muss mindestens im 1ms Intervall aufgerufen werden&lt;br /&gt;
		synth_update();&lt;br /&gt;
		//Leseindex mit Schreibindex vergleichen&lt;br /&gt;
		uint8_t read = (uint8_t)(uint16_t)Seq.file;&lt;br /&gt;
		while(read != write)  //Buffer wieder auffüllen&lt;br /&gt;
			midi[write++ &amp;amp; (MIDI_BUF_LEN-1)] = ffread();&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Konverter==&lt;br /&gt;
&lt;br /&gt;
Der Konverter kann Midi-Dateien in das Format des Avr-Synthesizers konvertieren. Dazu muss zuerst eine Midi-Datei geladen werden. Für die konvertierte Datei lässt sich ein Tempo-Teiler einstellen. Über Convert/Test lässt sich das Tempo der konvertierten Datei ermitteln, so dass man diesen Teiler passend einstellen kann. &lt;br /&gt;
Die Instrumente der Midi-Datei kann man während des Konvertierens den Instrumenten des Synthesizers zuordnen.&lt;br /&gt;
&lt;br /&gt;
==Downloads==&lt;br /&gt;
&lt;br /&gt;
===Synthesizer===&lt;br /&gt;
* [[Media:Synthesizer.zip|Synthesizer]]&lt;br /&gt;
* [[Media:Synthesizer_-_Flash.zip|Beispiel Flash]]&lt;br /&gt;
* [[Media:Synthesizer_-_SD-Karte.zip|Beispiel SD-Karte]]&lt;br /&gt;
&lt;br /&gt;
===Konverter===&lt;br /&gt;
* [[Media:AVR-Synthesizer-Konverter.zip|Konverter (exe)]]&lt;br /&gt;
* [[Media:Midi2AvrSynthConverter.zip|Konverter (source)]]&lt;br /&gt;
&lt;br /&gt;
===Beispiele===&lt;br /&gt;
* [[Media:Mario.mp3]]&lt;br /&gt;
* [[Media:Marimba.mp3]]&lt;br /&gt;
&lt;br /&gt;
==Hinweise==&lt;br /&gt;
&lt;br /&gt;
Sollte der Synthesizer die Dateien nicht sauber abspielen, kann das an der zu kleinen Puffergröße des Synthesizers (synth_config.h) oder der SD-Karte liegen. Wenn die Datei mehr Kanäle haben sollte, als in der synth_config.h eingestellt sind, werden die Noten nicht mehr zum richtigen Zeitpunkt gespielt. Zu viel eingestellte Kanäle brauchen jedoch viel Leistung, was auch zu Fehlern führen kann.&lt;br /&gt;
Ebenso kann der Synthesizer übersteuern. In diesem Fall sollte man die Startlautstärke verringern (Sequencer.c, synth.oscillators[i].temp = 20;).&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
* http://www.mikrocontroller.net/topic/232845&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:AVR-Projekte]]&lt;/div&gt;</summary>
		<author><name>Sam1994</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=AVR-Synthesizer&amp;diff=64483</id>
		<title>AVR-Synthesizer</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=AVR-Synthesizer&amp;diff=64483"/>
		<updated>2012-02-21T14:36:30Z</updated>

		<summary type="html">&lt;p&gt;Sam1994: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;von sam1994&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
&lt;br /&gt;
* 4 Instrumente&lt;br /&gt;
* Bassdrum, Snare, Hihat&lt;br /&gt;
* mehr als 20 gleichzeitig spielende Kanäle @20Mhz&lt;br /&gt;
* einstellbare Samplerate&lt;br /&gt;
* spielt konvertierte Midi-Dateien ab&lt;br /&gt;
&lt;br /&gt;
==Hardware==&lt;br /&gt;
&lt;br /&gt;
siehe http://www.mikrocontroller.net/articles/Klangerzeugung#PWM&lt;br /&gt;
&lt;br /&gt;
==Software==&lt;br /&gt;
&lt;br /&gt;
Der Synthesizer besteht aus einem Synthesizer und einem Sequenzer. Beide müssen am Anfang initialisiert werden. Dem Sequenzer wird beim Laden einer Datei ein Zeiger auf eine Funktion übergeben, die immer das nächste Byte der Datei ausliest. Dadurch ist es ohne großen Aufwand möglich die Datei aus dem Flash oder von einer SD-Karte zu lesen.&lt;br /&gt;
&lt;br /&gt;
===Flash===&lt;br /&gt;
&lt;br /&gt;
Die Datei wird als Array im Flash gespeichert.&lt;br /&gt;
&amp;lt;c&amp;gt;const uint8_t datei PROGMEM = {...vom Konverter...};&amp;lt;/c&amp;gt;&lt;br /&gt;
Dem Sequenzer wird die vordefinierte Funktion ReadFlash übergeben, als Zeiger die Datei:&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
        //Synthesizer init&lt;br /&gt;
	synth_init();&lt;br /&gt;
	//Datei vom Sequenzer laden&lt;br /&gt;
	seq_load(ReadFlash, datei);&lt;br /&gt;
	//Synthesizer und Sequenzer starten&lt;br /&gt;
	synth_start();&lt;br /&gt;
	seq_start();&lt;br /&gt;
        for(;;)&lt;br /&gt;
            synth_update();&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===SD-Karte===&lt;br /&gt;
&lt;br /&gt;
Für die SD-Karte braucht man einen Puffer. Mit 256 Byte ist man auf der sicheren Seite, bei wenigen Kanälen kann man auch 128 oder 64 Byte nehmen.&lt;br /&gt;
Außerdem muss man eine Funktion definieren, die aus dem Puffer liest und dem Sequenzer übergeben wird. Der übergebene Zeiger wird hier als Index missbraucht.&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
#define MIDI_BUF_LEN 256 kommen. &lt;br /&gt;
uint8_t midi[MIDI_BUF_LEN];	&lt;br /&gt;
&lt;br /&gt;
uint8_t ReadBuffer(uint8_t* pos)&lt;br /&gt;
{&lt;br /&gt;
	return midi[((uint8_t)(uint16_t)pos) &amp;amp; (MIDI_BUF_LEN-1)];&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
Am Anfang muss der Puffer gefüllt und der Synthesizer initialisiert werden. In der Hauptschleife wird nur der Puffer nachgefüllt.&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
	//Lesepuffer füllen&lt;br /&gt;
	uint8_t i = 0;&lt;br /&gt;
	do&lt;br /&gt;
		midi[i] = ffread();&lt;br /&gt;
	while(++i != (MIDI_BUF_LEN &amp;amp; 0xFF));&lt;br /&gt;
	//Leseindex auf 0 setzen&lt;br /&gt;
	uint8_t write = 0;&lt;br /&gt;
&lt;br /&gt;
	//Synthesizer init&lt;br /&gt;
	synth_init();&lt;br /&gt;
	//Datei vom Sequenzer laden&lt;br /&gt;
	seq_load(ReadBuffer, 0);&lt;br /&gt;
	//Synthesizer und Sequenzer starten&lt;br /&gt;
	synth_start();&lt;br /&gt;
	seq_start();&lt;br /&gt;
&lt;br /&gt;
	for(;;)&lt;br /&gt;
	{&lt;br /&gt;
		//Synthesizerupdate; Diese Funktion muss mindestens im 1ms Intervall aufgerufen werden&lt;br /&gt;
		synth_update();&lt;br /&gt;
		//Leseindex mit Schreibindex vergleichen&lt;br /&gt;
		uint8_t read = (uint8_t)(uint16_t)Seq.file;&lt;br /&gt;
		while(read != write)  //Buffer wieder auffüllen&lt;br /&gt;
			midi[write++ &amp;amp; (MIDI_BUF_LEN-1)] = ffread();&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Konverter==&lt;br /&gt;
&lt;br /&gt;
Der Konverter kann Midi-Dateien in das Format des Avr-Synthesizers konvertieren. Dazu muss zuerst eine Midi-Datei geladen werden. Für die konvertierte Datei lässt sich ein Tempo-Teiler einstellen. Über Convert/Test lässt sich das Tempo der konvertierten Datei ermitteln, so dass man diesen Teiler passend einstellen kann. &lt;br /&gt;
Die Instrumente der Midi-Datei kann man während des Konvertierens den Instrumenten des Synthesizers zuordnen.&lt;br /&gt;
&lt;br /&gt;
==Downloads==&lt;br /&gt;
&lt;br /&gt;
===Synthesizer===&lt;br /&gt;
* [[Media:Synthesizer.zip|Synthesizer]]&lt;br /&gt;
* [[Media:Synthesizer_-_Flash.zip|Beispiel Flash]]&lt;br /&gt;
* [[Media:Synthesizer_-_SD-Karte.zip|Beispiel SD-Karte]]&lt;br /&gt;
&lt;br /&gt;
===Konverter===&lt;br /&gt;
* [[Media:AVR-Synthesizer-Konverter.zip|Konverter (exe)]]&lt;br /&gt;
* [[Media:Midi2AvrSynthConverter.zip|Konverter (source)]]&lt;br /&gt;
&lt;br /&gt;
===Beispiele===&lt;br /&gt;
* [[Media:Mario.mp3]]&lt;br /&gt;
* [[Media:Marimba.mp3]]&lt;br /&gt;
&lt;br /&gt;
==Hinweise==&lt;br /&gt;
&lt;br /&gt;
Sollte der Synthesizer die Dateien nicht sauber abspielen, kann das an der zu kleinen Puffergröße des Synthesizers (synth_config.h) oder der SD-Karte liegen. Wenn die Datei mehr Kanäle haben sollte, als in der synth_config.h eingestellt sind, werden die Noten nicht mehr zum richtigen Zeitpunkt gespielt. Zu viel eingestellte Kanäle brauchen jedoch viel Leistung, was auch zu Fehlern führen kann.&lt;br /&gt;
Ebenso kann der Synthesizer übersteuern. In diesem Fall sollte man die Startlautstärke verringern (Sequencer.c, synth.oscillators[i].temp = 20;).&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
* http://www.mikrocontroller.net/topic/232845&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:AVR-Projekte]]&lt;/div&gt;</summary>
		<author><name>Sam1994</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=AVR-Synthesizer&amp;diff=64482</id>
		<title>AVR-Synthesizer</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=AVR-Synthesizer&amp;diff=64482"/>
		<updated>2012-02-21T14:34:11Z</updated>

		<summary type="html">&lt;p&gt;Sam1994: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;von sam1994&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
&lt;br /&gt;
* 4 Instrumente&lt;br /&gt;
* Bassdrum, Snare, Hihat&lt;br /&gt;
* mehr als 20 gleichzeitig spielende Kanäle @20Mhz&lt;br /&gt;
* einstellbare Samplerate&lt;br /&gt;
* spielt konvertierte Midi-Dateien ab&lt;br /&gt;
&lt;br /&gt;
==Hardware==&lt;br /&gt;
&lt;br /&gt;
siehe http://www.mikrocontroller.net/articles/Klangerzeugung#PWM&lt;br /&gt;
&lt;br /&gt;
==Software==&lt;br /&gt;
&lt;br /&gt;
Der Synthesizer besteht aus einem Synthesizer und einem Sequenzer. Beide müssen am Anfang Initialisiert werden. Dem Sequenzer wird beim Laden einer Datei ein Zeiger auf eine Funktion übergeben, die immer das nächste Byte der Datei ausliest. Dadurch ist es ohne großen Aufwand möglich die Datei aus dem Flash oder von einer SD-Karte zu lesen.&lt;br /&gt;
&lt;br /&gt;
===Flash===&lt;br /&gt;
&lt;br /&gt;
Die Datei wird als Array im Flash gespeichert.&lt;br /&gt;
&amp;lt;c&amp;gt;const uint8_t datei PROGMEM = {...vom Konverter...};&amp;lt;/c&amp;gt;&lt;br /&gt;
Dem Sequenzer wird die vordefinierte Funktion ReadFlash übergeben, als Zeiger die Datei:&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
        //Synthesizer init&lt;br /&gt;
	synth_init();&lt;br /&gt;
	//Datei vom Sequenzer laden&lt;br /&gt;
	seq_load(ReadFlash, datei);&lt;br /&gt;
	//Synthesizer und Sequenzer starten&lt;br /&gt;
	synth_start();&lt;br /&gt;
	seq_start();&lt;br /&gt;
        for(;;)&lt;br /&gt;
            synth_update();&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===SD-Karte===&lt;br /&gt;
&lt;br /&gt;
Für die SD-Karte braucht man einen Puffer. Mit 256 Byte ist man auf der sicheren Seite, bei wenigen Kanälen kann man auch 128 oder 64 Byte nehmen.&lt;br /&gt;
Außerdem muss man eine Funktion definieren, die aus dem Puffer liest und dem Sequenzer übergeben wird. Der übergebene Zeiger wird hier als Index missbraucht.&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
#define MIDI_BUF_LEN 256 kommen. &lt;br /&gt;
uint8_t midi[MIDI_BUF_LEN];	&lt;br /&gt;
&lt;br /&gt;
uint8_t ReadBuffer(uint8_t* pos)&lt;br /&gt;
{&lt;br /&gt;
	return midi[((uint8_t)(uint16_t)pos) &amp;amp; (MIDI_BUF_LEN-1)];&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
Am Anfang muss der Puffer gefüllt und der Synthesizer initialisiert werden. In der Hauptschleife wird nur der Puffer nachgefüllt.&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
	//Lesepuffer füllen&lt;br /&gt;
	uint8_t i = 0;&lt;br /&gt;
	do&lt;br /&gt;
		midi[i] = ffread();&lt;br /&gt;
	while(++i != (MIDI_BUF_LEN &amp;amp; 0xFF));&lt;br /&gt;
	//Leseindex auf 0 setzen&lt;br /&gt;
	uint8_t write = 0;&lt;br /&gt;
&lt;br /&gt;
	//Synthesizer init&lt;br /&gt;
	synth_init();&lt;br /&gt;
	//Datei vom Sequenzer laden&lt;br /&gt;
	seq_load(ReadBuffer, 0);&lt;br /&gt;
	//Synthesizer und Sequenzer starten&lt;br /&gt;
	synth_start();&lt;br /&gt;
	seq_start();&lt;br /&gt;
&lt;br /&gt;
	for(;;)&lt;br /&gt;
	{&lt;br /&gt;
		//Synthesizerupdate; Diese Funktion muss mindestens im 1ms Intervall aufgerufen werden&lt;br /&gt;
		synth_update();&lt;br /&gt;
		//Leseindex mit Schreibindex vergleichen&lt;br /&gt;
		uint8_t read = (uint8_t)(uint16_t)Seq.file;&lt;br /&gt;
		while(read != write)  //Buffer wieder auffüllen&lt;br /&gt;
			midi[write++ &amp;amp; (MIDI_BUF_LEN-1)] = ffread();&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Konverter==&lt;br /&gt;
&lt;br /&gt;
Der Konverter kann Midi-Dateien in das Format des Avr-Synthesizers konvertieren. Dazu muss zuerst eine Midi-Datei geladen werden. Für die konvertierte Datei lässt sich ein Tempo-Teiler einstellen. Über Convert/Test lässt sich das Tempo der konvertierten Datei ermitteln, so dass man diesen Teiler passend einstellen kann. &lt;br /&gt;
Die Instrumente der Midi-Datei kann man während des Konvertierens den Instrumenten des Synthesizers zuordnen.&lt;br /&gt;
&lt;br /&gt;
==Downloads==&lt;br /&gt;
&lt;br /&gt;
===Synthesizer===&lt;br /&gt;
* [[Media:Synthesizer.zip|Synthesizer]]&lt;br /&gt;
* [[Media:Synthesizer_-_Flash.zip|Beispiel Flash]]&lt;br /&gt;
* [[Media:Synthesizer_-_SD-Karte.zip|Beispiel SD-Karte]]&lt;br /&gt;
&lt;br /&gt;
===Konverter===&lt;br /&gt;
* [[Media:AVR-Synthesizer-Konverter.zip|Konverter (exe)]]&lt;br /&gt;
* [[Media:Midi2AvrSynthConverter.zip|Konverter (source)]]&lt;br /&gt;
&lt;br /&gt;
===Beispiele===&lt;br /&gt;
* [[Media:Mario.mp3]]&lt;br /&gt;
* [[Media:Marimba.mp3]]&lt;br /&gt;
&lt;br /&gt;
==Hinweise==&lt;br /&gt;
&lt;br /&gt;
Sollte der Synthesizer die Dateien nicht sauber abspielen, kann das an der zu kleinen Puffergröße des Synthesizers (synth_config.h) oder der SD-Karte liegen. Wenn die Datei mehr Kanäle haben sollte, als in der synth_config.h eingestellt sind, werden die Noten nicht mehr zum richtigen Zeitpunkt gespielt. Zu viel eingestellte Kanäle brauchen jedoch viel Leistung, was auch zu Fehlern führen kann.&lt;br /&gt;
Ebenso kann der Synthesizer übersteuern. In diesem Fall sollte man die Startlautstärke verringern (Sequencer.c, synth.oscillators[i].temp = 20;).&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
* http://www.mikrocontroller.net/topic/232845&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:AVR-Projekte]]&lt;/div&gt;</summary>
		<author><name>Sam1994</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=AVR-Synthesizer&amp;diff=64481</id>
		<title>AVR-Synthesizer</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=AVR-Synthesizer&amp;diff=64481"/>
		<updated>2012-02-21T14:32:33Z</updated>

		<summary type="html">&lt;p&gt;Sam1994: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;von sam1994&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
&lt;br /&gt;
* 4 Instrumente&lt;br /&gt;
* Bassdrum, Snare, Hihat&lt;br /&gt;
* mehr als 20 gleichzeitig spielende Kanäle @20Mhz&lt;br /&gt;
* einstellbare Samplerate&lt;br /&gt;
* spielt konvertierte Midi-Dateien ab&lt;br /&gt;
&lt;br /&gt;
==Hardware==&lt;br /&gt;
&lt;br /&gt;
siehe http://www.mikrocontroller.net/articles/Klangerzeugung#PWM&lt;br /&gt;
&lt;br /&gt;
==Software==&lt;br /&gt;
&lt;br /&gt;
Dem Sequenzer wird beim Laden einer Datei ein Zeiger auf eine Funktion übergeben, die immer das nächste Byte der Datei ausliest. Dadurch ist es ohne großen Aufwand möglich die Datei aus dem Flash oder von einer SD-Karte zu lesen.&lt;br /&gt;
&lt;br /&gt;
===Flash===&lt;br /&gt;
&lt;br /&gt;
Die Datei wird als Array im Flash gespeichert.&lt;br /&gt;
&amp;lt;c&amp;gt;const uint8_t datei PROGMEM = {...vom Konverter...};&amp;lt;/c&amp;gt;&lt;br /&gt;
Dem Sequenzer wird die vordefinierte Funktion ReadFlash übergeben, als Zeiger die Datei:&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
        //Synthesizer init&lt;br /&gt;
	synth_init();&lt;br /&gt;
	//Datei vom Sequenzer laden&lt;br /&gt;
	seq_load(ReadFlash, datei);&lt;br /&gt;
	//Synthesizer und Sequenzer starten&lt;br /&gt;
	synth_start();&lt;br /&gt;
	seq_start();&lt;br /&gt;
        for(;;)&lt;br /&gt;
            synth_update();&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===SD-Karte===&lt;br /&gt;
&lt;br /&gt;
Für die SD-Karte braucht man einen Puffer. Mit 256 Byte ist man auf der sicheren Seite, bei wenigen Kanälen kann man auch 128 oder 64 Byte nehmen.&lt;br /&gt;
Außerdem muss man eine Funktion definieren, die aus dem Puffer liest und dem Sequenzer übergeben wird. Der übergebene Zeiger wird hier als Index missbraucht.&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
#define MIDI_BUF_LEN 256 kommen. &lt;br /&gt;
uint8_t midi[MIDI_BUF_LEN];	&lt;br /&gt;
&lt;br /&gt;
uint8_t ReadBuffer(uint8_t* pos)&lt;br /&gt;
{&lt;br /&gt;
	return midi[((uint8_t)(uint16_t)pos) &amp;amp; (MIDI_BUF_LEN-1)];&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
Am Anfang muss der Puffer gefüllt und der Synthesizer initialisiert werden. In der Hauptschleife wird nur der Puffer nachgefüllt.&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
	//Lesepuffer füllen&lt;br /&gt;
	uint8_t i = 0;&lt;br /&gt;
	do&lt;br /&gt;
		midi[i] = ffread();&lt;br /&gt;
	while(++i != (MIDI_BUF_LEN &amp;amp; 0xFF));&lt;br /&gt;
	//Leseindex auf 0 setzen&lt;br /&gt;
	uint8_t write = 0;&lt;br /&gt;
&lt;br /&gt;
	//Synthesizer init&lt;br /&gt;
	synth_init();&lt;br /&gt;
	//Datei vom Sequenzer laden&lt;br /&gt;
	seq_load(ReadBuffer, 0);&lt;br /&gt;
	//Synthesizer und Sequenzer starten&lt;br /&gt;
	synth_start();&lt;br /&gt;
	seq_start();&lt;br /&gt;
&lt;br /&gt;
	for(;;)&lt;br /&gt;
	{&lt;br /&gt;
		//Synthesizerupdate; Diese Funktion muss mindestens im 1ms Intervall aufgerufen werden&lt;br /&gt;
		synth_update();&lt;br /&gt;
		//Leseindex mit Schreibindex vergleichen&lt;br /&gt;
		uint8_t read = (uint8_t)(uint16_t)Seq.file;&lt;br /&gt;
		while(read != write)  //Buffer wieder auffüllen&lt;br /&gt;
			midi[write++ &amp;amp; (MIDI_BUF_LEN-1)] = ffread();&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Konverter==&lt;br /&gt;
&lt;br /&gt;
Der Konverter kann Midi-Dateien in das Format des Avr-Synthesizers konvertieren. Dazu muss zuerst eine Midi-Datei geladen werden. Für die konvertierte Datei lässt sich ein Tempo-Teiler einstellen. Über Convert/Test lässt sich das Tempo der konvertierten Datei ermitteln, so dass man diesen Teiler passend einstellen kann. &lt;br /&gt;
Die Instrumente der Midi-Datei kann man während des Konvertierens den Instrumenten des Synthesizers zuordnen.&lt;br /&gt;
&lt;br /&gt;
==Downloads==&lt;br /&gt;
&lt;br /&gt;
===Synthesizer===&lt;br /&gt;
* [[Media:Synthesizer.zip|Synthesizer]]&lt;br /&gt;
* [[Media:Synthesizer_-_Flash.zip|Beispiel Flash]]&lt;br /&gt;
* [[Media:Synthesizer_-_SD-Karte.zip|Beispiel SD-Karte]]&lt;br /&gt;
&lt;br /&gt;
===Konverter===&lt;br /&gt;
* [[Media:AVR-Synthesizer-Konverter.zip|Konverter (exe)]]&lt;br /&gt;
* [[Media:Midi2AvrSynthConverter.zip|Konverter (source)]]&lt;br /&gt;
&lt;br /&gt;
===Beispiele===&lt;br /&gt;
* [[Media:Mario.mp3]]&lt;br /&gt;
* [[Media:Marimba.mp3]]&lt;br /&gt;
&lt;br /&gt;
==Hinweise==&lt;br /&gt;
&lt;br /&gt;
Sollte der Synthesizer die Dateien nicht sauber abspielen, kann das an der zu kleinen Puffergröße des Synthesizers (synth_config.h) oder der SD-Karte liegen. Wenn die Datei mehr Kanäle haben sollte, als in der synth_config.h eingestellt sind, werden die Noten nicht mehr zum richtigen Zeitpunkt gespielt. Zu viel eingestellte Kanäle brauchen jedoch viel Leistung, was auch zu Fehlern führen kann.&lt;br /&gt;
Ebenso kann der Synthesizer übersteuern. In diesem Fall sollte man die Startlautstärke verringern (Sequencer.c, synth.oscillators[i].temp = 20;).&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
* http://www.mikrocontroller.net/topic/232845&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:AVR-Projekte]]&lt;/div&gt;</summary>
		<author><name>Sam1994</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=AVR-Synthesizer&amp;diff=64480</id>
		<title>AVR-Synthesizer</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=AVR-Synthesizer&amp;diff=64480"/>
		<updated>2012-02-21T14:32:01Z</updated>

		<summary type="html">&lt;p&gt;Sam1994: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;von sam1994&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
&lt;br /&gt;
* 4 Instrumente&lt;br /&gt;
* Bassdrum, Snare, Hihat&lt;br /&gt;
* mehr als 20 gleichzeitig spielende Kanäle @20Mhz&lt;br /&gt;
* einstellbare Samplerate&lt;br /&gt;
* spielt konvertierte Midi-Dateien ab&lt;br /&gt;
&lt;br /&gt;
==Hardware==&lt;br /&gt;
&lt;br /&gt;
siehe http://www.mikrocontroller.net/articles/Klangerzeugung#PWM&lt;br /&gt;
&lt;br /&gt;
==Software==&lt;br /&gt;
&lt;br /&gt;
Dem Sequenzer wird beim Laden einer Datei ein Zeiger auf eine Funktion übergeben, die immer das nächste Byte der Datei ausliest. Dadurch ist es ohne großen Aufwand möglich die Datei aus dem Flash oder von einer SD-Karte zu lesen.&lt;br /&gt;
&lt;br /&gt;
===Flash===&lt;br /&gt;
&lt;br /&gt;
Die Datei wird als Array im Flash gespeichert.&lt;br /&gt;
&amp;lt;c&amp;gt;const uint8_t datei PROGMEM = {...vom Konverter...};&amp;lt;/c&amp;gt;&lt;br /&gt;
Dem Sequenzer wird die vordefinierte Funktion ReadFlash übergeben, als Zeiger die Datei:&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
        //Synthesizer init&lt;br /&gt;
	synth_init();&lt;br /&gt;
	//Datei vom Sequenzer laden&lt;br /&gt;
	seq_load(ReadFlash, datei);&lt;br /&gt;
	//Synthesizer und Sequenzer starten&lt;br /&gt;
	synth_start();&lt;br /&gt;
	seq_start();&lt;br /&gt;
        for(;;)&lt;br /&gt;
            synth_update();&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===SD-Karte===&lt;br /&gt;
&lt;br /&gt;
Für die SD-Karte braucht man einen Puffer. Mit 256 Byte ist man auf der sicheren Seite, bei wenigen Kanälen kann man auch 128 oder 64 Byte nehmen.&lt;br /&gt;
Außerdem muss man eine Funktion definieren, die aus dem Puffer liest und dem Sequenzer übergeben wird. Der übergebene Zeiger wird hier als Index missbraucht.&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
#define MIDI_BUF_LEN 256 kommen. &lt;br /&gt;
uint8_t midi[MIDI_BUF_LEN];	&lt;br /&gt;
&lt;br /&gt;
uint8_t ReadBuffer(uint8_t* pos)&lt;br /&gt;
{&lt;br /&gt;
	return midi[((uint8_t)(uint16_t)pos) &amp;amp; (MIDI_BUF_LEN-1)];&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
Am Anfang muss der Puffer gefüllt und der Synthesizer initialisiert werden. In der Hauptschleife wird nur der Puffer nachgefüllt.&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
	//Lesepuffer füllen&lt;br /&gt;
	uint8_t i = 0;&lt;br /&gt;
	do&lt;br /&gt;
		midi[i] = ffread();&lt;br /&gt;
	while(++i != (MIDI_BUF_LEN &amp;amp; 0xFF));&lt;br /&gt;
	//Leseindex auf 0 setzen&lt;br /&gt;
	uint8_t write = 0;&lt;br /&gt;
&lt;br /&gt;
	//Synthesizer init&lt;br /&gt;
	synth_init();&lt;br /&gt;
	//Datei vom Sequenzer laden&lt;br /&gt;
	seq_load(ReadBuffer, 0);&lt;br /&gt;
	//Synthesizer und Sequenzer starten&lt;br /&gt;
	synth_start();&lt;br /&gt;
	seq_start();&lt;br /&gt;
&lt;br /&gt;
	for(;;)&lt;br /&gt;
	{&lt;br /&gt;
		//Synthesizerupdate; Diese Funktion muss mindestens im 1ms Intervall aufgerufen werden&lt;br /&gt;
		synth_update();&lt;br /&gt;
		//Leseindex mit Schreibindex vergleichen&lt;br /&gt;
		uint8_t read = (uint8_t)(uint16_t)Seq.file;&lt;br /&gt;
		while(read != write)  //Buffer wieder auffüllen&lt;br /&gt;
			midi[write++ &amp;amp; (MIDI_BUF_LEN-1)] = ffread();&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Konverter==&lt;br /&gt;
&lt;br /&gt;
Der Konverter kann Midi-Dateien in das Format des Avr-Synthesizers konvertieren. Dazu muss zuerst eine Midi-Datei geladen werden. Für die konvertierte Datei lässt sich ein Tempo-Teiler einstellen. Über Convert/Test lässt sich das Tempo der konvertierten Datei ermitteln, so dass man diesen Teiler passend einstellen kann. &lt;br /&gt;
Die Instrumente der Midi-Datei kann man während des Konvertierens den Instrumenten des Synthesizers zuordnen.&lt;br /&gt;
&lt;br /&gt;
==Downloads==&lt;br /&gt;
&lt;br /&gt;
===Synthesizer===&lt;br /&gt;
* [[Media:Synthesizer.zip|Synthesizer]]&lt;br /&gt;
* [[Media:Synthesizer_-_Flash.zip|Beispiel Flash]]&lt;br /&gt;
* [[Media:Synthesizer_-_SD-Karte.zip|Beispiel SD-Karte]]&lt;br /&gt;
&lt;br /&gt;
===Konverter===&lt;br /&gt;
* [[Media:AVR-Synthesizer-Konverter.zip|Konverter (exe)]]&lt;br /&gt;
* [[Media:|Konverter (source)]]&lt;br /&gt;
&lt;br /&gt;
===Beispiele===&lt;br /&gt;
* [[Media:Mario.mp3]]&lt;br /&gt;
* [[Media:Marimba.mp3]]&lt;br /&gt;
&lt;br /&gt;
==Hinweise==&lt;br /&gt;
&lt;br /&gt;
Sollte der Synthesizer die Dateien nicht sauber abspielen, kann das an der zu kleinen Puffergröße des Synthesizers (synth_config.h) oder der SD-Karte liegen. Wenn die Datei mehr Kanäle haben sollte, als in der synth_config.h eingestellt sind, werden die Noten nicht mehr zum richtigen Zeitpunkt gespielt. Zu viel eingestellte Kanäle brauchen jedoch viel Leistung, was auch zu Fehlern führen kann.&lt;br /&gt;
Ebenso kann der Synthesizer übersteuern. In diesem Fall sollte man die Startlautstärke verringern (Sequencer.c, synth.oscillators[i].temp = 20;).&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
* http://www.mikrocontroller.net/topic/232845&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:AVR-Projekte]]&lt;/div&gt;</summary>
		<author><name>Sam1994</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Datei:Midi2AvrSynthConverter.zip&amp;diff=64479</id>
		<title>Datei:Midi2AvrSynthConverter.zip</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Datei:Midi2AvrSynthConverter.zip&amp;diff=64479"/>
		<updated>2012-02-21T14:31:59Z</updated>

		<summary type="html">&lt;p&gt;Sam1994: source&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;source&lt;/div&gt;</summary>
		<author><name>Sam1994</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Datei:AVR-Synthesizer-Konverter.zip&amp;diff=64478</id>
		<title>Datei:AVR-Synthesizer-Konverter.zip</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Datei:AVR-Synthesizer-Konverter.zip&amp;diff=64478"/>
		<updated>2012-02-21T14:27:31Z</updated>

		<summary type="html">&lt;p&gt;Sam1994: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sam1994</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=AVR-Synthesizer&amp;diff=64477</id>
		<title>AVR-Synthesizer</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=AVR-Synthesizer&amp;diff=64477"/>
		<updated>2012-02-21T14:19:57Z</updated>

		<summary type="html">&lt;p&gt;Sam1994: Die Seite wurde neu angelegt: „&amp;#039;&amp;#039;von sam1994&amp;#039;&amp;#039;  ==Features==  * 4 Instrumente * Bassdrum, Snare, Hihat * mehr als 20 gleichzeitig spielende Kanäle @20Mhz * einstellbare Samplerate * spielt kon…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;von sam1994&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
&lt;br /&gt;
* 4 Instrumente&lt;br /&gt;
* Bassdrum, Snare, Hihat&lt;br /&gt;
* mehr als 20 gleichzeitig spielende Kanäle @20Mhz&lt;br /&gt;
* einstellbare Samplerate&lt;br /&gt;
* spielt konvertierte Midi-Dateien ab&lt;br /&gt;
&lt;br /&gt;
==Hardware==&lt;br /&gt;
&lt;br /&gt;
siehe http://www.mikrocontroller.net/articles/Klangerzeugung#PWM&lt;br /&gt;
&lt;br /&gt;
==Software==&lt;br /&gt;
&lt;br /&gt;
Dem Sequenzer wird beim Laden einer Datei ein Zeiger auf eine Funktion übergeben, die immer das nächste Byte der Datei ausliest. Dadurch ist es ohne großen Aufwand möglich die Datei aus dem Flash oder von einer SD-Karte zu lesen.&lt;br /&gt;
&lt;br /&gt;
===Flash===&lt;br /&gt;
&lt;br /&gt;
Die Datei wird als Array im Flash gespeichert.&lt;br /&gt;
&amp;lt;c&amp;gt;const uint8_t datei PROGMEM = {...vom Konverter...};&amp;lt;/c&amp;gt;&lt;br /&gt;
Dem Sequenzer wird die vordefinierte Funktion ReadFlash übergeben, als Zeiger die Datei:&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
        //Synthesizer init&lt;br /&gt;
	synth_init();&lt;br /&gt;
	//Datei vom Sequenzer laden&lt;br /&gt;
	seq_load(ReadFlash, datei);&lt;br /&gt;
	//Synthesizer und Sequenzer starten&lt;br /&gt;
	synth_start();&lt;br /&gt;
	seq_start();&lt;br /&gt;
        for(;;)&lt;br /&gt;
            synth_update();&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===SD-Karte===&lt;br /&gt;
&lt;br /&gt;
Für die SD-Karte braucht man einen Puffer. Mit 256 Byte ist man auf der sicheren Seite, bei wenigen Kanälen kann man auch 128 oder 64 Byte nehmen.&lt;br /&gt;
Außerdem muss man eine Funktion definieren, die aus dem Puffer liest und dem Sequenzer übergeben wird. Der übergebene Zeiger wird hier als Index missbraucht.&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
#define MIDI_BUF_LEN 256 kommen. &lt;br /&gt;
uint8_t midi[MIDI_BUF_LEN];	&lt;br /&gt;
&lt;br /&gt;
uint8_t ReadBuffer(uint8_t* pos)&lt;br /&gt;
{&lt;br /&gt;
	return midi[((uint8_t)(uint16_t)pos) &amp;amp; (MIDI_BUF_LEN-1)];&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
Am Anfang muss der Puffer gefüllt und der Synthesizer initialisiert werden. In der Hauptschleife wird nur der Puffer nachgefüllt.&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
	//Lesepuffer füllen&lt;br /&gt;
	uint8_t i = 0;&lt;br /&gt;
	do&lt;br /&gt;
		midi[i] = ffread();&lt;br /&gt;
	while(++i != (MIDI_BUF_LEN &amp;amp; 0xFF));&lt;br /&gt;
	//Leseindex auf 0 setzen&lt;br /&gt;
	uint8_t write = 0;&lt;br /&gt;
&lt;br /&gt;
	//Synthesizer init&lt;br /&gt;
	synth_init();&lt;br /&gt;
	//Datei vom Sequenzer laden&lt;br /&gt;
	seq_load(ReadBuffer, 0);&lt;br /&gt;
	//Synthesizer und Sequenzer starten&lt;br /&gt;
	synth_start();&lt;br /&gt;
	seq_start();&lt;br /&gt;
&lt;br /&gt;
	for(;;)&lt;br /&gt;
	{&lt;br /&gt;
		//Synthesizerupdate; Diese Funktion muss mindestens im 1ms Intervall aufgerufen werden&lt;br /&gt;
		synth_update();&lt;br /&gt;
		//Leseindex mit Schreibindex vergleichen&lt;br /&gt;
		uint8_t read = (uint8_t)(uint16_t)Seq.file;&lt;br /&gt;
		while(read != write)  //Buffer wieder auffüllen&lt;br /&gt;
			midi[write++ &amp;amp; (MIDI_BUF_LEN-1)] = ffread();&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Konverter==&lt;br /&gt;
&lt;br /&gt;
Der Konverter kann Midi-Dateien in das Format des Avr-Synthesizers konvertieren. Dazu muss zuerst eine Midi-Datei geladen werden. Für die konvertierte Datei lässt sich ein Tempo-Teiler einstellen. Über Convert/Test lässt sich das Tempo der konvertierten Datei ermitteln, so dass man diesen Teiler passend einstellen kann. &lt;br /&gt;
Die Instrumente der Midi-Datei kann man während des Konvertierens den Instrumenten des Synthesizers zuordnen.&lt;br /&gt;
&lt;br /&gt;
==Downloads==&lt;br /&gt;
&lt;br /&gt;
===Synthesizer===&lt;br /&gt;
* [[Media:Synthesizer.zip|Synthesizer]]&lt;br /&gt;
* [[Media:Synthesizer_-_Flash.zip|Beispiel Flash]]&lt;br /&gt;
* [[Media:Synthesizer_-_SD-Karte.zip|Beispiel SD-Karte]]&lt;br /&gt;
&lt;br /&gt;
===Konverter===&lt;br /&gt;
* Konverter (exe):&lt;br /&gt;
* Konverter (src):&lt;br /&gt;
&lt;br /&gt;
===Beispiele===&lt;br /&gt;
* [[Media:Mario.mp3]]&lt;br /&gt;
* [[Media:Marimba.mp3]]&lt;br /&gt;
&lt;br /&gt;
==Hinweise==&lt;br /&gt;
&lt;br /&gt;
Sollte der Synthesizer die Dateien nicht sauber abspielen, kann das an der zu kleinen Puffergröße des Synthesizers (synth_config.h) oder der SD-Karte liegen. Wenn die Datei mehr Kanäle haben sollte, als in der synth_config.h eingestellt sind, werden die Noten nicht mehr zum richtigen Zeitpunkt gespielt. Zu viel eingestellte Kanäle brauchen jedoch viel Leistung, was auch zu Fehlern führen kann.&lt;br /&gt;
Ebenso kann der Synthesizer übersteuern. In diesem Fall sollte man die Startlautstärke verringern (Sequencer.c, synth.oscillators[i].temp = 20;).&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
* http://www.mikrocontroller.net/topic/232845&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:AVR-Projekte]]&lt;/div&gt;</summary>
		<author><name>Sam1994</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Datei:Marimba.mp3&amp;diff=64476</id>
		<title>Datei:Marimba.mp3</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Datei:Marimba.mp3&amp;diff=64476"/>
		<updated>2012-02-21T14:16:22Z</updated>

		<summary type="html">&lt;p&gt;Sam1994: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sam1994</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Datei:Mario.mp3&amp;diff=64475</id>
		<title>Datei:Mario.mp3</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Datei:Mario.mp3&amp;diff=64475"/>
		<updated>2012-02-21T14:10:26Z</updated>

		<summary type="html">&lt;p&gt;Sam1994: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sam1994</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Datei:Synthesizer_-_SD-Karte.zip&amp;diff=64474</id>
		<title>Datei:Synthesizer - SD-Karte.zip</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Datei:Synthesizer_-_SD-Karte.zip&amp;diff=64474"/>
		<updated>2012-02-21T14:08:40Z</updated>

		<summary type="html">&lt;p&gt;Sam1994: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sam1994</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Datei:Synthesizer_-_Flash.zip&amp;diff=64473</id>
		<title>Datei:Synthesizer - Flash.zip</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Datei:Synthesizer_-_Flash.zip&amp;diff=64473"/>
		<updated>2012-02-21T14:05:18Z</updated>

		<summary type="html">&lt;p&gt;Sam1994: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sam1994</name></author>
	</entry>
</feed>