תוכן עניינים:
- שלב 1: תובנה
- שלב 2: אתחול יציאות
- שלב 3: הספק נמוך במיוחד
- שלב 4: טיימר
- שלב 5: מצב צריכת חשמל נמוכה
- שלב 6: טיימר ISR
- שלב 7: הפסקת חומרה
- שלב 8: לחצן איפוס/ איפוס
- שלב 9: קוד
- שלב 10: קוד הפניה
וִידֵאוֹ: מונה שניות MSP430: 10 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:15
ברוך הבא! מונה עשיית שניות: שימוש ב- CCStudio 8 ו- MSP430F5529 לפרויקט.
שפת C לקידוד בקר המיקרו. יישום מצבי צריכת חשמל נמוכה, טיימרים והפסקות. הפלט מוצג באמצעות 7 פלחים.
שלב 1: תובנה
בואו נתחיל!
אתחל את טיימר כלב השמירה למצב כבוי באמצעות הסיסמה הנדרשת עבור טיימר כלב השמירה (זה עוזר לשמור על אינסוף לולאות, ולשמור על מעבד בטוח).
#לִכלוֹל
/** * main.c */
int main (void)
{
WDTCTL = WDTPW | WDTHOLD; // עצור טיימר כלב השמירה
החזר 0;
}
שלב 2: אתחול יציאות
{
P3DIR = 0xFF; // P3DIR = 0x00;
P6DIR = 0xFF;
P4DIR | = 0x00;
P4REN | = 0xFF;
P4OUT | = 0xFF;
}
P3DIR | = 0x00 אומר לנו שכל PORT-3 מאתחל בכדי לקבל תשומות.
P3DIR | = 0xFF אומר לנו שכל ה- PORT-3 מאתחל ונותן תפוקות.
P3DIR | = 0x01 רק סיכה P3.0 מאתחלת לפלט ב- PORT-3. זאת בעקבות מיפוי של יציאה הקסדצימלי.
P4REN | = 0xFF, זה מצביע על כך שהסיכות של PORT-4 מפעילות את נגדי המשיכה למעלה/למטה.
כדי לבחור אותם בין Pull UP או Pull DOWN, נעשה שימוש בהוראה P $ OUT | = 0xFF.
אם משתמשים ב- 0xFF הם מוגדרים כנגדי Pull UP ואם 0x00 הם מוגדרים כ- Pull DOWN.
שלב 3: הספק נמוך במיוחד
MSP430F5529 מאפשר לנו להפחית את אובדן הכוח מהמעבד. זה שימושי ביישומים עצמאיים.
זה דורש הצהרה של כל הסיכה או היציאות לפלט.
{
P7DIR | = 0xFF;
P6DIR | = 0xFF;
P5DIR | = 0xFF;
P4DIR | = 0xFF;
P3DIR | = 0xFF;
P2DIR | = 0xFF;
P1DIR | = 0xFF;
}
שלב 4: טיימר
שימוש בטיימר לדור עיכוב של שנייה אחת. זה משתמש ב- SMCLK של 1MHz, גם טיימר פועל במצב צריכת חשמל נמוכה (בשלב הבא, לאחר ספירתו הוא הופסק מ- LPM). תהליך זה חוסך כוח ועומס על המעבד
TA0CCTL0 = CCIE;
TA0CCR0 = 999;
TA0CTL = TASSEL_2 + MC_1;
הערכים הם 999, כיוון שנדרש עוד ספירה אחת כדי לחזור לאפס ברשם הטיימר.
שלב 5: מצב צריכת חשמל נמוכה
_BIS_SR (LPM0_bits+GIE);
זה מאפשר הפעלה כללית (GIE), ומעמיד את המעבד ל- LPM0, שם MCLK התומך במעבד כבוי והפעלת SMCLK ו- ACLK ששומרת על הטיימר פועל. כדי שנוכל לראות שהמעבד כבוי, שם על ידי חיסכון בחשמל.
שלב 6: טיימר ISR
וקטור #פרגמה = TIMER0_A0_VECTOR
_ הפרע חלל טיימר_א (חלל)
{
z ++;
אם (z> עיכוב)
{
P3OUT = קוד [x];
P6OUT = code1 [y];
x ++;
אם (x == 10)
{
x = 0;
y ++;
}
אם (y == 6)
y = 0;
z = 0;
}
}
וקטור פרגמה מיועד לייצוג ISR ב- C embd.
קוד [x] וקוד 1 [y] הם המערכים המכילים ערכי פלט עבור שני שבעת הקטעים, להצגת מונה של 60 שניות.
שלב 7: הפסקת חומרה
P2DIR = 0x00;
P2REN = 0x02;
P2OUT = 0x02;
P2IE | = BIT1;
P2IES | = BIT1;
P2IFG & = ~ BIT1;
כאן P2.1 מוכרז כהפרעה לחומרה, אם לוחצים על הכפתור, המונה מתאפס לערך.
תוכנית שאר כתובה בתוך ה- ISR של הפרעה זו.
שלב 8: לחצן איפוס/ איפוס
וקטור #פרגמה = PORT2_VECTOR
_ הפרע יציאת חלל_2 (חלל)
{
P2IFG & = ~ BIT1;
x = 0; y = 0;
P3OUT = קוד [x];
P6OUT = code1 [y];
v ++;
עבור (i = 0; i
{
P1OUT | = BIT0; //P1.0 = החלפה
_ עיכוב_ אופניים (1048576);
P1OUT & = ~ BIT0; // P1.0 = החלפה
_ עיכוב_ אופניים (1048576);
}
ISR זה מאפס את המונה, ושומר על כמה פעמים לחצו על השאר.
(להלן התצוגה נעשית באמצעות מתג לד, ניתן להשתמש גם במערך וטיימר אחר, כדי להציג את הערכים הללו כפלט ב -7 קטע).
שלב 9: קוד
#לִכלוֹל
#הגדר עיכוב 1000
קוד char = {0xFC, 0x60, 0xDA, 0xF2, 0x66, 0xB6, 0xBE, 0xE0, 0xFE, 0xE6};
char code1 = {0x7E, 0x30, 0x6D, 0x79, 0x33, 0x5B};
נדיף בלתי חתום int x = 0, y = 0, z = 0;
נדיף בלתי חתום int v = 0, i = 0;
void main ()
{
WDTCTL = WDTPW | WDTHOLD; // עצור טיימר כלב השמירה
P7DIR | = 0xFF;
P7OUT | = 0x00;
P8DIR | = 0xFF;
P8OUT | = 0x00;
P4DIR | = 0xFF;
P4OUT | = 0x00;
P5DIR | = 0xFF;
P5OUT | = 0x00;
P1DIR = 0xFF;
P3DIR = 0xFF;
P6DIR = 0xFF;
P2DIR = 0x00;
P2REN = 0x02;
P2OUT = 0x02;
P2IE | = BIT1;
P2IES | = BIT1;
P2IFG & = ~ BIT1;
TA0CCTL0 = CCIE;
TA0CCR0 = 999;
TA0CTL = TASSEL_2 + MC_1;
_BIS_SR (LPM0_bits+GIE);
}
// שגרת שירות טיימר A0
וקטור #פרגמה = TIMER0_A0_VECTOR
_ הפרע חלל טיימר_א (חלל)
{
z ++;
אם (z> עיכוב)
{
P3OUT = קוד [x];
P6OUT = code1 [y];
x ++;
אם (x == 10)
{
x = 0;
y ++;
}
אם (y == 6)
y = 0;
z = 0;
}
}
// שגרת שירות להפריע חומרה
וקטור #פרגמה = PORT2_VECTOR
_ הפרע יציאת חלל_2 (חלל)
{
P2IFG & = ~ BIT1;
x = 0;
y = 0;
P3OUT = קוד [x];
P6OUT = code1 [y];
v ++;
עבור (i = 0; i
{P1OUT | = BIT0; // P1.0 = החלפה
_ עיכוב_ אופניים (1048576);
P1OUT & = ~ BIT0; // P1.0 = החלפה
_ עיכוב_ אופניים (1048576);
}
}
שלב 10: קוד הפניה
מאגר GitHub
מוּמלָץ:
כיצד להכין טיימר כביסה ארדואינו 30 שניות, עצור התפשטות COVID: 8 שלבים
כיצד להכין טיימר כביסה Arduino 30 שניות, עצור הפצת COVID: שלום
הגדרת ה- RTC DS3231 (שעון בזמן אמת) בצורה מדויקת, מהירה ואוטומטית באמצעות ג'אווה (+-1 שניות): 3 שלבים
הגדרת ה- DS3231 RTC (שעון בזמן אמת) בצורה מדויקת, מהירה ואוטומטית באמצעות ג'אווה (+-1 שניות): מדריך זה יראה לך כיצד להגדיר את השעה על שעון בזמן אמת DS3231 באמצעות Arduino ויישום Java קטן המשתמש החיבור הסדרתי של ה- Arduino. ההיגיון הבסיסי של תוכנית זו: 1. הארדואינו שולח בקשה סדרתית
מארז סוללות ליתיום 12 שניות 44.4V עם BMS: 5 שלבים
מארז סוללות Li-Ion 12s 44.4V עם BMS: תאי Li-Ion זמינים בגדלים וקיבולות רבים. עם זאת לא קל להשיג " מוכן להפעלה " מארז סוללות לפרויקט עצמו. ביליתי קצת זמן בעיצוב חבילה משלי המתאימה ליישום בעל עוצמה גבוהה, עיצוב מודולרי להגדלת
מתג מחיאות כפיים (40 כפות ב -5 שניות): 4 שלבים (עם תמונות)
מתג מחיאות כפיים (40 טפיחות ב -5 שניות): מתג קלאפ יכול להפעיל/לכבות כל רכיב חשמלי על ידי חיבור פלט המעגל למתג ממסר. כאן אנו הולכים לעשות מתג מחיאות כפיים עם כמה רכיבים עם הסברים טובים מאוד. בהשוואה לכל מתג מחיאות הכפיים האחרות
הורג את כל הנתונים בתקליטור/DVD תוך 5 שניות או פחות: 3 שלבים
הורג את כל הנתונים בתקליטור/DVD תוך 5 שניות או פחות: הורג את כל הנתונים בתקליטור/DVD תוך 5 שניות או פחות. מדוע תרצה לעשות זאת: ++ השמד גיבויים ישנים של כמה שנים ++ זכור אותך שרף את זמן השינה המיוחד ל- DVD ++ האקס שלך רוצה את התקליטור/DVD בחזרה.++כיף עם דיסק AOL !!!! חחח