Hallo,
danke für deine Hilfe. Jetzt kann ich über den Polti die Stromstärke einstellen und die 3V messen wo sie auch sein sollten. Jedoch habe ich das Problem, dass sich immernoch nichts bewegt. Ich hatte folgendes Programm dafür benutzt:
#include "avrlab.h"
#include "gpio.h"
//#define SIMULATION
int main(void)
{
AvrLabInit();
//your code goes here
PortB.DataDirection.Bit3 = DataDirectionOutput;
PortB.DataDirection.Bit4 = DataDirectionOutput;
PortB.Output.Bit4 = 0;
PortB.DataDirection.Bit2 = DataDirectionInput;
PortB.Output.Bit2 = 1;
PortB.DataDirection.Bit5 = DataDirectionInput;
PortB.Output.Bit5 = 1;
unsigned char time = 255;
unsigned char ontime = 255;
unsigned long int round = 0;
char direction = -1;
char onpush = 0;
while (1)
{
//or here
if (onpush == 1)
{
if (time < 1)
{
time = 255;
PortB.Output.Bit3 = 0;
ontime+=direction;
round++;
if (ontime == 0) direction = 1;
if (ontime == 255) direction = -1;
}
else
{
time--;
if (time == ontime)
{
if (round < 510)
{
PortB.Output.Bit3 = 1;
if (direction == -1) PortB.Output.Bit4 = 1;
if (direction == 1) PortB.Output.Bit4 = 0;
}
if (round > 2039) round = 0; //107099
}
}
}
if (PortB.Input.Bit2 == 0)
{
onpush = 1;
}
if (PortB.Input.Bit5 == 0)
{
onpush = 0;
}
AvrLabPoll(); //must be called at least every 40 ms
//muss mindestens alle 40 ms aufgerufen werden
}
}
Wenn ich 2 Dioden an PortB Pin3 und 4 anschließe tut die an Pin3 faden und die an Pin4 an und aus gehen wie gewünscht. Pin 4 habe ich an DIR angeschlossen und Pin3 an STEP. Damit sollte die Richtung sich regelmäßig ändern und der Motor unterschiedlich schnell drehen. Jedoch tut sich gar nichts.
Habt Ihr eine Idee was falsch sein könnte? Brauche ich mehr Zeit die das Pin3 auf 1 oder 0 steht, damit der Motortreiber es erkennt?
Danke für die Hilfe.
Viele Grüße
Robert
Lesezeichen