www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Servoansteuerungschip-Selbstbau


Autor: Valentin Buck (nitnelav) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo
ich habe ja gesehen, dass es viele Threads zu Servos im Forum gibt, doch 
leider passte nicht ein einziger auf meine Bedürfnisse.
Nun zur Situation: Ich möchte einen Servo (C577) mit einem ATTiny13 
ansteuern. Ich hätte es gerne so, dass der Chip die eigene Taktungs 
verwendet und einfach drei Eingaänge und einen Ausgang hat. Auf die 
Eingänge kommen drei Tasten für Links, Mitte und Rechts. Der Ausgang 
gibt das Servo-Ansteuerungssignal aus.
ich habe mich also drangesetzt, doch weiß ich nicht, wie ich die 
Schleife gestalten soll. einmal einen Wert auf einem Port ausgeben und 
dass zählen?
Hält der Port den Wert dann oder wie?
Und wie die 1.5ms Impuls für die Mittelstellung realisieren?
Ich habe versucht es in AVR-GNU-Asm zu realisieren, vielleicht kann mir 
jemand mit Tipps oder Quellcode (bitte im txt-Format) weiterhelfen. 
Fertige Programme zum Download mag ich zwar auch, doch dann solltet ihr 
bitte eine Anleitung beilegen.

Wie immer hoffe ich auf euch...
Nitnelav.

Autor: Hannes Lux (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> doch leider passte nicht ein einziger auf meine Bedürfnisse.

Dann heißt es Selbermachen oder Dienstleistung kaufen. ;-)

Schau mal hier:
Beitrag "Re: Servo C577 mit Attiny13 ansteuern (Assembler)"
Das lässt Dir schonmal ein Servo nach Zeit hin- und herfahren.

Schmeiß die Zeitsteuerung raus und füge eine ordentliche Tastenabfrage 
mit Entprellung und Tasten-Repeat ein (z.B. den Dannegger-Algorithmus, 
siehe hier:).
Beitrag "Re: Hilfe zur Tastenentprellung von P.Dannegger"

Nun kannst Du mittels Tasten die Servoposition zwischen 75 und 150 
variieren, wobei die Tasten per Autorepeat auch Dauerdruck zulassen.

...

Autor: Valentin Buck (nitnelav) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Hannes Lux
Wonit hast du dein Programm bitte geschrieben?
Mein gutes "altes" Sisy-AVR hat beim Linken schon über zwanzig Feher 
gefunden:
Kompiliere die Datei Servo_Ansteuerung.s.
Assembler Meldungen:
Servo_Ansteuerung.s:26  Fehler: expected comma after "clk_ss"
Servo_Ansteuerung.s:27  Fehler: expected comma after "clk_val"
Servo_Ansteuerung.s:28  Fehler: expected comma after "tvt0"
Servo_Ansteuerung.s:31  Fehler: unknown pseudo-op: `.def'
Servo_Ansteuerung.s:32  Fehler: unknown pseudo-op: `.def'
Servo_Ansteuerung.s:35  Fehler: unknown pseudo-op: `.def'
Servo_Ansteuerung.s:36  Fehler: unknown pseudo-op: `.def'
Servo_Ansteuerung.s:37  Fehler: unknown pseudo-op: `.def'
Servo_Ansteuerung.s:39  Fehler: unknown pseudo-op: `.def'
Servo_Ansteuerung.s:40  Fehler: unknown pseudo-op: `.def'
Servo_Ansteuerung.s:44  Fehler: unknown pseudo-op: `.cseg'
Servo_Ansteuerung.s:63  Fehler: ein konstanter Wert wird erwartet:
Kontrollieren Sie bitte die Schreibweise dieser Zeile.
 Erwarte Register ab: 15
Servo_Ansteuerung.s:64  Fehler: ein konstanter Wert wird erwartet:
Kontrollieren Sie bitte die Schreibweise dieser Zeile.
 Erwarte Register ab: 15
Servo_Ansteuerung.s:65  Fehler: ein konstanter Wert wird erwartet:
Kontrollieren Sie bitte die Schreibweise dieser Zeile.
 Fehler: ein konstanter Wert wird erwartet:
Kontrollieren Sie bitte die Schreibweise dieser Zeile.
Servo_Ansteuerung.s:66  Fehler: ein konstanter Wert wird erwartet:
Kontrollieren Sie bitte die Schreibweise dieser Zeile.
 Fehler: ein konstanter Wert wird erwartet:
