Hi Rob,

Some midrange PICs have the option of choosing 16 bit instead of 8 bit on 
timer0

I've found a difference in the prescaller for some timers. Timer 0 on both 
PICs have a 1:2 lowest prescaller ratio, where other timers are 1:1. This 
explained my trouble with TIMER0 in 16 bit mode on 18f4620. You should use 
timer1/2

How can the timer lib know what the ratio is without programming every PIC 
into the servo lib? Is it enough to go by type?

If your timer1 sample works, add it to jallib.

18F4620

T0PS2:T0PS0: Timer0 Prescaler Select bits
111 = 1:256 Prescale value
110 = 1:128 Prescale value
101 = 1:64 Prescale value
100 = 1:32 Prescale value
011 = 1:16 Prescale value
010 = 1:8 Prescale value
001 = 1:4 Prescale value
000 = 1:2 Prescale value



T1CKPS1:T1CKPS0: Timer1 Input Clock Prescale Select bits
11 = 1:8 Prescale value
10 = 1:4 Prescale value
01 = 1:2 Prescale value
00 = 1:1 Prescale value


-------------------------------
16f1718 

Prescaler Rate Select bits
1 : 2
1 : 4
1 : 8
1 : 16
1 : 32
1 : 64
1 : 128
1 : 256

T2OUTPS<3:0>: Timer2 Output Postscaler Select bits
1111 = 1:16 Postscaler
1110 = 1:15 Postscaler
1101 = 1:14 Postscaler
1100 = 1:13 Postscaler
1011 = 1:12 Postscaler
1010 = 1:11 Postscaler
1001 = 1:10 Postscaler
1000 = 1:9 Postscaler
0111 = 1:8 Postscaler
0110 = 1:7 Postscaler
0101 = 1:6 Postscaler
0100 = 1:5 Postscaler
0011 = 1:4 Postscaler
0010 = 1:3 Postscaler
0001 = 1:2 Postscaler
0000 = 1:1 Postscaler

On Saturday, January 23, 2016 at 2:54:42 PM UTC-5, RobH wrote:
>
>
> Hi Matt, 
>
> On 01/23/2016 04:42 PM, Matthew Schinkel wrote: 
> > Hi Rob, sounds like there is a difference with the PIC timer. Try 
> > sample 18f4620_timer3.jal on your PIC to see if you get the expected 
> > 1khz signal. 
> Could be an issue with the timer or with interrupt handling, or even the 
> compiler. 
>
> I'm afraid the 16f1718 has no Timer3 and the only 16-bit timer it has is 
> Timer1. 
> I used that and the output is 990 Hz (with Fosc = 20MHz), close enough I 
> would say.. 
>
> > I remember now that I tried timer0 on 16 bit mode with the servo 
> > library and got incorrect results. I never got around to 
> > troubleshooting. Normally timer0 is 8 bit on 18f4620/18f4550. I wonder 
> > if you are having a similar issue. I can take a look at this again. 
> > T0CON_T08BIT = 0 sets the timer to 16 bit. I'll try with my above 
> > timer sample. 
> All midrange PICsS have an 8-bits Timer0 (except the brand new 16f18xxx). 
> > 
> > I've always been able to troubleshoot without reading assembler. The 
> > math in JAL is tricky enough with this lib. Use your serial port to 
> > output values, and check the math against it. 
> I'll see what I can do. 
> > 
> > I've wondered if we need a timer library to provide a similar API for 
> > all timers. This lib would mostly just contain aliases for each timer. 
> Seems a good idea ... next issue: find a volunteer! 
>
> Regards, Rob. 
>
> -- 
> *Rob H*amerling - http://www.robh.nl 
>

-- 
You received this message because you are subscribed to the Google Groups 
"jallib" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/jallib.
For more options, visit https://groups.google.com/d/optout.

Reply via email to