您的位置:首页 > 移动开发 > IOS开发

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。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  IIC NIOS
相关文章推荐