labPreg
unknown
plain_text
4 years ago
2.1 kB
10
Indexable
#include <msp430.h>
int main(void)
{
WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer
// configuram pin 2.3 ca intrare digitala
//P2DIR = 000 x000;
P2DIR = 0x00; // setam directia intrare
P2OUT = 0x08; //setam rezistorul de pull-up
P2REN = 0x08; // setam rezistorul de pull-up
P2IES = 0x08; //configuram ca intreruperea sa fie generata la trecerea din 1 in 0;
P2IE = 0x08; //configuram ca pinul p2.3 sa genereze intreruperi
// Configure GPIO
//P2OUT &= ~BIT0; // Clear P1.0 output latch for a defined power-on state
//P2DIR |= BIT0; // Set P1.0 to output direction
P2OUT |= BIT3; // Configure P1.3 as pulled-up
P2REN |= BIT3; // P1.3 pull-up register enable
P2IES |= BIT3; // P1.3 Hi/Low edge
P2IE |= BIT3; // P1.3 interrupt enabled
P6DIR = 0x40; // 0100 0000 sau P6DIR |= BIT6;
P6OUT = 0x00; // setam starea initiala a lui p6.6 in o logic
// Disable the GPIO power-on default high-impedance mode
// to activate previously configured port settings
PM5CTL0 &= ~LOCKLPM5;
P2IFG &= ~BIT3; // facem ca posibila intrerupere de la pinul p2.3 sa fie citita initial
while(1)
{
__bis_SR_register(LPM3_bits | GIE); // Enter LPM3 w/interrupt
__no_operation(); // For debug
// P1OUT ^= BIT0; // P1.0 = toggle
}
}
// Port 2 interrupt service routine
#if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__)
#pragma vector=PORT2_VECTOR
__interrupt void Port_2(void)
#elif defined(__GNUC__)
void __attribute__ ((interrupt(PORT2_VECTOR))) Port_2 (void)
#else
#error Compiler not supported!
#endif
{
P2IFG &= ~BIT3; // Clear P1.3 IFG curatam intreruperea
P6OUT ^= BIT6; //sau P6OU ^= 0x40;
__bic_SR_register_on_exit(LPM3_bits); // Exit LPM3
}Editor is loading...