我正在编写一个程序,我使用I2C将INA226与atmega8连接起来。我需要用值4127h
编写它的寄存器。以下是我所做的代码。当我正在阅读登记册时,我得到了41 FF
。这意味着我能够写出41而不是27.我怎么能这样做。?
此外,当我尝试将值从4127h
更改为3637h
(仅检查)时,它不会更改并显示旧值41 Ff
。
请帮助,谢谢。
CODE
i2c_init();
i2c_start();
i2c_write(0b10000000); //slave address
i2c_write(0x00); //register address
i2c_write(0x41); // data
i2c_write(0x27); // data
i2c_stop();
i2c_start();
i2c_write(0b10000001);
temp1 = i2c_read(1);
temp2 = i2c_read(0);
i2c_stop();
答案 0 :(得分:0)
enter code here
unsigned int_16 DATA=4127
i2c_init();
i2c_start();
i2c_write(0b10000000); //slave address
i2c_write(0x00); //register address
i2c_write((int)DATA>>8); // data OF MSB
i2c_write((int)DATA & 0XFF); // data OF LSB
i2c_stop();