mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Servo BASCOM geht nicht mehr


Autor: Moritz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

Ich hab ein Problem mit einer Servoansteuerung in Bascom , bei meiner 
ersten Platine ging dies einwandfrei , da hatte ich PortD.2-7 benutzt .
Jetzt hab ich einen Neue geätzt bei der ich den kompletten PORTC nutze 
und 4 vom PortD.

Als Quelltext hab ich diesen hier verwendet :

http://www.rn-wissen.de/index.php/Servoansteuerung

Jetzt hab ich ihn natürlich erweitert auf 10 Servos , muss ich an der 
Pause
oder so etwas ändern , oder geht der Port garnicht ? Weil es tut sich 
garnichts mehr =(.

Ich hab einfach folgendes festgelegt :
Dim PORTC = OUTPUT
Dim PIND.2 = OUTOUT
Dim PIND.5 = OUTOUT
Dim PIND.6 = OUTOUT
Dim PIND.7 = OUTOUT

DIM Servo(12) As Word

Ansonsten , gleicher Prozessor und gleicher Quartztakt wie im Beispiel.
Alles andere geht auf der Platine.

Autor: gruselwusel7 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi!

Vielleicht ein Konflikt mit dem JTAG-Interface?

PortC und JTAG=ON = Probleme ...

Gruselwusel7

Autor: Paul Baumann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit DIM kannst Du nur Variablen definieren.
DIM Port....geht nicht.

Du mußt "CONFIG Portc = Output" schreiben, oder für einzelne Portpins:
Config Pind.2 = Output

MfG Paul

Autor: Moritz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja , hatte auch Config , hab ich falsch geschrieben =).

Die Servos gehen jetzt , aber ich glaube die Frequenz ist zu niedrig , 
die zappelt rum , und bewegen sich sehr langsam und ruckartig.

Ich versuche jetzt irgendwie die Timer auf 12 Servos anzupassen. Aber 
will mir nicht gelingen. Bei höheren Frequenzen verändert sich auch der 
Bereich =(. Und ich kenne mich mit Timern einfach nicht soo gut aus.

Autor: Moritz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sooo, hat sich erledigt =) . Hab den Prescaler auf 1 geändert und solang 
mit den Frequenzen gespielt bis sie sich gut bewegen.

Config Timer1 = Timer , Prescaler = 1
Timer1 = 43000

Servo(n) = 28000 + Takt


Takt-Bereich von 0 - 30000 , bringt einen Servobereich von ca. 180° , 
und das in 30000 schritten , besser als vorher =).

Danke für den Tip mit dem JTAG.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.