2019-03-25 10:40发布
感谢你在两边都作了详细的回答,既然是这边的网友,咱就在这讨论好了。 我的第一个问题的意思是,程序发数据用的是case (SD_COUNTER)这个语句来执行发数的,下面的case只有0-32,而SD_COUNTER的计数是到6'b111111(即63)了才重新从0开始计的。这样应该在33-63计数器在空跑的,不知道是什么意思
二、对于从机应答我看懂了。还有点不明白的是:结合这句 6'd12 : begin SDO=SD[15]; ACK1=I2C_SDAT; end ,于是ack1就等于之前一个周期的i2c_sdat的输入值,也就是状态‘ 11’6'd11 : SDO=1'b1。。。。。
我原来理解是:在这里他用的是“=”号,ACK1读到的是SD[15]的值,如果这样写6'd12 : begin ACK1=I2C_SDAT; SDO=SD[15];end 我能理解。。。为什么说“ack1就等于之前一个周期的i2c_sdat的输入值”呢?
最多设置5个标签!
感谢你在两边都作了详细的回答,既然是这边的网友,咱就在这讨论好了。 我的第一个问题的意思是,程序发数据用的是case (SD_COUNTER)这个语句来执行发数的,下面的case只有0-32,而SD_COUNTER的计数是到6'b111111(即63)了才重新从0开始计的。这样应该在33-63计数器在空跑的,不知道是什么意思
二、对于从机应答我看懂了。还有点不明白的是:结合这句 6'd12 : begin SDO=SD[15]; ACK1=I2C_SDAT; end ,于是ack1就等于之前一个周期的i2c_sdat的输入值,也就是状态‘ 11’6'd11 : SDO=1'b1。。。。。
我原来理解是:在这里他用的是“=”号,ACK1读到的是SD[15]的值,如果这样写6'd12 : begin ACK1=I2C_SDAT; SDO=SD[15];end 我能理解。。。为什么说“ack1就等于之前一个周期的i2c_sdat的输入值”呢?
[ 本帖最后由 shinexqq 于 2010-10-13 11:04 编辑 ]一周热门 更多>