Komische Grenz-Zeiten bei Ansteuerung eines Multiplex-Servos

#2226646
Lesenswert?

Hallo!
Ich versuche gerade, ein Multiplex-Servo (Tiny-S) anzusteuern (mit einem 
AtMega88) Komischerweise sind die Grenzen des Impulses ungefähr 200 und 
1400 μs. (Am Takt kann es nicht liegen: 1. muss der Takt über 4 MHz 
sein, da ich ihn mit 1MHz isp-Frequenz noch programmieren, und zweitens 
gibt es keinen Takt, bei dem es aufgehen würde.)
Kann das jemand bestätigen?
Hier mein Code:
1
#define F_CPU 8000000UL  // 8 MHz
2

3
#include <avr/io.h>
4
#include <util/delay.h>
5

6
int main(void)
7
{
8
  DDRB = 0x0F;
9
  DDRD = 0xFF;
10
  
11
  while(1)
12
  {
13
    PORTD |= (1<<6);
14
    _delay_us(1400);    //200-1400
15
    PORTD &= ~(1<<6);
16
    _delay_ms(18);
17
  }
18
}
#2226768
Lesenswert?

Raphael F. schrieb:
> Hallo!
> Ich versuche gerade, ein Multiplex-Servo (Tiny-S) anzusteuern (mit einem
> AtMega88) Komischerweise sind die Grenzen des Impulses ungefähr 200 und
> 1400 μs. (Am Takt kann es nicht liegen: 1. muss der Takt über 4 MHz
> sein, da ich ihn mit 1MHz isp-Frequenz noch programmieren, und zweitens
> gibt es keinen Takt, bei dem es aufgehen würde.)
> Kann das jemand bestätigen?

Multiplex verwendet ein etwas anderes Timing als der Rest der Welt.
Drum kann man bei deren Sender die einzelnen Servo-Kanäle auch immer 
zwischen MPX und UNI umschalten.

200 und 1400 sind jetzt etwas seltsam. Wenn mich mein Gedächtnis nicht 
trügt, dann haben die ihre Servo-Mittelstellung bei 1.2 Millisekunden 
anstatt den üblichen 1.5

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