C++ 检查写入寄存器的值是否正确
我是c语言的初学者 我有一个函数,它将一些特定值写入寄存器:C++ 检查写入寄存器的值是否正确,c++,c,cpu-registers,microprocessors,C++,C,Cpu Registers,Microprocessors,我是c语言的初学者 我有一个函数,它将一些特定值写入寄存器: if(something == someCondition ) { Write_into_register( Msg->R_addres, Msg->value ); } uint read_value_from_register( R_addres addr ){} 到目前为止,这是可行的。 我还有一个读取函数,它只读取写入寄存器的值: if(something == someConditi
if(something == someCondition )
{
Write_into_register( Msg->R_addres, Msg->value );
}
uint read_value_from_register( R_addres addr ){}
到目前为止,这是可行的。
我还有一个读取函数,它只读取写入寄存器的值:
if(something == someCondition )
{
Write_into_register( Msg->R_addres, Msg->value );
}
uint read_value_from_register( R_addres addr ){}
这也很好
现在,我想要这样的东西:
int index;
Write_into_register(addres, value );
for (index=0;index<3;i++)
if (value== read_value_from_register(addres))
return 1;
else
return ERROR;
int index;
Write_into_register(addres, value );
for (index=0;index<3;i++)
if (value== read_value_from_register(addres))
return 1;
else
return ERROR;
int索引;
将_写入_寄存器(地址、值);
对于(index=0;index假设要写入的数据是一个整数)
int Write_verify( R_addres addr, int data)
{
Write_into_register(addr, data );
if (data == read_value_from_register(addr))
return 1;
else
return 0;
}
此函数将写入并验证数据。如果验证,则返回1;如果不正常,则返回0
如果要将数据写入三次,则必须像这样修改上述代码
int Write_verify( R_addres addr, int data)
{
Write_into_register(addr, data );
for (int i=0; i<2; i++)
{
if (data == read_value_from_register(addr))
return 1;
else
Write_into_register(addr, data );
}
// Check for last value
if (data == read_value_from_register(addr))
return 1;
else
return 0;
}
int Write\u verify(R\u addres addr,int data)
{
将_写入_寄存器(地址、数据);
对于(int i=0;i这些寄存器是什么?为什么写入会失败并需要验证?通常寄存器是非常低级的,向它们写入基本上总是有效的。例外是在微控制器中更常见的外围寄存器或与i/O相关的寄存器。你不是很清楚。对于任何了解这些寄存器的程序员来说,这看起来微不足道循环和条件。你尝试过什么?有没有具体的问题?如果你不知道如何使用循环和条件,也许你需要一些编程入门类。这些寄存器位于集成电压控制单元内。这些值通过i2c总线从其他组件发送,这是一个安全相关系统。显示你尝试过的,很琐碎。你应该先学习C++,然后再开始编程。C++在很多方面与Ruby不同,更难。从这里挑选一本书:我尝试了一些你解释过的东西,但是用这3个尝试来看看这个值是否正确。