Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

PIC18F45K80 Timer 0

Status
Not open for further replies.

KlausST

Super Moderator
Staff member
Advanced Member level 7
Joined
Apr 17, 2014
Messages
23,259
Helped
4,741
Reputation
9,503
Reaction score
5,126
Trophy points
1,393
Activity points
154,074
Hi,

T_max = fixed_prescaler x max_selectable_prescaler x 2^counter_bit_width / fosc

Klaus
 

Djsarkar

Member level 3
Member level 3
Joined
Jul 27, 2020
Messages
55
Helped
0
Reputation
0
Reaction score
1
Trophy points
8
Activity points
301
Hi,

T_max = fixed_prescaler x max_selectable_prescaler x 2^counter_bit_width / fosc

Klaus
Fixed prescaler _ five bit
2^counter_bit_width / fosc =2^8/20 MHz

What would be max_selectable_prescaler?

Is the input frequency 20MHz for Timer 0?
 

KlausST

Super Moderator
Staff member
Advanced Member level 7
Joined
Apr 17, 2014
Messages
23,259
Helped
4,741
Reputation
9,503
Reaction score
5,126
Trophy points
1,393
Activity points
154,074
Hi,

What would be max_selectable_prescaler?

Is the input frequency 20MHz for Timer 0?
If I needed to know this .. have have to read the datasheet.
But you don´t want me to read the datasheet for you?

Klaus
 

paulfjujo

Advanced Member level 4
Advanced Member level 4
Joined
Jun 9, 2008
Messages
1,459
Helped
296
Reputation
592
Reaction score
279
Trophy points
1,363
Location
France 01800
Activity points
10,409
hello,


look at the mikroE tool for Timer

18F timer0 16bits -> maxima is 3355mS with prescaler 1/256
or with an excel sheet
with prescaler 1/8 -> divide by 32
 

Attachments

  • max_timer0_at20MHz_18F.jpg
    max_timer0_at20MHz_18F.jpg
    56.2 KB · Views: 69
  • Capture.JPG
    Capture.JPG
    128.9 KB · Views: 65

    Djsarkar

    Points: 2
    Helpful Answer Positive Rating

Djsarkar

Member level 3
Member level 3
Joined
Jul 27, 2020
Messages
55
Helped
0
Reputation
0
Reaction score
1
Trophy points
8
Activity points
301
Hi,

T_max = fixed_prescaler x max_selectable_prescaler x 2^counter_bit_width / fosc

Klaus
I don't understand your formula

lets assume Timer 0 with 8 bit prescale , fosc = 2 Mhz

fixed_prescaler = 1 : 32
max_selectable_prescaler = 1:256


2^counter_bit_width/ fosc = 2^8/ 2000 000 = 256/ 2000 000 = 0.000128


T_max = 1/32 * 1/256 * 0.000128 = 0.03125 * 0.00390625 * 0.000128 = 0.000000015625
 

KlausST

Super Moderator
Staff member
Advanced Member level 7
Joined
Apr 17, 2014
Messages
23,259
Helped
4,741
Reputation
9,503
Reaction score
5,126
Trophy points
1,393
Activity points
154,074
Hi,

I did not verify your values..I just use them:

What I meant is:
T_max = 32 * 256 * 0.000128s = 1.048s
 

Djsarkar

Member level 3
Member level 3
Joined
Jul 27, 2020
Messages
55
Helped
0
Reputation
0
Reaction score
1
Trophy points
8
Activity points
301
Hi,

I did not verify your values..I just use them:

What I meant is:
T_max = 32 * 256 * 0.000128s = 1.048s
I want to verify time

Fosc/4 with an 8MHz clock, that is 2MHz.

I have attached page From datasheet max_selectable_prescaler = 1:256

and I am setting fixed_prescaler = 1 : 32
 

Attachments

  • IMG_20200928_183558.jpg
    IMG_20200928_183558.jpg
    399.5 KB · Views: 127
Last edited:

KlausST

Super Moderator
Staff member
Advanced Member level 7
Joined
Apr 17, 2014
Messages
23,259
Helped
4,741
Reputation
9,503
Reaction score
5,126
Trophy points
1,393
Activity points
154,074
Hi,

A fixed prescaler is fixed, thus and can´t be "set". Some microcontroller have, some don´t. I´m not familiar with your microcontroller. Read the datasheet.

You may set the "selectable" prescaler to 1:256.

Klaus
 

Djsarkar

Member level 3
Member level 3
Joined
Jul 27, 2020
Messages
55
Helped
0
Reputation
0
Reaction score
1
Trophy points
8
Activity points
301
Hi,

A fixed prescaler is fixed, thus and can´t be "set". Some microcontroller have, some don´t. I´m not familiar with your microcontroller. Read the datasheet.

Klaus
Thanks K, I have looked datasheet I don't think there is fixed prescaler option available
 

Djsarkar

Member level 3
Member level 3
Joined
Jul 27, 2020
Messages
55
Helped
0
Reputation
0
Reaction score
1
Trophy points
8
Activity points
301
Hi,

I did not verify your values..I just use them:

What I meant is:
T_max = 32 * 256 * 0.000128s = 1.048s
8 bit Timer with 1:256 Prescale value

T_max = 256 * 0.000128s = 0.0032768s

We need to load value into the TMR0 registers (low 8 bits into TMR0L and high 8 bits into TMR0H).

What would be timer register value for 0.0032768s ?
 

KlausST

Super Moderator
Staff member
Advanced Member level 7
Joined
Apr 17, 2014
Messages
23,259
Helped
4,741
Reputation
9,503
Reaction score
5,126
Trophy points
1,393
Activity points
154,074
Hi,

I can´t answer without reading the datasheet.
I tried, but now I recognize that in the headline you talk about PIC18F45k80, but the uploaded page is from PIC18F66K80.

So I opened PIC18F66K80 datasheet...and Fig. 13-1 and Fig. 13-2 clearly shows "Fosc/4" as clock input. Which is a fixed 1:4 divider.
Fosc never - undivided - comes to the counter.

Klaus
 

paulfjujo

Advanced Member level 4
Advanced Member level 4
Joined
Jun 9, 2008
Messages
1,459
Helped
296
Reputation
592
Reaction score
279
Trophy points
1,363
Location
France 01800
Activity points
10,409
hello,

see post#7 !

What would be timer register value for 0.0032768s ?
=> 3 276,8 µS

Code:
//Timer0  16bits !
//Prescaler 1:1; TMR0 Preload = 49151; Actual Interrupt Time : 3.277 ms
void InitTimer0(){
  T0CON     = 0x88;
  TMR0H     = 0xBF;   //191
  TMR0L     = 0xFF;   /255
  GIE_bit     = 1;
  TMR0IE_bit     = 1;
}

i did not see any Postscaler for Tirmer0 ...so

20MHz --> 4/20= 0.2µS per cycle
TMR0 value= (0xBF<<8) +255 = 48896 + 255 = 49151
(65536-49151) *0.2 = 3276.8µS
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Top