| Auteur | Bericht |
|---|
eddy12345
Geworden: 22 januari 2008 Berichten: 4 Locatie: Verenigd Koninkrijk
| 14 februari 2008 8:24 inzicht timers in PIC16F84 | | |
|
| Hi guys,
Ik heb een probleem probeert te maken een teller die overweg kan met een breed scala van tijd. Ervan uitgaande dat mijn prescaler is 4 en ik mov 231 in TMR0
Ik krijg 4 (256-231) Us = 100uS
en elke keer dat overflows, verhoog ik de waarde van een teller. In dit geval zal het duren 100uS voor elke tellen (tot de maximale waarde is bereikt, dat is 125).
Hoe maak ik een teller die kan omgaan waarden tussen 1 en 5000? Ik wil het zo te zijn want ik zal een reeks van vertragingen voor de output:
1) 0 ms voor 600 <count <5000 2) 4ms voor 0 <count <75 3) oproep tabel vertraging waarden voor 75 <count <600 4) het programma opnieuw count> 5000 |
|
| Terug naar boven | |
 |
Google AdSense

| 14 februari 2008 8:24 Advertenties | | |
|
|
|
|
| Terug naar boven | |
 |
adidav
Lid geworden: 19 april 2006 Berichten: 15 Geholpen: 1 Locatie: Roemenië
| 14 februari 2008 11:40 Re: inzicht timers in PIC16F84 | | |
|
| Hi eddy12345,
Je niet gebruik maken van de Timer1. Is een 16bit timer en je kunt periode hebben van een paar ons tot ms.
Voorbeeld: Fquartz = 4MHz, Prescaler = 2
voor TMR1 = 0 de tijd is 131.07ms voor TMR1 = 65500 is de tijd 70us
De berekening is gemaakt met behulp van de formule: time = ((* Fquartz Prescaler) / 4) * (65535 - TMR1), het resultaat is in ons.
Gegroet, ADi |
|
| Terug naar boven | |
 |