Reply by Patrick Reitelbach July 13, 20042004-07-13
piclist.com has some C examples.

join the MiniSumoMarkIII group and look in the message base (#3440)
and the files. examples there.

--- In , honamos@y... wrote:
> Any ideas? > > --- In , "Patrick Reitelbach"
> > <preitelbach@y...> wrote:
> > > It can be found at www.polydevelopment.com/pd_code/servo.
> > > my_servo_2_channel.asm.
> > >
> > > pr
> > > --- In , honamos@y... wrote:
> > > > This is indeed for RC Servo Control. Do you think you could
> > pass
> > > > along that code?
> > > >
> > > > Thanks,
> > > > Shamoon
> > > >
> > > > --- In , "Patrick Reitelbach"
> > > > <preitelbach@y...> wrote:
> > > > > I do not think you will be able to get the numbers you want
> > with
> > > a
> > > > > standard timer setup. The PWM cannot get that slow with a
> > 8Mhz
> > > > > clock. I made a 60Hz source with a 16F628 using its
> internal
> > > > 37Khz
> > > > > clock.
> > > > >
> > > > > Maybe you could setup a timer/interrupt for your required
> > control
> > > > > step value (how fine of control do you want?) and count the
> > > > > interrupts in an isr to control your output(s). Like 100us
> > > > > resolution gives 12 steps between 600 and 1800us. Set a
> timer
> > to
> > > > > overflow every 100us and do the counting.
> > > > >
> > > > > Is this by chance to be used for RC servo control?
> > > > >
> > > > > I have an assembly program for the 628 which controls 2
> servos
> > at
> > > > > 4Mhz clock. With 8 Mhz you could control 4. I process all
> > servo
> > > > > outputs in parallel vs serially (one at a time). The
serial
> > > > methods
> > > > > I looked at were cpu time hogs. This means for 2 ms about
> 90%
> > of
> > > > cpu
> > > > > cycles are used for servo control. Other tasks have the
cpu
> > 100%
> > > > for
> > > > > the remaining 18 ms.
> > > > >
> > > > > pr
> > > > > --- In , honamos@y... wrote:
> > > > > > Nope, this is just one of the various things. The clock
> > speed
> > > I
> > > > > > have is 8Mhz.
> > > > > >
> > > > > > --- In , "Patrick Reitelbach"
> > > > > > <preitelbach@y...> wrote:
> > > > > > > Is this the only thing the pic will be doing? What is
> the
> > > > clock
> > > > > > > speed you want to use?
> > > > > > > pr
> > > > > > >
> > > > > > > --- In , honamos@y... wrote:
> > > > > > > > That's about right, yeah... Ideas?
> > > > > > > >
> > > > > > > > Shamoon
> > > > > > > >
> > > > > > > > --- In , "Patrick Reitelbach"
> > > > > > > > <preitelbach@y...> wrote:
> > > > > > > > > You want a pulse every 20ms and control the pulse
> > width
> > > > from
> > > > > > > 600us
> > > > > > > > to
> > > > > > > > > 1800us. Is this correct?
> > > > > > > > >
> > > > > > > > > pr
> > > > > > > > > --- In , honamos@y... wrote:
> > > > > > > > > > Any ideas?
> > > > > > > > > >
> > > > > > > > > > --- In , honamos@y...
wrote:
> > > > > > > > > > > Hey now,
> > > > > > > > > > > I have the PIC18F458 and I'm using the CCS C
> > > > compiler.
> > > > > My
> > > > > > > > > > question
> > > > > > > > > > > is simple. I want to output a square wave at
> 50Hz
> > > and
> > > > > > vary
> > > > > > > > the
> > > > > > > > > > duty
> > > > > > > > > > > cycle between 3% and 9%. Any ideas how to
> > accomplish
> > > > > > this?
> > > > > > > I
> > > > > > > > > > know
> > > > > > > > > > > I should use "SETUP_TIMER", I'm just not sure
> how.
> > > > > > > > > > >
> > > > > > > > > > > Thanks,
> > > > > > > > > > > Shamoon




Reply by July 12, 20042004-07-12
Any ideas? > --- In , "Patrick Reitelbach"
> <preitelbach@y...> wrote:
> > It can be found at www.polydevelopment.com/pd_code/servo.
> > my_servo_2_channel.asm.
> >
> > pr
> > --- In , honamos@y... wrote:
> > > This is indeed for RC Servo Control. Do you think you could
> pass
> > > along that code?
> > >
> > > Thanks,
> > > Shamoon
> > >
> > > --- In , "Patrick Reitelbach"
> > > <preitelbach@y...> wrote:
> > > > I do not think you will be able to get the numbers you want
> with
> > a
> > > > standard timer setup. The PWM cannot get that slow with a
> 8Mhz
> > > > clock. I made a 60Hz source with a 16F628 using its
internal
> > > 37Khz
> > > > clock.
> > > >
> > > > Maybe you could setup a timer/interrupt for your required
> control
> > > > step value (how fine of control do you want?) and count the
> > > > interrupts in an isr to control your output(s). Like 100us
> > > > resolution gives 12 steps between 600 and 1800us. Set a
timer
> to
> > > > overflow every 100us and do the counting.
> > > >
> > > > Is this by chance to be used for RC servo control?
> > > >
> > > > I have an assembly program for the 628 which controls 2
servos
> at
> > > > 4Mhz clock. With 8 Mhz you could control 4. I process all
> servo
> > > > outputs in parallel vs serially (one at a time). The serial
> > > methods
> > > > I looked at were cpu time hogs. This means for 2 ms about
90%
> of
> > > cpu
> > > > cycles are used for servo control. Other tasks have the cpu
> 100%
> > > for
> > > > the remaining 18 ms.
> > > >
> > > > pr
> > > > --- In , honamos@y... wrote:
> > > > > Nope, this is just one of the various things. The clock
> speed
> > I
> > > > > have is 8Mhz.
> > > > >
> > > > > --- In , "Patrick Reitelbach"
> > > > > <preitelbach@y...> wrote:
> > > > > > Is this the only thing the pic will be doing? What is
the
> > > clock
> > > > > > speed you want to use?
> > > > > > pr
> > > > > >
> > > > > > --- In , honamos@y... wrote:
> > > > > > > That's about right, yeah... Ideas?
> > > > > > >
> > > > > > > Shamoon
> > > > > > >
> > > > > > > --- In , "Patrick Reitelbach"
> > > > > > > <preitelbach@y...> wrote:
> > > > > > > > You want a pulse every 20ms and control the pulse
> width
> > > from
> > > > > > 600us
> > > > > > > to
> > > > > > > > 1800us. Is this correct?
> > > > > > > >
> > > > > > > > pr
> > > > > > > > --- In , honamos@y... wrote:
> > > > > > > > > Any ideas?
> > > > > > > > >
> > > > > > > > > --- In , honamos@y... wrote:
> > > > > > > > > > Hey now,
> > > > > > > > > > I have the PIC18F458 and I'm using the CCS C
> > > compiler.
> > > > My
> > > > > > > > > question
> > > > > > > > > > is simple. I want to output a square wave at
50Hz
> > and
> > > > > vary
> > > > > > > the
> > > > > > > > > duty
> > > > > > > > > > cycle between 3% and 9%. Any ideas how to
> accomplish
> > > > > this?
> > > > > > I
> > > > > > > > > know
> > > > > > > > > > I should use "SETUP_TIMER", I'm just not sure
how.
> > > > > > > > > >
> > > > > > > > > > Thanks,
> > > > > > > > > > Shamoon





Reply by July 9, 20042004-07-09
Anything in C? --- In , "Patrick Reitelbach"
<preitelbach@y...> wrote:
> It can be found at www.polydevelopment.com/pd_code/servo.
> my_servo_2_channel.asm.
>
> pr
> --- In , honamos@y... wrote:
> > This is indeed for RC Servo Control. Do you think you could
pass
> > along that code?
> >
> > Thanks,
> > Shamoon
> >
> > --- In , "Patrick Reitelbach"
> > <preitelbach@y...> wrote:
> > > I do not think you will be able to get the numbers you want
with
> a
> > > standard timer setup. The PWM cannot get that slow with a
8Mhz
> > > clock. I made a 60Hz source with a 16F628 using its internal
> > 37Khz
> > > clock.
> > >
> > > Maybe you could setup a timer/interrupt for your required
control
> > > step value (how fine of control do you want?) and count the
> > > interrupts in an isr to control your output(s). Like 100us
> > > resolution gives 12 steps between 600 and 1800us. Set a timer
to
> > > overflow every 100us and do the counting.
> > >
> > > Is this by chance to be used for RC servo control?
> > >
> > > I have an assembly program for the 628 which controls 2 servos
at
> > > 4Mhz clock. With 8 Mhz you could control 4. I process all
servo
> > > outputs in parallel vs serially (one at a time). The serial
> > methods
> > > I looked at were cpu time hogs. This means for 2 ms about 90%
of
> > cpu
> > > cycles are used for servo control. Other tasks have the cpu
100%
> > for
> > > the remaining 18 ms.
> > >
> > > pr
> > > --- In , honamos@y... wrote:
> > > > Nope, this is just one of the various things. The clock
speed
> I
> > > > have is 8Mhz.
> > > >
> > > > --- In , "Patrick Reitelbach"
> > > > <preitelbach@y...> wrote:
> > > > > Is this the only thing the pic will be doing? What is the
> > clock
> > > > > speed you want to use?
> > > > > pr
> > > > >
> > > > > --- In , honamos@y... wrote:
> > > > > > That's about right, yeah... Ideas?
> > > > > >
> > > > > > Shamoon
> > > > > >
> > > > > > --- In , "Patrick Reitelbach"
> > > > > > <preitelbach@y...> wrote:
> > > > > > > You want a pulse every 20ms and control the pulse
width
> > from
> > > > > 600us
> > > > > > to
> > > > > > > 1800us. Is this correct?
> > > > > > >
> > > > > > > pr
> > > > > > > --- In , honamos@y... wrote:
> > > > > > > > Any ideas?
> > > > > > > >
> > > > > > > > --- In , honamos@y... wrote:
> > > > > > > > > Hey now,
> > > > > > > > > I have the PIC18F458 and I'm using the CCS C
> > compiler.
> > > My
> > > > > > > > question
> > > > > > > > > is simple. I want to output a square wave at 50Hz
> and
> > > > vary
> > > > > > the
> > > > > > > > duty
> > > > > > > > > cycle between 3% and 9%. Any ideas how to
accomplish
> > > > this?
> > > > > I
> > > > > > > > know
> > > > > > > > > I should use "SETUP_TIMER", I'm just not sure how.
> > > > > > > > >
> > > > > > > > > Thanks,
> > > > > > > > > Shamoon





Reply by Patrick Reitelbach July 9, 20042004-07-09
It can be found at www.polydevelopment.com/pd_code/servo.
my_servo_2_channel.asm.

pr
--- In , honamos@y... wrote:
> This is indeed for RC Servo Control. Do you think you could pass
> along that code?
>
> Thanks,
> Shamoon
>
> --- In , "Patrick Reitelbach"
> <preitelbach@y...> wrote:
> > I do not think you will be able to get the numbers you want with
a
> > standard timer setup. The PWM cannot get that slow with a 8Mhz
> > clock. I made a 60Hz source with a 16F628 using its internal
> 37Khz
> > clock.
> >
> > Maybe you could setup a timer/interrupt for your required control
> > step value (how fine of control do you want?) and count the
> > interrupts in an isr to control your output(s). Like 100us
> > resolution gives 12 steps between 600 and 1800us. Set a timer to
> > overflow every 100us and do the counting.
> >
> > Is this by chance to be used for RC servo control?
> >
> > I have an assembly program for the 628 which controls 2 servos at
> > 4Mhz clock. With 8 Mhz you could control 4. I process all servo
> > outputs in parallel vs serially (one at a time). The serial
> methods
> > I looked at were cpu time hogs. This means for 2 ms about 90% of
> cpu
> > cycles are used for servo control. Other tasks have the cpu 100%
> for
> > the remaining 18 ms.
> >
> > pr
> > --- In , honamos@y... wrote:
> > > Nope, this is just one of the various things. The clock speed
I
> > > have is 8Mhz.
> > >
> > > --- In , "Patrick Reitelbach"
> > > <preitelbach@y...> wrote:
> > > > Is this the only thing the pic will be doing? What is the
> clock
> > > > speed you want to use?
> > > > pr
> > > >
> > > > --- In , honamos@y... wrote:
> > > > > That's about right, yeah... Ideas?
> > > > >
> > > > > Shamoon
> > > > >
> > > > > --- In , "Patrick Reitelbach"
> > > > > <preitelbach@y...> wrote:
> > > > > > You want a pulse every 20ms and control the pulse width
> from
> > > > 600us
> > > > > to
> > > > > > 1800us. Is this correct?
> > > > > >
> > > > > > pr
> > > > > > --- In , honamos@y... wrote:
> > > > > > > Any ideas?
> > > > > > >
> > > > > > > --- In , honamos@y... wrote:
> > > > > > > > Hey now,
> > > > > > > > I have the PIC18F458 and I'm using the CCS C
> compiler.
> > My
> > > > > > > question
> > > > > > > > is simple. I want to output a square wave at 50Hz
and
> > > vary
> > > > > the
> > > > > > > duty
> > > > > > > > cycle between 3% and 9%. Any ideas how to accomplish
> > > this?
> > > > I
> > > > > > > know
> > > > > > > > I should use "SETUP_TIMER", I'm just not sure how.
> > > > > > > >
> > > > > > > > Thanks,
> > > > > > > > Shamoon





Reply by rtstofer July 8, 20042004-07-08

I think there was a discussion within the last month or so over on
the MiniSumo Mark III group about using one of the times to generate
servo timing. Looked like it would work very well.

--- In , honamos@y... wrote:
> This is indeed for RC Servo Control. Do you think you could pass
> along that code?
>
> Thanks,
> Shamoon
>
> --- In , "Patrick Reitelbach"
> <preitelbach@y...> wrote:
> > I do not think you will be able to get the numbers you want with
a
> > standard timer setup. The PWM cannot get that slow with a 8Mhz
> > clock. I made a 60Hz source with a 16F628 using its internal
> 37Khz
> > clock.
> >
> > Maybe you could setup a timer/interrupt for your required
control
> > step value (how fine of control do you want?) and count the
> > interrupts in an isr to control your output(s). Like 100us
> > resolution gives 12 steps between 600 and 1800us. Set a timer
to
> > overflow every 100us and do the counting.
> >
> > Is this by chance to be used for RC servo control?
> >
> > I have an assembly program for the 628 which controls 2 servos
at
> > 4Mhz clock. With 8 Mhz you could control 4. I process all
servo
> > outputs in parallel vs serially (one at a time). The serial
> methods
> > I looked at were cpu time hogs. This means for 2 ms about 90%
of
> cpu
> > cycles are used for servo control. Other tasks have the cpu
100%
> for
> > the remaining 18 ms.
> >
> > pr
> > --- In , honamos@y... wrote:
> > > Nope, this is just one of the various things. The clock speed
I
> > > have is 8Mhz.
> > >
> > > --- In , "Patrick Reitelbach"
> > > <preitelbach@y...> wrote:
> > > > Is this the only thing the pic will be doing? What is the
> clock
> > > > speed you want to use?
> > > > pr
> > > >
> > > > --- In , honamos@y... wrote:
> > > > > That's about right, yeah... Ideas?
> > > > >
> > > > > Shamoon
> > > > >
> > > > > --- In , "Patrick Reitelbach"
> > > > > <preitelbach@y...> wrote:
> > > > > > You want a pulse every 20ms and control the pulse width
> from
> > > > 600us
> > > > > to
> > > > > > 1800us. Is this correct?
> > > > > >
> > > > > > pr
> > > > > > --- In , honamos@y... wrote:
> > > > > > > Any ideas?
> > > > > > >
> > > > > > > --- In , honamos@y... wrote:
> > > > > > > > Hey now,
> > > > > > > > I have the PIC18F458 and I'm using the CCS C
> compiler.
> > My
> > > > > > > question
> > > > > > > > is simple. I want to output a square wave at 50Hz
and
> > > vary
> > > > > the
> > > > > > > duty
> > > > > > > > cycle between 3% and 9%. Any ideas how to
accomplish
> > > this?
> > > > I
> > > > > > > know
> > > > > > > > I should use "SETUP_TIMER", I'm just not sure how.
> > > > > > > >
> > > > > > > > Thanks,
> > > > > > > > Shamoon




Reply by July 8, 20042004-07-08
This is indeed for RC Servo Control. Do you think you could pass
along that code?

Thanks,
Shamoon

--- In , "Patrick Reitelbach"
<preitelbach@y...> wrote:
> I do not think you will be able to get the numbers you want with a
> standard timer setup. The PWM cannot get that slow with a 8Mhz
> clock. I made a 60Hz source with a 16F628 using its internal
37Khz
> clock.
>
> Maybe you could setup a timer/interrupt for your required control
> step value (how fine of control do you want?) and count the
> interrupts in an isr to control your output(s). Like 100us
> resolution gives 12 steps between 600 and 1800us. Set a timer to
> overflow every 100us and do the counting.
>
> Is this by chance to be used for RC servo control?
>
> I have an assembly program for the 628 which controls 2 servos at
> 4Mhz clock. With 8 Mhz you could control 4. I process all servo
> outputs in parallel vs serially (one at a time). The serial
methods
> I looked at were cpu time hogs. This means for 2 ms about 90% of
cpu
> cycles are used for servo control. Other tasks have the cpu 100%
for
> the remaining 18 ms.
>
> pr
> --- In , honamos@y... wrote:
> > Nope, this is just one of the various things. The clock speed I
> > have is 8Mhz.
> >
> > --- In , "Patrick Reitelbach"
> > <preitelbach@y...> wrote:
> > > Is this the only thing the pic will be doing? What is the
clock
> > > speed you want to use?
> > > pr
> > >
> > > --- In , honamos@y... wrote:
> > > > That's about right, yeah... Ideas?
> > > >
> > > > Shamoon
> > > >
> > > > --- In , "Patrick Reitelbach"
> > > > <preitelbach@y...> wrote:
> > > > > You want a pulse every 20ms and control the pulse width
from
> > > 600us
> > > > to
> > > > > 1800us. Is this correct?
> > > > >
> > > > > pr
> > > > > --- In , honamos@y... wrote:
> > > > > > Any ideas?
> > > > > >
> > > > > > --- In , honamos@y... wrote:
> > > > > > > Hey now,
> > > > > > > I have the PIC18F458 and I'm using the CCS C
compiler.
> My
> > > > > > question
> > > > > > > is simple. I want to output a square wave at 50Hz and
> > vary
> > > > the
> > > > > > duty
> > > > > > > cycle between 3% and 9%. Any ideas how to accomplish
> > this?
> > > I
> > > > > > know
> > > > > > > I should use "SETUP_TIMER", I'm just not sure how.
> > > > > > >
> > > > > > > Thanks,
> > > > > > > Shamoon





Reply by Patrick Reitelbach July 8, 20042004-07-08
I do not think you will be able to get the numbers you want with a
standard timer setup. The PWM cannot get that slow with a 8Mhz
clock. I made a 60Hz source with a 16F628 using its internal 37Khz
clock.

Maybe you could setup a timer/interrupt for your required control
step value (how fine of control do you want?) and count the
interrupts in an isr to control your output(s). Like 100us
resolution gives 12 steps between 600 and 1800us. Set a timer to
overflow every 100us and do the counting.

Is this by chance to be used for RC servo control?

I have an assembly program for the 628 which controls 2 servos at
4Mhz clock. With 8 Mhz you could control 4. I process all servo
outputs in parallel vs serially (one at a time). The serial methods
I looked at were cpu time hogs. This means for 2 ms about 90% of cpu
cycles are used for servo control. Other tasks have the cpu 100% for
the remaining 18 ms.

pr
--- In , honamos@y... wrote:
> Nope, this is just one of the various things. The clock speed I
> have is 8Mhz.
>
> --- In , "Patrick Reitelbach"
> <preitelbach@y...> wrote:
> > Is this the only thing the pic will be doing? What is the clock
> > speed you want to use?
> > pr
> >
> > --- In , honamos@y... wrote:
> > > That's about right, yeah... Ideas?
> > >
> > > Shamoon
> > >
> > > --- In , "Patrick Reitelbach"
> > > <preitelbach@y...> wrote:
> > > > You want a pulse every 20ms and control the pulse width from
> > 600us
> > > to
> > > > 1800us. Is this correct?
> > > >
> > > > pr
> > > > --- In , honamos@y... wrote:
> > > > > Any ideas?
> > > > >
> > > > > --- In , honamos@y... wrote:
> > > > > > Hey now,
> > > > > > I have the PIC18F458 and I'm using the CCS C compiler.
My
> > > > > question
> > > > > > is simple. I want to output a square wave at 50Hz and
> vary
> > > the
> > > > > duty
> > > > > > cycle between 3% and 9%. Any ideas how to accomplish
> this?
> > I
> > > > > know
> > > > > > I should use "SETUP_TIMER", I'm just not sure how.
> > > > > >
> > > > > > Thanks,
> > > > > > Shamoon





Reply by July 8, 20042004-07-08
Nope, this is just one of the various things. The clock speed I
have is 8Mhz.

--- In , "Patrick Reitelbach"
<preitelbach@y...> wrote:
> Is this the only thing the pic will be doing? What is the clock
> speed you want to use?
> pr
>
> --- In , honamos@y... wrote:
> > That's about right, yeah... Ideas?
> >
> > Shamoon
> >
> > --- In , "Patrick Reitelbach"
> > <preitelbach@y...> wrote:
> > > You want a pulse every 20ms and control the pulse width from
> 600us
> > to
> > > 1800us. Is this correct?
> > >
> > > pr
> > > --- In , honamos@y... wrote:
> > > > Any ideas?
> > > >
> > > > --- In , honamos@y... wrote:
> > > > > Hey now,
> > > > > I have the PIC18F458 and I'm using the CCS C compiler. My
> > > > question
> > > > > is simple. I want to output a square wave at 50Hz and
vary
> > the
> > > > duty
> > > > > cycle between 3% and 9%. Any ideas how to accomplish
this?
> I
> > > > know
> > > > > I should use "SETUP_TIMER", I'm just not sure how.
> > > > >
> > > > > Thanks,
> > > > > Shamoon





Reply by Patrick Reitelbach July 8, 20042004-07-08
Is this the only thing the pic will be doing? What is the clock
speed you want to use?
pr

--- In , honamos@y... wrote:
> That's about right, yeah... Ideas?
>
> Shamoon
>
> --- In , "Patrick Reitelbach"
> <preitelbach@y...> wrote:
> > You want a pulse every 20ms and control the pulse width from
600us
> to
> > 1800us. Is this correct?
> >
> > pr
> > --- In , honamos@y... wrote:
> > > Any ideas?
> > >
> > > --- In , honamos@y... wrote:
> > > > Hey now,
> > > > I have the PIC18F458 and I'm using the CCS C compiler. My
> > > question
> > > > is simple. I want to output a square wave at 50Hz and vary
> the
> > > duty
> > > > cycle between 3% and 9%. Any ideas how to accomplish this?
I
> > > know
> > > > I should use "SETUP_TIMER", I'm just not sure how.
> > > >
> > > > Thanks,
> > > > Shamoon





Reply by July 8, 20042004-07-08
That's about right, yeah... Ideas?

Shamoon

--- In , "Patrick Reitelbach"
<preitelbach@y...> wrote:
> You want a pulse every 20ms and control the pulse width from 600us
to
> 1800us. Is this correct?
>
> pr
> --- In , honamos@y... wrote:
> > Any ideas?
> >
> > --- In , honamos@y... wrote:
> > > Hey now,
> > > I have the PIC18F458 and I'm using the CCS C compiler. My
> > question
> > > is simple. I want to output a square wave at 50Hz and vary
the
> > duty
> > > cycle between 3% and 9%. Any ideas how to accomplish this? I
> > know
> > > I should use "SETUP_TIMER", I'm just not sure how.
> > >
> > > Thanks,
> > > Shamoon