so , i did work with the 50Hz PWM signal usually used with arduino , servo motors , ESCs , and stuff like that .
since it's 50Hz , The interval time is 20ms and the timing for data is at the start is 1ms for 0 and 2ms for 255 .
what about PPM though ? what i currently know is that it's a bunch of PWM signals in series in the same 20ms time for 50Hz ...
i have a system that demands PPM data . what are the specifications beside the frequency ?
if it's an 8 chanel PPM signal what are the correct timings ? .
i did work with the 50Hz PWM signal usually used with arduino , servo motors , ESCs , and stuff like that .
Did you?
Why did you not use the servo library?
what are the specifications beside the frequency
Pulse width.
if it's an 8 chanel PPM signal what are the correct timings ?
Normal servo timings center position 1.5 mS in a 20mS frame rate.
The servo library produces PPM and with the write microseconds method you can have any pulse width you want.
i did work with PWM without using the lib . and i also did work with it using the Servo lib .
this code is in assembly , so i cannot use a lib .
i know the specifications of PWM , i am working with a PPM signal now .
for example , what is the timing needed between pulses within the 20ms interval ? and does that change ?
or is it all standard and i should not worry ?
this code is in assembly , so i cannot use a lib .
What does that mean, of course you can use a library and call it from assembler, is this some sort of assignment?
needed between pulses within the 20ms interval ? and does that change ?
Not at all sure you have got PPM if you are asking that question. A PPM signal is a pulse, the width of that pulse determines the modulation information you are trying to pass to the other circuit, that pulse must repeat every 20mS. That is the leading edge of consecutive pulses must be separated by 20mS.
hey TOM , i actually did get to that in google , and did read some of it to .
i came here to make sure ,and to know about the stability of timings . thank you though TOM
So I assume you want to produce that with an Arduino, it would have been good to state this in the original question instead of going round the houses.
Now if it were me I would enlist a bit of hardware help in the form of a monostable set up to have a 0.5mS output. Then I would hammer it with an ISR driven from one of the counters. In each ISR the monostable is triggered and then the time for the next channel is put into the counter set to count down.
In that way it is all driven in the background and all you have to do is to alter the numbers in the delay list.