Hallo,
ich verwende den SRF05 und 2 Servos an einem ATMEGA8 (mit 8Mhz internem Quarz). Ausserdem ist ein 16*2 LCD-Display angeschlossen, plus 3 Schalter.
Im Prinzip läuft mein Programm, das ich verwenden möchte, jedoch habe ich das Problem, dass die Messwerte des US-Sensors halbiert werden, sobald ich die Servos initialisiere.
Die Servos werden so initialisiert (funktionieren auch!)
Die US-Sensor-Steuerung läuft so:Code:Config Servos = 2 , Servo1 = Portb.1 , Servo2 = Portb.0 , Reload = 10 Config Pinb.1 = Output Config Pinb.0 = Output
Unabhängig voneinander funktioniert beides bestens. Doch zusammen spuckt der US-Sensor immer nur die halbe Entfernung aus.Code:Config Pinb.5 = Output Portb.5 = 0 'Port Low Pulseout Portb , 5 , 40 'Min. 10uS Impuls senden Pulsein Zeitmessung , Pinb , 5 , 1 Zeitmessung = Zeitmessung * 10 'mal 10 da Pulsein in 10uS Einheiten Ergebnis ermittelt Entfernung = Zeitmessung / 58 'Umrechnen in Zentimeter Waitms 100
Ich schätze, es hängt mit den Timern und dem "Reload" des Servos zusammen. Leider kenne ich mich dafür noch nicht gut genug aus. Ich habe das jetzt so gelöst, dass ich für umrechnen in cm halt durch 29 teile. Das funktioniert zwar, ist ja aber eigentlich unschön. Außerdem würde ich gerne verstehen, warum dieser Fehler auftritt.
LG,
David







Zitieren

Lesezeichen