Kontrollieren Sie bitte die Schreibweise dieser Zeile.
Servo_Ansteuerung.s:69  Fehler: ein konstanter Wert wird erwartet:
Kontrollieren Sie bitte die Schreibweise dieser Zeile.
 Erwarte Register ab: 15
Servo_Ansteuerung.s:70  Fehler: ein konstanter Wert wird erwartet:
Kontrollieren Sie bitte die Schreibweise dieser Zeile.
 Fehler: ein konstanter Wert wird erwartet:
Kontrollieren Sie bitte die Schreibweise dieser Zeile.
Servo_Ansteuerung.s:71  Fehler: ein konstanter Wert wird erwartet:
Kontrollieren Sie bitte die Schreibweise dieser Zeile.
Servo_Ansteuerung.s:72  Fehler: ein konstanter Wert wird erwartet:
Kontrollieren Sie bitte die Schreibweise dieser Zeile.
 Fehler: ein konstanter Wert wird erwartet:
Kontrollieren Sie bitte die Schreibweise dieser Zeile.
Servo_Ansteuerung.s:73  Fehler: ein konstanter Wert wird erwartet:
Kontrollieren Sie bitte die Schreibweise dieser Zeile.
 Erwarte Register ab: 15
Servo_Ansteuerung.s:75  Fehler: ein konstanter Wert wird erwartet:
Kontrollieren Sie bitte die Schreibweise dieser Zeile.
 Erwarte Register ab: 15
Servo_Ansteuerung.s:76  Fehler: ein konstanter Wert wird erwartet:
Kontrollieren Sie bitte die Schreibweise dieser Zeile.
 Fehler: ein konstanter Wert wird erwartet:
Kontrollieren Sie bitte die Schreibweise dieser Zeile.
Servo_Ansteuerung.s:78  Fehler: ein konstanter Wert wird erwartet:
Kontrollieren Sie bitte die Schreibweise dieser Zeile.
 Erwarte Register ab: 15
Servo_Ansteuerung.s:79  Fehler: ein konstanter Wert wird erwartet:
Kontrollieren Sie bitte die Schreibweise dieser Zeile.
 Fehler: ein konstanter Wert wird erwartet:
Kontrollieren Sie bitte die Schreibweise dieser Zeile.
Servo_Ansteuerung.s:80  Fehler: ein konstanter Wert wird erwartet:
Kontrollieren Sie bitte die Schreibweise dieser Zeile.
 Erwarte Register ab: 15
Servo_Ansteuerung.s:81  Fehler: ein konstanter Wert wird erwartet:
Kontrollieren Sie bitte die Schreibweise dieser Zeile.
 Fehler: ein konstanter Wert wird erwartet:
Kontrollieren Sie bitte die Schreibweise dieser Zeile.
Servo_Ansteuerung.s:82  Fehler: ein konstanter Wert wird erwartet:
Kontrollieren Sie bitte die Schreibweise dieser Zeile.
 Erwarte Register ab: 15
Servo_Ansteuerung.s:83  Fehler: ein konstanter Wert wird erwartet:
Kontrollieren Sie bitte die Schreibweise dieser Zeile.
 Fehler: ein konstanter Wert wird erwartet:
Kontrollieren Sie bitte die Schreibweise dieser Zeile.
Servo_Ansteuerung.s:84  Fehler: ein konstanter Wert wird erwartet:
Kontrollieren Sie bitte die Schreibweise dieser Zeile.
 Erwarte Register ab: 15
Servo_Ansteuerung.s:85  Fehler: ein konstanter Wert wird erwartet:
Kontrollieren Sie bitte die Schreibweise dieser Zeile.
 Fehler: ein konstanter Wert wird erwartet:
Kontrollieren Sie bitte die Schreibweise dieser Zeile.
Servo_Ansteuerung.s:89  Fehler: ein konstanter Wert wird erwartet:
Kontrollieren Sie bitte die Schreibweise dieser Zeile.
Servo_Ansteuerung.s:91  Fehler: ein konstanter Wert wird erwartet:
Kontrollieren Sie bitte die Schreibweise dieser Zeile.
 Erwarte Register ab: 15
Servo_Ansteuerung.s:92  Fehler: ein konstanter Wert wird erwartet:
Kontrollieren Sie bitte die Schreibweise dieser Zeile.
 Fehler: ein konstanter Wert wird erwartet:
