- //******************************************************************************
- // MSP430FR413x Demo - Long word writes to FRAM
- //
- // Description: Use long word write to write to 512 byte blocks of FRAM.
- // Toggle LED after every 100 writes.
- // NOTE: Running this example for extended periods will impact the FRAM
- // endurance.
- // ACLK = REFO, MCLK = SMCLK = default DCODIV = ~1MHz
- //
- // MSP430FR4133
- // ---------------
- // /|\| |
- // | | |
- // --|RST |
- // | |
- // | P1.0 |---> LED
- //
- // Cen Fang
- // Texas Instruments Inc.
- // August 2013
- // Built with IAR Embedded Workbench v5.60 & Code Composer Studio v5.5
- //******************************************************************************
- #include <msp430.h>
- void FRAMWrite(void);
- unsigned char count = 0;
- unsigned long *FRAM_write_ptr;
- unsigned long data;
- #define FRAM_TEST_START 0x1800
- int main(void)
- {
- WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer
- P1OUT &= ~BIT0; // Clear P1.0 output latch for a defined power-on state
- P1DIR |= BIT0; // Set P1.0 to output directionOUT
- PM5CTL0 &= ~LOCKLPM5; // Disable the GPIO power-on default high-impedance mode
- // to activate previously configured port settings
- data = 0x11111111; // Initialize dummy data
- while(1)
- {
- data += 0x00010001;
- FRAM_write_ptr = (unsigned long *)FRAM_TEST_START;
- FRAMWrite();
- count++;
- if (count > 100)
- {
- P1OUT ^= 0x01; // Toggle LED to show 512K bytes
- count = 0; // ..have been written
- data = 0x11111111;
- }
- }
- }
- void FRAMWrite (void)
- {
- unsigned int i=0;
- SYSCFG0 &= ~DFWP;
- for (i = 0; i < 128; i++)
- {
- *FRAM_write_ptr++ = data;
- }
- SYSCFG0 |= DFWP;
- }
|