Gast
#2074912
Hallo Zusammen, ich verwende einen Atmega8L der in AVR Studio / GCC programmiert wird. Mithilfe folgenden Codes möchte ich einen Servo mit zwei Tastern in jeweils eine Richtung drehen lassen:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
30 | |
31 | |
32 | |
33 | |
34 | |
35 | |
36 | |
37 | |
38 | |
Das Programm ist recht einfach gehalten: Mithilfe der Variablen z definiere ich die Stellzeit. Diese kann hier im Programm entweder 1ms oder 2ms betragen und ändert sich je nach Tastendruck. In der Main-Schleife wird dann immer der Port für die Zeit z auf high gesetzt und für 20ms-z auf low. Somit habe ich immer eine Periodendauer von 20ms. Kurz zum Aufbau: Mein Atmega8 wird auf einer fertig geätzten Testplatine (mit Tastern und Potis und Piezo und LEDs...) über USB betrieben. Der Servo wird extern durch ein kleines Netzteil mit 4,8V versorgt. Die Masse vom Servo ist mit der Masse der Testplatine kurzgeschlossen. Nun zu meinem Problem: Trotz passender Fuses (Int. Clock 1MHz) fährt der Servo nach dem einschalten in eine Position und reagiert nicht auf Tastendruck. Der Witz an der Sache ist: Erhöhe ich den internen Clock auf 8Mhz (der Quellcode wird für F_CPU natürlich entsprechend angepasst!) reagiert der Servo auf Tastendruck, fährt aber nicht in die Endpositionen sondern bewegt sich ca. in einem 90° Winkel bei abwechselndem Tastendruck. Ich habe zum weiteren Testen einen externen Quarz angeschlossen und den Clock wieder entsprechend angepasst (Fuses natürlich auch). Dieser schwingt bei einer Frequenz von 3,6864 MHz. Jetzt dreht sich der Servo nur noch in einem ca. 45° Winkel bei abwechselndem Tastendruck. In der Arbeit konnte ich mit dem besagten externen angeschlossenen Quarz den Ausgangsport mit dem Oszi messen. Und siehe da: meine Periodendauer beträgt ca. 23ms und mein Impuls liegt bei ca. 3ms!? Wo geht hier die Zeit verloren? Habe ich etwas übersehen? Vielleicht weiß einer von euch Profis rat. Grüße Matthias