Ich vergaß zu erwähnen, dass ich auf dem Gebiet Microcontroller neu bin, weshalb ich jetzt die Frage habe, ob externer Quarz bei diesem Code notwendig ist.
Ich vergaß zu erwähnen, dass ich auf dem Gebiet Microcontroller neu bin, weshalb ich jetzt die Frage habe, ob externer Quarz bei diesem Code notwendig ist.
Man kann die UART auch mit dem internen Takt nutzen, das ist aber schon an der Grenze. Meist geht es, aber nicht immer zuverlässig.
Ohne ändern der Fuses hat man erstmal nur ca. 1 MHz Takt. Mit dem 1 MHz takt bekommt man die 38,6 KBaud nicht hin. Man kann den Takt im Programm auf 8 MHz internen Takt umstellen über das Register CLKPR. Wie genau kann man im Datenblatt nachlesen, denn das ist mehr als ein einfacher Zugriff.
So hat man erstmal erstmal eine Baudrate von 38,6 K / 8 = 4800 Baud.
Der Tiny 2313 wird mit aktiviertem CKDIV8 Fusebit ausgeliefert. Dieses Bit ist in den Fuses auszuschalten. Dann läuft der Konroller mit den erforderlichen 8MHz.
Erst dann ist auch eine Baudrate von 38400 möglich und erst dann wird auch das Timing für das Servo funktionieren.
Ich habe jetzt das Fuesbit CKDIV8 ausgeschaltet. Der Servo knurrt jetzt, bewegt sich aber nicht. Am Motor ausgang passiert nach wie vor nichts. Also habe ich den Ausgang an das Oszilloskop angeschlossen, habe die Zeit auf 1mS/Cm gestellt. Eine Phase ist nun 2 Striche Lang, also 2ms. Dies bedeutet, dass das ganze 10 mal langsamer sein müsste oder?
Die Impulse für das Servo sollten alle 20mSec kommen.
Was macht die Serielle Schnittstelle?
Die serielle Schnittstelle scheint jetzt zu laufen, jedoch läuft der Servo immer noch dauernd nach rechts und der motor gibt nur Mist aus.
Das Servo steht bei mir ganz ruhig. Wie ändert man die Position? Da geht bei mir nichts.
Es geht nur Motordrehrichtung umstellen. PWM geht nicht.
Lesezeichen