⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 MSP430 I2C sample code application
💻 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 + -