#include<msp430x14x.h>
unsigned char A = 0;
unsigned int Add = 0x1080;
void write_A( unsigned int x,unsigned char y );
void main(void)
{
WDTCTL = WDTPW + WDTHOLD;
FCTL2 = FWKEY + FSSEL0 + FN0;
P2DIR = 0xff;
P1DIR = 0XF0;
P1OUT = 0X7F;
P1IE = 0XFF;
P1IES = 0XFF;
P1IFG = 0X00;
_EINT();
for(;;)
{
char *Flash_data_ptr;
Flash_data_ptr = (char *) Add;
A = *Flash_data_ptr;
P2OUT = A;
}
}
#pragma vector=PORT1_VECTOR
__interrupt void P1( void )
{
unsigned char data = 0;
switch( P1IFG )
{
case 0X01:
P1IFG = 0x00;
data = 0xee;
break;
case 0X02:
P1IFG = 0x00;
data = 0xde;
break;
case 0X04:
P1IFG = 0x00;
data = 0xbe;
break;
case 0X08:
P1IFG = 0x00;
data = 0x7e;
break;
}
write_A( Add,data );
}
void write_A( unsigned int x,unsigned char y )
{
char *Flash_data_ptr;
Flash_data_ptr = (char *) x;
FCTL1 = FWKEY + ERASE;
FCTL3 = FWKEY;
*Flash_data_ptr = 0;
FCTL1 = FWKEY + WRT;
*Flash_data_ptr = y;
FCTL1 = FWKEY;
FCTL3 = FWKEY + LOCK;
}
unsigned char A = 0;
unsigned int Add = 0x1080;
void write_A( unsigned int x,unsigned char y );
void main(void)
{
WDTCTL = WDTPW + WDTHOLD;
FCTL2 = FWKEY + FSSEL0 + FN0;
P2DIR = 0xff;
P1DIR = 0XF0;
P1OUT = 0X7F;
P1IE = 0XFF;
P1IES = 0XFF;
P1IFG = 0X00;
_EINT();
for(;;)
{
char *Flash_data_ptr;
Flash_data_ptr = (char *) Add;
A = *Flash_data_ptr;
P2OUT = A;
}
}
#pragma vector=PORT1_VECTOR
__interrupt void P1( void )
{
unsigned char data = 0;
switch( P1IFG )
{
case 0X01:
P1IFG = 0x00;
data = 0xee;
break;
case 0X02:
P1IFG = 0x00;
data = 0xde;
break;
case 0X04:
P1IFG = 0x00;
data = 0xbe;
break;
case 0X08:
P1IFG = 0x00;
data = 0x7e;
break;
}
write_A( Add,data );
}
void write_A( unsigned int x,unsigned char y )
{
char *Flash_data_ptr;
Flash_data_ptr = (char *) x;
FCTL1 = FWKEY + ERASE;
FCTL3 = FWKEY;
*Flash_data_ptr = 0;
FCTL1 = FWKEY + WRT;
*Flash_data_ptr = y;
FCTL1 = FWKEY;
FCTL3 = FWKEY + LOCK;
}