| מחבר | הודעה |
|---|
eddy12345
הצטרף: 22 ינואר 2008 הודעות: 4 מיקום: בריטניה
| 14 פבואר 2008 8:24 טיימרים הבנה ב PIC16F84 | | |
|
| היי חבר 'ה,
יש לי בעיה מנסה לעשות נגד זה יכול להתמודד עם מגוון רחב של זמן. בהנחה prescaler שלי היא 4 ואני mov 231 לתוך TMR0
אני מקבל 4 (256-231) = לנו 100uS
ובכל פעם זה גולש, אני להגדיל את הערך של הנגד. במקרה זה יידרש 100uS עבור כל לספור (עד הערך המרבי כבר הגיע, וזה 125).
כיצד אוכל לבצע נגדית כי יכול להתמודד עם ערכים בין 1-5000? אני רוצה שזה יהיה ככה כי אני יהיה לייצר קבוצה של זמן עיכוב עבור הפלט:
1) 0mS עבור 600 <לספור <5000 2) 4ms עבור 0 <לספור <75 3) שיחת ערכי עיכוב שולחן 75 <לספור <600 4) לספור מחדש את התוכנית> 5000 |
|
| לראש הדף | |
 |
Google AdSense

| 14 פבואר 2008 8:24 מודעות | | |
|
|
|
|
| לראש הדף | |
 |
adidav
הצטרף: 19 אפריל 2006 הודעות: 15 עזר: 1 מיקום: רומניה
| 14 פבואר 2008 11:40 Re: שעוני הבנה ב PIC16F84 | | |
|
| היי eddy12345,
אתה לא להשתמש timer1. הוא טיימר 16bit ו אתה יכול לקבל תקופת זמן מן לנו עד כמה MS.
דוגמה: Fquartz = 4MHz, Prescaler = 2
עבור TMR1 = 0 הזמן הוא 131.07ms עבור TMR1 = 65500 הזמן הוא 70us
החישובים נעשה באמצעות הנוסחה: זמן = ((Fquartz * Prescaler) / 4) * (65535 - TMR1), התוצאה היא בנו.
ברכות, עדי |
|
| לראש הדף | |
 |