<?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[Schrittmotor]]></title><description><![CDATA[<p>Guten Morgen,<br />
ich möchte gerne meinen Schrittmotor mittels Taster z.B in den Linkslauf bringen dies soll z.B. über den Port1 Pin0 geschehen ich habe es mittels Polling versucht zu verwirklichen nur leider bin ich kläglich gescheitert. Er fängt zwar an zu laufen bei der Simulation, nur leider lässt er sich nicht mehr mittels Taster anhalten. Sehe ich da was falsch Es wär sehr nett wenn mir jemand weiterhelfen könnte.</p>
<p>Lg</p>
<pre><code>#include &lt;t89c51ac2.h&gt; // Header für Controller &quot;AT89C51AC3&quot;
#include &lt;stdio.h&gt;
/*-------------------------------------------------------------------
Deklarationen von Variablen und Konstanten
--------------------------------------------------------------------*/
//unsigned char x;
bit reslo;

bit lislo;

sfr eingang = 0x90;
/*--------------------------------------------------------------------
Hauptprogramm
----------------------------------------------------------------------*/
void re_slow(void);

void li_slow(void);

void zeit(int i, int k); //Prototypen-Anmeldung
void main(void)
{
P2=0x00;
eingang=255;
reslo = 0;

lislo = 0;

while(1)
{
switch(eingang)
{
case 0xFE:
re_slow();
break;

case 0xFB:
li_slow();
break;

default:
//P4=0xFF;
break;
}
}
}
/*-----------------------------------------------------------------------
Zusatzfunktionen
-------------------------------------------------------------------------*/

void re_slow(void) // Funktion Rechtslauf langsam
{
if(P1_0==0){			   // Hier komme ich nicht weiter !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!?????????????????????????
reslo=1;
while(reslo)
{
P2=0x0C; // Bitmuster 1 Rechtslauf
zeit(5,3000); // Zeitverzögerung
P2=0x09; // Bitmuster 2 Rechtslauf
zeit(5,3000);
P2=0x03; // Bitmuster 3 Rechtslauf
zeit(5,3000);
P2=0x06; // Bitmuster 4 Rechtslauf
zeit(5,3000);
if (eingang == 0xEF)
{
 while(P1_0==0){}	   // Hier komme ich nicht weiter ich habe es mit Polling versucht!!!!!!!!!!!!!!!!!!!!!!!!!!!!??????????????????????????
//P2=0x00;
reslo = 0;

}
}
}
}

void li_slow(void) // Funktion Linkslauf langsam
{
lislo=1;
while(lislo)
{
P2=0x06; // Bitmuster 1 Linkslauf
zeit(5,3000);
P2=0x03; // Bitmuster 2 Linkslauf
zeit(5,3000);
P2=0x09; // Bitmuster 3 Linkslauf
zeit(5,3000);
P2=0x0C; // Bitmuster 4 Linkslauf
zeit(5,3000);
if (eingang == 0xEF)
{
P2=0x00;
lislo = 0;
}
}
}

void zeit(int i,int k) // Funktion Zeit
{
unsigned int x;
unsigned int y;
for(y=0;y&lt;=i;y++)
{
for(x=0;x&lt;=k;x++); //Int-Wert 62 ergibt 500 Mikrosekunden Delay
}
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/303955/schrittmotor</link><generator>RSS for Node</generator><lastBuildDate>Mon, 10 Aug 2026 05:37:14 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/303955.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 26 May 2012 07:09:31 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Schrittmotor on Sat, 26 May 2012 07:16:22 GMT]]></title><description><![CDATA[<p>Guten Morgen,<br />
ich möchte gerne meinen Schrittmotor mittels Taster z.B in den Linkslauf bringen dies soll z.B. über den Port1 Pin0 geschehen ich habe es mittels Polling versucht zu verwirklichen nur leider bin ich kläglich gescheitert. Er fängt zwar an zu laufen bei der Simulation, nur leider lässt er sich nicht mehr mittels Taster anhalten. Sehe ich da was falsch Es wär sehr nett wenn mir jemand weiterhelfen könnte.</p>
<p>Lg</p>
<pre><code>#include &lt;t89c51ac2.h&gt; // Header für Controller &quot;AT89C51AC3&quot;
#include &lt;stdio.h&gt;
/*-------------------------------------------------------------------
Deklarationen von Variablen und Konstanten
--------------------------------------------------------------------*/
//unsigned char x;
bit reslo;

bit lislo;

sfr eingang = 0x90;
/*--------------------------------------------------------------------
Hauptprogramm
----------------------------------------------------------------------*/
void re_slow(void);

void li_slow(void);

void zeit(int i, int k); //Prototypen-Anmeldung
void main(void)
{
P2=0x00;
eingang=255;
reslo = 0;

lislo = 0;

while(1)
{
switch(eingang)
{
case 0xFE:
re_slow();
break;

case 0xFB:
li_slow();
break;

default:
//P4=0xFF;
break;
}
}
}
/*-----------------------------------------------------------------------
Zusatzfunktionen
-------------------------------------------------------------------------*/

void re_slow(void) // Funktion Rechtslauf langsam
{
if(P1_0==0){			   // Hier komme ich nicht weiter !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!?????????????????????????
reslo=1;
while(reslo)
{
P2=0x0C; // Bitmuster 1 Rechtslauf
zeit(5,3000); // Zeitverzögerung
P2=0x09; // Bitmuster 2 Rechtslauf
zeit(5,3000);
P2=0x03; // Bitmuster 3 Rechtslauf
zeit(5,3000);
P2=0x06; // Bitmuster 4 Rechtslauf
zeit(5,3000);
if (eingang == 0xEF)
{
 while(P1_0==0){}	   // Hier komme ich nicht weiter ich habe es mit Polling versucht!!!!!!!!!!!!!!!!!!!!!!!!!!!!??????????????????????????
//P2=0x00;
reslo = 0;

}
}
}
}

void li_slow(void) // Funktion Linkslauf langsam
{
lislo=1;
while(lislo)
{
P2=0x06; // Bitmuster 1 Linkslauf
zeit(5,3000);
P2=0x03; // Bitmuster 2 Linkslauf
zeit(5,3000);
P2=0x09; // Bitmuster 3 Linkslauf
zeit(5,3000);
P2=0x0C; // Bitmuster 4 Linkslauf
zeit(5,3000);
if (eingang == 0xEF)
{
P2=0x00;
lislo = 0;
}
}
}

void zeit(int i,int k) // Funktion Zeit
{
unsigned int x;
unsigned int y;
for(y=0;y&lt;=i;y++)
{
for(x=0;x&lt;=k;x++); //Int-Wert 62 ergibt 500 Mikrosekunden Delay
}
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2215632</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2215632</guid><dc:creator><![CDATA[tobifeli]]></dc:creator><pubDate>Sat, 26 May 2012 07:16:22 GMT</pubDate></item><item><title><![CDATA[Reply to Schrittmotor on Sat, 26 May 2012 08:48:26 GMT]]></title><description><![CDATA[<p>Bitte vorher überlegen, welches Forum wohl richtig ist, anstatt einfach in allen den gleichen Beitrag zu schreiben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2215648</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2215648</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sat, 26 May 2012 08:48:26 GMT</pubDate></item></channel></rss>