Kod: Zaznacz cały
Ćwiczenie Nr 3 /Elektrotechnika
Napisać program dla mikrokontrolera MSP430FG4618, który w przerwaniu od Basic Timera – mruga jedną
z diod LED podłączonych do portu P2 (P2.1 i P2.2). Czas pomiędzy zmianą stanu na diodach LED to:
0,1 s
0,2 s
0,3 s
0,4 s
0,55 s
0,6 s
0,7 s
0,8 s
0,9 s
1,05 s
1,1 s
1,2 s
1,3 s
1,4 s
Dodatkowo jeden z mikrostyków podłączonych do portu P1 (P1.0 lub P1.1) ma za zadanie włączanie
lub wyłączanie mrugania diodą. Do tego celu należy wykorzystać przerwanie zewnętrzne od portu P1.
W programie głównym należy przejść do trybu oszczędzania energii LPM3.
Przykładowy program: msp430xG46x_P1_02.c i msp430xG46x_bt_01.c
Kod: Zaznacz cały
#include <msp430xG46x.h> // instrukcja ta poleca włączyć zbiór definicji rejestrów procesora MSP
int i=0;
void main(void)
{
WDTCTL = WDTPW+WDTHOLD; // Stop WDT
FLL_CTL0 |= XCAP18PF; // Set load cap for 32k xtal
P1DIR &=0xFE;
P2DIR |= 0x01; // P2.1 output
P2OUT |= 0x01;
BTCTL=BT_ADLY_8;
IE2 |= BTIE;
_BIS_SR(LPM3_bits + GIE); // LPM4, enable interrupts
}
// Basic Timer Interrupt Service Routine
#pragma vector=BASICTIMER_VECTOR
__interrupt void basic_timer_ISR(void)
{
i=i+1;
if(i==100){
P2OUT ^= 0x02;
i=0;}
// Toggle P5.1
}