Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Demo: Green LED blink from main code, red LED blink from WDT interrupt
- // Target: MSP430G2 Launchpad, with MSP430G2553 IC
- #include <stdint.h>
- #include <msp430.h>
- int main(void) {
- volatile uint16_t x;
- WDTCTL = WDTPW | WDTHOLD; // stop watchdog timer
- P1DIR = 0b01000001; // Pin P1.6 (green LED) and P1.0 (red LED) are Outputs
- BCSCTL3 |= 32; // ACLK from internal VLOCLK
- // Resume WDT in Timer Mode, from ACLK, /8192, Reset count.
- WDTCTL = WDTPW | WDTTMSEL | WDTSSEL | WDTIS0 | WDTCNTCL;
- IE1 |= WDTIE; // Enable WDT interrupt
- __enable_interrupt();
- // Regular code to blink the green LED
- for ( ; ; ) {
- for (x = 25000; x; --x) {} // Poor man's delay
- P1OUT ^= 0b01000000; // Toggle green LED
- }
- return 0;
- }
- #pragma vector=WDT_VECTOR
- __interrupt void WDT_ISR(void) {
- P1OUT ^= 0b00000001; // Toggle red LED
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement