Përmbajtje:
- Hapi 1: Pasqyrë
- Hapi 2: Fillimi i Portit
- Hapi 3: Fuqia ultra e ulët
- Hapi 4: KOHA
- Hapi 5: Modaliteti i energjisë së ulët
- Hapi 6: Kohëmatësi ISR
- Hapi 7: Ndërprerja e harduerit
- Hapi 8: ISR- Rivendos/ Shtyp butonin
- Hapi 9: KODI
- Hapi 10: Kodi i Referencës
Video: MSP430 Counter Seconds: 10 Hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:20
Mirë se vini! Krijimi i numëruesit të sekondave: Përdorimi i CCStudio 8 dhe MSP430F5529 për projektin.
Gjuha C për të koduar mikro kontrolluesin. Aplikimi i mënyrave, kohëmatësve dhe ndërprerjeve me fuqi të ulët. Prodhimi shfaqet përmes 7 Segmentit.
Hapi 1: Pasqyrë
Le të fillojmë!
Inicializoni kohëmatësin e mbikëqyrësit në gjendjen OFF duke përdorur fjalëkalimin e kërkuar për kohëmatësin mbikëqyrës (Ndihmon për të mbajtur nën kontroll sythe të pafund, duke e mbajtur procesorin të sigurt).
#përfshi
/** * kryesore.c */
int kryesore (e pavlefshme)
{
WDTCTL = WDTPW | WDTHOLD; // ndalet kohëmatësi vëzhgues
kthimi 0;
}
Hapi 2: Fillimi i Portit
{
P3DIR = 0xFF; // P3DIR = 0x00;
P6DIR = 0xFF;
P4DIR | = 0x00;
P4REN | = 0xFF;
P4OUT | = 0xFF;
}
P3DIR | = 0x00 na tregon se e gjithë PORT-3 është e inicializuar për të marrë hyrje.
P3DIR | = 0xFF na thotë se e gjithë PORT-3 është e inicializuar për të dhënë rezultate.
P3DIR | = 0x01 vetëm kunja P3.0 është e inicializuar për të dalë në PORT-3. Kjo pason një hartë të Portit Heksadecimal.
P4REN | = 0xFF, kjo tregon se kunjat e PORT-4 kanë të aktivizuar rezistorët e tërheqjes lart/poshtë.
Për t'i përzgjedhur ato midis Tërhiqeni lart ose Tërhiqni poshtë, përdoret udhëzimi P $ OUT | = 0xFF.
Nëse përdoret 0xFF ato konfigurohen si Pull UP resistors dhe nëse 0x00 konfigurohen si Pull Down.
Hapi 3: Fuqia ultra e ulët
MSP430F5529 na lejon të zvogëlojmë humbjen e energjisë nga procesori. Kjo është e dobishme në aplikime të pavarura.
Kjo kërkon deklarimin e të gjitha pin ose Porteve në dalje.
{
P7DIR | = 0xFF;
P6DIR | = 0xFF;
P5DIR | = 0xFF;
P4DIR | = 0xFF;
P3DIR | = 0xFF;
P2DIR | = 0xFF;
P1DIR | = 0xFF;
}
Hapi 4: KOHA
Përdorimi i kohëmatësit për vonesën në gjenerimin e një sekonde. Kjo përdor SMCLK prej 1MHz, gjithashtu kohëmatësi funksionon në modalitetin e energjisë së ulët (në hapin tjetër, pasi numërimi i tij është ndërprerë nga LPM). Ky proces kursen energji dhe barrë mbi procesorin
TA0CCTL0 = CCIE;
TA0CCR0 = 999;
TA0CTL = TASSEL_2 + MC_1;
Vlerat janë 999, pasi duhet edhe një numërim tjetër për t'u kthyer në zero në regjistrin e kohëmatësit.
Hapi 5: Modaliteti i energjisë së ulët
_BIS_SR (LPM0_bits+GIE);
Kjo mundëson Ndërprerjen e përgjithshme Enable (GIE), dhe e vendos CPU -në në LPM0, ku MCLK që mbështet CPU -në është joaktiv, dhe SMCLK dhe ACLK që funksionojnë që e mban kohëmatësin në punë. kështu që ne mund të shohim që CPU është fikur, atje duke kursyer energji.
Hapi 6: Kohëmatësi ISR
#vector vegël = TIMER0_A0_VECTOR
_vlera e pavlefshme Timer_A (e pavlefshme)
{
z ++;
nëse (z> vonesë)
{
P3OUT = kodi [x];
P6OUT = kodi1 [y];
x ++;
nëse (x == 10)
{
x = 0;
y ++;
}
nëse (y == 6)
y = 0;
z = 0;
}
}
vektori pragma është për përfaqësimin e ISR në C embd.
kodi [x] dhe kodi1 [y] janë vargjet që përmbajnë vlera dalëse për dy shtatë segmentet, për shfaqjen e njehsorit 60 sekondash.
Hapi 7: Ndërprerja e harduerit
P2DIR = 0x00;
P2REN = 0x02;
P2OUT = 0x02;
P2IE | = BIT1;
P2IES | = BIT1;
P2IFG & = ~ BIT1;
Këtu P2.1 deklarohet si ndërprerje e harduerit, nëse shtypet butoni, numëruesi rivendoset në vlerën.
programi i pushimit shkruhet brenda ISR -së së kësaj ndërprerjeje.
Hapi 8: ISR- Rivendos/ Shtyp butonin
#vektori i Pragës = PORT2_VECTOR
_port i pavlefshëm i pavlefshëm_2 (i pavlefshëm)
{
P2IFG & = ~ BIT1;
x = 0; y = 0;
P3OUT = kodi [x];
P6OUT = kodi1 [y];
v ++;
për (i = 0; i
{
P1OUT | = BIT0; //P1.0 = kaloni
_ciklet_vonesë (1048576);
P1OUT & = ~ BIT0; // P1.0 = kaloni
_ciklet_vonesë (1048576);
}
Ky ISR rivendos sportelin dhe mban një numër se sa herë është shtypur pjesa tjetër.
(Këtu shfaqja është bërë përmes ndërrimit led, gjithashtu mund të përdorni një grup dhe një kohëmatës, për t'i treguar ato vlera si dalje në 7 segmente).
Hapi 9: KODI
#përfshi
#përcakto vonesën 1000
kodi i karbonit = {0xFC, 0x60, 0xDA, 0xF2, 0x66, 0xB6, 0xBE, 0xE0, 0xFE, 0xE6};
kodi i karbonit1 = {0x7E, 0x30, 0x6D, 0x79, 0x33, 0x5B};
i paqëndrueshëm i panënshkruar int x = 0, y = 0, z = 0;
i paqëndrueshëm i panënshkruar int v = 0, i = 0;
pavlefshme kryesore ()
{
WDTCTL = WDTPW | WDTHOLD; // ndalet kohëmatësi vëzhgues
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);
}
// Kohëmatësi A0 ndërpret rutinën e shërbimit
#vector vegël = TIMER0_A0_VECTOR
_vlera e pavlefshme Timer_A (e pavlefshme)
{
z ++;
nëse (z> vonesë)
{
P3OUT = kodi [x];
P6OUT = kodi1 [y];
x ++;
nëse (x == 10)
{
x = 0;
y ++;
}
nëse (y == 6)
y = 0;
z = 0;
}
}
// Rutina e shërbimit të ndërprerjes së harduerit
#vektori i Pragës = PORT2_VECTOR
_porti i pavlefshëm i ndërprerjes_2 (i pavlefshëm)
{
P2IFG & = ~ BIT1;
x = 0;
y = 0;
P3OUT = kodi [x];
P6OUT = kodi1 [y];
v ++;
për (i = 0; i
{P1OUT | = BIT0; // P1.0 = kaloni
_ciklet_vonesë (1048576);
P1OUT & = ~ BIT0; // P1.0 = kaloni
_ciklet_vonesë (1048576);
}
}
Hapi 10: Kodi i Referencës
Depoja e GitHub
Recommended:
Ora HP Tube Counter Nixie e Counter Nixie e viteve 1960/Ekran BG: 3 hapa
Ora HP e Counter Nixie Tube e viteve 1960/Ekrani BG: Ky është një projekt për të bërë një orë- dhe në rastin tim, një ekran të glukozës në gjak- nga një numërues i frekuencave të cilësisë së mirë të vitit 1966 HP 5532A. Në rastin tim, sporteli nuk funksionoi dhe më duhej të bëja disa riparime. Këto fotografi fillestare janë disa nga riparimet. Ky udhëzim
Makina me gjendje të fundme në një MSP430: 6 hapa
Makina e Fundit e Gjendjes në një MSP430: Unë do t'ju tregoj se si të programoni një Launchpad të MSP430G2 me Makinat e Gjendjes së Fundit (FSM) duke përdorur Mjetet YAKINDU Statechart direkt në Texas Instruments Code Composer Studio. Ky tutorial përmban gjashtë hapa: Instalimi i Mjeteve YAKINDU Statechart si
Arduino për Nerf: Kronograf dhe Counter Counter: 28 hapa (me fotografi)
Arduino për Nerf: Chronograph and Shot Counter: Instructable im i mëparshëm mbulonte bazat e zbulimit të shpejtësisë së shigjetës duke përdorur një emetues dhe detektor infra të kuqe. Ky projekt e çon një hap më tej, duke përdorur një tabelë qarku të shtypur, ekran dhe bateri për të bërë një numërues portativ të municionit dhe kronograf.
MSP430 Analizuesi i spektrit të audios së Breadboard: 6 hapa
MSP430 Breadboard Audio Spectrum Analyzer: Ky projekt bazohet në mikrofon dhe kërkon përbërës minimalë të jashtëm. 2 qeliza të monedhës LR44 përdoren në mënyrë që të mund të kem të gjithë strukturën që punon në kufijtë e një mini panoramë me 170 pika lidhëse. ADC10, TimerA ndërpret zgjimin LPM, TimerA PWM
Programimi i MSP430 DIP Duke përdorur një hap Ez430: 4
Programimi i MSP430 DIP Përdorimi i një Ez430: Kur gjeta programuesin USB të ez430 të TI, dukej se ishte një nga metodat më të lehta për t'u ngritur dhe drejtuar me një MCU. Si mund të kem gabim, ka ez në emër! Rezulton se është në fakt e lehtë … kryesisht. Ez430 është i shkëlqyeshëm nëse doni të