Servos ansteurn mit Atmega8

Gast #1061325
Lesenswert?

Hi,

bin noch Anfänger im Gebiet der Servo-Steuerung und hab mir deshalb ein 
Testprogramm aus dem Web gesucht und bin auch auf eines gestoßen.

Nun hab ich das Problem das obwohl der Atmega8 die Mittelstelle 
ansteuern sollte, er den Servo in eine Seite dreht bis er ansteht und 
weiter...

Weiß vlt. jemand wo der Fehler im Code liegen könnte, wäre sehr dankbar.

grüße

(Datei im Anhang)
Angehängte Dateien:
Gast #1061598
Lesenswert?

> Das Fuse CKDIV8 musst du deaktivieren...

Hat er nicht. Und die AVRs, die's haben, lassen sich auch per Software 
auf jeden erlaubten Systemtaktvorteiler einstellen. Das Verändern der 
CKDIV8-Fuse ist daher unnötig.
Gast #1063572
Lesenswert?

CKDIV8 hat er nicht.
Und ja natürlich, der Atmega8 läuft mit 3686400Hz...
Werde mal versuchen das anzupassen.

Weiters verwende ich den "Int. RC Osc. 8 MHz; Start-up time: 6 CK + 64 
ms"
Sollte ich da einen anderen verwenden bzw. ist da eine externer Quarz 
notwendig ?

thx
Gast #1064395
Lesenswert?

Was ich noch fragen wollte, wie gut - schlecht funktioniert das auf 
Software Ebene ?

Sprich:
1
  _delay_ms(20); 
2

3
  PORTB |= (1 << 0);    
4

5
  _delay_ms(2); 
6

7
  PORTB &= ~(1 << 0);   
8

9
  _delay_ms(20);
usw.
Gast #1064956
Lesenswert?

>Auch mit Interrupts darfst du dich ueber ein Zittern nicht wundern, wenn
>du den internen Oszillator verwendest.

Das ist wohl eher eine theoretische als praktische Erkenntnis. Der 
interne Oszillator läuft ziemlich stabil, da zittert nix.
Gast #1064960
Lesenswert?

So...

Habe jetzt nochmal einen anderen Code getestet, welcher mich etwas mehr 
angesprochen hat...
Jedoch, gleiches Problem.
Kann das vlt. irgendwie mit dem Board mit dem ich arbeite zusammen 
hängen? (Verwende das STK500)
Und wie leicht kann ein Servo kaputt gehen ?

grüße
Angehängte Dateien:
#1065104
Lesenswert?

Peter Stegemann wrote:
> Schlecht bis gar nicht.
>
> Auch mit Interrupts darfst du dich ueber ein Zittern nicht wundern, wenn
> du den internen Oszillator verwendest.

Das wage ich zu bezweifeln! Dies hier:
http://www.hanneslux.de/avr/mobau/7ksend/7ksend02.html
läuft mit dem internen RC-Oszillator des Mega48 und da zittert kein 
Servo.

Ist allerdings nicht mit Warteschleifen und auch nicht in einer 
Hochsprache programmiert.

...
Gast #1072496
Lesenswert?

Wenn ich das richtig verstehe reicht es wenn man diese Zeile "#define 
F_CPU 8000000UL" angibt um den Takt einzustellen, man also nichts in der 
Makefile ändern muss.

Und warum kann ich im AVR Studio eigentlich nur 3.6MHz einstellen, der 
Atmega8 läuft ja immerhin mit 8-16...

Hab jetzt versucht das Programm mit 4Mhz oder mit 8Mhz laufen zu lassen, 
hab eigentlich alles so angepasst das der Timer funktionieren sollte, 
aber er dreht noch immer in nur eine Richtung. Habe auch immer den 
passenden Int. Oszi eingestellt.

Hab es jetzt auch auf Softwareebene (C) getestet, mit dem selbern 
Ergebnis.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren