PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Servoansteuerung mit Attiny 25



greenkohl
24.10.2008, 07:12
Hallo,

ich hab momentan ein gravierends Problem mit meiner Platine. Auf dieser wollte ich mit einem attiny 25/v 2 Servo's ansteuern. Die Programmierung funktioniert auf einem ATMEGA 32, das hab ich ausprobiert, allerdings wenn ich das gleiche Programm auf den attiny übertrage, kommt des Signal um ca. das 4fache gestreckt herraus. D.h. wo vorher ein super Signal von 20ms Länge beim ATMEGA herauskam, ist dieses beim Attiny 25 fast 80ms lang. Ich hab auch schon am Reloadwert probiert, aber tiefer als 1 komme ich nicht, und bei 1 ist das Signal immernoch viel zu lang.
Wo liegt jetzt das Problem, ich habe zwar den Verdacht das es vielleicht am internen Quarz liegen könnte, aber sicher bin ich mir nicht.
Wär nett wenn ich mir schnell helfen könntet, denn ich sitz an einem Projekt das in 2 Wochen fertig sein muss.

Greetz

Hier der Programmcode:
$regfile = "attiny25.dat"
$crystal = 8000000

Config Servos = 1 , Servo1 = PortB.0 , Reload = 1

Config Portb.0 = Output
Enable Interrupts

Do
Servo(1) = 200
Waitms 5000
Servo(1) = 0
Waitms 5000
Loop

End

Lemonsquash
24.10.2008, 08:35
Stimmt die Zahl bei $crystal tatsächlich? Kommt mir bissel viel vor, hab aber das Datenblatt des ATiny25 grad auch nicht im Kopf...

greenkohl
24.10.2008, 08:55
also in Bascom hab ich über die Fusebits den internen Oscilator auf 8Mhz eingestellt, das war das höhste was ging...Ich hab überlegt ob ich extern nen 16 Mhz Quarz ransetze, aber in den Fusbits konnte man keinen höheren externen Quarz einstelln als 8Mhz....

greenkohl
25.10.2008, 09:07
Sollte man den lieber einen kleineren Wert nehmen bei §crystal....oder würdet ihr mir lieber raten einen anderen Controller zu nehmen, und wenn ja, welchen würdet ihr empfehlen...

hunni
25.10.2008, 10:28
haste es schon mit anderen tinys probiert. z.b. attiny12/15. Mach crystal weniger

greenkohl
27.10.2008, 10:02
hab jetzt den crystal-wert auf 1000000 gesetzt, bringt aber keine Veränderung...ich jetzt mal mit einem anderen Controller, hoffentlich klappt es da...

thewulf00
27.10.2008, 11:17
Ich kennen Deinen Tiny nicht, aber schau doch mal, ob es eine Fuse gibt, die den internen Oszillator teilt. Bei anderen Atmels gibt es das, und dann hat man bspw. anstatt 8MHz intern nur 1MHz.

greenkohl
27.10.2008, 12:39
Heurika....das war es.. Der interne Frequenz Divider war auf On und somit hat er halt alles durch 8 geteilt...Als ich ihn ausgestellt hatte lief alles wie geschmiert....

Ich danke euch für die Hilfreichen Tipps...Das Projekt hat grad nen Sprung von 100 Jahren gemacht... =D>

Greetz