<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Klassenhirarchie für Mikrocontroller]]></title><description><![CDATA[<p>Hallo</p>
<p>Ich möchte eine Klassenhirarchie für AVR Mikrocontroller erstellen.</p>
<p>Ich habe mir das so vorgestellt, dass es eine Superklasse namens register gibt.<br />
Die registerklasse enthält ein Bitfeld mit 8-Bit und zugriffsmethoden ala setBit bzw. clearBit.</p>
<p>Die komplette Perepherie des Mikrocontrollers wie UART, TIMER, GPIO, ADC befinden sich direkt unter der Superklasse Register.</p>
<p>In der UART Klasse möchte ich das 8-Bit Bitfeld aus der Registerklasse genauer spezifizieren, da spezielle Register für den UART zuständig sind.<br />
Die 8-Bit Bitfelder der UART Klasse sollen vom Typ des Bitfeldes aus der Superklasse register sein aber eben einen anderen Namen haben, die einzelnen Bits sollen von den Namen her auch speziell auf die UART Register zu geschnitten sein.</p>
<p>Wie kann man so etwas in c++ umsetzen ?</p>
<p>Gruß santaKlaus</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/306768/klassenhirarchie-für-mikrocontroller</link><generator>RSS for Node</generator><lastBuildDate>Fri, 07 Aug 2026 03:02:28 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/306768.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 07 Aug 2012 03:49:39 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Klassenhirarchie für Mikrocontroller on Tue, 07 Aug 2012 03:49:39 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Ich möchte eine Klassenhirarchie für AVR Mikrocontroller erstellen.</p>
<p>Ich habe mir das so vorgestellt, dass es eine Superklasse namens register gibt.<br />
Die registerklasse enthält ein Bitfeld mit 8-Bit und zugriffsmethoden ala setBit bzw. clearBit.</p>
<p>Die komplette Perepherie des Mikrocontrollers wie UART, TIMER, GPIO, ADC befinden sich direkt unter der Superklasse Register.</p>
<p>In der UART Klasse möchte ich das 8-Bit Bitfeld aus der Registerklasse genauer spezifizieren, da spezielle Register für den UART zuständig sind.<br />
Die 8-Bit Bitfelder der UART Klasse sollen vom Typ des Bitfeldes aus der Superklasse register sein aber eben einen anderen Namen haben, die einzelnen Bits sollen von den Namen her auch speziell auf die UART Register zu geschnitten sein.</p>
<p>Wie kann man so etwas in c++ umsetzen ?</p>
<p>Gruß santaKlaus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2239486</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2239486</guid><dc:creator><![CDATA[santaKlaus]]></dc:creator><pubDate>Tue, 07 Aug 2012 03:49:39 GMT</pubDate></item><item><title><![CDATA[Reply to Klassenhirarchie für Mikrocontroller on Tue, 07 Aug 2012 06:10:25 GMT]]></title><description><![CDATA[<p>santaKlaus schrieb:</p>
<blockquote>
<p>Ich möchte eine Klassenhirarchie für AVR Mikrocontroller erstellen.</p>
</blockquote>
<p>Sollen das Klassen sein, die du für den AVR übersetzen kannst, oder sollen es Klassen sein, die den AVR modellieren?</p>
<p>Ersteres muss mit dem AVR nichts zu tun haben, alles was du dann brauchst, ist ein (Cross-)Compiler für die Zielplattform. Ggf. hast du bei dem nur ein Subset der Sprache zur Verfügung.</p>
<p>Für letzteres schau mal im Netz nach Bytecode-Interpretern. Der &quot;Bytecode&quot; wäre dann der Befehlssatz des AVR.</p>
<blockquote>
<p>Wie kann man so etwas in c++ umsetzen ?</p>
</blockquote>
<p>Wie kann man <em>was</em> umsetzen? Klassen erstellen? Variablen besondere Namen geben? Klassen voneinander ableiten? Wo sind deine Probleme?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2239492</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2239492</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 07 Aug 2012 06:10:25 GMT</pubDate></item><item><title><![CDATA[Reply to Klassenhirarchie für Mikrocontroller on Wed, 08 Aug 2012 04:25:00 GMT]]></title><description><![CDATA[<p>Hi pumuckl,</p>
<p>Erst mal danke für Deine Antwort.</p>
<p>Es soll eine Klassenbibliothek werden die ich mittels AVR g++ übersetzen kann.<br />
Möchte mir das Programmieren einfach erleichtern.</p>
<p>Ich habe schon eine UART Klasse geschrieben mit z.b. einer Methode uartInit()<br />
um die Baudrate festzulegen etc. das ist einfach besser wartbar finde ich.</p>
<p>Auf der anderen Seite möchte ich aber auch den entsprechenden AVR Modellieren.</p>
<p>Wenn man eine Timerklasse programmieren möchte um den Hardwaretimer Softwaremäßig nachzubilden, würde ich das ganze gerne so machen, dass man sich überlegt welche Register für den Hardwaretmer zuständig sind und diese dann erst mal im private bereich der Timerklasse per Bitfelder nachbildet. Das müsste man ja dann per Zeigermachen, quasi ein Zeiger vom Typ des entsprechenden Bitfeldes der dann auf die Adresse des Registers zeigt.<br />
Ist das richtig ?</p>
<p>Wenn ja wie initialisiere ich den Zeiger mit der Register Adresse ?</p>
<p>Im nächsten Schritt überlegt man sich dann was man für Methoden braucht.</p>
<p>Wie meinst Du das mit dem Bytecode, kannst Du etwas genauer darauf eingehen ?</p>
<p>Gruß santaKlaus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2239918</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2239918</guid><dc:creator><![CDATA[SantaKlaus]]></dc:creator><pubDate>Wed, 08 Aug 2012 04:25:00 GMT</pubDate></item><item><title><![CDATA[Reply to Klassenhirarchie für Mikrocontroller on Wed, 08 Aug 2012 07:17:54 GMT]]></title><description><![CDATA[<p>Gibt es für sowas keine APIs im Netz? Kann mir nur schwer vorstellen dass du der erste wärst, der sowas machen möchte.</p>
<p>Bzgl. Bytecode, wie gesagt:</p>
<p>pumuckl schrieb:</p>
<blockquote>
<p>schau mal im Netz nach Bytecode-Interpretern.</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/2239941</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2239941</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Wed, 08 Aug 2012 07:17:54 GMT</pubDate></item><item><title><![CDATA[Reply to Klassenhirarchie für Mikrocontroller on Fri, 10 Aug 2012 22:57:53 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Ich habe jetzt eine Klasse geschrieben, die alle Register (als Bitflder dargestelt) enthält, die einem der Mikrocontroller Atmega 32 bietet. Der AVR GCC Compiler mappt die Bitfelder auch in der richtigen Reihenfolge auf die Register.</p>
<p>Ich lege einfach einen Zeiger vom Typ des Bitfeldes an, dieser bekommt dann die entsprechende Registeradresse zugewießen. So kann man schön abstrahieren, der Code wird lesbarer, und man muss nicht mehr so viel Bit frickeln.</p>
<p>Wie kann ich die Library so umsetzen, dass nicht jede Unerklasse Zugriff auf alle Register hat ?</p>
<p>Irgend wie muss man das ja abgrenzen den die Timerklasse darf z.b. keinen Zugriff auf die Register der I2C Schnittstelle haben.</p>
<p>Gruß santaKlaus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2240887</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2240887</guid><dc:creator><![CDATA[santaKlaus]]></dc:creator><pubDate>Fri, 10 Aug 2012 22:57:53 GMT</pubDate></item><item><title><![CDATA[Reply to Klassenhirarchie für Mikrocontroller on Fri, 10 Aug 2012 23:15:46 GMT]]></title><description><![CDATA[<p>Unterklasse? Also wenn Du vererbst und dann der Unterklasse aber nur eingeschränkte Funktionalität gibst, klingt das für mich nicht nach einer guten Methode für Vererbung. Grundsätzlich ist aber alles, was private ist, für die Unterklasse nicht verfügbar. Oder ich verstehe falsch, was Du mit Unterklasse meinst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2240890</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2240890</guid><dc:creator><![CDATA[Eisflamme]]></dc:creator><pubDate>Fri, 10 Aug 2012 23:15:46 GMT</pubDate></item><item><title><![CDATA[Reply to Klassenhirarchie für Mikrocontroller on Sat, 11 Aug 2012 09:12:08 GMT]]></title><description><![CDATA[<p>Hi Eisflamme,</p>
<p>Danke erst mal für die Antwort.<br />
Baut man in der Regel eine Klassenhirarchie so auf, dass die unterste Klasse<br />
sämtliche Methoden ihrer Oberklassen erbt und keinen Direktzugriff auf die Membervariablen anderer Klassen hat ?</p>
<p>Gru santaKlaus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2240943</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2240943</guid><dc:creator><![CDATA[santaKLaus]]></dc:creator><pubDate>Sat, 11 Aug 2012 09:12:08 GMT</pubDate></item><item><title><![CDATA[Reply to Klassenhirarchie für Mikrocontroller on Sat, 11 Aug 2012 12:30:49 GMT]]></title><description><![CDATA[<blockquote>
<p>Encapsulation != security.</p>
<p>Encapsulation prevents mistakes, not espionage.</p>
</blockquote>
<p><a href="http://www.parashift.com/c++-faq/encap-is-not-security.html" rel="nofollow">http://www.parashift.com/c++-faq/encap-is-not-security.html</a></p>
<blockquote>
<p>Irgend wie muss man das ja abgrenzen den die Timerklasse darf z.b. keinen Zugriff auf die Register der I2C Schnittstelle haben</p>
</blockquote>
<p>Deine Klassen sind keine kleinen Kinder, denen man was verbieten muss oder kann. Es geht um Abstraktion nicht um Erziehung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2240976</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2240976</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Sat, 11 Aug 2012 12:30:49 GMT</pubDate></item></channel></rss>