📄 main.c
字号:
/*****************************************************************************/
/* Example main program showing how to use the file "I2Croutines.c" */
/* */
/* developed with IAR Embedded Workbench V2.20 */
/* */
/* Texas Instruments Deutschland GmbH */
/* Christian Hernitscheck */
/* July 2004 */
/*****************************************************************************
;
; THIS PROGRAM IS PROVIDED "AS IS". TI MAKES NO WARRANTIES OR
; REPRESENTATIONS, EITHER EXPRESS, IMPLIED OR STATUTORY,
; INCLUDING ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS
; FOR A PARTICULAR PURPOSE, LACK OF VIRUSES, ACCURACY OR
; COMPLETENESS OF RESPONSES, RESULTS AND LACK OF NEGLIGENCE.
; TI DISCLAIMS ANY WARRANTY OF TITLE, QUIET ENJOYMENT, QUIET
; POSSESSION, AND NON-INFRINGEMENT OF ANY THIRD PARTY
; INTELLECTUAL PROPERTY RIGHTS WITH REGARD TO THE PROGRAM OR
; YOUR USE OF THE PROGRAM.
;
; IN NO EVENT SHALL TI BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
; CONSEQUENTIAL OR INDIRECT DAMAGES, HOWEVER CAUSED, ON ANY
; THEORY OF LIABILITY AND WHETHER OR NOT TI HAS BEEN ADVISED
; OF THE POSSIBILITY OF SUCH DAMAGES, ARISING IN ANY WAY OUT
; OF THIS AGREEMENT, THE PROGRAM, OR YOUR USE OF THE PROGRAM.
; EXCLUDED DAMAGES INCLUDE, BUT ARE NOT LIMITED TO, COST OF
; REMOVAL OR REINSTALLATION, COMPUTER TIME, LABOR COSTS, LOSS
; OF GOODWILL, LOSS OF PROFITS, LOSS OF SAVINGS, OR LOSS OF
; USE OR INTERRUPTION OF BUSINESS. IN NO EVENT WILL TI'S
; AGGREGATE LIABILITY UNDER THIS AGREEMENT OR ARISING OUT OF
; YOUR USE OF THE PROGRAM EXCEED FIVE HUNDRED DOLLARS
; (U.S.$500).
;
; Unless otherwise stated, the Program written and copyrighted
; by Texas Instruments is distributed as "freeware". You may,
; only under TI's copyright in the Program, use and modify the
; Program without any charge or restriction. You may
; distribute to third parties, provided that you transfer a
; copy of this license to the third party and the third party
; agrees to these terms by its first use of the Program. You
; must reproduce the copyright notice and any other legend of
; ownership on each copy or partial copy, of the Program.
;
; You acknowledge and agree that the Program contains
; copyrighted material, trade secrets and other TI proprietary
; information and is protected by copyright laws,
; international copyright treaties, and trade secret laws, as
; well as other intellectual property laws. To protect TI's
; rights in the Program, you agree not to decompile, reverse
; engineer, disassemble or otherwise translate any object code
; versions of the Program to a human-readable form. You agree
; that in no event will you alter, remove or destroy any
; copyright notice included in the Program. TI reserves all
; rights not specifically granted under this license. Except
; as specifically provided herein, nothing in this agreement
; shall be construed as conferring by implication, estoppel,
; or otherwise, upon you, any license or other right under any
; TI patents, copyrights or trade secrets.
;
; You may not use the Program in non-TI devices.
;
******************************************************************************/
#include "msp430x16x.h"
/*--- external functions of file "I2Croutines.c" ----------------------------*/
extern void InitI2C(void);
extern void EEPROM_ByteWrite(unsigned int Address,unsigned char Data);
extern unsigned char EEPROM_RandomRead(unsigned int Address);
extern unsigned char EEPROM_CurrentAddressRead(void);
extern void EEPROM_AckPolling(void);
/*---------------------------------------------------------------------------*/
void main(void)
{
volatile unsigned char Data[6];
WDTCTL = WDTPW+WDTHOLD; // disable Watchdog
P1DIR = 0xFF; // termination of unused pins
P2DIR = 0xFF;
P3DIR = 0xF5;
P4DIR = 0xFF;
P5DIR = 0xFF;
P6DIR = 0xFF;
InitI2C(); // Initialize I2C module
_EINT();
EEPROM_ByteWrite(0x0000,0x12);
EEPROM_AckPolling(); // Wait for EEPROM write cycle completion
EEPROM_ByteWrite(0x0001,0x34);
EEPROM_AckPolling(); // Wait for EEPROM write cycle completion
EEPROM_ByteWrite(0x0002,0x56);
EEPROM_AckPolling(); // Wait for EEPROM write cycle completion
EEPROM_ByteWrite(0x0003,0x78);
EEPROM_AckPolling(); // Wait for EEPROM write cycle completion
EEPROM_ByteWrite(0x0004,0x9A);
EEPROM_AckPolling(); // Wait for EEPROM write cycle completion
EEPROM_ByteWrite(0x0005,0xBC);
EEPROM_AckPolling(); // Wait for EEPROM write cycle completion
Data[0] = EEPROM_RandomRead(0x0000); // Read from address 0x0000
Data[1] = EEPROM_CurrentAddressRead(); // Read from address 0x0001
Data[2] = EEPROM_CurrentAddressRead(); // Read from address 0x0002
Data[3] = EEPROM_CurrentAddressRead(); // Read from address 0x0003
Data[4] = EEPROM_CurrentAddressRead(); // Read from address 0x0004
Data[5] = EEPROM_CurrentAddressRead(); // Read from address 0x0005
while (1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -