Timer ISR

מה המשמעות להמתין ל
COUNTER
של השעון

כאשר כבר הפסקנו את השעון?

ראו ערך תרגיל
10 – TestTimerIsr

מצד אחד היוזר לחץ
‘S’

כדי להפסיק את הספירה

והרי ברגע שלחץ עצרנו את השעון

מצד שני אנחנו עושים לולאת
WHILE
while (*TCNTO0 != 0);
כדי להמתין ל-

COUNTER

שיגיע ל-0

הכצעקטה?????????

Add Comment
6 Answer(s)

היי
אחרי שהיוזר לחץ
‘s’
אתה עוד לא עצרת את השעון.
התכנית תחכה שה
COUNTER
יסיים, יוציא אינטרפט ,ורק אז הוא יעצור את טיימר 4.

Answered on December 9, 2018.
Add Comment

כשלחצת
‘s’
אתה רק יצאת מהלולאה:
while (1)
{
ch = Util_Getch();
if (ch == ‘s’)
{
break;
}
}

 

אחכ צריך לטפל בטיימר:

if (ch==’s’)
{
*TCON&=~(TIMER4_AUTO_RELOAD); //disable auto reload for timer 4
*TCON&=~(TIMER4_START); //Timer 4 is stoped
ch = 0;
}

Answered on December 9, 2018.
Add Comment

היי
תודה על התשובה
אך כולי חולק עליה

כל פעם
בתוך ה
ISR
אנו בודקים האם לחצו על
‘s’
ואם גילינו שכן
אנו מייד מפסיקים את הטיימר
בעיה !

Answered on December 9, 2018.
Add Comment

נכון,
אחרי שלחצת
‘S’
אנחנו רוצים עוד אינטרפט אחד כדי להפסיק את הטיימר
לכן נחכה שה
COUNTER
יסיים:
while (*TCNTO0 != 0);
ככה נקבל עוד אינטרפט אחרון.
רק בפעם הזו שניכנס ל
ISR
התכנית תפסיק את הטיימר.
כי רק בפעם הזו שנכנסנו ל
ISR
התנאי
if (ch==’s’)
מתקיים

Answered on December 9, 2018.
Add Comment

שוב אני חולק על תשובתך….
אנו נכנסים ל

ISR

וכל פעם בודקים האם מישהו כבר לחץ על ה-

‘S’

אם כן

אז אנו עוצרים את השעון!!!

לראייה

RE: Timer ISR

 

כך שאן משמעות לבדוק אחרי את ערך ה

COUNTER

לא??????

Answered on December 9, 2018.
Add Comment

לא.

כי אתה עוד לא נכנסת לפני עם ערך
ch == ‘s’
.

רק אחרי שלחצו על
‘s’
אנחנו נחכה שה
COUNTER
יסיים (אחרת אנחנו נסיים את התכנית בלי שנכנסנו בפעם האחרונה כדי לעצור את הטיימר) , ורק אז נכנס עם ערך של
ch == ‘s’

ונפעל בהתאם.
ההמתנה שה
COUNTER
יסיים זה בעצם לוודא שאכן נשלח את ה
INT
האחרון הדרוש לעצירת הטיימר.
אם לא נחכה, לא ייצא לנו אינטרפט אחרון, לא נכנס לעולם ל
ISR
עם ערך של
ch == ‘s’
ונסיים את התכנית בלי לעצור את הטיימר

Answered on December 9, 2018.
Add Comment

Your Answer

By posting your answer, you agree to the privacy policy and terms of service.