Talaan ng mga Nilalaman:
- Hakbang 1: Pananaw
- Hakbang 2: Initisasyon ng Port
- Hakbang 3: Ultra Mababang Lakas
- Hakbang 4: TIMER
- Hakbang 5: Mababang Power Mode
- Hakbang 6: ISR-Timer
- Hakbang 7: Makagambala sa Hardware
- Hakbang 8: ISR- I-reset / Button ng Push
- Hakbang 9: CODE
- Hakbang 10: Code ng Sanggunian
Video: MSP430 Segundo Counter: 10 Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:13
Maligayang pagdating! Making of Seconds Counter: Paggamit ng CCStudio 8 at MSP430F5529 para sa proyekto.
C wika upang mai-code ang micro controller. Paglalapat ng Mababang Mga Power Mode, Timer at Interrupts. Ang output ay ipinapakita sa pamamagitan ng 7 Segment.
Hakbang 1: Pananaw
Magsimula na tayo!
Pinasimulan ang timer ng watchdog sa OFF na estado gamit ang kinakailangang password para sa timer ng watchdog (Nakakatulong ito upang mapanatili ang pagsusuri ng mga walang katapusang mga loop, panatilihing ligtas ang processor).
# isama
/ ** * main.c * /
int main (walang bisa)
{
WDTCTL = WDTPW | WDTHOLD; // stop timer ng tagapagbantay
ibalik ang 0;
}
Hakbang 2: Initisasyon ng Port
{
P3DIR = 0xFF; // P3DIR = 0x00;
P6DIR = 0xFF;
P4DIR | = 0x00;
P4REN | = 0xFF;
P4OUT | = 0xFF;
}
Sinabi sa amin ng P3DIR | = 0x00 na ang kabuuan ng PORT-3 ay naisasimulan upang kumuha ng mga input.
Sinabi sa amin ng P3DIR | = 0xFF na ang kabuuan ng PORT-3 ay pinasimulan upang magbigay ng mga output.
P3DIR | = 0x01 ang pin P3.0 lamang ang naisasimulan upang ma-output sa PORT-3. Sumusunod ito sa isang Hexadecimal Port mapping.
P4REN | = 0xFF, ipinapahiwatig nito na ang mga pin ng PORT-4 ay pinagana ang kanilang pull up / down resistors.
Upang mapili ang mga ito sa pagitan ng Pull UP o Pull Down, ang tagubiling P $ OUT | = 0xFF ay ginagamit.
Kung ginagamit ang 0xFF nag-configure sila bilang Pull UP resistors at kung 0x00 nag-configure sila bilang Pull Down.
Hakbang 3: Ultra Mababang Lakas
Pinapayagan kami ng MSP430F5529 na bawasan ang pagkawala ng kuryente mula sa processor. Kapaki-pakinabang ito sa mga standalone na application.
Tumatawag ito para sa pagdeklara ng lahat ng mga pin o Port na output.
{
P7DIR | = 0xFF;
P6DIR | = 0xFF;
P5DIR | = 0xFF;
P4DIR | = 0xFF;
P3DIR | = 0xFF;
P2DIR | = 0xFF;
P1DIR | = 0xFF;
}
Hakbang 4: TIMER
Paggamit ng timer para sa Pag-antala ng henerasyon ng isang segundo. Gumagamit ito ng SMCLK ng 1MHz, tumatakbo din ang timer sa Mababang power Mode (sa susunod na hakbang, pagkatapos ng bilang nito ay nagambala ito mula sa LPM). Ang prosesong ito ay nakakatipid ng lakas at pasan sa processor
TA0CCTL0 = CCIE;
TA0CCR0 = 999;
TA0CTL = TASSEL_2 + MC_1;
Ang mga halaga ay 999, dahil ang tumatagal ng isa pang bilang upang i-roll pabalik sa zero sa timer register.
Hakbang 5: Mababang Power Mode
_BIS_SR (LPM0_bits + GIE);
Pinapayagan nito ang General interrupt Enable (GIE), at inilalagay ang CPU sa LPM0, kung saan naka-off ang MCLK na sumusuporta sa cpu, at tumakbo ang SMCLK at ACLK na pinapanatili ang pagpapatakbo ng timer. sa gayon maaari naming makita ang CPU ay naka-patay, doon sa pamamagitan ng pag-save ng lakas.
Hakbang 6: ISR-Timer
#pragma vector = TIMER0_A0_VECTOR
_ makagambala sa walang bisa na Timer_A (walang bisa)
{
z ++;
kung (z> antala)
{
P3OUT = code [x];
P6OUT = code1 [y];
x ++;
kung (x == 10)
{
x = 0;
y ++;
}
kung (y == 6)
y = 0;
z = 0;
}
}
ang pragma vector ay para sa representasyon ng ISR sa C embd.
ang code [x] at code1 [y] ay ang mga arrays na naglalaman ng mga halaga ng output para sa dalawang pitong segment, para sa pagpapakita ng counter ng 60 segundo.
Hakbang 7: Makagambala sa Hardware
P2DIR = 0x00;
P2REN = 0x02;
P2OUT = 0x02;
P2IE | = BIT1;
P2IES | = BIT1;
P2IFG & = ~ BIT1;
Dito ay idineklara bilang isang nakakagambala sa hardware, kung ang pindutan ay pinindot, ang counter ay reset sa halaga.
ang natitirang programa ay nakasulat sa loob ng ISR ng makagambala na ito.
Hakbang 8: ISR- I-reset / Button ng Push
#pragma vector = PORT2_VECTOR
_ makagambala sa walang bisa na port_2 (walang bisa)
{
P2IFG & = ~ BIT1;
x = 0; y = 0;
P3OUT = code [x];
P6OUT = code1 [y];
v ++;
para sa (i = 0; i
{
P1OUT | = BIT0; //P1.0 = toggle
_delay_cycles (1048576);
P1OUT & = ~ BIT0; // P1.0 = toggle
_delay_cycles (1048576);
}
Ang ISR na ito ay nagre-reset ng counter, at patuloy na mabibilang kung gaano karaming beses ang natitira ay pinindot.
(Narito ang pagpapakita ay ginawa sa pamamagitan ng led toggle, maaari ring gumamit ng isa pang array at timer, upang ipakita ang mga halagang iyon bilang output sa 7 segment).
Hakbang 9: CODE
# isama
# tukuyin ang pagkaantala ng 1000
char code = {0xFC, 0x60, 0xDA, 0xF2, 0x66, 0xB6, 0xBE, 0xE0, 0xFE, 0xE6};
char code1 = {0x7E, 0x30, 0x6D, 0x79, 0x33, 0x5B};
pabagu-bago ng unsigned int x = 0, y = 0, z = 0;
pabagu-bago ng unsigned int v = 0, i = 0;
walang bisa pangunahing ()
{
WDTCTL = WDTPW | WDTHOLD; // stop timer ng tagapagbantay
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);
}
// Ginagambala ng Timer A0 na gawain sa serbisyo
#pragma vector = TIMER0_A0_VECTOR
_ makagambala sa walang bisa na Timer_A (walang bisa)
{
z ++;
kung (z> antala)
{
P3OUT = code [x];
P6OUT = code1 [y];
x ++;
kung (x == 10)
{
x = 0;
y ++;
}
kung (y == 6)
y = 0;
z = 0;
}
}
// Hardware makagambala sa gawain sa serbisyo
#pragma vector = PORT2_VECTOR
_ makagambala sa walang bisa na port_2 (walang bisa)
{
P2IFG & = ~ BIT1;
x = 0;
y = 0;
P3OUT = code [x];
P6OUT = code1 [y];
v ++;
para sa (i = 0; i
{P1OUT | = BIT0; // P1.0 = toggle
_delay_cycles (1048576);
P1OUT & = ~ BIT0; // P1.0 = toggle
_delay_cycles (1048576);
}
}
Hakbang 10: Code ng Sanggunian
Repository ng GitHub
Inirerekumendang:
Counter Occupancy Counter: 5 Hakbang (na may Mga Larawan)
Counter Occupancy Counter: Ako si Paolo Reyes isang Mexico na gustong lumikha at gumawa ng mga bagay. Iyon ang dahilan kung bakit Ginawa ko ang Counter ng Pagsakop sa Silid na Ito. Dahil sa mga pangyayaring COVID-19, napagpasyahan kong paunlarin ang proyektong ito upang limitahan ang pagkalat ng virus, sa pamamagitan ng pagkontrol sa bilang ng mga tao na maaaring
Ang Finite State Machine sa isang MSP430: 6 na Hakbang
Ang Finite State Machine sa isang MSP430: Ipapakita ko sa iyo kung paano mag-program ng isang MSP430G2 Launchpad na may Finite State Machines (FSM) na gumagamit ng YAKINDU Statechart Tools nang direkta sa Texas Instruments Code Composer Studio. Naglalaman ang tutorial na ito ng anim na hakbang: Pag-install ng YAKINDU Statechart Tools bilang
MSP430 Breadboard Audio Spectrum Analyzer: 6 na Hakbang
MSP430 Breadboard Audio Spectrum Analyzer: Ang proyektong ito ay batay sa mikropono at nangangailangan ng kaunting panlabas na mga bahagi. Ginagamit ang 2 x LR44 na mga cell ng barya upang magkaroon ako ng buong istraktura na gumagana sa mga limitasyon ng isang 170 na tie-point mini breadboard. ADC10, TimerA makagambala sa paggising ng LPM, TimerA PWM
Programming MSP430 DIP Paggamit ng isang Ez430: 4 na Hakbang
Programming MSP430 DIP Paggamit ng isang Ez430: Nang nahanap ko ang ez430 USB programmer ng TI, mukhang isa ito sa mga pinakamadaling pamamaraan para sa pagbangon at pagpapatakbo ng isang MCU. Paano ako nagkakamali, mayroon itong ez sa pangalan! Ito ay lumalabas na ito ay sa katunayan madali … karamihan. Ang ez430 ay mahusay kung nais mong
Patayin ang Lahat ng Data sa isang CD / DVD sa 5 Segundo o Mas kaunti pa: 3 Mga Hakbang
Patayin ang Lahat ng Data sa isang CD / DVD sa 5 Segundo o Mas kaunti pa: Patayin ang Lahat ng Data sa isang CD / DVD sa loob ng 5 segundo o mas kaunti pa. Bakit mo nais na gawin ito: ++ Wasakin ang mga lumang pag-backup ng ilang taon ++ Tandaan Mo sinunog ang oras ng espesyal na silid-tulugan sa DVD ++ Nais ng Ex mo na bumalik ang CD / DVD. ++ FUN WITH AOL DISK !!!! lol