eddy12345
Tilsluttet: 22. januar 2008 Stillinger: 4 Beliggenhed: Storbritannien
| 14 februar 2008 9:24 forståelse tidstællere i PIC16F84 | | |
|
| Hi guys,
Jeg har et problem, forsøger at få en tæller, som kan håndtere en bred vifte af tid. Hvis man antager, at min prescaler er 4 og jeg mov 231 i TMR0
Jeg får 4 (256-231) uS = 100uS
og hver gang det overloebsbeholdere, jeg forøge værdien af en tæller. I dette tilfælde vil det tage 100uS for hver count (indtil den maksimale værdi er nået, hvilket er 125).
Hvordan gør jeg en tæller, som kan håndtere værdier mellem 1 til 5000? Jeg vil gerne gøre det på denne måde, fordi jeg vil udarbejde et sæt tidsforsinkelse for effekt:
1) 0mS for 600 <count <5000 2) 4 ms for 0 <count <75 3) indkaldelse tabellen forsinkelse værdier for 75 <count <600 4) genstarte programmet count> 5000 |
|
adidav
Tilsluttet: 19. april 2006 Stillinger: 15 Hjulpet: 1 Beliggenhed: Rumænien
| 14 februar 2008 12:40 Re: forståelse tidstællere i PIC16F84 | | |
|
| Hi eddy12345,
Må ikke du bruger timer1. Er en 16bit timer, og du kan have tidsrum fra få os indtil ms.
Eksempel: Fquartz = 4MHz, Prescaler = 2
for TMR1 = 0 tiden er 131.07ms for TMR1 = 65500 tiden er 70us
Beregningerne blev foretaget ved hjælp af formlen: tid = ((Fquartz * Prescaler) / 4) * (65535 - TMR1), resultatet er i os.
Hilsner, ADI |
|