Obsah:
- Krok 1: Prehľad
- Krok 2: Inicializácia portu
- Krok 3: Ultra nízky výkon
- Krok 4: ČASOVAČ
- Krok 5: Režim nízkej spotreby
- Krok 6: Časovač ISR
- Krok 7: Prerušenie hardvéru
- Krok 8: ISR- Reset/ tlačidlo
- Krok 9: KÓD
- Krok 10: Referenčný kód
![Počítadlo sekúnd MSP430: 10 krokov Počítadlo sekúnd MSP430: 10 krokov](https://i.howwhatproduce.com/images/006/image-15304-23-j.webp)
Video: Počítadlo sekúnd MSP430: 10 krokov
![Video: Počítadlo sekúnd MSP430: 10 krokov Video: Počítadlo sekúnd MSP430: 10 krokov](https://i.ytimg.com/vi/finP05FFTv8/hqdefault.jpg)
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:59
![Počítadlo sekúnd MSP430 Počítadlo sekúnd MSP430](https://i.howwhatproduce.com/images/006/image-15304-24-j.webp)
Vitajte! Počítadlo sekúnd: Použitie projektu CCStudio 8 a MSP430F5529 na projekt.
Jazyk C na kódovanie mikroovládača. Použitie režimov, časovačov a prerušení s nízkym výkonom. Výstup je zobrazený prostredníctvom 7 segmentov.
Krok 1: Prehľad
![Náhľad Náhľad](https://i.howwhatproduce.com/images/006/image-15304-25-j.webp)
Poďme začať!
Inicializujte časovač strážneho psa do stavu VYPNUTÉ pomocou požadovaného hesla pre časovač strážneho psa (Pomáha udržiavať kontrolu nad nekonečnými slučkami a udržiavať procesor v bezpečí).
#zahrnúť
/** * main.c */
int main (prázdny)
{
WDTCTL = WDTPW | WDTHOLD; // zastavenie časovača strážneho psa
návrat 0;
}
Krok 2: Inicializácia portu
{
P3DIR = 0xFF; // P3DIR = 0x00;
P6DIR = 0xFF;
P4DIR | = 0x00;
P4REN | = 0xFF;
P4OUT | = 0xFF;
}
P3DIR | = 0x00 nám hovorí, že celý PORT-3 je inicializovaný tak, aby prijímal vstupy.
P3DIR | = 0xFF nám hovorí, že celý PORT-3 je inicializovaný, aby poskytoval výstupy.
P3DIR | = 0x01 iba pin P3.0 je inicializovaný na výstup v PORT-3. Nasleduje mapovanie hexadecimálneho portu.
P4REN | = 0xFF, to znamená, že na kolíkoch PORT-4 sú povolené odpory ťahu nahor/nadol.
Na ich výber medzi Pull UP alebo Pull DOWN sa používa inštrukcia P $ OUT | = 0xFF.
Ak sa použije 0xFF, nakonfigurujú sa ako odpory Pull UP a ak 0x00 nakonfigurujú ako Pull DOWN.
Krok 3: Ultra nízky výkon
MSP430F5529 nám umožňuje znížiť stratu energie z procesora. To je užitočné v samostatných aplikáciách.
To si vyžaduje deklaráciu všetkých pinov alebo portov na výstup.
{
P7DIR | = 0xFF;
P6DIR | = 0xFF;
P5DIR | = 0xFF;
P4DIR | = 0xFF;
P3DIR | = 0xFF;
P2DIR | = 0xFF;
P1DIR | = 0xFF;
}
Krok 4: ČASOVAČ
Použitie časovača na oneskorenie generovania jednej sekundy. Používa sa SMCLK s frekvenciou 1 MHz a časovač beží aj v režime nízkej spotreby (v nasledujúcom kroku je jeho odpočítavanie prerušené z LPM). Tento proces šetrí energiu a záťaž procesora
TA0CCTL0 = CCIE;
TA0CCR0 = 999;
TA0CTL = TASSEL_2 + MC_1;
Hodnoty sú 999, pretože trvá ešte jedenkrát, kým sa v registri časovača vráti späť na nulu.
Krok 5: Režim nízkej spotreby
_BIS_SR (LPM0_bits+GIE);
To umožňuje Všeobecné prerušenie zapnúť (GIE) a prepne procesor na LPM0, kde je vypnutý MCLK, ktorý podporuje procesor, a SMCLK a ACLK, ktoré nechávajú spustený časovač. takže vidíme, že procesor je vypnutý, a to z dôvodu úspory energie.
Krok 6: Časovač ISR
![Časovač ISR Časovač ISR](https://i.howwhatproduce.com/images/006/image-15304-26-j.webp)
#pragma vector = TIMER0_A0_VECTOR
_interrupt void Timer_A (neplatné)
{
z ++;
ak (z> oneskorenie)
{
P3OUT = kód [x];
P6OUT = kód1 [y];
x ++;
ak (x == 10)
{
x = 0;
y ++;
}
ak (y == 6)
y = 0;
z = 0;
}
}
pragma vektor je na reprezentáciu ISR v C embde.
kód [x] a kód1 [y] sú polia, ktoré obsahujú výstupné hodnoty pre sedem siedmich segmentov, na zobrazenie počítadla 60 sekúnd.
Krok 7: Prerušenie hardvéru
P2DIR = 0x00;
P2REN = 0x02;
P2OUT = 0x02;
P2IE | = BIT1;
P2IES | = BIT1;
P2IFG & = ~ BIT1;
Tu je P2.1 deklarovaný ako hardvérové prerušenie, ak je tlačidlo stlačené, počítadlo sa vynuluje.
zvyšok programu je zapísaný do ISR tohto prerušenia.
Krok 8: ISR- Reset/ tlačidlo
#pragma vector = PORT2_VECTOR
_interrupt void port_2 (void)
{
P2IFG & = ~ BIT1;
x = 0; y = 0;
P3OUT = kód [x];
P6OUT = kód1 [y];
v ++;
pre (i = 0; i
{
P1OUT | = BIT0; //P1.0 = prepínať
_delay_cycles (1048576);
P1OUT & = ~ BIT0; // P1.0 = prepínať
_delay_cycles (1048576);
}
Tento ISR vynuluje počítadlo a udržiava počítanie, koľkokrát bol stlačený zvyšok.
(Tu je zobrazenie vykonávané pomocou LED prepínača, môže sa použiť aj iné pole a časovač, aby sa tieto hodnoty zobrazili ako výstup v 7 segmentoch).
Krok 9: KÓD
![KÓD KÓD](https://i.howwhatproduce.com/images/006/image-15304-27-j.webp)
#zahrnúť
#definujte oneskorenie 1000
znakový kód = {0xFC, 0x60, 0xDA, 0xF2, 0x66, 0xB6, 0xBE, 0xE0, 0xFE, 0xE6};
znakový kód1 = {0x7E, 0x30, 0x6D, 0x79, 0x33, 0x5B};
volatile unsigned int x = 0, y = 0, z = 0;
volatile unsigned int v = 0, i = 0;
neplatné hlavné ()
{
WDTCTL = WDTPW | WDTHOLD; // zastavenie časovača strážneho psa
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);
}
// Servisná rutina prerušenia časovača A0
#pragma vector = TIMER0_A0_VECTOR
_interrupt void Timer_A (neplatné)
{
z ++;
ak (z> oneskorenie)
{
P3OUT = kód [x];
P6OUT = kód1 [y];
x ++;
ak (x == 10)
{
x = 0;
y ++;
}
ak (y == 6)
y = 0;
z = 0;
}
}
// Servisná rutina prerušenia hardvéru
#pragma vector = PORT2_VECTOR
_interrupt void port_2 (void)
{
P2IFG & = ~ BIT1;
x = 0;
y = 0;
P3OUT = kód [x];
P6OUT = kód1 [y];
v ++;
pre (i = 0; i
{P1OUT | = BIT0; // P1.0 = prepínať
_delay_cycles (1048576);
P1OUT & = ~ BIT0; // P1.0 = prepínať
_delay_cycles (1048576);
}
}
Krok 10: Referenčný kód
![Referenčný kód Referenčný kód](https://i.howwhatproduce.com/images/006/image-15304-28-j.webp)
Úložisko GitHub
Odporúča:
Jednoduché počítadlo frekvencie pomocou Arduina: 6 krokov
![Jednoduché počítadlo frekvencie pomocou Arduina: 6 krokov Jednoduché počítadlo frekvencie pomocou Arduina: 6 krokov](https://i.howwhatproduce.com/images/001/image-1324-j.webp)
Jednoduché frekvenčné počítadlo pomocou Arduina: V tomto návode sa naučíme, ako vytvoriť jednoduchý frekvenčný čítač pomocou Arduina. Pozrite si video
Počítadlo Arduino pomocou LED displeja TM1637: 7 krokov
![Počítadlo Arduino pomocou LED displeja TM1637: 7 krokov Počítadlo Arduino pomocou LED displeja TM1637: 7 krokov](https://i.howwhatproduce.com/images/001/image-79-35-j.webp)
Počítadlo Arduino pomocou LED displeja TM1637: V tomto návode sa naučíme, ako vytvoriť jednoduché počítadlo číslic pomocou LED displeja TM1637 a Visuino. Pozrite si video
Počítadlo krokov - mikro: bit: 12 krokov (s obrázkami)
![Počítadlo krokov - mikro: bit: 12 krokov (s obrázkami) Počítadlo krokov - mikro: bit: 12 krokov (s obrázkami)](https://i.howwhatproduce.com/images/003/image-6043-j.webp)
Počítadlo krokov - mikro: bit: Tento projekt bude počítadlom krokov. Na meranie našich krokov použijeme senzor akcelerometra, ktorý je vstavaný v Micro: Bit. Zakaždým, keď sa Micro: Bit zatrasie, pridáme k počtu 2 a zobrazíme ho na obrazovke
Prepínač (40 zatlieskaní za 5 sekúnd): 4 kroky (s obrázkami)
![Prepínač (40 zatlieskaní za 5 sekúnd): 4 kroky (s obrázkami) Prepínač (40 zatlieskaní za 5 sekúnd): 4 kroky (s obrázkami)](https://i.howwhatproduce.com/images/001/image-819-90-j.webp)
Klapkový spínač (40 klapiek za 5 sekúnd): Klapkový spínač má schopnosť zapnúť/vypnúť akýkoľvek elektrický komponent pripojením výstupu obvodu na reléový spínač. Tu urobíme prepínač tlieskania s niekoľkými komponentmi s veľmi dobrým vysvetlením. V porovnaní so všetkými ostatnými prepínačmi tlieskania
Zabite všetky údaje na disku CD/DVD za 5 sekúnd alebo menej .: 3 kroky
![Zabite všetky údaje na disku CD/DVD za 5 sekúnd alebo menej .: 3 kroky Zabite všetky údaje na disku CD/DVD za 5 sekúnd alebo menej .: 3 kroky](https://i.howwhatproduce.com/images/002/image-5995-78-j.webp)
Zabite všetky údaje na disku CD/DVD za 5 sekúnd alebo menej .: Zabite všetky údaje na disku CD/DVD za 5 sekúnd alebo menej. Prečo by ste to chceli urobiť: ++ Zničte staré zálohy na niekoľko rokov ++ Zapamätajte si spálili ste špeciálnu spálňu na DVD ++ Váš Ex chce späť CD/DVD. ++ ZÁBAVA S AOL DISKOM !!!! LOL