hallo leute!
ich hab mich schon eine weile mit der welt der atmels beschäftigt und bisher alles hinbekommen was ich probieren wolte! bis auf eins: servos!
hier das verwendete programm:
(komt aus dem Buch "roboter selber bauen" und wurde leicht modifiziert! habe aber auch diverse andere programme erfolglos versucht)
Code:
$regfile = "m32def.dat"
$crystal = 16000000
$baud = 9600
Config Lcdpin = Pin , Rs = Portc.3 , E = Portc.2 , Db4 = Portc.5 , Db5 = Portc.1 , Db6 = Portc.4 , Db7 = Portc.0
Config Lcd = 16 * 2
Initlcd
Cursor Off
Cls
Enable Interrupts
Config Porta.7 = Output
Declare Sub _servo()
Dim Servo_pos As Word
Dim Servo_pos_save As Word
Dim Multiplikator_servo As Byte
Dim Setup As Word
Dim X As Byte
multiplikator_servo = 15
Setup = 3900
Locate 1 , 1
Lcd "start"
Waitms 500
Cls
For X = 1 To 50
Servo_pos = X
Call _servo()
Locate 1 , 1
Lcd X
Waitms 200
Next X
End
Sub _servo()
Servo_pos_save = Servo_pos * Multiplikator_servo 'Pulseout berechnen
Servo_pos_save = Setup + Servo_pos_save
Pulseout Porta , 7 , Servo_pos_save
Waitms 15 'kurze Pause (5 bis 20ms)
End Sub
so es passiert volgendes:
das lcd zeigt "start" und fängt an zu zählen und der servo bewegt sich auch so wie das display das anzeigt ABER: meistens zehlt er nicht weiter als bis 6 (ist jedesmal anders "rekord" liegt bei 21 ) und dan macht es den anschein alsob der chip nen reset macht und das display zeigt wieder start und begint von forne zu zählen... machmal zeigt er sogar auch 2 - 3 mal start hintereinander und fängt garnicht erst an zu zählen... achja und dan irgendwanma bleibt er komplett hängen. jetzt komt der klu: mach ich den servo ab läuft das programm einwandfrei!!!
befor ihr mir sagt der servo ist kaputt: ich hab es mit 2 verschiedenen (anderer hersteller) probiert ohne erfolg! und der chip ist auch in ordnung da alles andere ja damit läuft und es auch mit einem anderen getestet wurde...
tja nun hätt ich gern ne erklärung dazu... was meint ihr was kan das sein?
gruss predator32767
Lesezeichen