tholan
07.06.2005, 19:48
Hi,
ich quäle mich gerade damit ab, an der CC1
einen mechanischen Impulsdrehregler zum Laufen zu bringen.
Der hat 12 Rastungen pro 360Grad und die dumme Angewohnheit,
nicht immer nach dem Loslassen in der Nullposition stehen
zu bleiben.
Habe zunächst versucht den "Dreh-Schalter"
an den Digitalen Ports zu betreiben.
Pin A des Reglers liegt an Port 9,
Pin C an Port 10 der CC1 Main Unit.
Pin B liegt an Masse.
Testprogrämmchen:
define z bit[1]
define a Port[9]
define c Port [10]
gosub abwarten
#anf
if not a then gosub hoch
if not c then gosub runter
goto anf
#hoch
print "hoch"
gosub abwarten
return
#runter
print "runter"
gosub abwarten
return
#abwarten
z = a or b
if not z goto abwarten
return
Das sollte doch eigentlich pfundsen?
Fakt ist allerdings, daß ich,
wenn ich hochdrehe manchmal mehr "runter" als "hoch" bekomme,
genauso, wie umgekehrt.
Weiß jemand, wie das zuverlässig zum laufen zu bringen ist?
ich quäle mich gerade damit ab, an der CC1
einen mechanischen Impulsdrehregler zum Laufen zu bringen.
Der hat 12 Rastungen pro 360Grad und die dumme Angewohnheit,
nicht immer nach dem Loslassen in der Nullposition stehen
zu bleiben.
Habe zunächst versucht den "Dreh-Schalter"
an den Digitalen Ports zu betreiben.
Pin A des Reglers liegt an Port 9,
Pin C an Port 10 der CC1 Main Unit.
Pin B liegt an Masse.
Testprogrämmchen:
define z bit[1]
define a Port[9]
define c Port [10]
gosub abwarten
#anf
if not a then gosub hoch
if not c then gosub runter
goto anf
#hoch
print "hoch"
gosub abwarten
return
#runter
print "runter"
gosub abwarten
return
#abwarten
z = a or b
if not z goto abwarten
return
Das sollte doch eigentlich pfundsen?
Fakt ist allerdings, daß ich,
wenn ich hochdrehe manchmal mehr "runter" als "hoch" bekomme,
genauso, wie umgekehrt.
Weiß jemand, wie das zuverlässig zum laufen zu bringen ist?