Was hast Du für ne Programmiersprache? Taktfrequenz? Programm?
Signatur??? kann ich mir nicht leisten!!!
klingt nach software PWM, eine wirklich tückische Sache.
Wie sieht den dein programm aus?
Hi
die Kiste läuft ja auf 16mhz.
Hier mal der Code(nicht elegant, aber funktioniert(mit 8servos):
Mfg suluCode:$regfile = "m8def.dat" Config Servos = 10 , Servo1 = Portc.0 , Servo2 = Portb.1 , Servo3 = Portb.2 , Servo4 = Portb.3 , Servo5 = Portb.4 , Servo6 = Portb.5 , Servo7 = Portc.3 , Servo8 = Portc.1 , Servo9 = Portd.7 , Servo10 = Portd.6 , Reload = 2 Config Pinc.0 = Output Config Pinb.1 = Output Config Pinb.2 = Output Config Pinb.3 = Output Config Pinb.4 = Output Config Pinb.5 = Output Config Pinc.3 = Output Config Pinc.1 = Output Config Pind.7 = Output Config Pind.6 = Output Enable Interrupts Dim A As Byte Dim B As Byte Dim C As Byte A = 1 B = 1 C = 1 Servo(1) = 100 Servo(2) = 100 Servo(3) = 100 Servo(4) = 100 Servo(5) = 100 Servo(6) = 100 Servo(7) = 100 Servo(8) = 100 Servo(9) = 100 Servo(10) = 100 Waitms 500 Gerade: If A = 10 Then A = 1 Servo(1) = 100 Servo(2) = 115 ......................
Wenn man das Servosignal selber erzeugt, dann kann man die Servos nacheinander Abarbeiten (bis etwa 10). Dazu braucht man nur jeweils eine Verzögerung zur Zeit. Hardwaremäßig geht das ggf. auch 2 mal parallel mit timer 1. Es ist also höchstens eine Frage der Software, wie das umgesetzt ist.
Es könnte sein, das duch den 9./10 ,ten servo gerade die Grenze erreicht wird, das die Summe der einzelpulse (1-2 ms) die 20 ms Grenze für die ganze Periode erreicht.
so mal eine frage werden in einer situation alle Servos genutzt?sonst dürfte man ja welch(recht un elegant) zwischendurch deaktivieren
ist halt dann die Frage, ob das mit der Bascom-Routine so einfach ist...
Viele Grüße
Ich weiß nicht, wie das mit Bascom ist, aber mit C sollten 10 Servos kein allzugroßes Problem darstellen. Kommt natürlich auf die programmierung an.
Man muss die Servos nicht mal nacheinander abarbeiten, mit 16MHz geht das auch parallel. Eine Auflösung von 180 einstellungen (180°) ist so, mit geschickter Programmierungen locker erreichbar.
Gruß, Yaro
Viele Grüße, William
-> http://william.thielicke.org/
Ich habe mit C maximal 12 Servos zum laufen gekriegt.
Dann ist der Controller ab so ausgelastet, das er sonst nichts mehr machen kann.
Lesezeichen