]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - i3-mote/i3-mote.git/blob - Basic-Test-Package/MSP432/Test_MSP432_I2C_M24xx256/main.c
Updated MSP432 tests description
[i3-mote/i3-mote.git] / Basic-Test-Package / MSP432 / Test_MSP432_I2C_M24xx256 / main.c
1 //****************************************************************************\r
2 //\r
3 //\r
4 //\r
5 //****************************************************************************\r
6 #include "i3mote.h"\r
7 \r
8 /* MSP432 Incldues */\r
9 #include "msp.h"\r
10 #include <driverlib.h>\r
11 \r
12 /* Standard Includes */\r
13 #include <stdint.h>\r
14 #include <stdio.h>\r
15 #include <stdlib.h>\r
16 \r
17 \r
18 /* I2C Support */\r
19 #include <HAL_I2C.h>\r
20 \r
21 \r
22 /* Local Definitions */\r
23 #define NPOS 256 // EEPROM positions to Read/Write\r
24 \r
25 void main(void)\r
26 {\r
27 \r
28         unsigned short i=0;\r
29         unsigned short val;\r
30 \r
31         /* Halting WDT and disabling master interrupts */\r
32     MAP_WDT_A_holdTimer();\r
33     MAP_Interrupt_disableMaster();\r
34 \r
35     /* Initializes Clock System */\r
36     MAP_CS_setDCOCenteredFrequency(CS_DCO_FREQUENCY_12);\r
37     MAP_CS_initClockSignal(CS_MCLK, CS_DCOCLK_SELECT, CS_CLOCK_DIVIDER_1 );\r
38     MAP_CS_initClockSignal(CS_HSMCLK, CS_DCOCLK_SELECT, CS_CLOCK_DIVIDER_1 );\r
39     MAP_CS_initClockSignal(CS_SMCLK, CS_DCOCLK_SELECT, CS_CLOCK_DIVIDER_1 );\r
40     MAP_CS_initClockSignal(CS_ACLK, CS_REFOCLK_SELECT, CS_CLOCK_DIVIDER_1);\r
41 \r
42     /* Disable GPS VCC */\r
43     MAP_GPIO_setOutputHighOnPin(GPIO_PORT_P2,GPIO_PIN4);\r
44     MAP_GPIO_setAsOutputPin(GPIO_PORT_P2,GPIO_PIN4);\r
45 \r
46     /* LEDs */\r
47     MAP_GPIO_setAsOutputPin(HID_PORT,LEDG|LEDR);\r
48     MAP_GPIO_setOutputLowOnPin(HID_PORT,LEDG|LEDR);\r
49 \r
50     /* Initialize I2C communication */\r
51     Init_I2C_GPIO();\r
52     I2C_init();\r
53 \r
54     I2C_setslave(EEPROM_SLAVE_ADDRESS);\r
55 \r
56 \r
57     for(i=0;i<NPOS;i++){\r
58         I2C_eeprom_write_byte((int16_t)i,i);\r
59         __delay_cycles(12000*10);\r
60     }\r
61 \r
62     for(i=0;i<NPOS;i++){\r
63         val=I2C_eeprom_read_byte(i);\r
64         printf("%02X %02X\n",i,val);\r
65         if(val!=(0xFF&i)){\r
66             MAP_GPIO_setOutputHighOnPin(HID_PORT,LEDR);\r
67             exit(-1);\r
68         }\r
69     }\r
70 \r
71     for(i=0;i<NPOS;i++){\r
72         I2C_eeprom_write_byte((int16_t)i,~i);\r
73         __delay_cycles(12000*10);\r
74     }\r
75 \r
76     for(i=0;i<NPOS;i++){\r
77         val=I2C_eeprom_read_byte(i);\r
78         printf("%02X %02X\n",(~i)&0xFF,val);\r
79         if(val!=(0xFF&(~i))){\r
80             MAP_GPIO_setOutputHighOnPin(HID_PORT,LEDR);\r
81             exit(-1);\r
82         }\r
83     }\r
84 \r
85     MAP_GPIO_setOutputHighOnPin(HID_PORT,LEDG);\r
86 \r
87     /* Enter LPM0 forever*/\r
88     MAP_PCM_gotoLPM0();\r
89 \r
90 }\r
91 \r