嵌入式系统课程设计必做部分
学院:电控学院
专业:通信工程
设计名称:lie同步串行通讯
1、 设计的目的:
1•掌握S3C44B0IIC控制器的编程方法
2•编程实现串行EEPROM存储器24C16的数据存储和访问。
2, 0xf0 if(!(_iicStatus&0x1)) // Last-received bit is 0 (ACK was received),判断 ack 是否收到数据
break; // when ACK is received
}
rIICSTAT=OxdO; //stop MasTx condition IIC-bus 不忙
rllCCON=0xaf; //resumes llC operation.
Delay(1); //wait until stop condtion is in effect.
//write is completed.
}
void Rd24C16(U32 slvAddr,U32 addr,U8 *data)
//写模式开启
//data【】的计数器
//取地址
//移位寄存器地址联系
{
_iicMode=SETRDADDR; _iicPt=0;
_iicData[0]=(U8)addr; _iicDataCount=1; rIICDS=slvAddr;
rIICSTAT=0xf0; //MasTx,Start ,总线忙
//Clearing the pending bit isn't needed because the pending bit has been cleared. while(_iicDataCount!=-1);
_iicMode=RDDATA;
_iicPt=0; //数组数据变量
_iicDataCount=1; //? rIICDS=slvAddr; //设置移位寄存器输出地点
rllCSTAT=OxbO; 〃MasRx,Start IlC-bus 不忙
rIICCON=0xaf; //resumes IIC operation. 总线控制
while(_iicDataCount!=-1);
*data=_iicData[1];
}
void __irq liclnt(void) //中断挂起
{
U32 iicSt,i; //?
rl_lSPC=BlT_llC; //?
iicSt二rllCSTAT; 〃写入 fo,dO,
if(iicSt&0x8){} // when bus arbitration is failed. IlC-bus 仲裁过程状态标志位
if(iicSt&0x4){} // when a slave address is matched with IICADD IlC-bus 从地址状态标志位 if(iicSt&0x2){} // when a slave address is 0000000b llC-bus 地址为0状态标志: if(iicSt&0x1){} // when ACK isn't received IlC-bus 上一次接收到的状态标志位 switch(_iicMode)
{
case POLLACK:
_iicStatus=iicSt;
嵌入式系统课程设计实验报告 来自淘豆网m.daumloan.com转载请标明出处.