Is this lib usefull or not? I think it's better then nothing. I would
like to know so I may either continue (and add more servo's) or scrap
the idea. Could this one be added untill a newer, better version gets
created? I don't mind removing my lib when a better version comes out.
I already have at least one other person using my lib whom says it
works great. I also think it will attract many users if I make a
tutorial.

I would like to address the delay issue:

Using the timer, there will be a max of 2.5ms delay. Is this really
that big of a problem? surely there is a better way, however, I have
noticed 1ms delay's in other libraries. For example, EEPROM writes
require a 1ms delay.

Without a timer, the user can specify how long the delay will be after
the pulse. So, therefore, the user can specify 0 or 1ms delay after
the pulse. This would also make a max delay of 2.5 to 3ms.

I could set this delay in the lib instead of allowing the user to
choose, but the main program it's self is a delay anyways, therefore a
0ms delay should be available to the user.

Matt.

On Jan 21, 5:42 pm, mattschinkel <[email protected]> wrote:
> Yes, your right, it does stop your program for a min of 2.5ms (with
> the timer enabled). The number of times this stops your program for
> 2.5ms is up to you. For example, you can stop your program for 2.5ms
> (to send a pulse) every 5ms or every 100ms.
>
> The procedure without a timer would be usefull for PIC's that don't
> have timers, or of someone wants to use many servo's on an external
> PIC. This may not be needed if we can get 8 servo's on one timer.
>
> How can I get a timer to run a procedure when the timer is up without
> polling it? If start the pulse, and the user's program takes too long,
> it will move the servo to the wrong position.
>
> Anyways, at least this is a start.
>
> Matt.
>
> On Jan 21, 4:42 pm, Joep Suijs <[email protected]> wrote:
>
>
>
> > Hi Matt,
>
> > You are right, a servo lib is long overdue. The thing is, that its not
> > so simple to create a lib that properly supports a servo without
> > putting severe limits on you application.
> > The most critical issue is stability of the pulse. Even one interrupt
> > during the delay will move the servo (slightly). And applications that
> > use serial or i2c can't afford to disable interrupt for 2.5 ms.
> > What could reduce the chance of a disturbance is to use a timer for
> > the pulse. This way only a interrupt at the end of the pulse will give
> > a disturbance, not any interrupt.
>
> > If I look at your code, the use_timer version is useful and it could
> > be improved if the actual pulse is also timer-based. And multiple
> > servos could be supported (up to 20ms / 2.5ms = 8 servos).
> > The non-timer version is not very useful IMO. It blocks the cpu for
> > 20ms and must be called (almost) immediately after it returns.
>
> > I once saw a system that used a 10us interrupt to create servo pulse
> > timing. This is a heavy load (if feasible) for a pic. A more complex
> > but better solution would be to set a timer to the desired value for
> > each pulse and have it generate an interrupt. Maybe this gives a
> > smooth pulse with other interrupts and otherwise it gives a base to
> > work around this: most (all?) interrupt libs will work with the
> > specific IE flag false, if you poll the appropriate ISR continuously.
>
> > Joep
>
> > 2010/1/21 mattschinkel <[email protected]>:
>
> > > I have seen that many people on jallist are looking for servo control
> > > and have started a lib. Please have a look.
>
> > > Currently only supports one servo, but it should be easy to add many.
>
> > > Thanks,
> > > Matt.
>
> > > --
> > > You received this message because you are subscribed to the Google Groups 
> > > "jallib" group.
> > > To post to this group, send email to [email protected].
> > > To unsubscribe from this group, send email to 
> > > [email protected].
> > > For more options, visit this group 
> > > athttp://groups.google.com/group/jallib?hl=en.-Hide quoted text -
>
> > - Show quoted text -- Hide quoted text -
>
> - Show quoted text -

-- 
You received this message because you are subscribed to the Google Groups 
"jallib" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/jallib?hl=en.

Reply via email to