Gast
#4253338
Hallo Ich versuche einen Multicopter über einen Arduino Mega der ein PPM-Signal erzeugt anzusteuern. Es funktioniert eigentlich auch schon nur weiß ich nicht warum es Funktioniert. Der Code ist von https://code.google.com/p/generate-ppmsignal/downloads/list
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
30 | |
31 | |
32 | |
33 | |
34 | |
35 | |
36 | |
37 | |
38 | |
39 | |
40 | |
41 | |
42 | |
43 | |
44 | |
45 | |
46 | |
47 | |
48 | |
49 | |
50 | |
51 | |
52 | |
Ich versteh einfach nicht warum hier ein gültiges PPM-Signal rauskommt. Bei 16MHz und einem Prescaler von 8 wird das Zählerregister alle 2us um 1 erhöht. Angenommen "Kanal 1" bekommt den Wert 1500 zugewiesen. OCR1A = (1500-300)*2. Das ergibt 4,8ms. Laut meinen Information darf doch ein Kanal maximal 2ms Lang sein. Außerdem würden bei 8 Kanälen die 22,5ms überschritten. Was wird eigentlich in PPM_PulseLen gespeichert? Ist das die Pause zwischen den Impulsen? Zudem versteh ich das "*2" im Code nicht. Der Code deckt sich einfach nicht mit der Quelle:http://www.mftech.de/ppm.htm Würde mich um Hilfe freuen. Danke schon mal im voraus
