eddy12345
Регистриран на: 22 Jan 2008 Мнения: 4 Местоположение: Великобритания
| 14-ти февруари 2008 8:24 разбиране таймери в PIC16F84 | | |
|
| Здравейте момчета,
Имам проблем се опитва да направи брояч, че може да се справи с широк диапазон от време. Ако приемем, че ми е 4 Prescaler и аз MOV 231 в TMR0
аз добивам 4 (256-231) ни = 100uS
и всеки път, когато същият е залято, и увеличаване на стойността на тезгяха. В този случай тя ще се 100uS за всеки брой (до максималната стойност са били достигнати, което е 125).
Как мога да направя един брояч, че може да се справи стойности от 1 до 5000? Искам тя да бъде по този начин, защото аз ще представи пакет от времезакъснението на производство:
1) 0mS за 600 <брой <5000 2) 4ms за 0 <брой <75 3) да призове незабавно стойности на масата за 75 <брой <600 4) брой рестартирате програмата> 5000 |
|
adidav
Регистриран на: 19-ти април 2006 Мнения: 15 Подпомогнат: 1 Местоположение: Румъния
| 14-ти февруари 2008 11:40 Re: разбирането таймери в PIC16F84 | | |
|
| Здравейте eddy12345,
Да не използвате timer1. Има една 16BIT таймер и вие може да има период от време от нас до няколко държави-членки.
Пример: Fquartz = 4MHz, Prescaler = 2
за TMR1 = 0 времето е 131.07ms за TMR1 = 65500 времето е 70us
Изчисленията се правят като се използва формулата: време = ((Fquartz * Prescaler) / 4) * (65535 - TMR1), резултатът е в нас.
Поздравления, Ади |
|