我是c语言的初学者。
我有一个将一些特定值写入寄存器的函数:
if(something == someCondition )
{
Write_into_register( Msg->R_addres, Msg->value );
}
到目前为止,这有效。 我还有一个读取函数,它只读取写入寄存器的值:
uint read_value_from_register( R_addres addr ){}
这也很好用。
现在我想要这样的东西:
- 每次将值写入寄存器时,检查它是否确实是写入寄存器的正确值(使用我的读取函数)
- 如果没有写入值或者不是同一个值,请尝试3次写入正确的值
- 如果第三次尝试未成功,则提出错误
如何表示这个算法并将其与我现有的函数结合起来?你能将它表示为伪代码吗? 将不胜感激!
尝试过这样的事情:
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 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。
如果你想写入3次数据,你必须像这样修改上面的代码。
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;
}
关于c++ - 检查写入寄存器的值是否正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35222104/