בעיקרון זה. הדרך בה אני עושה את זה עכשיו היא כאשר ה- TimerA מוגדר להפסקות שנייה אחת. אבל אני חושב שזה מאוד מעצבן. האם יש דרכים אחרות לעשות זאת?
אני רוצה בעצם להגדיר טיימרים בשעון הזה, כמו כיבוי עד שיעברו 40 שניות ...
בעיקרון זה. הדרך בה אני עושה את זה עכשיו היא כאשר ה- TimerA מוגדר להפסקות שנייה אחת. אבל אני חושב שזה מאוד מעצבן. האם יש דרכים אחרות לעשות זאת?
אני רוצה בעצם להגדיר טיימרים בשעון הזה, כמו כיבוי עד שיעברו 40 שניות ...
ישנם מכשירי MSP430 עם מתנד בעל עוצמה נמוכה המשתמשים בגביש שעון רגיל של 32.768 קילוהרץ ומיועדים במיוחד ליישום זה. אחד האופייני הוא MSP430F1101.
לא ברור לחלוטין אם אתה רוצה שעון בזמן אמת או שעון עצר (40 השניות שאתה מזכיר).
תוכל להשתמש ב RTC IC (שעון בזמן אמת), כמו NXP PCF8563. זו זמינה במספר חבילות, כולל גם ה DIL הישן וגם ה DFN קטן מאוד.
אבל אתה כנראה לא צריך RTC IC נפרד. הוא משמש בדרך כלל מכיוון שהוא צורך מעט כוח , ושאר המעגל יכול להתנתק בזמן שה- RTC ממשיך להפעיל סוללה או סופר-קאפ. ה- MSP430, לעומת זאת, הוא גם מכשיר בעל צריכת חשמל נמוכה, ויש לו מתנד בתדר נמוך שיכול לפעול על גבי אותו קריסטל 32.768 קילו-הרץ שהייתם משתמשים בו ל- RTC.
בפרויקט אחד היה לי את ה- MSP430 פועל ברציפות. גביש של 32 קילוהרץ, ובכל זאת הוא צורך פחות מ- 5 \ $ \ mu \ $ A. זה יותר מ- RTC (ה- PCF8563 זקוק רק ל 250 nA), אך זה יהיה מקובל ליישומים רבים.
מה הבעיה שלך עם הפרעה לשנה אחת? אם אתה רוצה לעשות שעון בזמן אמת, בכל מקרה תזדקק לתור זמן, בין אם נוצר באופן פנימי ובין אם מגיע מ- RTC חיצוני. בהפסקה תוכלו לבצע עדכונים נדרשים של מונים של שניות, דקות ושעה, ולהמתין להפסקה הבאה. אתה יכול אפילו לעבוד עם עשיריות שנייה אם כי עם 32.768kHz תהיה זו סטייה קלה. יהיו לך ארבע עשיריות שנייה או 3277 קרציות שעון, ואחריה עשירית מתוך 3278 קרציות, כדי לקבל בדיוק 1/2 שנייה, אז חזור על תבנית זו בפעם השנייה כדי להשלים שנייה אחת.
בדרך כלל שעון בזמן אמת נעשה על ידי בניית מודול שעון בזמן אמת למיקרו-בקר, או שימוש במודול שעון בזמן אמת חיצוני כגון DS1305 מבית Maxim.
בדרך כלל ניתן לתכנת אלה להפעיל הפרעה בזמן מוגדר מראש ולברוח מגביש 32.768KHz משלהם. לעתים קרובות יש להם מעגל גיבוי סוללות משלהם, וחלקם אף מכילים מעגלי טעינה.