mein GND ist mit GND des Boards zusammengeschaltet. Mein Netzteil versorgt beide Geräte mit Spannung... (Ca.7V und 1,5A)... sollte eigendlich reichen
mein GND ist mit GND des Boards zusammengeschaltet. Mein Netzteil versorgt beide Geräte mit Spannung... (Ca.7V und 1,5A)... sollte eigendlich reichen
Hallo
Was soll das mit dem Timer1? Nach der Bascom-Hilfe verwendet der Servo-Befehl den Timer0. Schau dir mal den Hilfetext zu "Config Servos" an.
A wird 63535, dann zwei Sekunden warten, dann wird A 61535 und gleich wieder 63535! Dann wieder zwei Sekunden warten... Was passiert dann mit A?Code:Do A = 63535 Wait 2 A = 61535 Loop
Gruß
mic
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
Du hast recht ich habe Wait 2 vergessen.... das ändert aber nichts an dem Servoverhalten.
Mit dem Timer1 kann man das wohl auch machen, das habe ich auf jeden Fall im RN-Wissen gelesen.
http://www.rn-wissen.de/index.php/Servoansteuerung
Komisch ist nur, dass der Servo in unregeläßigen Intervallen hin und her dreht
Geändert von Wombatz (30.09.2011 um 15:26 Uhr)
Ich verstehe gerade nicht wirklich wie du mit diesem Programm ein Servosignal zu erzeugen gedenkst..
..aber das besagte ruckeln kann ich angesichts der wait 2 und waitms 500 ungeprueft glauben.
Schau erst mal hier wie das Signal ausschauen sollte..
http://www.rn-wissen.de/index.php/Se..._und_Schaltung
Gruss
Edit: Den Ansatz mit Timer Intterupts zu arbeiten kann ich nur befuerworten, hatte schlechte Erfahrungen mit den Bascom Servo Befehlen (seltsames Zucken)
Nam et ipsa scientia potestas est..
Ich habe jetzt mal das Beispiel des Links genommen
$regfile = "m8def.dat" ' specify the used micro
$crystal = 3686400 ' used crystal frequency
Config Servos = 2 , Servo1 = Portb.0 , Servo2 = Portb.1 , Reload = 10
Config Portb = Output
Enable Interrupts
Do
Servo(1) = 100
Servo(2) = 100
Waitms 1000
Servo(1) = 50
Servo(2) = 50
Waitms 1000
Loop
Das PWM-Signal wird erzeugt, nur der Servo dreht sich nicht. Irgendwie ist mir das nicht plausibel.
Der Timer zählt bis 256... Immer wenn er die Zahl 100 oder 50 erreicht, ändert der das Signal.
So müsste die Theorie sein.
Geändert von Wombatz (30.09.2011 um 15:48 Uhr)
Grundsätzlich wichtig ist, dass der Takt auch wirklich 3686400Hz ist.
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
Das stimmt schon...alle anderen Sachen funktionieren auch... es ist ein externer Quarz. Das ist übrigends die Schaltung von Rowalt.de!
Ich habe auch gerade mal den Speaker an den Servopin angeschlossen... Insofern, konnte ich auch hören, dass das PWM erzeugt wird.
Ich versehe nur nicht, wieso der Servo nicht dreht.
Der Servo ist übrigends auch nicht defekt, da ein anderer das selbe Phänomen zeigt
Wo soll man da suchen?
http://rowalt.de/index.htm
"Das stimmt schon...alle anderen Sachen funktionieren auch... es ist ein externer Quarz." ist ja nicht wirklich der Beweis für den richtigen Takt. Fuses sind richtig gesetzt? Was wird ausgegeben:
Do
Waitms 500
Toggle Portb.0
Loop
End
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
Ich gehe mal davon aus, dass der Code richtig ist und theoretisch funktionieren müsste.
Jetzt habe ich mal die Hardware beleuchtet und ein eigenartiges Phänomen festgestellt.
Reibe ich mit dem GND-Pin des Servos an meiner GND-Krokodilklemme, ohne den Kontakt zu verlieren, bewegt sich der Motor manchmal unkontrolliert.
Das PWM-Signal wird allerdings gleichmäßig übertragen... deswegen schließe ich einen Wackelkontakt aus. Weiterhin halte ich alle Kabel statisch. nur die beiden GND reibe ich gegeneinander.....?????.....der zweite Servo macht das gleiche
Ich habe fasst das gesamte Buch von Rowalt durchgelesen und ausprobiert. Alles hat geklappt. Die Fusebits sind auch richtig gesetzt.
Sonst wäre ich schon viel früher auf Probleme gestoßen.
Die Schaltung findest du auf der Rowalt Seite unter
microcontroller=> Einführung 1
Lesezeichen