Cyclone 黑金动力的IIC教程
2014-08-19 20:11
204 查看
static void write_byte(alt_u16 addr,alt_u8 dat)
{
alt_u8 cmd;
cmd=(0xa0|(addr>>7))&0xfe;
start();
iic_write(cmd);
ask();
iic_write(addr);
ask();
iic_write(dat);
ask();
stop();
}
cmd=(0xa0|(addr>>7))&0xfe;这条句话不是很明白,后来终于想明白了。
addr>>7的原因是因为EEPROM的control byte的B1、B0是存储块的选择,小于256字是00,256到512是01,后面依次排下去。
右移7位正好使超过超过256字的对应为在B1和B0位上。然后与0xa0或运算,再把最后一位(读写位)加上就构成了control byte。
static void write_byte(alt_u16 addr,alt_u8 dat)
{
alt_u8 cmd;
cmd=(0xa0|(addr>>7))&0xfe;
start();
iic_write(cmd);
ask();
iic_write(addr);
ask();
iic_write(dat);
ask();
stop();
}
cmd=(0xa0|(addr>>7))&0xfe;这条句话不是很明白,后来终于想明白了。
addr>>7的原因是因为EEPROM的control byte的B1、B0是存储块的选择,小于256字是00,256到512是01,后面依次排下去。
右移7位正好使超过超过256字的对应为在B1和B0位上。然后与0xa0或运算,再把最后一位(读写位)加上就构成了control byte。
相关文章推荐
- 【黑金动力社区】【BF531体验板教程】第一章 BF531 简介(一)
- 【黑金原创教程】黑金动力社区2013年原创教程连载计划公布
- 【黑金动力社区】【BF531 体验板教程】 第二章 MS531介绍(二)
- 【黑金动力社区】【531体验板教程】 第三章 开发环境(三)
- 【黑金动力社区】【bf531 体验板教程】第四章 存储器映射(六)
- 【黑金动力社区】【BF531体验板教程】 基于BF531 DSP 的 uClinux 移植指南(四)
- 【黑金动力社区】【bf531 体验板教程】第五章 时钟及电源(七)
- 【黑金动力社区】【bf531 体验板教程】 ucLinux 烧写指南(五)
- 【连载】【黑金动力社区原创力作】《液晶驱动与GUI 基础教程》 --第二章 颜色模型(三)
- 【黑金动力社区】【bf531 体验板教程】第六章 可编程标志口(八)
- 【连载】【黑金动力社区原创力作】《液晶驱动与GUI 基础教程》 --序言(一)
- 【连载】【黑金动力社区原创力作】《液晶驱动与GUI 基础教程》--第一章 从这里开始(二)
- 【黑金原创教程】【TimeQuest】TimeQuest原创教程连载导读【连载完成,共七章】
- 【黑金视频连载】NIOSII视频教程(01)--软件安装
- 【黑金ZYNQ7000系列原创视频教程】03.体验FPGA里的ARM——裸机helloworld实验
- 【黑金原创教程】【FPGA那些事儿-驱动篇I 】实验八:PS/2模块② — 键盘与组合键
- 【黑金视频连载】NIOS II视频教程(01)--软件安装
- 【黑金视频连载】FPGA NIOSII视频教程(10)--定时器实验
- 【黑金教程笔记之006】【建模篇】【Lab 05 SOS信号之一】—笔记
- FPGA那些事(黑金动力社区)-笔记