📄 fet140_i2c_01.c
字号:
//******************************************************************************
// MSP-FET430P140 Demo - I2C Master Interface TMP100, Set P1.0 if Temp > 28c
//
// Description; I2C interface to TMP100 temperature sensor in 9-bit mode.
// Timer_A CCR0 interrupt is used as a wake up and to read the upper byte of
// the TMP100 temperatre register. If the temperature is greater than 28c,
// P1.0 is set, else reset. CPU is normally off and used only durring TA_ISR.
// ACLK = n/a, MCLK = SMCLK = TACLK = I2CCLOCK = DCO~ 800k
// //* MSP430F169 Device Required*//
//
//
// /|\ /|\ /|\
// | TMP100 10k 10k MSP430F169
// | ------- | | -----------------
// +--|Vcc SDA|<-|---+>|P3.1 P1.0|--->
// | | | | | |
// +--|A1,A0 | | | |
// | | | | |
// ---|Vss SCL|<-+-----|P3.3 |
// \|/ ------- | |
//
//
// M.Buccini
// Texas Instruments, Inc
// October 2003
// Built with IAR Embedded Workbench Version: 1.26B
// June 2004
// Updated for IAR Embedded Workbench Version: 2.21B
//******************************************************************************
#include "msp430x16x.h"
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop watchdog
P1DIR |= 0x01; // Set P1.0 to output direction
P3SEL |= 0x0a; // Assign I2C pins to module
U0CTL |= I2C + SYNC; // Switch USART0 to I2C mode
U0CTL &= ~I2CEN; // Recommended I2C init procedure
I2CTCTL = I2CSSEL_2; // SMCLK
I2CSCLH = 0x03; // High period of SCL
I2CSCLL = 0x03; // Low period of SCL
I2CNDAT = 0x01; // Transmit one byte
I2CSA = 0x4e; // Slave address
U0CTL |= I2CEN; // Enable I2C, 7 bit addr,
CCTL0 = CCIE; // CCR0 interrupt enabled
TACTL = TASSEL_2 + MC_2; // SMCLK, contmode
_BIS_SR(LPM0_bits + GIE); // Enter LPM0 w/ interrupt
}
// Timer A0 interrupt service routine
#pragma vector=TIMERA0_VECTOR
__interrupt void Timer_A (void)
{
if (I2CDRB > 0x1e) P1OUT |= 0x01; // LED on
else P1OUT &= ~0x01; // LED off
U0CTL |= MST; // Master
I2CTCTL |= I2CSTT + I2CSTP; // Read, ST, SP (clears MST)
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -