<?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[Probleme mit der Ansteuerung eines LCDs über LPT Port]]></title><description><![CDATA[<p>Hi,</p>
<p>erst mal eine kleine Vorgeschichte:</p>
<p>Ich mach ne Ausbildung als Fachinformatiker(AE) und hab teilweise nicht so viel zu tun. Diese Firma bildet unter anderm auch Systeminformatiker aus und ein guter Freund macht diese. Er ist ein leidenschaflicher Bastler und hat sich ein kleines lcd(96x32Pixel) bei pollin (LCD-Modul E0855-2) bestellt und zusammengebastel. Aber da er keine Software dafür schreiben kann hat er mich gefragt. Ich hab mir gedacht, da ich sowieso nichts zu tun hab und das interessant klingt kann ichs ja mal probieren.</p>
<p>Gut gesagt getan bissle probiert ein paar Zeilen geschrieben und tada ich kann Sachen auf dem Display anzeigen.<br />
ABER wenn ich die Befehlssequenz zum schreiben eines Bytes zum Display schicke schreibt es immer 2x1Byte. Sprich ich kann nur 48 Pixel ansprechen.<br />
Auf Pollin gibt es auch eine Testsoftware. Diese Funktionert auf der Arbeit auch wunderbar, aber daheim funktionert diese auch nicht richtig (schreibt au 2Bytes aufeinmal).</p>
<p>Hier mal unterschiede zum Arbeits/Home PC:</p>
<pre><code>Arbeit                |             Home
--------------------------------------------
Eine CPU              |dual core
Windows XP 32Bit Sp2  |Windows XP 32Bit Sp3
Beidesmal LPT Port 1 0x378 Data / 0x37A Ctrl
</code></pre>
<p>Ka was so noch relevant wäre?!</p>
<p>Hier mal ein Auszug des Treibers zum ansteurn des Ports:</p>
<pre><code class="language-cpp">case IOCTL_READ_PORT_UCHAR:
		  {
            if ( (inBuffersize &gt;= sizeof(MAPPED_IO_STRUCT)) &amp;&amp; (outBuffersize &gt;= sizeof(MAPPED_IO_STRUCT)) )
			{

                pMappedIO-&gt;ucValue = READ_PORT_UCHAR( (PUCHAR) (&amp;pMappedIO-&gt;usPort) );

				pIrp-&gt;IoStatus.Information = 1; 
				ntStatus = STATUS_SUCCESS;				
            } 
			else 
			{	
				ntStatus = STATUS_BUFFER_TOO_SMALL;
				pIrp-&gt;IoStatus.Information = 0;
			}

            break;
		  }
      case IOCTL_WRITE_PORT_UCHAR:
	 {
            if ( inBuffersize &gt;= sizeof(MAPPED_IO_STRUCT) ) 
			{
				DbgPrint(&quot;pMappedIO: Port: %x %x&quot;, pMappedIO-&gt;usPort, pMappedIO-&gt;ucValue);
                WRITE_PORT_UCHAR((PUCHAR)pMappedIO-&gt;usPort , pMappedIO-&gt;ucValue);

				pIrp-&gt;IoStatus.Information = 1;
				ntStatus = STATUS_SUCCESS;
            } 
			else 
			{
				ntStatus = STATUS_BUFFER_TOO_SMALL;
				pIrp-&gt;IoStatus.Information = 0; 

			}
            break;
	 }
</code></pre>
<p>Was ich mir jetzt überlegt hab, dass das an dem Dual Core liegen könnte, aber ich hab keine Ahnung.</p>
<p>Wäre, wenn ihr mir helfen könntet.</p>
<p>Blessed Love Pingu</p>
<p>PS: Wenn noch mehr Infos nötig sind sagt bescheid <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/234926/probleme-mit-der-ansteuerung-eines-lcds-über-lpt-port</link><generator>RSS for Node</generator><lastBuildDate>Wed, 08 Apr 2026 05:51:31 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/234926.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 23 Feb 2009 17:22:59 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Probleme mit der Ansteuerung eines LCDs über LPT Port on Mon, 23 Feb 2009 17:22:59 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>erst mal eine kleine Vorgeschichte:</p>
<p>Ich mach ne Ausbildung als Fachinformatiker(AE) und hab teilweise nicht so viel zu tun. Diese Firma bildet unter anderm auch Systeminformatiker aus und ein guter Freund macht diese. Er ist ein leidenschaflicher Bastler und hat sich ein kleines lcd(96x32Pixel) bei pollin (LCD-Modul E0855-2) bestellt und zusammengebastel. Aber da er keine Software dafür schreiben kann hat er mich gefragt. Ich hab mir gedacht, da ich sowieso nichts zu tun hab und das interessant klingt kann ichs ja mal probieren.</p>
<p>Gut gesagt getan bissle probiert ein paar Zeilen geschrieben und tada ich kann Sachen auf dem Display anzeigen.<br />
ABER wenn ich die Befehlssequenz zum schreiben eines Bytes zum Display schicke schreibt es immer 2x1Byte. Sprich ich kann nur 48 Pixel ansprechen.<br />
Auf Pollin gibt es auch eine Testsoftware. Diese Funktionert auf der Arbeit auch wunderbar, aber daheim funktionert diese auch nicht richtig (schreibt au 2Bytes aufeinmal).</p>
<p>Hier mal unterschiede zum Arbeits/Home PC:</p>
<pre><code>Arbeit                |             Home
--------------------------------------------
Eine CPU              |dual core
Windows XP 32Bit Sp2  |Windows XP 32Bit Sp3
Beidesmal LPT Port 1 0x378 Data / 0x37A Ctrl
</code></pre>
<p>Ka was so noch relevant wäre?!</p>
<p>Hier mal ein Auszug des Treibers zum ansteurn des Ports:</p>
<pre><code class="language-cpp">case IOCTL_READ_PORT_UCHAR:
		  {
            if ( (inBuffersize &gt;= sizeof(MAPPED_IO_STRUCT)) &amp;&amp; (outBuffersize &gt;= sizeof(MAPPED_IO_STRUCT)) )
			{

                pMappedIO-&gt;ucValue = READ_PORT_UCHAR( (PUCHAR) (&amp;pMappedIO-&gt;usPort) );

				pIrp-&gt;IoStatus.Information = 1; 
				ntStatus = STATUS_SUCCESS;				
            } 
			else 
			{	
				ntStatus = STATUS_BUFFER_TOO_SMALL;
				pIrp-&gt;IoStatus.Information = 0;
			}

            break;
		  }
      case IOCTL_WRITE_PORT_UCHAR:
	 {
            if ( inBuffersize &gt;= sizeof(MAPPED_IO_STRUCT) ) 
			{
				DbgPrint(&quot;pMappedIO: Port: %x %x&quot;, pMappedIO-&gt;usPort, pMappedIO-&gt;ucValue);
                WRITE_PORT_UCHAR((PUCHAR)pMappedIO-&gt;usPort , pMappedIO-&gt;ucValue);

				pIrp-&gt;IoStatus.Information = 1;
				ntStatus = STATUS_SUCCESS;
            } 
			else 
			{
				ntStatus = STATUS_BUFFER_TOO_SMALL;
				pIrp-&gt;IoStatus.Information = 0; 

			}
            break;
	 }
</code></pre>
<p>Was ich mir jetzt überlegt hab, dass das an dem Dual Core liegen könnte, aber ich hab keine Ahnung.</p>
<p>Wäre, wenn ihr mir helfen könntet.</p>
<p>Blessed Love Pingu</p>
<p>PS: Wenn noch mehr Infos nötig sind sagt bescheid <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1668906</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1668906</guid><dc:creator><![CDATA[Pingu-Group]]></dc:creator><pubDate>Mon, 23 Feb 2009 17:22:59 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit der Ansteuerung eines LCDs über LPT Port on Wed, 25 Feb 2009 17:24:46 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich bins nochmal. Also ich hab jetzt mein Programm auf der Arbeit ausprobiert und da geht es super. Hab jetzt leider keinen anderen PC wo ich des noch ausprobieren könnte. Hat einer eine vermutung an was das liegen könnte. Ist echt komisch.</p>
<p>Grüßli Pingu</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1670215</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1670215</guid><dc:creator><![CDATA[Pingu-Group]]></dc:creator><pubDate>Wed, 25 Feb 2009 17:24:46 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit der Ansteuerung eines LCDs über LPT Port on Mon, 02 Mar 2009 17:12:08 GMT]]></title><description><![CDATA[<p>Da selbst das Test-Programm nicht richtig funktioniert tippe ich auf einen kleinen Hardware Fehler. Aber sicher bin ich mir auf keinen Fall. Könnten vielleicht kleine Spannungsschwankungen am LTP sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1672971</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1672971</guid><dc:creator><![CDATA[RedPuma]]></dc:creator><pubDate>Mon, 02 Mar 2009 17:12:08 GMT</pubDate></item></channel></rss>