Attiny nd Servo

Neuuser

Mitglied
11. Aug. 2008
465
0
16
Sprachen
Hallo leute,
vermute mal dieses wurde schon öfters angefragt, aber ich habe nichts zutrefendes gefunden im forum.
ich versuchte heute mal eine Attiny 13 ein servo an zu steuern, zwar ragiert der servo und färt RUCKHAFT aber zügig hin und her, bezweifle auch das der winkel stimmt wo er stehen bleibt.
über Mega 8 habe ich schon öfters servos angesteuert ohne probleme nun aber wollte ich es mit einen tiny machen, wo ist der feheler das er servo so ruckelt, die fuse würde ich meinen steht auf 9.6Hhz
schaut mal rein wen ihr zeit habt.

mfg micha

Code:
$regfile = "attiny13.dat"
$crystal = 9600000
$noramclear
$hwstack = 20
$swstack = 20
$framesize = 10


Config Portb.1 = Output
Config Portb.3 = Input

Portb.3 = 1


Config Servos = 1 , Servo1 = Portb.1 , Reload = 10

Enable Interrupts

Do

If Pinb.3 = 0 Then
Servo(1) = 75
Waitms 1000
Else
End If

If Pinb.3 = 1 Then
Servo(1) = 30
Waitms 1000
Else
End If

Loop

End

fuse attiny 13-9.6mhz.gif
 
Hmm.. In der Hilfe steht irgendwas von "big prozessor load" beim PWM... der Tiny13 ist ja nicht grad "mächtig".
Hast Du mal die anderen Möglichkeiten getestet (mode= servo usw)?

ansonsten - was soll denn sonst noch so an den Zwerg ran? Ggf kannst Du das selbst via hard/soft-PWM machen? ist ja eigentlich kein Thema...
 
War das nicht bei dieser (sorry) dämlichen GUI so dass nicht angekreuzt 1 ist und angekreuzt 0?
Dann müsste CKDIV8 doch einen Haken haben, sonst haste nur 9,6MHz/8, also bissl mehr als 1MHz.
Oder irre ich mich da nu?
 
Hi,

War das nicht bei dieser (sorry) dämlichen GUI so dass nicht angekreuzt 1 ist und angekreuzt 0?
Dann müsste CKDIV8 doch einen Haken haben, sonst haste nur 9,6MHz/8, also bissl mehr als 1MHz.
Oder irre ich mich da nu?

Beim Flash/EEPROM ist unprogrammiert eine 1 im Bit da beim Löschen alles auf 1 geht.
Programmiert ergibt eine 0 im Bit. Ein Haken im Kästchen ergibt "programmiert" und damit ne 0.

Eine programmierte (0 / Haken) CKDIV8 teilt den Takt durch 8. Sollte also so passen.
Den Rest hab ich mir jetzt nicht angesehen weil ich für die CKSEL-Fuses ins Datenblatt sehen müßte.

Gruß
Dino
 
Stimmt so, sieht man auch an den ausgegrauten RSTDSBL und SPIEN...

9,6MHz (intern) mit 14CK+64ms startup
Erster Test, wenn man irgendwas bei diesen Einstellungen vermutet, ist (insbesondere unter BASCOM) einfach mal'n Sekundenblinker zu Programmieren (Endlosschleife mit'nem Wait und dem Bein-toggeln).

Ich denke, daß es am Config Servo... liegt, da scheint man ja viel einstellen zu können...
 
Alles klar, denn passts auch so.

Eben weil ein gelöschter / nicht programmierter Flash mit 1 gefüllt ist und der Tiny13 den Teiler per default aktiv ist kam ich in's "schwimmen". Hätte das Datenblatt mal lieber maximieren sollen, denn hätt ich die Spalte mit den Defaults auch gesehen :rolleyes:
 
hallo leute,
ich habe auch schon einiege varianten in der Config Servo probiert, wid nur schlimmer als besser.

einfach mal'n Sekundenblinker zu Programmieren (Endlosschleife mit'nem Wait und dem Bein-toggeln

Toggle Led
Waitms 500

das blinken ist doch nur von der wartezeit abhängig, wenn ich es so nehme blinkt er exackt im sekundentakt.

mfg micha
 
Hallo Micha,

das blinken ist doch nur von der wartezeit abhängig, wenn ich es so nehme blinkt er exackt im sekundentakt.

Bascom errechnet aus deinem Befehle "Waitms 500" und der Takteinstellung "$crystal = 9600000" das interne Programmtiming. Wenn das zum Timing paßt was inder Hardware (CKDIV8, interner/externer Takt, angeschlossenes Quarz) paßt, dann kommt die richtige Blinkfrequenz raus. Wenn es nicht zur Hardware paßt, dann erkennt man das an der falschen Blinkfrequenz.

Scheint also zwischen Software und Hardware alles zu passen.

Gruß
Dino
 
nun habe ich noch ein mal die fuse verändert,

die SUT1 = SUT0 0=1 voher war sie 1=0

zwar ist es etwas träge beim tastendruck aber es färt sauber durch.

mfg micha
 
Hmm...
mit SUT1..0=11, also beide nicht programmiert, hättest Du 'ne StartUpTime von 14CK+0ms.
Warum Dein Servo sich zickig hat, wenn die SUT länger dauert, ist mir vollkommen unklar. Normalerweise wählt man eine eher lange SUT, damit sich der Quarz/Oszillator auf einen sauberen Takt einschwingen kann - wenn es aber von Anfang an zeitkritisch ist, kann man die SUT eben verkürzen (und das ggf unzureichende Einschwingen in Kauf nehmen)

Ist das ein ganz "normales" (analoges Modellbau-)Servo?
 
Hi,

mit SUT1..0=11, also beide nicht programmiert, hättest Du 'ne StartUpTime von 14CK+0ms.
Warum Dein Servo sich zickig hat, wenn die SUT länger dauert, ist mir vollkommen unklar. Normalerweise wählt man eine eher lange SUT, damit sich der Quarz/Oszillator auf einen sauberen Takt einschwingen kann - wenn es aber von Anfang an zeitkritisch ist, kann man die SUT eben verkürzen (und das ggf unzureichende Einschwingen in Kauf nehmen)

sehe ich auch so. Es ist unlogisch das sich mit der Startup-Time dabei etwas ändert. Der Prozessor wird eigentlich nur kürzer oder länger im Reset gehalten nachdem die Spannung stabil ist und der Oszillator schwingt.

Da muß noch was anderes sein wenn es Probleme gibt oder nun die Probleme weg sind.

Gruß
Dino
 
hallo ihr beide,
ja ist ein normales servo, aber villeicht zu normal das es eine macke haben könnte, ich habe aber nur das eine, egal in ein paar tagen werde ich was probieren mit den tiny und dann werde ich sehen ob das so funtioniert.

mfg micha
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)