想用硬件IIC和PCF86563T通讯,看了下官方的iic例程,结果看不懂中断程序,不明白case0,2,4,6,8,10都代表什么,求科普。
Xiaowei Bai1:
char SLV_data = 0x00; // Variable for received data char SLV_Addr = 0x91; // Address is 0x48 << 1 bit + 1 for Read int I2C_State = 0; // State variable
int main(void) { volatile unsigned int i; // Use volatile to prevent removal
WDTCTL = WDTPW + WDTHOLD; // Stop watchdog if (CALBC1_1MHZ==0xFF) // If calibration constants erased { while(1); // do not load, trap CPU!! } DCOCTL = 0; // Select lowest DCOx and MODx settings BCSCTL1 = CALBC1_1MHZ; // Set DCO DCOCTL = CALDCO_1MHZ;
P1OUT = 0xC0; // P1.6 & P1.7 Pullups P1REN |= 0xC0; // P1.6 & P1.7 Pu
请看例程, 其中的CASE 是笔者自己定义的一个变量而已,请看程序后面的注释。
Xiaowei Bai1:
回复 Xiaowei Bai1:
上面代码没有帖全,请看
http://www.ti.com/litv/zip/slac467b
其实case的值是笔者自己定义的一个变量而已,来确定I2C发送的数据类型和参数配置的,详细请阅读程序后面的注释。
Shi JianHua:
你是要解决pcf8563的问题还是解决 msp430g2412的USI模块 的中断的问题。要是pcf8563的iic问题,就直接调试iic就行了,msp430的iic一般都是模拟的iic。网上很多pcf8563的驱动。百度文库查一下,会找到。