<?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[Peripheriesteuerung]]></title><description><![CDATA[<p>Hallo,<br />
ich muss für die Uni folgende Aufgabe machen:<br />
Ein externes Sensor-Aktor-Modul (Hardwarebeschreibung siehe S.8) enthält 8 Schalter und 8<br />
Leuchtdioden. Ihr Programm soll ständig die aktuellen Schalterstellungen ermitteln und auf dem<br />
Bildschirm in folgender Form anzeigen (Beispiel entspricht Schalter 0,4,5,7 =1 und Schalter 1,2,3,6 = 0):<br />
1 0 1 1 0 0 0 1<br />
Gleichzeitig sollen die Leuchtdioden entsprechend der Schalterstellungen leuchten.</p>
<p>einen Teil hab ich schon, aber das mit der Ausgabe aufm Bildschirm krieg ich net hin, vll hat jemand ne einfach lösung, muss das ganze dann auch noch erklären können <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /><br />
Vielen dank</p>
<p>#include&lt;stdio.h&gt;<br />
#include&lt;stdlib.h&gt;<br />
#include&lt;conio.h&gt;<br />
#include&lt;windows.h&gt;</p>
<p>unsigned char *GetAdress(int BUS, int Slot, int Function); // In BAS die Ad in der port zu finden ist<br />
void PCI_Close();</p>
<p>//BAS= Basisadresse<br />
unsigned char *BAS; // * -&gt; Zeiger, BAS speichert Adresse im RAM, in der Ad steht der eigentliche wert<br />
unsigned char daten; // char speichert 8 bit große werte<br />
unsigned char status;</p>
<p>void main (void)<br />
{</p>
<p>BAS=GetAdress(2,3,0); // Ermitteln der Speicherbasisadresse durch den Aufruf<br />
*(BAS+3)=0x98; //siehe control-register</p>
<p>// Beginn Lesen</p>
<p>*(BAS+2)=0; // auf PortC schreiben, Kommando 0 ausgeben; <em>()-&gt; Wert wird geändert<br />
do<br />
{<br />
status=</em>(BAS+2);<br />
status=status&amp;0x10; // Bereinigter Status 0001 0000</p>
<p>while (status!=0x00);<br />
*(BAS+2)=daten;</p>
<p>*(BAS+2)=2; // Kommando 2 ausgeben</p>
<p>status=*(BAS+2);<br />
status=status&amp;0x10;</p>
<p>while (status!=0x10);</p>
<p>daten=*(BAS+0);<br />
}while(!_kbhit());</p>
<p>// Beginn Schreiben<br />
<em>(BAS+2)=0x00;<br />
do<br />
{<br />
status=</em>(BAS+2);<br />
status=status&amp;0x10;</p>
<p>while (status!=0x00);<br />
*(BAS+1)=daten; // Ausgabsport B BAS+1</p>
<p>*(BAS+2)=1; //LED setzen</p>
<p>status=*(BAS+2);<br />
status=status&amp;0x10;</p>
<p>while (status!=0x10);<br />
}while(!_kbhit());</p>
<p>PCI_Close();<br />
}</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/152432/peripheriesteuerung</link><generator>RSS for Node</generator><lastBuildDate>Mon, 07 Sep 2026 00:34:28 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/152432.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 06 Jul 2006 09:47:57 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Peripheriesteuerung on Thu, 06 Jul 2006 09:47:57 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich muss für die Uni folgende Aufgabe machen:<br />
Ein externes Sensor-Aktor-Modul (Hardwarebeschreibung siehe S.8) enthält 8 Schalter und 8<br />
Leuchtdioden. Ihr Programm soll ständig die aktuellen Schalterstellungen ermitteln und auf dem<br />
Bildschirm in folgender Form anzeigen (Beispiel entspricht Schalter 0,4,5,7 =1 und Schalter 1,2,3,6 = 0):<br />
1 0 1 1 0 0 0 1<br />
Gleichzeitig sollen die Leuchtdioden entsprechend der Schalterstellungen leuchten.</p>
<p>einen Teil hab ich schon, aber das mit der Ausgabe aufm Bildschirm krieg ich net hin, vll hat jemand ne einfach lösung, muss das ganze dann auch noch erklären können <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /><br />
Vielen dank</p>
<p>#include&lt;stdio.h&gt;<br />
#include&lt;stdlib.h&gt;<br />
#include&lt;conio.h&gt;<br />
#include&lt;windows.h&gt;</p>
<p>unsigned char *GetAdress(int BUS, int Slot, int Function); // In BAS die Ad in der port zu finden ist<br />
void PCI_Close();</p>
<p>//BAS= Basisadresse<br />
unsigned char *BAS; // * -&gt; Zeiger, BAS speichert Adresse im RAM, in der Ad steht der eigentliche wert<br />
unsigned char daten; // char speichert 8 bit große werte<br />
unsigned char status;</p>
<p>void main (void)<br />
{</p>
<p>BAS=GetAdress(2,3,0); // Ermitteln der Speicherbasisadresse durch den Aufruf<br />
*(BAS+3)=0x98; //siehe control-register</p>
<p>// Beginn Lesen</p>
<p>*(BAS+2)=0; // auf PortC schreiben, Kommando 0 ausgeben; <em>()-&gt; Wert wird geändert<br />
do<br />
{<br />
status=</em>(BAS+2);<br />
status=status&amp;0x10; // Bereinigter Status 0001 0000</p>
<p>while (status!=0x00);<br />
*(BAS+2)=daten;</p>
<p>*(BAS+2)=2; // Kommando 2 ausgeben</p>
<p>status=*(BAS+2);<br />
status=status&amp;0x10;</p>
<p>while (status!=0x10);</p>
<p>daten=*(BAS+0);<br />
}while(!_kbhit());</p>
<p>// Beginn Schreiben<br />
<em>(BAS+2)=0x00;<br />
do<br />
{<br />
status=</em>(BAS+2);<br />
status=status&amp;0x10;</p>
<p>while (status!=0x00);<br />
*(BAS+1)=daten; // Ausgabsport B BAS+1</p>
<p>*(BAS+2)=1; //LED setzen</p>
<p>status=*(BAS+2);<br />
status=status&amp;0x10;</p>
<p>while (status!=0x10);<br />
}while(!_kbhit());</p>
<p>PCI_Close();<br />
}</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1092335</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1092335</guid><dc:creator><![CDATA[mase1]]></dc:creator><pubDate>Thu, 06 Jul 2006 09:47:57 GMT</pubDate></item><item><title><![CDATA[Reply to Peripheriesteuerung on Thu, 06 Jul 2006 14:52:23 GMT]]></title><description><![CDATA[<p>Wenn du die Zustände anstatt in einem char, in einem array von Bools speichern würdest, könntest du die einfach der Reihe nach ausgeben.</p>
<p>Übrigens:<br />
Nutze bitte Codetags.</p>
<pre><code class="language-cpp">void main()
</code></pre>
<p>soltle</p>
<pre><code class="language-cpp">int main()
</code></pre>
<p>heißen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1092566</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1092566</guid><dc:creator><![CDATA[Panke]]></dc:creator><pubDate>Thu, 06 Jul 2006 14:52:23 GMT</pubDate></item></channel></rss>