此帖出自微控制器 MCU论坛
最新回复
引用:写道:
在接收完数据后发送一次数据
interrupt void c_int10(void)
{
//receive datas from master
if((I2C_RGET(I2CSTR0)&_I2C_I2CSTR_ICRRDY_MASK)!=0)
{
ReceiveData[len]=I2C_RGET(I2CDRR0);
len++;
if(len==4)
{
len=0;
I2C_RGET(I2CDXR0)=ReceiveData[0];
}
}
//transmit data to Master
if(( I2C_RGET(I2CISR0))==0x5)
{
if(i!=4)
{
I2C_RGET(I2CDXR0)=ReceiveData;
i++;
}
else
{
i=1;
}
}
} 如果要都是用I2CISR0的话,先用一个变量保存其值,再判断。I2CISR0的值一读就会变为零。
event = I2C_RGET(I2CISR0);
if (event == 4) ...
if (event == 5) ...
如果都用I2CSTR0的话,两个if中间需要else. 这样读中断的时候才不会执行写操作。
if((I2C_RGET(I2CSTR0)&_I2C_I2CSTR_ICRRDY_MASK)!=0){
}
else
if(f((I2C_RGET(I2CSTR0)&_I2C_I2CSTR_ICXRDY_MASK)!=0){
}
详情
回复
发表于 2007-7-21 08:05
| ||
|
||
| |
|
|
| |
|
|
此帖出自微控制器 MCU论坛
| ||
|
||
| |
|
|
此帖出自微控制器 MCU论坛
| ||
|
||
问问
此帖出自微控制器 MCU论坛
| ||
|
||
此帖出自微控制器 MCU论坛
| ||
|
||
??
此帖出自微控制器 MCU论坛
| ||
|
||
此帖出自微控制器 MCU论坛
| ||
|
||
??
此帖出自微控制器 MCU论坛
| ||
|
||
此帖出自微控制器 MCU论坛
| ||
|
||
此帖出自微控制器 MCU论坛
| ||
|
||
| |
|
|
新的问题
此帖出自微控制器 MCU论坛
| ||
|
||
此帖出自微控制器 MCU论坛
| ||
|
||
此帖出自微控制器 MCU论坛
| ||
|
||
此帖出自微控制器 MCU论坛
| ||
|
||
此帖出自微控制器 MCU论坛
| ||
|
||
此帖出自微控制器 MCU论坛
| ||
|
||
EEWorld Datasheet 技术支持