Kontrollieren Sie bitte die Schreibweise dieser Zeile.
Servo_Ansteuerung.s:93  Fehler: ein konstanter Wert wird erwartet:
Kontrollieren Sie bitte die Schreibweise dieser Zeile.
Servo_Ansteuerung.s:95  Fehler: ein konstanter Wert wird erwartet:
Kontrollieren Sie bitte die Schreibweise dieser Zeile.
 Erwarte Register ab: 15
Servo_Ansteuerung.s:96  Fehler: ein konstanter Wert wird erwartet:
Kontrollieren Sie bitte die Schreibweise dieser Zeile.
 Erwarte Register ab: 15
Servo_Ansteuerung.s:99  Fehler: ein konstanter Wert wird erwartet:
Kontrollieren Sie bitte die Schreibweise dieser Zeile.
 Erwarte Register ab: 15
Servo_Ansteuerung.s:101  Fehler: ein konstanter Wert wird erwartet:
Kontrollieren Sie bitte die Schreibweise dieser Zeile.
 Erwarte Register ab: 15
Servo_Ansteuerung.s:110  Fehler: ein konstanter Wert wird erwartet:
Kontrollieren Sie bitte die Schreibweise dieser Zeile.
 Fehler: ein konstanter Wert wird erwartet:
Kontrollieren Sie bitte die Schreibweise dieser Zeile.
Servo_Ansteuerung.s:111  Fehler: ein konstanter Wert wird erwartet:
Kontrollieren Sie bitte die Schreibweise dieser Zeile.
Servo_Ansteuerung.s:113  Fehler: ein konstanter Wert wird erwartet:
Kontrollieren Sie bitte die Schreibweise dieser Zeile.
 Erwarte Register ab: 15
Servo_Ansteuerung.s:114  Fehler: ein konstanter Wert wird erwartet:
Kontrollieren Sie bitte die Schreibweise dieser Zeile.
 Fehler: ein konstanter Wert wird erwartet:
Kontrollieren Sie bitte die Schreibweise dieser Zeile.
Servo_Ansteuerung.s:115  Fehler: ein konstanter Wert wird erwartet:
Kontrollieren Sie bitte die Schreibweise dieser Zeile.
 Fehler: ein konstanter Wert wird erwartet:
Kontrollieren Sie bitte die Schreibweise dieser Zeile.
Servo_Ansteuerung.s:117  Fehler: ein konstanter Wert wird erwartet:
Kontrollieren Sie bitte die Schreibweise dieser Zeile.
 Fehler: ein konstanter Wert wird erwartet:
Kontrollieren Sie bitte die Schreibweise dieser Zeile.
Servo_Ansteuerung.s:122  Fehler: ein konstanter Wert wird erwartet:
Kontrollieren Sie bitte die Schreibweise dieser Zeile.
 Fehler: ein konstanter Wert wird erwartet:
Kontrollieren Sie bitte die Schreibweise dieser Zeile.
Servo_Ansteuerung.s:127  Fehler: ein konstanter Wert wird erwartet:
Kontrollieren Sie bitte die Schreibweise dieser Zeile.
 Fehler: ein konstanter Wert wird erwartet:
Kontrollieren Sie bitte die Schreibweise dieser Zeile.
Servo_Ansteuerung.s:128  Fehler: ein konstanter Wert wird erwartet:
Kontrollieren Sie bitte die Schreibweise dieser Zeile.
 Fehler: ein konstanter Wert wird erwartet:
Kontrollieren Sie bitte die Schreibweise dieser Zeile.
Servo_Ansteuerung.s:129  Fehler: ein konstanter Wert wird erwartet:
Kontrollieren Sie bitte die Schreibweise dieser Zeile.
 Erwarte Register ab: 15
Servo_Ansteuerung.s:130  Fehler: ein konstanter Wert wird erwartet:
Kontrollieren Sie bitte die Schreibweise dieser Zeile.
 Fehler: ein konstanter Wert wird erwartet:
Kontrollieren Sie bitte die Schreibweise dieser Zeile.
Servo_Ansteuerung.s:132  Fehler: ein konstanter Wert wird erwartet:
Kontrollieren Sie bitte die Schreibweise dieser Zeile.
Servo_Ansteuerung.s:133  Fehler: ein konstanter Wert wird erwartet:
Kontrollieren Sie bitte die Schreibweise dieser Zeile.
 Fehler: ein konstanter Wert wird erwartet:
Kontrollieren Sie bitte die Schreibweise dieser Zeile.
Ende.

Wie könnte man DAS berichtigen.
Trotzdem...
das ganze hat mir schon SHER weitergeholfen und einen sehr guten 
DEnkansatz gegeben! Vielen Dank!
Doch kurz mal eine andere Frage: Haben die Ausgänge des ATTiny einen 
Buffer, der die Ausgänge solange konstant hält, wie kein neuer Wert 
eingegeben wird?

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Valentin Buck schrieb:

> Wie könnte man DAS berichtigen.

Entweder die Assembler Syntax auf Sysi anpassen.
Oder Sysi wegschmeissen und den Assembler nehmen, den geschätze 90% 
aller Assembler-Programmierer auch nehmen: Den von Hersteller des Chips

> Doch kurz mal eine andere Frage: Haben die Ausgänge des ATTiny einen
> Buffer, der die Ausgänge solange konstant hält, wie kein neuer Wert
> eingegeben wird?

Was anderes wär ja wohl ziemlich witzlos.
Aber warum probierst du das nicht einfach aus?

Autor: Hannes Lux (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> @ Hannes Lux
> Wonit hast du dein Programm bitte geschrieben?

Mit AVR-Studio4. Deine Frage beweist übrigens, dass Du den verlinkten 
Thread nicht gelesen, sondern nur den Quelltext heruntergeladen hast. 
Denn in dem Thread gab es auch Probleme mit der Assemblierung, die auf 
Fehlbedienung des AVR-Studios beruhten.

> Mein gutes "altes" Sisy-AVR hat beim Linken schon über zwanzig Feher
> gefunden:

Ich möchte wissen, was daran "gut" sein soll. Die Fehler liegen nicht an 
meinem Quelltext, sondern an der Inkompatiblität von Sisy-AVR. Nimm 
ordentliches Werkzeug, dann lässt sich auch ordentlich arbeiten.

...

Autor: sam (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Doch kurz mal eine andere Frage: Haben die Ausgänge des ATTiny einen
> Buffer, der die Ausgänge solange konstant hält, wie kein neuer Wert
> eingegeben wird?


hat jemand diese frage verstanden?

ausgänge des ATTinys sind high oder low, jenachdem was im programm des 
µC steht.
solange ausgänge nicht neu gesetzt werden, bleiben sie in dem zustand 
den sie hatten.

ein schalter schaltet doch auch nicht wenn keiner draufdrückt

Autor: STK500-Besitzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>hat jemand diese frage verstanden?

ja, ich.
Die Antwort ist: ja. Die Ausgänge sind gepuffert, da die CPU sonst ja 
die ganze Zeit damit beschäftigt wäre, diese auf dem aktuellen Stand zu 
halten.

Autor: Hannes Lux (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> hat jemand diese frage verstanden?

Ja, habe ich. Aber da Karl-Heinz sie bereits erschöpfend beantwortet 
hat, bin ich nicht weiter darauf eingegangen.

Betreffs Sisy-Software... Es tut natürlich weh, einen Haufen Geld für 
ein Lernpaket bezahlt zu haben und dann festzustellen, dass es (da 
inkompatibel) wertlos ist. Nun ist nicht nur das Geld futsch, sondern 
auch das bereits Gelernte... ;-(

...

Autor: Valentin Buck (nitnelav) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nun gut,
das mit dem Buffer habe ich verstanden.
Aber welches Programm soll ich jetzt nehmen. Hat mal einer einen Link?

Autor: Hannes Lux (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Aber welches Programm soll ich jetzt nehmen.

AVR-Studio 4, siehe Beitrag "Re: Servoansteuerungschip-Selbstbau"

> Hat mal einer einen Link?

http://www.atmel.com/dyn/resources/prod_documents/...

...

Autor: Valentin Buck (nitnelav) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Hannes Lux
Das Programm ist aber nicht das, was man auch installieren soll, sondern 
nur das  Update mit dem SP1. Die Versionen darunter, da muss man sich 
registrieren, bevor man da was downloaden kann. Sind die 
kostenpflichtig?
Nitnelav

Autor: Christoph S. (mixer) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein, du musst dich nur registrieren - kostet aber keinen cent!

Autor: Hannes Lux (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tja, ich habe lange keine neue Version mehr geholt, die vorhandene tut 
es noch. Registrieren musste man sich damals noch nicht.

...

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.